Revision 41088
Added by Ioannis Diplas over 8 years ago
DropdownListWidget.java | ||
---|---|---|
1 | 1 |
package eu.dnetlib.client.widgets; |
2 | 2 |
|
3 | 3 |
import com.github.gwtbootstrap.client.ui.ListBox; |
4 |
import com.google.gwt.dom.client.Element; |
|
4 | 5 |
import com.google.gwt.dom.client.Style.BorderStyle; |
5 | 6 |
import com.google.gwt.dom.client.Style.Overflow; |
6 | 7 |
import com.google.gwt.dom.client.Style.Position; |
... | ... | |
60 | 61 |
|
61 | 62 |
@Override |
62 | 63 |
public void onMouseDown(MouseDownEvent event) { |
64 |
focusPanel.setVisible(true); |
|
63 | 65 |
event.preventDefault(); |
64 | 66 |
treePanel.setVisible(!treePanel.isVisible()); |
65 | 67 |
inDiv = !inDiv; |
... | ... | |
67 | 69 |
}); |
68 | 70 |
|
69 | 71 |
//masterListBox.getElement().getStyle().setMarginBottom(0.0, Unit.PX); |
70 |
|
|
72 |
|
|
71 | 73 |
optionsPanel.add(masterListBox); |
72 | 74 |
optionsPanel.add(focusPanel); |
73 | 75 |
|
... | ... | |
89 | 91 |
masterListBox = new ListBox(); |
90 | 92 |
optionsPanel = new FlowPanel(); |
91 | 93 |
treePanel = new FlowPanel(); |
94 |
treePanel.addStyleName("data-panel"); |
|
92 | 95 |
focusPanel = new FocusPanel(); |
93 | 96 |
|
97 |
|
|
94 | 98 |
treePanel.setVisible(false); |
95 | 99 |
masterListBox.addMouseDownHandler(new MouseDownHandler() {//otan patithei to dropdown |
96 | 100 |
|
97 | 101 |
@Override |
98 | 102 |
public void onMouseDown(MouseDownEvent event) { |
103 |
closeExisting(); |
|
104 |
|
|
105 |
focusPanel.setVisible(true); |
|
99 | 106 |
event.preventDefault(); |
100 | 107 |
treePanel.setVisible(!treePanel.isVisible()); |
101 | 108 |
inDiv = !inDiv; |
... | ... | |
117 | 124 |
|
118 | 125 |
} |
119 | 126 |
|
127 |
public native void closeExisting()/*-{ |
|
128 |
$wnd.$('.data-panel').click(function(){ |
|
129 |
$wnd.$('.data-panel').hide(); |
|
130 |
}); |
|
131 |
}-*/; |
|
132 |
|
|
133 |
|
|
134 |
|
|
120 | 135 |
public ListBox getListBox(){ |
121 | 136 |
return masterListBox; |
122 | 137 |
} |
... | ... | |
145 | 160 |
} |
146 | 161 |
|
147 | 162 |
private void styleTreePanel(){ |
148 |
|
|
163 |
treePanel.addStyleName("data-panel"); |
|
149 | 164 |
treePanel.getElement().getStyle().setProperty("height", "auto"); |
150 | 165 |
treePanel.getElement().getStyle().setProperty("max-height", "270px"); |
151 | 166 |
|
... | ... | |
219 | 234 |
|
220 | 235 |
@Override |
221 | 236 |
public void onMouseWheel(MouseWheelEvent event) { |
222 |
|
|
237 |
|
|
223 | 238 |
focusPanel.getOffsetHeight(); |
224 |
if(inDiv){//einai mesa sto div, min kaneis tpt |
|
225 |
}else{//den einai mesa sto div, kleise to div |
|
226 |
treePanel.setVisible(false); |
|
227 |
} |
|
239 |
if(inDiv){//einai mesa sto div, min kaneis tpt |
|
240 |
|
|
241 |
}else{//den einai mesa sto div, kleise to div |
|
242 |
|
|
243 |
treePanel.setVisible(false); |
|
244 |
} |
|
228 | 245 |
} |
229 | 246 |
}, MouseWheelEvent.getType()); |
230 | 247 |
|
... | ... | |
232 | 249 |
|
233 | 250 |
@Override |
234 | 251 |
public void onClick(ClickEvent event) { |
235 |
if(inDiv){//einai mesa sto div, min kaneis tpt |
|
236 |
|
|
237 |
}else{//den einai mesa sto div, kleise to div |
|
238 |
treePanel.setVisible(false); |
|
239 |
} |
|
240 |
|
|
252 |
|
|
253 |
if(Element.as(event.getNativeEvent().getEventTarget()) != masterListBox.getElement()){ |
|
254 |
treePanel.setVisible(false); |
|
255 |
inDiv = false; |
|
256 |
}else{ |
|
257 |
if(inDiv){//einai mesa sto div, min kaneis tpt |
|
258 |
|
|
259 |
}else{//den einai mesa sto div, kleise to div |
|
260 |
treePanel.setVisible(false); |
|
261 |
} |
|
262 |
} |
|
241 | 263 |
} |
242 | 264 |
}, ClickEvent.getType()); |
243 | 265 |
} |
Also available in: Unified diff