Example #1
0
 @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);
    }
  }