/** * 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()); }