@Override
public void buildFrom(IEmaginController controller, VLViewComponentXML configuration) {
this.configuration = configuration;
this.controller = (AbstractViewController) controller;
loadFXML();
NodeHelper.styleClassAddAll(tableHeaderRootPane, configuration, "styleClass");
NodeHelper.setTitle(headerTitle, configuration, (AbstractViewController) controller, true);
NodeHelper.styleClassSetAll(headerTitle, configuration, "titleStyleClass", "ep-table-title-label");
NodeHelper.styleClassAddAll(titleContainer, configuration, "titleContainerStyleClass");
filterTextField.managedProperty().bind(filterTextField.visibleProperty());
filterTextField.setPromptText("Find in table");
boolean filtrable = configuration.getBooleanProperty("filtrable", true);
filterTextField.setVisible(filtrable);
((FullTableStructureController) controller).processedElementProperty().addListener((ChangeListener<Object>) (observable, oldValue, newValue) -> {
AbstractTableStructure ts = (AbstractTableStructure) ((FullTableStructureController) controller).processedElementProperty().get();
if (ts.getToolbar().isPresent()) {
Node tb = ts.getToolbar().get();
HBox.setHgrow(tb, Priority.NEVER);
actionsContainer.getChildren().add(tb);
}
});
setRootModel();
headerTitle.managedProperty().bind(headerTitle.visibleProperty());
headerTitle.visibleProperty().bind(Bindings.size(titleContainer.getChildren()).isEqualTo(0));
titleContainer.visibleProperty().bind(Bindings.size(titleContainer.getChildren()).greaterThan(0));
titleContainer.managedProperty().bind(titleContainer.visibleProperty());
}