List of usage examples for com.google.gwt.user.client Event getDataTransfer
public final native DataTransfer getDataTransfer() ;
From source file:ch.unifr.pai.mindmap.client.mindmap.BackgroundImgRepo.java
License:Apache License
/** * @param bgImg/*from ww w. j a v a2s . c om*/ * - the image object that shall be adapted accordingly to the chosen data-url */ public BackgroundImgRepo(Image bgImg) { super(); add(fp); add(previewImage); getElement().getStyle().setOverflow(Overflow.VISIBLE); this.bgImg = bgImg; this.setHeight("100%"); this.setWidth("100%"); fp.getElement().getStyle().setBackgroundColor("grey"); fp.setWidth("100%"); fp.setHeight("100%"); fp.setWidget(hp); hp.setWidth("100%"); hp.setHeight("100%"); fp.setWidget(hp); previewImage.getElement().getStyle().setPosition(Position.ABSOLUTE); previewImage.getElement().getStyle().setTop(-120, Unit.PX); previewImage.getElement().getStyle().setHeight(110, Unit.PX); previewImage.getElement().getStyle().setBorderWidth(2, Unit.PX); previewImage.getElement().getStyle().setBorderColor("black"); previewImage.getElement().getStyle().setBorderStyle(BorderStyle.SOLID); previewImage.getElement().getStyle().setDisplay(Display.NONE); // Add a button for cleaning the browser as well PushButton emptyBg = new PushButton(new Image(GWT.getModuleBaseURL() + "images/emptyscreen.png")) { @Override public void onBrowserEvent(Event event) { if (MultiCursorController.isDefaultCursor(event)) { super.onBrowserEvent(event); } } }; emptyBg.setTitle("Remove background-image"); emptyBg.getElement().getStyle().setDisplay(Display.INLINE_BLOCK); emptyBg.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (MultiCursorController.isDefaultCursor(event.getNativeEvent())) { BackgroundImgRepo.this.bgImg.setVisible(false); } } }); hp.add(emptyBg); fp.addDragOverHandler(new DragOverHandler() { @Override public void onDragOver(DragOverEvent event) { fp.getElement().getStyle().setBackgroundColor("darkgrey"); } }); fp.addDragLeaveHandler(new DragLeaveHandler() { @Override public void onDragLeave(DragLeaveEvent event) { fp.getElement().getStyle().setBackgroundColor("grey"); } }); fp.addDropHandler(new DropHandler() { /** * Prevents the default behavior of the browser (otherwise, the browser would open the image in the current tab), reads the dragged files and adds * them as {@link PushButton} to the panel. * * @see com.google.gwt.event.dom.client.DropHandler#onDrop(com.google.gwt.event.dom.client.DropEvent) */ /* * (non-Javadoc) * @see com.google.gwt.event.dom.client.DropHandler#onDrop(com.google.gwt.event.dom.client.DropEvent) */ @Override public void onDrop(DropEvent event) { // event.stopPropagation(); event.preventDefault(); fp.getElement().getStyle().setBackgroundColor("grey"); JsArray<JavaScriptObject> files = getDataTransferFiles(event.getDataTransfer()); for (int i = 0; i < files.length(); i++) { final Image img = new Image(); PushButton button = new PushButton(img) { @Override public void onBrowserEvent(Event event) { if (MultiCursorController.isDefaultCursor(event)) { super.onBrowserEvent(event); } } }; button.setTitle("Set this image as background"); button.addClickHandler(new ClickHandler() { /** * Set the image of the button as the current background image * * @see com.google.gwt.event.dom.client.ClickHandler#onClick(com.google.gwt.event.dom.client.ClickEvent) */ @Override public void onClick(ClickEvent event) { if (MultiCursorController.isDefaultCursor(event.getNativeEvent())) { BackgroundImgRepo.this.bgImg.setVisible(true); BackgroundImgRepo.this.bgImg.getElement().setAttribute("src", img.getElement().getAttribute("src")); } } }); button.addMouseOverHandler(new MouseOverHandler() { /** * Show the preview image at the appropriate position and replace the data-url * * @see com.google.gwt.event.dom.client.MouseOverHandler#onMouseOver(com.google.gwt.event.dom.client.MouseOverEvent) */ @Override public void onMouseOver(MouseOverEvent event) { if (MultiCursorController.isDefaultCursor(event.getNativeEvent())) { BackgroundImgRepo.this.previewImage.getElement().getStyle() .setDisplay(Display.BLOCK); BackgroundImgRepo.this.previewImage.getElement().setAttribute("src", img.getElement().getAttribute("src")); Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override public void execute() { previewImage.getElement().getStyle().setLeft(img.getAbsoluteLeft() - BackgroundImgRepo.this.getAbsoluteLeft() - previewImage.getOffsetWidth() / 2 + img.getOffsetWidth() / 2, Unit.PX); } }); } } }); button.addMouseOutHandler(new MouseOutHandler() { /** * Hide the preview image * * @see com.google.gwt.event.dom.client.MouseOutHandler#onMouseOut(com.google.gwt.event.dom.client.MouseOutEvent) */ @Override public void onMouseOut(MouseOutEvent event) { if (MultiCursorController.isDefaultCursor(event.getNativeEvent())) { BackgroundImgRepo.this.previewImage.getElement().getStyle() .setDisplay(Display.NONE); } } }); // img.getElement().getStyle().setMargin(5, Unit.PX); // img.getElement().getStyle().setDisplay(Display.INLINE_BLOCK); img.setHeight("35px"); button.getElement().getStyle().setDisplay(Display.INLINE_BLOCK); hp.add(button); addBackgroundImage(img.getElement(), files.get(i)); } } }); }
From source file:org.primordion.xholon.service.svg.SvgViewBrowser.java
License:Open Source License
/** * This works with Google Chrome./*from w w w .ja v a 2 s . c o m*/ */ public void handleDropEvent(Event de) { // Event is a wrapper for (subclass of) NativeEvent consoleLog("DropEvent SvgViewBrowser"); consoleLog(de); // a MouseEvent, type: "drop" consoleLog(de.getDataTransfer()); String data = de.getDataTransfer().getData("text"); consoleLog(data); consoleLog(de.getEventTarget()); Element ele = Element.as(de.getEventTarget()); consoleLog(ele); de.stopPropagation(); de.preventDefault(); if (data == null) { return; } // handleDrop; paste data into node String svgNodeName = ele.getNodeName(); String svgElementId = ele.getId(); consoleLog(svgElementId); if (svgElementId == null) { return; } if (!svgElementId.startsWith(findIdScheme(svgNodeName))) { // the svgElementId is an XPath expression; use it to find the IXholon IXholon node = findXholonNode(svgElementId); if (node != null) { consoleLog(node); // assume this is XML content sendXholonHelperService(ISignal.ACTION_PASTE_LASTCHILD_FROMDROP, data, node); // do not refresh the SVG content } } }