Hallo zusammen,
ich bin dabei eine PropertyView wie in Eclipse zu implementieren. Wenn eine Selektierung irgendwo vorgenommen wurde, sollte die PropertyView das Selektierte annehemen und per Reflections alle Attribute holen und anzeigen.
Das Ganze funktioniert auch schon, man kann auch schon editieren und den Wert annehmen. Hier mein Code Snippet
Mein Problem ist diese Stelle valueColumn.setCellFactory(TextFieldTableCell.<EAttribute>forTableColumn());. Meine PropertyView zeigt nur Textfeld im Editiermodus an. Wie kann ich das etwas dynamischer machen wenn ich zum Beispiel:
* Enum ->ChoiceBoxTableCell
* Boolean -> CheckBoxTableCell
* Date -> DatePickerTableCell
etc.
Oder ist da an der Stelle einfacher den cellFactory selber zu schreiben?
@dzim hast du da etwas auf Lager?
Grüße
lam
ich bin dabei eine PropertyView wie in Eclipse zu implementieren. Wenn eine Selektierung irgendwo vorgenommen wurde, sollte die PropertyView das Selektierte annehemen und per Reflections alle Attribute holen und anzeigen.
Das Ganze funktioniert auch schon, man kann auch schon editieren und den Wert annehmen. Hier mein Code Snippet
Code:
tableView = new TableView<>();
TableColumn<EAttribute, String> propertyColumn = new TableColumn<>("Property");
TableColumn<EAttribute, String> valueColumn = new TableColumn<>("Value");
propertyColumn.setPrefWidth(200);
valueColumn.setPrefWidth(400);
propertyColumn.setCellValueFactory(param -> new SimpleStringProperty(param.getValue().getName()));
valueColumn.setCellFactory(TextFieldTableCell.<EAttribute>forTableColumn());
valueColumn.setOnEditCommit(evt -> {
// Wert wird hier gesetzt
});
valueColumn.setCellValueFactory(param ->{
if (cuurentSelection==null || param.getValue()==null) {
return new SimpleStringProperty("");
}
return new SimpleStringProperty(cuurentSelection.eGet(param.getValue())+"");
});
tableView.getColumns().add(propertyColumn);
tableView.getColumns().add(valueColumn);
tableView.setItems(filteredProperties);
tableView.setEditable(true);
Mein Problem ist diese Stelle valueColumn.setCellFactory(TextFieldTableCell.<EAttribute>forTableColumn());. Meine PropertyView zeigt nur Textfeld im Editiermodus an. Wie kann ich das etwas dynamischer machen wenn ich zum Beispiel:
* Enum ->ChoiceBoxTableCell
* Boolean -> CheckBoxTableCell
* Date -> DatePickerTableCell
etc.
Oder ist da an der Stelle einfacher den cellFactory selber zu schreiben?
@dzim hast du da etwas auf Lager?
Grüße
lam