package tk.captainsplexx.JavaFX; import javafx.scene.control.TreeItem; public class TreeViewUtils { public static TreeItem<TreeViewEntry> filter(TreeItem<TreeViewEntry> source, String filterStr){ if (filterStr==null){ return source; } TreeItem<TreeViewEntry> filtered = new TreeItem<TreeViewEntry>(source.getValue()); for (TreeItem<TreeViewEntry> entry : source.getChildren()){ TreeItem<TreeViewEntry> filteredEntry = filter(entry, filterStr); if (filteredEntry!=null){ filtered.getChildren().add(filteredEntry); } } if (filtered.getChildren().size()>=1||filtered.getValue().getName().contains(filterStr)){ filtered.setGraphic(source.getGraphic()); filtered.setExpanded(source.isExpanded()); return filtered; }else{ return null; } } }