@Override public void changed( ObservableValue<? extends CatInfo> observable, CatInfo oldValue, CatInfo newValue) { if (newValue != null) { for (CatInfo info : newValue.children) { TreeItem<CatInfo> tii = new TreeItem<CatInfo>(); tii.setValue(info); // System.out.println(observable.getClass()); // observable. // ((TreeItem)observable).getChildren().add(tii); } } }
/** * remplit la TreeView sur le cote gauche avec la liste des fichiers de ".git/objects" * * @param gitDirectory dossier ".git" */ public void addObjectsFiles(File gitDirectory) { // on vide la liste pour en refaire une nouvelle rootTreeListeFichiers.getChildren().clear(); File gitObjectsDirectory = new File(gitDirectory, "objects"); // on assigne le chemin "nomDepot/.git/objects" a l'item racine String[] pathDirectories = gitObjectsDirectory.getAbsolutePath().split(Pattern.quote(File.separator)); String rootValue = pathDirectories[pathDirectories.length - 3]; for (int i = pathDirectories.length - 2; i < pathDirectories.length; i++) { rootValue += File.separator + pathDirectories[i]; } rootTreeListeFichiers.setValue(rootValue); // liste des dossiers deroulee par defaut rootTreeListeFichiers.setExpanded(true); File[] gitObjectsSubDirectories = gitObjectsDirectory.listFiles(); // pour chaque dossier dans objects on ajoute un item for (File gitObjectsSubDirectory : gitObjectsSubDirectories) { TreeItem<String> subDirectoryItem = new TreeItem<>(gitObjectsSubDirectory.getName()); File[] gitObjects = gitObjectsSubDirectory.listFiles(); // ajout de la liste des fichiers de ce dossier for (File gitObject : gitObjects) { TreeItem<String> objectItem = new TreeItem<>(gitObject.getName()); subDirectoryItem.getChildren().add(objectItem); } rootTreeListeFichiers.getChildren().add(subDirectoryItem); } }