package org.aperteworkflow.editor.stepeditor.user; import com.vaadin.event.DataBoundTransferable; import com.vaadin.event.dd.DragAndDropEvent; import com.vaadin.event.dd.DropHandler; import com.vaadin.event.dd.acceptcriteria.AcceptCriterion; import com.vaadin.event.dd.acceptcriteria.And; import com.vaadin.event.dd.acceptcriteria.SourceIs; import com.vaadin.ui.AbstractSelect.AcceptItem; import com.vaadin.ui.Tree; final class TreeDeleteHandler implements DropHandler { private static final long serialVersionUID = -1252687997956419353L; private UserStepEditorWindow stepEditorWindow; private Tree stepTree; public TreeDeleteHandler(UserStepEditorWindow stepEditorWindow, Tree stepTree) { this.stepEditorWindow = stepEditorWindow; this.stepTree = stepTree; } public void drop(DragAndDropEvent dropEvent) { // criteria verify that this is safe DataBoundTransferable t = (DataBoundTransferable) dropEvent.getTransferable(); Object sourceItemId = t.getItemId(); stepEditorWindow.deleteTreeItem(sourceItemId); } public AcceptCriterion getAcceptCriterion() { return new And(new SourceIs(stepTree), AcceptItem.ALL); } }