JavaFX TreeView aufstellen läuft irgendwie auf Endlosschleife

Hallo zusammen,

ich versuche Einträge der Datenbank als TreeView abzubilden und laufe die Ganze Zeit gegen ein Exception.

Was mache ich da falsch?

Java:
    private Map<Long, Category> registry = new TreeMap<>();

    public Category buildTree(List<Category> models) {
        registry.clear();
        Long firstElement = null;
        for (Category model : models) {
            if (firstElement == null) {
                firstElement = model.getId();
            }
            registry.put(model.getId(), model);
        }
        registry.values().forEach(nav -> {
            Long parentId = nav.getId();
            for (Category category : models) {
                if (parentId==category.getParentId()) {
                    nav.getChildren().add(category);
                }
            }
        });
        return registry.get(firstElement);
    }

    private void buildTreeItems(TreeItem<Category> parentItem, Category element) {
        TreeItem<Category> newItem = new TreeItem<>(element);
        parentItem.getChildren().add(newItem);

        System.out.println(element.getName());

        if (!element.getChildren().isEmpty()) {
            List<Category> children = element.getChildren();
            children.forEach(c -> buildTreeItems(newItem, c));
        }
    }

    private void initTreeView() {
        List<Category> categories = AppContext.getInstance(CategoryRepository.class).findAll();
        Category root = buildTree(categories);
        TreeItem<Category> rootItem = new TreeItem<>(
                new Category("Categories", LocalDateTime.now(), LocalDateTime.now(), -1));
        buildTreeItems(rootItem, root);
        treeView.setRoot(rootItem);
        treeView.setCellFactory(param -> new TreeCell<Category>() {
            @Override
            protected void updateItem(Category item, boolean empty) {
                super.updateItem(item, empty);
                if (item == null || empty) {
                    setText(null);
                } else {
                    setText(item.getName());
                }
            }
        });
    }
Was viel komischer ist bei der Methode #buildTreeItems bekomme ich immer "Root"-DB Row zurück, d.h. der läuft da in eine Endlosschleife oder?

Viele Grüße
lam
 
DontKnowHowToDoItException
Das ist tatsächlich der Fall, dadurch dass ich Google Guice benutze, wird beim Initialisieren der FXML keine gescheite Exception geworfen -> Guice sagt nur dass keine Instanz der JavaFX Custom Control angelegt werden kann.

Ich dachte nur die Guice Meldung bringt uns da auch nicht weiter. Ich poste es nachher.

Grüße
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben