@Override public void run() { treeTable.setRoot( root ); } } );
private void validate(TreeTableView<ValidationAndData> tableView){ final TreeItem<ValidationAndData> root = new TreeItem<>(); tableView.setRoot(root); tableView.setShowRoot(false); HashMap<Data,Data> child2parent = this.root.internal().getChildToParentMap(); List<ValidationError> validationErrors= new ArrayList<>(); for (Data data: this.root.internal().collectChildrenDeep()){ TreeItem<ValidationAndData> dataItem = new TreeItem<>(); dataItem.setExpanded(true); data.internal().validateFlat().forEach(validationError->{ validationErrors.add(validationError); TreeItem<ValidationAndData> error =new TreeItem<>(new ValidationAndData(validationError,data,data.internal().getDisplayText())); dataItem.getChildren().add(error); }); if (!dataItem.getChildren().isEmpty()){ dataItem.setValue(new ValidationAndData(null,data,data.internal().getPathFromRoot(child2parent).stream().map(d->d.internal().getDisplayText()).collect(Collectors.joining("/")))); root.getChildren().add(dataItem); } } tableView.getStyleClass().remove("error"); if (!validationErrors.isEmpty()){ tableView.getStyleClass().add("error"); } tableView.getSelectionModel().clearSelection(); dataEditor.reset(); isValid.set(validationErrors.isEmpty()); }
/** * @{inheritedDoc} */ @Override public void buildContent() { treeView = new TreeTableView<>(); final String treePaginatedDataProvider = contentConfiguration.getPropertyValue("dataLoader"); this.treePaginatedDataProvider = (ITreePaginatedDataProvider) Services.getBean(treePaginatedDataProvider); this.treePaginatedDataProvider.setRootContext(controller); final List<TableColumnBase> tableColumns = getTableColumns(); for(TableColumnBase e: tableColumns) { treeView.getColumns().add((TreeTableColumn<OperationData, ?>) e); } treeView.setCache(true); treeView.setCacheHint(CacheHint.SPEED); final TreeItem root = this.treePaginatedDataProvider.getRootItem(); treeView.setRoot(root); treeView.setShowRoot(true); // style NodeHelper.setStyleClass(treeView, contentConfiguration, "treeViewStyleClass", true); }
treeTableView.setRoot(root);