JavaFX TreeView aufstellen läuft irgendwie auf Endlosschleife

Diskutiere TreeView aufstellen läuft irgendwie auf Endlosschleife im AWT, Swing, JavaFX & SWT Bereich.
L

lam_tr

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
 
L

lam_tr

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
 
Thema: 

TreeView aufstellen läuft irgendwie auf Endlosschleife

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben