public boolean isMovable(N item, TreeItem<N> targetTreeItem) { return dragAndDropMove != null && item != dragAndDropMove.getSource() && !isChildOf(targetTreeItem); }
private boolean isChildOf(TreeItem<N> targetTreeItem) { return targetTreeItem == dragAndDropMove.getSourceTreeItem().getParent(); }
private void dragDetectedEvent(N value, TreeItem<N> treeItem, MouseEvent event) { dragAndDropMove = new DragAndDropMove(); dragAndDropMove.setSource(value); dragAndDropMove.setSourceTreeItem(treeItem); if (value instanceof Project && treeItem != tree.getRoot()) { Dragboard db = tree.startDragAndDrop(TransferMode.ANY); ClipboardContent cb = new ClipboardContent(); cb.putString(((Project) value).getName()); db.setContent(cb); event.consume(); } }
private void dragDroppedEvent(Object value, TreeItem<N> treeItem, DragEvent event, Node node) { if (value instanceof Folder && value != dragAndDropMove.getSource()) { Folder folder = (Folder) node; int count = 0; success = false; treeItemChildrenSize(treeItem, count); accepTransferDrag(folder, success); event.setDropCompleted(success); refreshTreeItem(dragAndDropMove.getSourceTreeItem().getParent()); refreshTreeItem(treeItem); tree.getSelectionModel().clearSelection(); event.consume(); } }
private void treeItemChildrenSize(TreeItem<N> treeItem, int compte) { counter = compte; if (!treeItem.isLeaf()) { Folder folder = (Folder) treeItem.getValue(); if (!folder.getChildren().isEmpty()) { for (Node node : folder.getChildren()) { if (node == null) { break; } else if (node.getName().equals(dragAndDropMove.getSource().toString())) { counter++; } } } } }
private void accepTransferDrag(Folder folder, boolean s) { success = s; if (getCounter() >= 1) { GseAlerts.showDraggingError(); } else if (getCounter() < 1) { Project monfichier = (Project) dragAndDropMove.getSource(); monfichier.moveTo(folder); success = true; } }