List of usage examples for com.google.gwt.dom.client Element DRAGGABLE_TRUE
String DRAGGABLE_TRUE
To view the source code for com.google.gwt.dom.client Element DRAGGABLE_TRUE.
Click Source Link
From source file:co.fxl.gui.gwt.GWTElement.java
License:Open Source License
@SuppressWarnings("unchecked") public R draggable(boolean draggable) { container.widget.getElement().setDraggable(draggable ? Element.DRAGGABLE_TRUE : Element.DRAGGABLE_FALSE); return (R) this; }
From source file:com.gwtskeleton.client.application.widgets.booksclassifier.BooksClassifierView.java
License:Apache License
@Override public void addBooks(List<Book> books) { for (Book book : books) { ListGroupItem item = new ListGroupItem(); item.setText(book.getName());/* w ww .j a v a 2 s . c om*/ item.getElement().setDraggable(Element.DRAGGABLE_TRUE); item.addDomHandler(dragStartHandler, DragStartEvent.getType()); list1.add(item); } }
From source file:com.ponysdk.core.terminal.ui.PTWidget.java
License:Apache License
private void addDomHandler(final ReaderBuffer buffer, final DomHandlerType domHandlerType) { if (DomHandlerType.CLICK == domHandlerType) { uiObject.addDomHandler(event -> triggerMouseEvent(domHandlerType, event), ClickEvent.getType()); } else if (DomHandlerType.DOUBLE_CLICK == domHandlerType) { uiObject.addDomHandler(event -> triggerMouseEvent(domHandlerType, event), DoubleClickEvent.getType()); } else if (DomHandlerType.MOUSE_OVER == domHandlerType) { uiObject.addDomHandler(event -> triggerMouseEvent(domHandlerType, event), MouseOverEvent.getType()); } else if (DomHandlerType.MOUSE_OUT == domHandlerType) { uiObject.addDomHandler(event -> triggerMouseEvent(domHandlerType, event), MouseOutEvent.getType()); } else if (DomHandlerType.MOUSE_DOWN == domHandlerType) { uiObject.addDomHandler(event -> triggerMouseEvent(domHandlerType, event), MouseDownEvent.getType()); } else if (DomHandlerType.MOUSE_UP == domHandlerType) { uiObject.addDomHandler(event -> triggerMouseEvent(domHandlerType, event), MouseUpEvent.getType()); } else if (DomHandlerType.MOUSE_WHELL == domHandlerType) { uiObject.addDomHandler(event -> triggerMouseWhellEvent(domHandlerType, event), MouseWheelEvent.getType()); } else if (DomHandlerType.BLUR == domHandlerType) { uiObject.addDomHandler(event -> triggerDomEvent(domHandlerType, event), BlurEvent.getType()); } else if (DomHandlerType.FOCUS == domHandlerType) { uiObject.addDomHandler(event -> triggerDomEvent(domHandlerType, event), FocusEvent.getType()); } else if (DomHandlerType.KEY_PRESS == domHandlerType) { final BinaryModel binaryModel = buffer.readBinaryModel(); final JSONArray keyFilter; if (ServerToClientModel.KEY_FILTER == binaryModel.getModel()) { keyFilter = binaryModel.getJsonObject().get(ClientToServerModel.KEY_FILTER.toStringValue()) .isArray();/* w w w .j a v a 2 s . c om*/ } else { buffer.rewind(binaryModel); keyFilter = null; } uiObject.addDomHandler(event -> { final PTInstruction eventInstruction = buildEventInstruction(domHandlerType); eventInstruction.put(ClientToServerModel.VALUE_KEY, event.getNativeEvent().getKeyCode()); if (keyFilter != null) { for (int i = 0; i < keyFilter.size(); i++) { final JSONNumber keyCode = keyFilter.get(i).isNumber(); if (keyCode.doubleValue() == event.getNativeEvent().getKeyCode()) { uiBuilder.sendDataToServer(uiObject, eventInstruction); break; } } } else { uiBuilder.sendDataToServer(uiObject, eventInstruction); } preventOrStopEvent(event); }, KeyPressEvent.getType()); } else if (DomHandlerType.KEY_DOWN == domHandlerType) { final BinaryModel binaryModel = buffer.readBinaryModel(); final JSONArray keyFilter; if (ServerToClientModel.KEY_FILTER == binaryModel.getModel()) { keyFilter = binaryModel.getJsonObject().get(ClientToServerModel.KEY_FILTER.toStringValue()) .isArray(); } else { buffer.rewind(binaryModel); keyFilter = null; } uiObject.addDomHandler(event -> { final PTInstruction eventInstruction = buildEventInstruction(domHandlerType); eventInstruction.put(ClientToServerModel.VALUE_KEY, event.getNativeKeyCode()); if (keyFilter != null) { for (int i = 0; i < keyFilter.size(); i++) { final JSONNumber keyCode = keyFilter.get(i).isNumber(); if (keyCode.doubleValue() == event.getNativeKeyCode()) { uiBuilder.sendDataToServer(uiObject, eventInstruction); break; } } } else { uiBuilder.sendDataToServer(uiObject, eventInstruction); } preventOrStopEvent(event); }, KeyDownEvent.getType()); } else if (DomHandlerType.KEY_UP == domHandlerType) { final BinaryModel keyUpModel = buffer.readBinaryModel(); final JSONArray keyUpFilter; if (ServerToClientModel.KEY_FILTER == keyUpModel.getModel()) { keyUpFilter = keyUpModel.getJsonObject().get(ClientToServerModel.KEY_FILTER.toStringValue()) .isArray(); } else { buffer.rewind(keyUpModel); keyUpFilter = null; } if (uiObject instanceof TextBoxBase) { final TextBoxBase textBox = (TextBoxBase) uiObject; textBox.addKeyUpHandler(event -> { final PTInstruction changeHandlerInstruction = new PTInstruction(getObjectID()); changeHandlerInstruction.put(ClientToServerModel.HANDLER_STRING_VALUE_CHANGE, textBox.getText()); final PTInstruction eventInstruction = buildEventInstruction(domHandlerType); eventInstruction.put(ClientToServerModel.VALUE_KEY, event.getNativeKeyCode()); if (keyUpFilter != null) { for (int i = 0; i < keyUpFilter.size(); i++) { final JSONNumber keyCode = keyUpFilter.get(i).isNumber(); if (keyCode.doubleValue() == event.getNativeKeyCode()) { uiBuilder.sendDataToServer(changeHandlerInstruction); uiBuilder.sendDataToServer(eventInstruction); break; } } } else { uiBuilder.sendDataToServer(changeHandlerInstruction); uiBuilder.sendDataToServer(eventInstruction); } preventOrStopEvent(event); }); } else { uiObject.addDomHandler(event -> { final PTInstruction eventInstruction = buildEventInstruction(domHandlerType); eventInstruction.put(ClientToServerModel.VALUE_KEY, event.getNativeKeyCode()); if (keyUpFilter != null) { for (int i = 0; i < keyUpFilter.size(); i++) { final JSONNumber keyCode = keyUpFilter.get(i).isNumber(); if (keyCode.doubleValue() == event.getNativeKeyCode()) { uiBuilder.sendDataToServer(uiObject, eventInstruction); break; } } } else { uiBuilder.sendDataToServer(uiObject, eventInstruction); } preventOrStopEvent(event); }, KeyUpEvent.getType()); } } else if (DomHandlerType.DRAG_START == domHandlerType) { uiObject.getElement().setDraggable(Element.DRAGGABLE_TRUE); uiObject.addBitlessDomHandler(event -> { event.setData("text", String.valueOf(getObjectID())); event.getDataTransfer().setDragImage(uiObject.getElement(), 10, 10); triggerDomEvent(domHandlerType, event); }, DragStartEvent.getType()); } else if (DomHandlerType.DRAG_END == domHandlerType) { uiObject.addBitlessDomHandler(event -> triggerDomEvent(domHandlerType, event), DragEndEvent.getType()); } else if (DomHandlerType.DRAG_ENTER == domHandlerType) { uiObject.addBitlessDomHandler(event -> triggerDomEvent(domHandlerType, event), DragEnterEvent.getType()); } else if (DomHandlerType.DRAG_LEAVE == domHandlerType) { uiObject.addBitlessDomHandler(event -> triggerDomEvent(domHandlerType, event), DragLeaveEvent.getType()); } else if (DomHandlerType.DROP == domHandlerType) { uiObject.addBitlessDomHandler(event -> { // required by GWT api // triggerDomEvent(addHandler.getObjectID(), domHandlerType); }, DragOverEvent.getType()); uiObject.addBitlessDomHandler(event -> { event.preventDefault(); final String dragWidgetID = event.getData("text"); final PTInstruction eventInstruction = buildEventInstruction(domHandlerType); if (dragWidgetID != null) eventInstruction.put(ClientToServerModel.DRAG_SRC, Long.parseLong(dragWidgetID)); uiBuilder.sendDataToServer(uiObject, eventInstruction); }, DropEvent.getType()); } else if (DomHandlerType.CONTEXT_MENU == domHandlerType) { uiObject.addDomHandler(event -> triggerDomEvent(domHandlerType, event), ContextMenuEvent.getType()); } else { log.info("Handler not supported #" + domHandlerType); } }
From source file:com.vaadin.client.extensions.DragSourceExtensionConnector.java
License:Apache License
@Override protected void extend(ServerConnector target) { dragSourceWidget = ((ComponentConnector) target).getWidget(); Element dragSourceElement = getDraggableElement(); dragSourceElement.setDraggable(Element.DRAGGABLE_TRUE); dragSourceElement.addClassName(CLASS_DRAGGABLE); EventTarget dragSource = dragSourceElement.cast(); // dragstart/*from w w w.j ava 2 s. co m*/ dragSource.addEventListener(Event.DRAGSTART, dragStartListener); // dragend dragSource.addEventListener(Event.DRAGEND, dragEndListener); }
From source file:geogebra.web.gui.view.algebra.RadioButtonTreeItem.java
License:Open Source License
/** * Creates a new RadioButtonTreeItem for displaying/editing an existing * GeoElement/*from w ww .jav a2 s. c o m*/ * * @param ge * the existing GeoElement to display/edit * @param showUrl * the marble to be shown when the GeoElement is visible * @param hiddenUrl * the marble to be shown when the GeoElement is invisible */ public RadioButtonTreeItem(GeoElement ge, SafeUri showUrl, SafeUri hiddenUrl) { super(); getElement().setDraggable(Element.DRAGGABLE_TRUE); geo = ge; kernel = geo.getKernel(); app = (AppW) kernel.getApplication(); av = app.getAlgebraView(); selection = app.getSelectionManager(); addStyleName("elem"); addStyleName("panelRow"); // setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); // setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); radio = new Marble(showUrl, hiddenUrl, this); radio.setStyleName("marble"); radio.setEnabled(ge.isEuclidianShowable()); radio.setChecked(ge.isEuclidianVisible()); marblePanel = new FlowPanel(); marblePanel.add(radio); add(marblePanel); // Sliders if (showSliderOrTextBox && app.isPrerelease() && geo instanceof GeoNumeric && ((GeoNumeric) geo).isShowingExtendedAV()) { if (!geo.isEuclidianVisible()) { // number inserted via input bar // -> initialize min/max etc. geo.setEuclidianVisible(true); geo.setEuclidianVisible(false); } slider = new SliderW(((GeoNumeric) geo).getIntervalMin(), (int) ((GeoNumeric) geo).getIntervalMax()); slider.setValue(((GeoNumeric) geo).getValue()); slider.setMinorTickSpacing(geo.getAnimationStep()); slider.addValueChangeHandler(new ValueChangeHandler<Double>() { public void onValueChange(ValueChangeEvent<Double> event) { ((GeoNumeric) geo).setValue(event.getValue()); geo.updateCascade(); // updates other views (e.g. Euclidian) kernel.notifyRepaint(); } }); sliderPanel = new FlowPanel(); add(sliderPanel); if (geo.isAnimatable()) { ImageResource imageresource = geo.isAnimating() ? AppResources.INSTANCE.nav_pause() : AppResources.INSTANCE.nav_play(); playButton = new Image(imageresource); playButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { boolean newValue = !(geo.isAnimating() && app.getKernel().getAnimatonManager().isRunning()); geo.setAnimating(newValue); playButton.setResource( newValue ? AppResources.INSTANCE.nav_pause() : AppResources.INSTANCE.nav_play()); geo.updateRepaint(); if (geo.isAnimating()) { geo.getKernel().getAnimatonManager().startAnimation(); } } }); marblePanel.add(playButton); } } SpanElement se = DOM.createSpan().cast(); updateNewStatic(se); updateColor(se); ihtml = new InlineHTML(); ihtml.addDoubleClickHandler(this); ihtml.addClickHandler(this); ihtml.addMouseMoveHandler(this); ihtml.addMouseDownHandler(this); ihtml.addMouseOverHandler(this); ihtml.addMouseOutHandler(this); ihtml.addTouchStartHandler(this); ihtml.addTouchMoveHandler(this); ihtml.addTouchEndHandler(this); addSpecial(ihtml); ihtml.getElement().appendChild(se); SpanElement se2 = DOM.createSpan().cast(); se2.appendChild(Document.get().createTextNode("\u00A0\u00A0\u00A0\u00A0")); ihtml.getElement().appendChild(se2); // String text = ""; if (showSliderOrTextBox && app.isPrerelease() && geo instanceof GeoBoolean) { // CheckBoxes checkBox = new CheckBox(); checkBox.setValue(((GeoBoolean) geo).getBoolean()); add(checkBox); checkBox.addValueChangeHandler(new ValueChangeHandler<Boolean>() { public void onValueChange(ValueChangeEvent<Boolean> event) { ((GeoBoolean) geo).setValue(event.getValue()); geo.updateCascade(); // updates other views (e.g. Euclidian) kernel.notifyRepaint(); } }); // use only the name of the GeoBoolean getBuilder(se).append(geo.getLabel(StringTemplate.defaultTemplate)); } else if (geo.isIndependent()) { geo.getAlgebraDescriptionTextOrHTMLDefault(getBuilder(se)); } else { switch (kernel.getAlgebraStyle()) { case Kernel.ALGEBRA_STYLE_VALUE: geo.getAlgebraDescriptionTextOrHTMLDefault(getBuilder(se)); break; case Kernel.ALGEBRA_STYLE_DEFINITION: geo.addLabelTextOrHTML(geo.getDefinitionDescription(StringTemplate.defaultTemplate), getBuilder(se)); break; case Kernel.ALGEBRA_STYLE_COMMAND: geo.addLabelTextOrHTML(geo.getCommandDescription(StringTemplate.defaultTemplate), getBuilder(se)); break; } } // if enabled, render with LaTeX if (av.isRenderLaTeX() && kernel.getAlgebraStyle() == Kernel.ALGEBRA_STYLE_VALUE) { String latexStr = geo.getLaTeXAlgebraDescription(true, StringTemplate.latexTemplateMQ); seNoLatex = se; if ((latexStr != null) && geo.isLaTeXDrawableGeo() && (geo.isGeoList() ? !((GeoList) geo).isMatrix() : true)) { this.needsUpdate = true; av.repaintView(); } } else { seNoLatex = se; } // FIXME: geo.getLongDescription() doesn't work // geo.getKernel().getApplication().setTooltipFlag(); // se.setTitle(geo.getLongDescription()); // geo.getKernel().getApplication().clearTooltipFlag(); longTouchManager = LongTouchManager.getInstance(); setDraggable(); }
From source file:io.apiman.manager.ui.client.local.pages.common.PolicyList.java
License:Apache License
/** * Creates a single policy row.//from w w w. j av a 2 s . c o m * @param bean */ private Widget createPolicyRow(final PolicyBean bean) { PolicyRow container = new PolicyRow(bean); final FlowPanel row = new FlowPanel(); row.getElement().setClassName("row"); //$NON-NLS-1$ // Grabber Label grabber = new Label(); grabber.getElement().setDraggable(Element.DRAGGABLE_TRUE); grabber.getElement().setClassName("grabber"); //$NON-NLS-1$ grabber.getElement().getStyle().setHeight(48, Unit.PX); row.add(grabber); createIconColumn(bean, row); createSummaryColumn(bean, row); createActionColumn(bean, row); container.add(new HTMLPanel("<hr/>")); //$NON-NLS-1$ container.add(row); PolicyDragHandler handler = new PolicyDragHandler(grabber, container); grabber.addMouseDownHandler(handler); grabber.addMouseUpHandler(handler); grabber.addMouseMoveHandler(handler); return container; }
From source file:net.husoftware.client.spike.DragDropLabel.java
License:Open Source License
private void initDrag() { getElement().setDraggable(Element.DRAGGABLE_TRUE); addDragStartHandler(new DragStartHandler() { @Override// w w w. ja v a 2s. c o m public void onDragStart(DragStartEvent event) { // Remember what's being dragged dragging = DragDropLabel.this; // Must set for FireFox event.setData("text", "hi there"); // Copy the label image for the drag icon // 10,10 indicates the pointer offset, not the image size. event.getDataTransfer().setDragImage(getElement(), 10, 10); } }); }
From source file:org.geogebra.web.web.gui.view.algebra.RadioButtonTreeItem.java
License:Open Source License
/** * Creates a new RadioButtonTreeItem for displaying/editing an existing * GeoElement/*from www . jav a 2s . com*/ * * @param ge * the existing GeoElement to display/edit * @param showUrl * the marble to be shown when the GeoElement is visible * @param hiddenUrl * the marble to be shown when the GeoElement is invisible */ public RadioButtonTreeItem(GeoElement ge, SafeUri showUrl, SafeUri hiddenUrl) { super(); getElement().setDraggable(Element.DRAGGABLE_TRUE); geo = ge; kernel = geo.getKernel(); app = (AppW) kernel.getApplication(); av = app.getAlgebraView(); selection = app.getSelectionManager(); addStyleName("elem"); addStyleName("panelRow"); // setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); // setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); radio = new Marble(showUrl, hiddenUrl, this); radio.setStyleName("marble"); radio.setEnabled(ge.isEuclidianShowable()); radio.setChecked(ge.isEuclidianVisible()); marblePanel = new FlowPanel(); marblePanel.add(radio); add(marblePanel); // Sliders if (showSliderOrTextBox && app.isPrerelease() && geo instanceof GeoNumeric && ((GeoNumeric) geo).isShowingExtendedAV()) { if (!geo.isEuclidianVisible()) { // number inserted via input bar // -> initialize min/max etc. geo.setEuclidianVisible(true); geo.setEuclidianVisible(false); } slider = new SliderW(((GeoNumeric) geo).getIntervalMin(), (int) ((GeoNumeric) geo).getIntervalMax()); slider.setValue(((GeoNumeric) geo).getValue()); slider.setMinorTickSpacing(geo.getAnimationStep()); slider.addValueChangeHandler(new ValueChangeHandler<Double>() { public void onValueChange(ValueChangeEvent<Double> event) { ((GeoNumeric) geo).setValue(event.getValue()); geo.updateCascade(); // updates other views (e.g. Euclidian) kernel.notifyRepaint(); } }); sliderPanel = new VerticalPanel(); add(sliderPanel); if (geo.isAnimatable()) { ImageResource imageresource = geo.isAnimating() ? AppResources.INSTANCE.nav_pause() : AppResources.INSTANCE.nav_play(); playButton = new Image(imageresource); playButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { boolean newValue = !(geo.isAnimating() && app.getKernel().getAnimatonManager().isRunning()); geo.setAnimating(newValue); playButton.setResource( newValue ? AppResources.INSTANCE.nav_pause() : AppResources.INSTANCE.nav_play()); geo.updateRepaint(); if (geo.isAnimating()) { geo.getKernel().getAnimatonManager().startAnimation(); } } }); marblePanel.add(playButton); } } SpanElement se = DOM.createSpan().cast(); EquationEditor.updateNewStatic(se); updateColor(se); ihtml = new InlineHTML(); ihtml.addDoubleClickHandler(this); ihtml.addClickHandler(this); ihtml.addMouseMoveHandler(this); ihtml.addMouseDownHandler(this); ihtml.addMouseOverHandler(this); ihtml.addMouseOutHandler(this); ihtml.addTouchStartHandler(this); ihtml.addTouchMoveHandler(this); ihtml.addTouchEndHandler(this); addSpecial(ihtml); ihtml.getElement().appendChild(se); SpanElement se2 = DOM.createSpan().cast(); se2.appendChild(Document.get().createTextNode("\u00A0\u00A0\u00A0\u00A0")); ihtml.getElement().appendChild(se2); // String text = ""; if (showSliderOrTextBox && app.isPrerelease() && geo instanceof GeoBoolean) { // CheckBoxes checkBox = new CheckBox(); checkBox.setValue(((GeoBoolean) geo).getBoolean()); add(checkBox); checkBox.addValueChangeHandler(new ValueChangeHandler<Boolean>() { public void onValueChange(ValueChangeEvent<Boolean> event) { ((GeoBoolean) geo).setValue(event.getValue()); geo.updateCascade(); // updates other views (e.g. Euclidian) kernel.notifyRepaint(); } }); // use only the name of the GeoBoolean getBuilder(se).append(geo.getLabel(StringTemplate.defaultTemplate)); } else if (geo.isIndependent()) { geo.getAlgebraDescriptionTextOrHTMLDefault(getBuilder(se)); } else { switch (kernel.getAlgebraStyle()) { case Kernel.ALGEBRA_STYLE_VALUE: geo.getAlgebraDescriptionTextOrHTMLDefault(getBuilder(se)); break; case Kernel.ALGEBRA_STYLE_DEFINITION: geo.addLabelTextOrHTML(geo.getDefinitionDescription(StringTemplate.defaultTemplate), getBuilder(se)); break; case Kernel.ALGEBRA_STYLE_COMMAND: geo.addLabelTextOrHTML(geo.getCommandDescription(StringTemplate.defaultTemplate), getBuilder(se)); break; } } // if enabled, render with LaTeX if (av.isRenderLaTeX() && kernel.getAlgebraStyle() == Kernel.ALGEBRA_STYLE_VALUE) { String latexStr = geo.getLaTeXAlgebraDescription(true, StringTemplate.latexTemplateMQ); seNoLatex = se; if ((latexStr != null) && geo.isLaTeXDrawableGeo()) { this.needsUpdate = true; av.repaintView(); } } else { seNoLatex = se; } // FIXME: geo.getLongDescription() doesn't work // geo.getKernel().getApplication().setTooltipFlag(); // se.setTitle(geo.getLongDescription()); // geo.getKernel().getApplication().clearTooltipFlag(); longTouchManager = LongTouchManager.getInstance(); setDraggable(); }
From source file:org.iplantc.de.pipelineBuilder.client.builder.InputBlock.java
License:Apache License
public InputBlock(Input input, PipeComponent app) { this.input = input; parent = app;/* w ww . j a v a2s.c o m*/ FlowPanel pane = new FlowPanel(); input.setParent(parent); initWidget(pane); FlowPanel bottom = new FlowPanel(); setStyleName("input-block"); top.setStyleName("top"); bottom.setStyleName("bottom"); pane.add(top); pane.add(bottom); if (!input.isRequired()) { name.getElement().getStyle().setOpacity(.6); } name.setStyleName("name"); bottom.add(name); name.setHTML(input.getName()); toolTip = new PopupPanel(); toolTip.add(new HTML("Type: " + input.getType() + "<br>Description:" + input.getDescription())); toolTip.setStyleName("tooltip-small"); addDomHandler(this, MouseOutEvent.getType()); addDomHandler(this, MouseOverEvent.getType()); top.getElement().setDraggable(Element.DRAGGABLE_TRUE); DragCreator.addDrag(top.getElement(), input, this); }
From source file:org.iplantc.de.tags.client.views.TagItemImpl.java
License:Apache License
private void activateDnD() { this.tagPanel.addStyleName(resources.style().tagEditable()); // Change cursor on hover // DnD/*from w w w . j a v a2 s . c o m*/ this.getElement().setDraggable(Element.DRAGGABLE_TRUE); this.dndHandlers.add(this.addDomHandler(new DragStartHandler() { @Override public void onDragStart(DragStartEvent event) { event.setData("text", ""); draggedElement = TagItemImpl.this; // FIXME Fire focus cmd // uiHandlers.onFocus(); } }, DragStartEvent.getType())); this.dndHandlers.add(this.addDomHandler(new DragEnterHandler() { @Override public void onDragEnter(DragEnterEvent event) { if (draggedElement.equals(TagItemImpl.this)) return; // Calculate the mouse's percentage X position relative to the drag over element // 0 = left border; 100 = right border int percentagePositionX = (event.getNativeEvent().getClientX() - getAbsoluteLeft()) * 100 / getElement().getClientWidth(); if (percentagePositionX < 50) { tagPanel.addStyleName(resources.style().previewLeft()); tagPanel.removeStyleName(resources.style().previewRight()); } else { tagPanel.addStyleName(resources.style().previewRight()); tagPanel.removeStyleName(resources.style().previewLeft()); } } }, DragEnterEvent.getType())); this.dndHandlers.add(this.addDomHandler(new DragOverHandler() { @Override public void onDragOver(DragOverEvent event) { if (draggedElement.equals(TagItemImpl.this)) return; // Calculate the mouse's percentage X position relative to the drag over element // 0 = left border; 100 = right border int percentagePositionX = (event.getNativeEvent().getClientX() - getAbsoluteLeft()) * 100 / getElement().getClientWidth(); if (percentagePositionX < 50) { tagPanel.addStyleName(resources.style().previewLeft()); tagPanel.removeStyleName(resources.style().previewRight()); } else { tagPanel.addStyleName(resources.style().previewRight()); tagPanel.removeStyleName(resources.style().previewLeft()); } } }, DragOverEvent.getType())); this.dndHandlers.add(this.addDomHandler(new DragLeaveHandler() { @Override public void onDragLeave(DragLeaveEvent event) { if (draggedElement.equals(TagItemImpl.this)) return; tagPanel.removeStyleName(resources.style().previewLeft()); tagPanel.removeStyleName(resources.style().previewRight()); } }, DragLeaveEvent.getType())); this.dndHandlers.add(this.addDomHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { if (draggedElement.equals(TagItemImpl.this)) return; event.preventDefault(); /*uiHandlers.onRelocateTag(draggedElement, TagItemImpl.this, tagPanel.getStyleName().contains(resources.style() .previewLeft()) ? InsertionPoint.BEFORE : InsertionPoint.AFTER);*/ // FIXME Fire TagRelocated Command tagPanel.removeStyleName(resources.style().previewLeft()); tagPanel.removeStyleName(resources.style().previewRight()); } }, DropEvent.getType())); this.dndHandlers.add(this.addDomHandler(new DragEndHandler() { @Override public void onDragEnd(DragEndEvent event) { // FIXME Fire Blur command // uiHandlers.onBlur(); } }, DragEndEvent.getType())); }