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