List of usage examples for com.google.gwt.event.dom.client DragLeaveHandler DragLeaveHandler
DragLeaveHandler
From source file:com.haulmont.cuba.web.toolkit.ui.client.jqueryfileupload.JQueryFileUploadOverlay.java
License:Apache License
protected void subscribeGlobalDragDropHandlers() { RootPanel.get().addBitlessDomHandler(new DragOverHandler() { @Override/* w w w .j ava 2s . c o m*/ public void onDragOver(DragOverEvent event) { globalDocumentDragOver(event); if (dropZoneFileUploadMap.size() > 0) { event.preventDefault(); } } }, DragOverEvent.getType()); RootPanel.get().addBitlessDomHandler(new DragLeaveHandler() { @Override public void onDragLeave(DragLeaveEvent event) { globalDocumentDragLeave(event); } }, DragLeaveEvent.getType()); RootPanel.get().addBitlessDomHandler(new DragEndHandler() { @Override public void onDragEnd(DragEndEvent event) { globalDocumentDragEnd(event); } }, DragEndEvent.getType()); RootPanel.get().addBitlessDomHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { globalDocumentDrop(event); } }, DropEvent.getType()); // prevent misses leading to opening of file inside browser RootPanel.get().addBitlessDomHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { if (dropZoneFileUploadMap.size() > 0) { event.preventDefault(); } } }, DropEvent.getType()); // CAUTION add compatibility layer with Vaadin DragDropLayouts HTML5Support.setGlobalDragOverHandler(new DragOverHandler() { @Override public void onDragOver(DragOverEvent event) { globalDocumentDragOver(event); } }); HTML5Support.setGlobalDropHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { globalDocumentDrop(event); } }); }
From source file:com.haulmont.cuba.web.widgets.client.jqueryfileupload.JQueryFileUploadOverlay.java
License:Apache License
protected void subscribeGlobalDragDropHandlers() { RootPanel.get().addBitlessDomHandler(new DragOverHandler() { @Override/*from w ww . j a v a 2 s . com*/ public void onDragOver(DragOverEvent event) { globalDocumentDragOver(event); if (dropZoneFileUploadMap.size() > 0) { event.preventDefault(); } } }, DragOverEvent.getType()); RootPanel.get().addBitlessDomHandler(new DragLeaveHandler() { @Override public void onDragLeave(DragLeaveEvent event) { globalDocumentDragLeave(event); } }, DragLeaveEvent.getType()); RootPanel.get().addBitlessDomHandler(new DragEndHandler() { @Override public void onDragEnd(DragEndEvent event) { globalDocumentDragEnd(event); } }, DragEndEvent.getType()); RootPanel.get().addBitlessDomHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { globalDocumentDrop(event); } }, DropEvent.getType()); // prevent misses leading to opening of file inside browser RootPanel.get().addBitlessDomHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { if (dropZoneFileUploadMap.size() > 0) { event.preventDefault(); } } }, DropEvent.getType()); // CAUTION add compatibility layer with Vaadin DragDropLayouts /* vaadin8 implement HTML5Support.setGlobalDragOverHandler(new DragOverHandler() { @Override public void onDragOver(DragOverEvent event) { globalDocumentDragOver(event); } }); HTML5Support.setGlobalDropHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { globalDocumentDrop(event); } }); */ }
From source file:com.ponysdk.ui.terminal.ui.PTWidget.java
License:Apache License
private void addDomHandler(final PTInstruction addHandler, final Widget widget, final int domHandlerType, final UIService uiService) { final DomHandlerType h = DomHandlerType.values()[domHandlerType]; switch (h) {// www . ja v a 2 s . c om case CLICK: widget.addDomHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { triggerOnClick(addHandler, widget, domHandlerType, uiService, event); } }, ClickEvent.getType()); break; case MOUSE_OVER: widget.addDomHandler(new MouseOverHandler() { @Override public void onMouseOver(final MouseOverEvent event) { triggerDomEvent(addHandler, domHandlerType, uiService); } }, MouseOverEvent.getType()); break; case BLUR: widget.addDomHandler(new BlurHandler() { @Override public void onBlur(final BlurEvent event) { triggerDomEvent(addHandler, domHandlerType, uiService); } }, BlurEvent.getType()); break; case FOCUS: widget.addDomHandler(new FocusHandler() { @Override public void onFocus(final FocusEvent event) { triggerDomEvent(addHandler, domHandlerType, uiService); } }, FocusEvent.getType()); break; case MOUSE_OUT: widget.addDomHandler(new MouseOutHandler() { @Override public void onMouseOut(final MouseOutEvent event) { triggerDomEvent(addHandler, domHandlerType, uiService); } }, MouseOutEvent.getType()); break; case MOUSE_DOWN: widget.addDomHandler(new MouseDownHandler() { @Override public void onMouseDown(final MouseDownEvent event) { triggerDomEvent(addHandler, domHandlerType, uiService); } }, MouseDownEvent.getType()); break; case MOUSE_UP: widget.addDomHandler(new MouseUpHandler() { @Override public void onMouseUp(final MouseUpEvent event) { triggerDomEvent(addHandler, domHandlerType, uiService); } }, MouseUpEvent.getType()); break; case KEY_PRESS: widget.addDomHandler(new KeyPressHandler() { @Override public void onKeyPress(final KeyPressEvent event) { triggerOnKeyPress(addHandler, domHandlerType, uiService, event); } }, KeyPressEvent.getType()); break; case KEY_UP: if (widget instanceof TextBoxBase) { final TextBoxBase textBox = (TextBoxBase) widget; textBox.addKeyUpHandler(new KeyUpHandler() { @Override public void onKeyUp(final KeyUpEvent event) { final PTInstruction changeHandlerInstruction = new PTInstruction(); changeHandlerInstruction.setObjectID(addHandler.getObjectID()); changeHandlerInstruction.put(TYPE.KEY, TYPE.KEY_.EVENT); changeHandlerInstruction.put(HANDLER.KEY, HANDLER.KEY_.STRING_VALUE_CHANGE_HANDLER); changeHandlerInstruction.put(PROPERTY.VALUE, textBox.getText()); final PTInstruction eventInstruction = buildEventInstruction(addHandler, domHandlerType); eventInstruction.put(PROPERTY.VALUE, event.getNativeEvent().getKeyCode()); if (addHandler.containsKey(PROPERTY.KEY_FILTER)) { final JSONArray jsonArray = addHandler.get(PROPERTY.KEY_FILTER).isArray(); for (int i = 0; i < jsonArray.size(); i++) { final JSONNumber keyCode = jsonArray.get(i).isNumber(); if (keyCode.doubleValue() == event.getNativeEvent().getKeyCode()) { uiService.stackEvent(changeHandlerInstruction); uiService.stackEvent(eventInstruction); uiService.flushEvents(); break; } } } else { uiService.stackEvent(changeHandlerInstruction); uiService.stackEvent(eventInstruction); uiService.flushEvents(); } } }); } else { widget.addDomHandler(new KeyUpHandler() { @Override public void onKeyUp(final KeyUpEvent event) { final PTInstruction eventInstruction = buildEventInstruction(addHandler, domHandlerType); eventInstruction.put(PROPERTY.VALUE, event.getNativeEvent().getKeyCode()); if (eventInstruction.containsKey(PROPERTY.KEY_FILTER)) { final JSONArray jsonArray = addHandler.get(PROPERTY.KEY_FILTER).isArray(); for (int i = 0; i < jsonArray.size(); i++) { final JSONNumber keyCode = jsonArray.get(i).isNumber(); if (keyCode.doubleValue() == event.getNativeEvent().getKeyCode()) { uiService.triggerEvent(eventInstruction); break; } } } else { uiService.triggerEvent(eventInstruction); } } }, KeyUpEvent.getType()); } break; case DRAG_START: widget.getElement().setDraggable(Element.DRAGGABLE_TRUE); widget.addBitlessDomHandler(new DragStartHandler() { @Override public void onDragStart(final DragStartEvent event) { event.setData("text", Long.toString(addHandler.getObjectID())); event.getDataTransfer().setDragImage(uiObject.getElement(), 10, 10); triggerDomEvent(addHandler, domHandlerType, uiService); } }, DragStartEvent.getType()); break; case DRAG_END: widget.addBitlessDomHandler(new DragEndHandler() { @Override public void onDragEnd(final DragEndEvent event) { triggerDomEvent(addHandler, domHandlerType, uiService); } }, DragEndEvent.getType()); break; case DRAG_ENTER: widget.addBitlessDomHandler(new DragEnterHandler() { @Override public void onDragEnter(final DragEnterEvent event) { triggerDomEvent(addHandler, domHandlerType, uiService); } }, DragEnterEvent.getType()); break; case DRAG_LEAVE: widget.addBitlessDomHandler(new DragLeaveHandler() { @Override public void onDragLeave(final DragLeaveEvent event) { triggerDomEvent(addHandler, domHandlerType, uiService); } }, DragLeaveEvent.getType()); break; case DROP: widget.addBitlessDomHandler(new DragOverHandler() { @Override public void onDragOver(final DragOverEvent event) { // required by GWT api // triggerDomEvent(addHandler, domHandlerType, uiService); } }, DragOverEvent.getType()); widget.addBitlessDomHandler(new DropHandler() { @Override public void onDrop(final DropEvent event) { event.preventDefault(); final String dragWidgetID = event.getData("text"); final PTInstruction eventInstruction = buildEventInstruction(addHandler, domHandlerType); if (dragWidgetID != null) eventInstruction.put(PROPERTY.DRAG_SRC, Long.parseLong(dragWidgetID)); uiService.triggerEvent(eventInstruction); } }, DropEvent.getType()); break; default: log.info("Handler not supported #" + h); break; } }
From source file:eml.studio.client.ui.panel.Uploader.FileUploader.java
License:Open Source License
private void initFacet() { this.getUploader().setUploadURL(GWT.getModuleBaseURL() + "fileupload").setFileSizeLimit("20 GB") .setButtonAction(Uploader.ButtonAction.SELECT_FILES).setFileQueueLimit(2) .setFileQueuedHandler(new FileQueuedHandler() { @Override/* ww w.ja v a2 s . c om*/ public boolean onFileQueued(final FileQueuedEvent fileQueuedEvent) { // Create a Progress Bar for this file if (FileUploader.this.getFileQueuedId() != null) FileUploader.this.getUploader().cancelUpload(FileUploader.this.getFileQueuedId(), false);// delete the last FileUploader.this.getProgressBarPanel().clear(); FileUploader.this.getProgressBarAndButtonPanel().clear(); // choose file FileUploader.this.setIsFileQueued(true); final ProgressBar progressBar = new ProgressBar(0.0, 1.0, 0.0, FileUploader.this.getCancelProgressBarTextFormatter()); progressBar.setTitle(fileQueuedEvent.getFile().getName()); FileUploader.this.setFileQueuedName(fileQueuedEvent.getFile().getName()); FileUploader.this.setFileQueuedId(fileQueuedEvent.getFile().getId()); progressBar.addStyleName("bda-fileupload-progressbar"); progressBar.setTextVisible(true); FileUploader.this.getProgressBars().put(fileQueuedEvent.getFile().getId(), progressBar); // Add Cancel Button Image FileUploader.this.getCancelButton().setStyleName("cancelButton"); FileUploader.this.getCancelButton().addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { FileUploader.this.getUploader().cancelUpload(fileQueuedEvent.getFile().getId(), false); FileUploader.this.getProgressBars().get(fileQueuedEvent.getFile().getId()) .setProgress(-1.0d); FileUploader.this.getCancelButton().removeFromParent(); FileUploader.this.setIsFileQueued(false); } }); FileUploader.this.getCancelButtons().put(fileQueuedEvent.getFile().getId(), FileUploader.this.getCancelButton()); // Add the Bar and Button to the interface progressBarAndButtonPanel.setSpacing(5); Label tit = new Label(fileQueuedEvent.getFile().getName()); // tit.setWidth("100px"); progressBarAndButtonPanel.add(tit); progressBarAndButtonPanel.setCellVerticalAlignment(tit, HasVerticalAlignment.ALIGN_MIDDLE); progressBarAndButtonPanel.add(progressBar); progressBarAndButtonPanel.setCellVerticalAlignment(progressBar, HasVerticalAlignment.ALIGN_MIDDLE); progressBarAndButtonPanel.add(FileUploader.this.getCancelButton()); progressBarAndButtonPanel.setCellVerticalAlignment(FileUploader.this.getCancelButton(), HasVerticalAlignment.ALIGN_MIDDLE); progressBarPanel.add(FileUploader.this.getProgressBarAndButtonPanel()); progressBarPanel.setCellVerticalAlignment(progressBarAndButtonPanel, HasVerticalAlignment.ALIGN_MIDDLE); return true; } }).setUploadProgressHandler(new UploadProgressHandler() { @Override public boolean onUploadProgress(UploadProgressEvent uploadProgressEvent) { ProgressBar progressBar = FileUploader.this.getProgressBars() .get(uploadProgressEvent.getFile().getId()); progressBar.setProgress((double) uploadProgressEvent.getBytesComplete() / uploadProgressEvent.getBytesTotal()); return true; } }).setFileDialogStartHandler(new FileDialogStartHandler() { @Override public boolean onFileDialogStartEvent(FileDialogStartEvent fileDialogStartEvent) { if (FileUploader.this.getUploader().getStats().getUploadsInProgress() <= 0) { // Clear the uploads that have completed, if none are in process FileUploader.this.getProgressBarPanel().clear(); FileUploader.this.getProgressBars().clear(); FileUploader.this.getCancelButtons().clear(); } return true; } }).setFileDialogCompleteHandler(new FileDialogCompleteHandler() { @Override public boolean onFileDialogComplete(FileDialogCompleteEvent fileDialogCompleteEvent) { if (fileDialogCompleteEvent.getTotalFilesInQueue() > 0) { if (FileUploader.this.getUploader().getStats().getUploadsInProgress() <= 0) { // uploader.startUpload(); } } return true; } }).setFileQueueErrorHandler(new FileQueueErrorHandler() { @Override public boolean onFileQueueError(FileQueueErrorEvent fileQueueErrorEvent) { Window.alert("Upload of file " + fileQueueErrorEvent.getFile().getName() + " failed due to [" + fileQueueErrorEvent.getErrorCode().toString() + "]: " + fileQueueErrorEvent.getMessage()); return true; } }).setUploadErrorHandler(new UploadErrorHandler() { @Override public boolean onUploadError(UploadErrorEvent uploadErrorEvent) { FileUploader.this.getCancelButtons().get(uploadErrorEvent.getFile().getId()) .removeFromParent(); Window.alert("Upload of file " + uploadErrorEvent.getFile().getName() + " failed due to [" + uploadErrorEvent.getErrorCode().toString() + "]: " + uploadErrorEvent.getMessage()); return true; } }); FileUploader.this.getDropFilesLabel().addDragOverHandler(new DragOverHandler() { @Override public void onDragOver(DragOverEvent event) { if (!FileUploader.this.getUploader().getButtonDisabled()) { //uploader.getDropFilesLabel().addStyleName("dropFilesLabelHover"); } } }); FileUploader.this.getDropFilesLabel().addDragLeaveHandler(new DragLeaveHandler() { @Override public void onDragLeave(DragLeaveEvent event) { //uploader.getDropFilesLabel().removeStyleName("dropFilesLabelHover"); } }); FileUploader.this.getDropFilesLabel().addDropHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { //uploader.getDropFilesLabel().removeStyleName("dropFilesLabelHover"); if (FileUploader.this.getUploader().getStats().getUploadsInProgress() <= 0) { FileUploader.this.getProgressBarPanel().clear(); FileUploader.this.getProgressBars().clear(); FileUploader.this.getCancelButtons().clear(); } FileUploader.this.getUploader().addFilesToQueue(Uploader.getDroppedFiles(event.getNativeEvent())); event.preventDefault(); } }); }
From source file:fr.putnami.pwt.core.widget.client.InputFile.java
License:Open Source License
private void endConstruct() { this.progressBar.setDisplayValue(true); this.progressBar.setAnimated(true); this.progressBarWrapper.add(this.progressBar); StyleUtils.addStyle(this.progressBarWrapper, AbstractInput.STYLE_CONTROL); StyleUtils.addStyle(this.fileNameAnchor, AbstractInput.STYLE_CONTROL); StyleUtils.addStyle(this.placeholderText, AbstractInput.STYLE_CONTROL); StyleUtils.addStyle(this.placeholderText, InputFile.STYLE_MUTTED); this.cancelBtn.setType(Type.ICON); this.cancelBtn.setIconType(IconFont.ICON_CANCEL); this.cancelBtn.addButtonHandler(new ButtonEvent.Handler() { @Override/* w w w . j a va 2 s . c o m*/ public void onButtonAction(ButtonEvent event) { if (InputFile.this.sendRequest != null) { InputFile.this.sendRequest.cancel(); } InputFile.this.edit(null); } }); this.uploadBtn.setType(Type.ICON); this.uploadBtn.setIconType(IconFont.ICON_UPLOAD); this.uploadBtn.addButtonHandler(new ButtonEvent.Handler() { @Override public void onButtonAction(ButtonEvent event) { if (InputFile.this.uploadForm == null) { InputFile.this.uploadForm = new UploadForm(); } InputFile.this.uploadForm.openFilePicker(); } }); this.addDomHandler(new DragLeaveHandler() { @Override public void onDragLeave(DragLeaveEvent event) { StyleUtils.removeStyle(InputFile.this, InputFile.STYLE_DRAGOVER); } }, DragLeaveEvent.getType()); this.addDomHandler(new DragOverHandler() { @Override public void onDragOver(DragOverEvent event) { StyleUtils.addStyle(InputFile.this, InputFile.STYLE_DRAGOVER); } }, DragOverEvent.getType()); this.addDomHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { event.preventDefault(); event.stopPropagation(); DataTransfer data = event.getNativeEvent().getDataTransfer(); uploadData(data); } }, DropEvent.getType()); this.redraw(); }
From source file:io.apiman.manager.ui.client.local.widgets.DroppableTextArea.java
License:Apache License
@PostConstruct protected void postConstruct() { addDragEnterHandler(new DragEnterHandler() { @Override/*from w w w .j av a 2 s . c o m*/ public void onDragEnter(DragEnterEvent event) { getElement().addClassName("dropping"); //$NON-NLS-1$ event.preventDefault(); event.stopPropagation(); } }); addDragLeaveHandler(new DragLeaveHandler() { @Override public void onDragLeave(DragLeaveEvent event) { getElement().removeClassName("dropping"); //$NON-NLS-1$ event.preventDefault(); event.stopPropagation(); } }); addDragOverHandler(new DragOverHandler() { @Override public void onDragOver(DragOverEvent event) { if (!getElement().getClassName().contains("dropping")) { //$NON-NLS-1$ getElement().addClassName("dropping"); //$NON-NLS-1$ } event.preventDefault(); event.stopPropagation(); } }); addDropHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { getElement().removeClassName("dropping"); //$NON-NLS-1$ event.preventDefault(); event.stopPropagation(); doDrop(event); } }); }
From source file:net.husoftware.client.spike.DragDropLabel.java
License:Open Source License
private void initDrop() { addDomHandler(new DragOverHandler() { @Override// w ww . j av a 2s . c o m public void onDragOver(DragOverEvent event) { addStyleName("dropping"); } }, DragOverEvent.getType()); addDomHandler(new DragLeaveHandler() { @Override public void onDragLeave(DragLeaveEvent event) { removeStyleName("dropping"); } }, DragLeaveEvent.getType()); addDomHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { event.preventDefault(); if (dragging != null) { // Target treeitem is found via 'this'; // Dragged treeitem is found via 'dragging'. TreeItem dragTarget = null; TreeItem dragSource = null; // The parent of 'this' is not the TreeItem, as that's not a Widget. // The parent is the tree containing the treeitem. Tree tree = (Tree) DragDropLabel.this.getParent(); // Visit the entire tree, searching for the drag and drop TreeItems List<TreeItem> stack = new ArrayList<TreeItem>(); stack.add(tree.getItem(0)); while (!stack.isEmpty()) { TreeItem item = stack.remove(0); for (int i = 0; i < item.getChildCount(); i++) { stack.add(item.getChild(i)); } Widget w = item.getWidget(); if (w != null) { if (w == dragging) { dragSource = item; if (dragTarget != null) { break; } } if (w == DragDropLabel.this) { dragTarget = item; w.removeStyleName("dropping"); if (dragSource != null) { break; } } } } // Do we have a source and a target? if (dragSource != null && dragTarget != null) { // Make sure that target is not a child of dragSource TreeItem test = dragTarget; while (test != null) { if (test == dragSource) { return; } test = test.getParentItem(); } // Move the dragged item (source) under the target. dragTarget.addItem(dragSource); // Make sure the the target treeitem is open. dragTarget.setState(true); } dragging = null; } } }, DropEvent.getType()); }
From source file:org.cruxframework.crux.widgets.client.uploader.FileUploaderLargeImpl.java
License:Apache License
protected FocusPanel initDropArea() { final FocusPanel dropArea = new FocusPanel(); dropArea.setStyleName("dropArea"); dropArea.addDragOverHandler(new DragOverHandler() { @Override//from w ww.jav a 2s . c o m public void onDragOver(DragOverEvent event) { event.stopPropagation(); event.preventDefault(); dropArea.addStyleDependentName("hover"); } }); dropArea.addDragLeaveHandler(new DragLeaveHandler() { @Override public void onDragLeave(DragLeaveEvent event) { event.stopPropagation(); event.preventDefault(); dropArea.removeStyleDependentName("hover"); } }); dropArea.addDropHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { event.stopPropagation(); event.preventDefault(); dropArea.removeStyleDependentName("hover"); processFiles(event.getNativeEvent()); } }); return dropArea; }
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 ww .j av 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())); }
From source file:org.openelis.modules.attachment.client.AttachmentScreenUI.java
License:Open Source License
protected void initialize() { ArrayList<Item<Integer>> model1, model2; screen = this; /*//w w w . ja v a 2 s . c o m * screen fields and widgets */ addScreenHandler(description, AttachmentMeta.getDescription(), new ScreenHandler<String>() { public void onStateChange(StateChangeEvent event) { description.setEnabled(isState(QUERY, DISPLAY)); description.setQueryMode(isState(QUERY, DISPLAY)); } public Widget onTab(boolean forward) { return forward ? createdDate : abortButton; } }); addScreenHandler(createdDate, AttachmentMeta.getCreatedDate(), new ScreenHandler<Datetime>() { public void onStateChange(StateChangeEvent event) { createdDate.setEnabled(isState(QUERY, DISPLAY)); createdDate.setQueryMode(isState(QUERY, DISPLAY)); } public Widget onTab(boolean forward) { return forward ? querySection : description; } }); addScreenHandler(querySection, AttachmentMeta.getSectionId(), new ScreenHandler<Integer>() { public void onStateChange(StateChangeEvent event) { querySection.setEnabled(isState(QUERY, DISPLAY)); querySection.setQueryMode(isState(QUERY, DISPLAY)); } public Widget onTab(boolean forward) { return forward ? issueText : createdDate; } }); addScreenHandler(issueText, AttachmentMeta.getIssueText(), new ScreenHandler<String>() { public void onStateChange(StateChangeEvent event) { issueText.setEnabled(isState(QUERY, DISPLAY)); issueText.setQueryMode(isState(QUERY, DISPLAY)); } public Widget onTab(boolean forward) { return forward ? searchButton : querySection; } }); addScreenHandler(searchButton, "searchButton", new ScreenHandler<Object>() { public void onStateChange(StateChangeEvent event) { searchButton.setEnabled(isState(QUERY, DISPLAY)); } public Widget onTab(boolean forward) { return forward ? tree : issueText; } }); addScreenHandler(tree, "tree", new ScreenHandler<Object>() { public void onStateChange(StateChangeEvent event) { tree.setEnabled(true); } public Widget onTab(boolean forward) { return forward ? attachButton : searchButton; } }); tree.addBeforeSelectionHandler(new BeforeSelectionHandler<Integer>() { @Override public void onBeforeSelection(BeforeSelectionEvent<Integer> event) { Integer id; Node node; if (!isState(UPDATE)) return; /* * in Update state, only the nodes that belong to the locked * attachment can be selected */ node = tree.getNodeAt(event.getItem()); if (ATTACHMENT_LEAF.equals(node.getType())) id = node.getData(); else if (ATTACHMENT_ITEM_LEAF.equals(node.getType())) id = node.getParent().getData(); else id = null; if (!manager.getAttachment().getId().equals(id)) event.cancel(); } }); tree.addSelectionHandler(new SelectionHandler<Integer>() { @Override public void onSelection(SelectionEvent<Integer> event) { nodeSelected(event.getSelectedItem()); } }); tree.addDoubleClickHandler(new DoubleClickHandler() { @Override public void onDoubleClick(DoubleClickEvent event) { if (!isState(UPDATE, DELETE)) displayAttachment(tree.getNodeAt(tree.getSelectedNode()), null); } }); tree.addBeforeCellEditedHandler(new BeforeCellEditedHandler() { @Override public void onBeforeCellEdited(BeforeCellEditedEvent event) { String name; Integer sectId; SystemUserPermission perm; Node node; node = tree.getNodeAt(tree.getSelectedNode()); if (!ATTACHMENT_LEAF.equals(node.getType()) || !isState(UPDATE) || (event.getCol() != 0 && event.getCol() != 2)) { event.cancel(); return; } perm = UserCache.getPermission(); sectId = manager.getAttachment().getSectionId(); try { if (sectId != null) { /* * allow changing any field of the attachment only if * the user has complete permission to the current * section */ name = SectionCache.getById(sectId).getName(); if (!perm.has(name, SectionFlags.COMPLETE)) { event.cancel(); return; } } /* * make sure that the section can't be changed to one that * the user doesn't have complete permission to */ for (Item<Integer> row : tableSection.getModel()) { name = SectionCache.getById(row.getKey()).getName(); row.setEnabled(perm.has(name, SectionFlags.COMPLETE)); } } catch (Exception e) { Window.alert(e.getMessage()); logger.log(Level.SEVERE, e.getMessage(), e); event.cancel(); } } }); tree.addCellEditedHandler(new CellEditedHandler() { public void onCellUpdated(CellEditedEvent event) { Object val; AttachmentDO data; val = tree.getValueAt(event.getRow(), event.getCol()); data = manager.getAttachment(); switch (event.getCol()) { case 0: data.setDescription((String) val); break; case 2: data.setSectionId((Integer) val); break; } } }); tree.setAllowMultipleSelection(true); addScreenHandler(attachButton, "attachButton", new ScreenHandler<Object>() { public void onStateChange(StateChangeEvent event) { attachButton.setEnabled(false); } public Widget onTab(boolean forward) { return forward ? updateButton : tree; } }); addScreenHandler(updateButton, "updateButton", new ScreenHandler<Object>() { public void onStateChange(StateChangeEvent event) { updateButton.setEnabled(isState(DISPLAY, UPDATE) && manager != null); if (isState(UPDATE)) { updateButton.lock(); updateButton.setPressed(true); } } public Widget onTab(boolean forward) { return forward ? deleteButton : tree; } }); addShortcut(updateButton, 'u', CTRL); addScreenHandler(deleteButton, "deleteButton", new ScreenHandler<Object>() { public void onStateChange(StateChangeEvent event) { deleteButton.setEnabled(isState(DISPLAY, DELETE) && manager != null); if (isState(DELETE)) { deleteButton.lock(); deleteButton.setPressed(true); } } public Widget onTab(boolean forward) { return forward ? commitButton : updateButton; } }); addShortcut(deleteButton, 'd', CTRL); addScreenHandler(commitButton, "commitButton", new ScreenHandler<Object>() { public void onStateChange(StateChangeEvent event) { commitButton.setEnabled(isState(UPDATE, DELETE)); } public Widget onTab(boolean forward) { return forward ? deleteButton : abortButton; } }); addShortcut(commitButton, 'm', CTRL); addScreenHandler(abortButton, "abortButton", new ScreenHandler<Object>() { public void onStateChange(StateChangeEvent event) { abortButton.setEnabled(isState(UPDATE, DELETE)); } public Widget onTab(boolean forward) { return forward ? description : commitButton; } }); addShortcut(abortButton, 'o', CTRL); fileDrop = new FileDrop(screen, "openelis/upload") { public void onDrop(DropEvent event) { if (!fileDrop.isEnabled()) return; if (dropIndicator != null) { dropIndicator.removeFromParent(); dropIndicator = null; } super.onDrop(event); } public void onDropSuccess() { ArrayList<AttachmentManager> ams; try { /* * don't let a file be dropped for upload if a record is * locked */ if (isState(UPDATE, DELETE)) return; setBusy(Messages.get().gen_saving()); /* * create attachments for the newly uploaded files and get * the managers for them */ ams = AttachmentService.get().put(); if (managers == null) managers = new HashMap<Integer, AttachmentManager>(); for (AttachmentManager am : ams) managers.put(am.getAttachment().getId(), am); previousManager = null; setState(DISPLAY); if (isLoadedFromQuery) { /* * the tree is showing the attachments returned by a * previous search, so they are cleared and only the * attachment created from the uploaded file is shown */ isLoadedFromQuery = false; loadTree(ams, true, false, isLoadedFromQuery); } else { /* * add the attachment created from uploaded file as the * first one in the tree */ loadTree(ams, false, false, isLoadedFromQuery); } tree.selectNodeAt(0); nodeSelected(0); setDone(Messages.get().gen_savingComplete()); } catch (Exception e) { Window.alert(e.getMessage()); logger.log(Level.SEVERE, e.getMessage(), e); clearStatus(); } } }; addStateChangeHandler(new StateChangeEvent.Handler() { public void onStateChange(StateChangeEvent event) { fileDrop.setEnabled(isState(QUERY, DISPLAY)); if (isState(UPDATE, DELETE) && !closeHandlerAdded && window != null) { /* * this handler is not added in initialize() because this * screen can be shown in a modal window and in that case, * the window is not available in initialize() */ window.addBeforeClosedHandler(new BeforeCloseHandler<WindowInt>() { public void onBeforeClosed(BeforeCloseEvent<WindowInt> event) { if (isState(UPDATE, DELETE)) { event.cancel(); setError(Messages.get().gen_mustCommitOrAbort()); } else if (dropIndicator != null) { dropIndicator.removeFromParent(); dropIndicator = null; } } }); closeHandlerAdded = true; } } }); fileDrop.addDragEnterHandler(new DragEnterHandler() { @Override public void onDragEnter(DragEnterEvent event) { LayoutPanel panel; if (dropIndicator == null) { dropIndicator = new DropIndicator(); panel = (LayoutPanel) screen.getWidget(); panel.add(dropIndicator); panel.setWidgetTopBottom(dropIndicator, 0, Unit.PX, 0, Unit.PX); } } }); fileDrop.addDragLeaveHandler(new DragLeaveHandler() { @Override public void onDragLeave(DragLeaveEvent event) { if (dropIndicator != null) { dropIndicator.removeFromParent(); dropIndicator = null; } } }); /* * here two separate models are created for the two dropdowns to make * sure that any items disabled or enabled in one don't affect the other */ model1 = new ArrayList<Item<Integer>>(); model2 = new ArrayList<Item<Integer>>(); for (SectionDO s : SectionCache.getList()) { model1.add(new Item<Integer>(s.getId(), s.getName())); model2.add(new Item<Integer>(s.getId(), s.getName())); } querySection.setModel(model1); tableSection.setModel(model2); /* * call for locking and fetching attachments */ if (fetchForUpdateCall == null) { fetchForUpdateCall = new AsyncCallbackUI<AttachmentManager>() { public void success(AttachmentManager result) { Node node; manager = result; managers.put(manager.getAttachment().getId(), manager); setState(UPDATE); node = tree.getNodeAt(tree.getSelectedNode()); if (ATTACHMENT_ITEM_LEAF.equals(node.getType())) node = node.getParent(); reloadAttachment(node); tree.selectNodeAt(node); tree.startEditing(tree.getSelectedNode(), 0); } public void failure(Throwable e) { Window.alert(e.getMessage()); logger.log(Level.SEVERE, e.getMessage() != null ? e.getMessage() : "null", e); } public void finish() { clearStatus(); } }; } /* * call for updating an attachment */ if (updateCall == null) { updateCall = new AsyncCallbackUI<AttachmentManager>() { public void success(AttachmentManager result) { Node node; manager = result; managers.put(manager.getAttachment().getId(), manager); setState(DISPLAY); node = tree.getNodeAt(tree.getSelectedNode()); if (ATTACHMENT_ITEM_LEAF.equals(node.getType())) node = node.getParent(); reloadAttachment(node); tree.selectNodeAt(node); nodeSelected(tree.getSelectedNode()); clearStatus(); } public void validationErrors(ValidationErrorsList e) { showErrors(e); } public void failure(Throwable e) { Window.alert("commitUpdate(): " + e.getMessage()); logger.log(Level.SEVERE, e.getMessage() != null ? e.getMessage() : "null", e); clearStatus(); } }; } /* * call for unlocking an attachment */ if (unlockCall == null) { unlockCall = new AsyncCallbackUI<AttachmentManager>() { public void success(AttachmentManager result) { Node node; manager = result; managers.put(manager.getAttachment().getId(), manager); setState(DISPLAY); node = tree.getNodeAt(tree.getSelectedNode()); if (ATTACHMENT_ITEM_LEAF.equals(node.getType())) node = node.getParent(); reloadAttachment(node); tree.selectNodeAt(node); nodeSelected(tree.getSelectedNode()); setDone(Messages.get().gen_updateAborted()); } public void failure(Throwable e) { Window.alert(e.getMessage()); logger.log(Level.SEVERE, e.getMessage() != null ? e.getMessage() : "null", e); clearStatus(); } }; } /* * call for deleting attachments */ if (deleteCall == null) { deleteCall = new AsyncCallbackUI<Void>() { public void success(Void result) { setState(DISPLAY); setDone(Messages.get().gen_deletingComplete()); } public void validationErrors(ValidationErrorsList e) { showErrors(e); } public void failure(Throwable e) { Window.alert(e.getMessage()); logger.log(Level.SEVERE, e.getMessage() != null ? e.getMessage() : "null", e); clearStatus(); } }; } }