Revision afd3a0ef src/gr/ebs/gss/client/PopupTree.java

b/src/gr/ebs/gss/client/PopupTree.java
23 23
import gr.ebs.gss.client.rest.resource.FolderResource;
24 24
import gr.ebs.gss.client.rest.resource.OtherUserResource;
25 25

  
26
import com.google.gwt.dom.client.NativeEvent;
27
import com.google.gwt.event.dom.client.ContextMenuEvent;
28
import com.google.gwt.event.dom.client.ContextMenuHandler;
29
import com.google.gwt.event.dom.client.KeyCodes;
30
import com.google.gwt.event.logical.shared.OpenEvent;
31
import com.google.gwt.event.logical.shared.OpenHandler;
32
import com.google.gwt.event.logical.shared.SelectionEvent;
33
import com.google.gwt.event.logical.shared.SelectionHandler;
26 34
import com.google.gwt.user.client.DOM;
27 35
import com.google.gwt.user.client.Event;
28
import com.google.gwt.user.client.ui.KeyboardListener;
29 36
import com.google.gwt.user.client.ui.Tree;
30 37
import com.google.gwt.user.client.ui.TreeItem;
31
import com.google.gwt.user.client.ui.TreeListener;
32 38

  
33 39
/**
34 40
 * @author kman
......
52 58
		images = theImages;
53 59
		sinkEvents(Event.ONCONTEXTMENU);
54 60
		sinkEvents(Event.ONMOUSEUP);
55
		addTreeListener(new TreeListener() {
61
		sinkEvents(Event.ONMOUSEDOWN);
62
		addSelectionHandler(new SelectionHandler<TreeItem>() {
56 63

  
57
			public void onTreeItemSelected(TreeItem item) {
64
			@Override
65
			public void onSelection(SelectionEvent<TreeItem> event) {
66
				TreeItem item = event.getSelectedItem();
58 67
				processItemSelected(item, true);
59 68

  
60 69
			}
70
		});
71
		addOpenHandler(new OpenHandler<TreeItem>() {
72

  
73
			@Override
74
			public void onOpen(OpenEvent<TreeItem> event) {
75
				TreeItem item = event.getTarget();
76
				if(item != null)
77
					GSS.get().getFolders().update(item);
61 78

  
62
			public void onTreeItemStateChanged(TreeItem item) {
63
				 if (!item.getState())
64
					return;
65
				GSS.get().getFolders().update(item);
66 79
			}
67 80
		});
81
		addHandler(new ContextMenuHandler() {
82

  
83
			@Override
84
			public void onContextMenu(ContextMenuEvent event) {
85
				TreeItem item =getSelectedItem();
86
				if(item !=null){
87
					int left = item.getAbsoluteLeft() + 40;
88
					int top = item.getAbsoluteTop() + 20;
89
					showPopup(left, top);
90
				}
91

  
92
			}
93
		}, ContextMenuEvent.getType());
68 94
		//DOM.setStyleAttribute(getElement(), "position", "static");
69 95

  
70 96
	}
......
76 102
		switch (DOM.eventGetType(event)) {
77 103
			case Event.ONKEYDOWN:
78 104
				int key = DOM.eventGetKeyCode(event);
79
				if (key == KeyboardListener.KEY_CTRL)
105
				if (key == KeyCodes.KEY_CTRL)
80 106
					ctrlKeyPressed = true;
81 107
				break;
82 108

  
83 109
			case Event.ONKEYUP:
84 110
				key = DOM.eventGetKeyCode(event);
85
				if (key == KeyboardListener.KEY_CTRL)
111
				if (key == KeyCodes.KEY_CTRL)
86 112
					ctrlKeyPressed = false;
87 113
				break;
88 114

  
89 115
			case Event.ONMOUSEDOWN:
90
				if (DOM.eventGetButton(event) == Event.BUTTON_RIGHT)
116
				if (DOM.eventGetButton(event) == NativeEvent.BUTTON_RIGHT)
91 117
					rightClicked = true;
92
				else if (DOM.eventGetButton(event) == Event.BUTTON_LEFT)
118
				else if (DOM.eventGetButton(event) == NativeEvent.BUTTON_LEFT)
93 119
					leftClicked = true;
94 120
				break;
95 121

  
96 122
			case Event.ONMOUSEUP:
97
				if (DOM.eventGetButton(event) == Event.BUTTON_RIGHT)
123
				if (DOM.eventGetButton(event) == NativeEvent.BUTTON_RIGHT)
98 124
					rightClicked = false;
99
				else if (DOM.eventGetButton(event) == Event.BUTTON_LEFT)
125
				else if (DOM.eventGetButton(event) == NativeEvent.BUTTON_LEFT)
100 126
					leftClicked = false;
101 127
				break;
102 128
		}
......
133 159
		if (!item.equals(treeSelectedItem))
134 160
			processSelection(item);
135 161
		if (rightClicked) {
162
			rightClicked=false;
136 163
			int left = item.getAbsoluteLeft() + 40;
137 164
			int top = item.getAbsoluteTop() + 20;
138 165
			showPopup(left, top);
139 166
		} else if (leftClicked && ctrlKeyPressed) {
167
			leftClicked=false;
168
			ctrlKeyPressed=false;
140 169
			int left = item.getAbsoluteLeft() + 40;
141 170
			int top = item.getAbsoluteTop() + 20;
142 171
			showPopup(left, top);

Also available in: Unified diff