/** * Draw all components and its children. * * @param repository The cache repository. * @param parent The parent component. */ public void draw(CacheRepository repository, Component parent) { final TreeItem<Component> parentTreeItem = new TreeItem<Component>(parent); parent.draw(repository); for (Component component : parent.getList()) { if (!component.getList().isEmpty()) { throw new RuntimeException("Interface with more than three layers detected."); } else { component.draw(repository); parentTreeItem.getChildren().add(new TreeItem<Component>(component)); parent.getGroup().getChildren().add(component.getGroup()); } } stage.getController().getCenterRoot().getChildren().add(parentTreeItem); stage.getController().getPane().getChildren().add(parent.getGroup()); }
/** * Build the components and its children in this recursive array. * * @param parent The parent component. * @param components The child component list. */ public void build(Component parent, List<Component> components) { if (parent.getDefinition().getParentId() != -1) { components .stream() .filter( component -> component.getDefinition().getFullWidgetId() == parent.getDefinition().getParentId()) .forEach( component -> { component.add(parent); build(component, parent.getList()); }); } }