private void refresh(TreeItem<N> item) { N node = item.getValue(); if (treeModel.isFolder(node)) { try { List<TreeItem<N>> childItems = new ArrayList<>(); for (N child : treeModel.getChildren((D) node)) { if (treeModel.isFolder(child)) { childItems.add(createCollapsedFolderItem((D) child)); } else { F file = (F) child; if (filter.test(file, treeModel)) { childItems.add(new TreeItem<>(child)); } } } Platform.runLater(() -> item.getChildren().setAll(childItems)); } catch (Throwable t) { LOGGER.error(t.toString(), t); } } }
private void updateTreeTableCellDescriptionItem(N item, boolean empty, TreeTableCell<N, N> treeTableCell) { if (empty || item == null) { treeTableCell.setText(null); } else { treeTableCell.setText(treeModel.getDescription((F) item)); treeTableCell.setOpacity(item.getClass() == treeModel.getUnknownFileClass() ? 0.5 : 1); } }
private void savePreferences() { N node = selectedNode.get(); if (node != null) { preferences.put(treeModel.getLastSelectedPathKey(), treeModel.getPath(node).toString()); } }
descriptionColumn.setCellValueFactory((TreeTableColumn.CellDataFeatures<N, N> p) -> { N node = p.getValue().getValue(); if (!treeModel.isFolder(node)) { return new ReadOnlyObjectWrapper<>(node); createFolderButton.disableProperty().bind(selectedFolder.isNull()); createFolderButton.setOnAction(event -> treeModel.showCreateFolderDialog(window, selectedFolder.get()).ifPresent(newFolder -> { TreeItem<N> selectedItem = tree.getSelectionModel().getSelectedItem(); refresh(selectedItem); try { List<TreeItem<N>> nodes = new ArrayList<>(); for (D rootFolder : treeModel.getRootFolders()) { TreeItem<N> node = createCollapsedFolderItem(rootFolder); node.setExpanded(true);
boolean found = false; for (TreeItem<N> item : children) { if (treeModel.getName(item.getValue()).equals(name)) { selectNode(item, pathList); found = true;
@Override public void onChanged(Change<? extends TreeItem<N>> c) { if (c.next() && c.wasReplaced() && c.getRemovedSize() == 1 && c.getRemoved().get(0).getValue() == null) { TreeItem<N> next = null; for (TreeItem<N> addedNode : c.getAddedSubList()) { if (treeModel.getName(addedNode.getValue()).equals(name)) { next = addedNode; break; } } if (next != null) { selectNode(next, pathList); } else { scrollToLastItem(last); } } c.getList().removeListener(this); } });
private void updateNonNullItemm(N item, TreeTableRow<N> treeTableRow, TreeTableCell<N, N> treeTableCell) { if (item == null) { GseUtil.setWaitingText(treeTableCell); } else if (item instanceof Node) { Node node = (Node) item; treeTableCell.setText(treeModel.getName(item)); treeTableCell.setTextFill(Color.BLACK); treeTableCell.setOpacity(item.getClass() == treeModel.getUnknownFileClass() ? 0.5 : 1); treeTableCell.setGraphic(NodeGraphics.getGraphic(item)); treeTableCell.setOnDragDetected(event -> dragDetectedEvent(item, treeTableRow.getTreeItem(), event)); treeTableCell.setOnDragOver(event -> dragOverEvent(event, item, treeTableRow, treeTableCell)); treeTableCell.setOnDragDropped(event -> dragDroppedEvent(item, treeTableRow.getTreeItem(), event, node)); treeTableCell.setOnDragExited(event -> treeTableCell.getStyleClass().removeAll("treecell-drag-over")); } else { treeTableCell.setText(treeModel.getName(item)); treeTableCell.setTextFill(Color.BLACK); treeTableCell.setOpacity(item.getClass() == treeModel.getUnknownFileClass() ? 0.5 : 1); treeTableCell.setGraphic(NodeGraphics.getGraphic(item)); } }
private MenuItem createCreateFolderMenuItem() { MenuItem menuItem = new MenuItem(RESOURCE_BUNDLE.getString("CreateFolder") + "...", Glyph.createAwesomeFont('\uf115').size(ICON_SIZE)); menuItem.setOnAction(event -> treeModel.showCreateFolderDialog(window, selectedFolder.get()).ifPresent(newFolder -> { TreeItem<N> selectedItem = tree.getSelectionModel().getSelectedItem(); refreshTreeItem(selectedItem); }) ); return menuItem; }
private void onMouseClickedEvent(MouseEvent event) { TreeItem<N> item = tree.getSelectionModel().getSelectedItem(); N node = item != null ? item.getValue() : null; selectedNode.setValue(node != null && filter.test(node, treeModel) ? (T) node : null); selectedFolder.setValue(node != null && treeModel.isFolder(node) && treeModel.isWritable((D) node) ? (D) node : null); doubleClick.setValue(event.getClickCount() == 2); }