Hi,
ich habe gerade festgestellt, dass mein TableView zwar neue Elemente korrekt wieder gibt, aber bei Änderung der Properties nichts anzeigt.
Hier der Code-Schnipsel, der universell für alles verwendet wird (triggern, wenn neue Items hinzu kommen, aber auch, wenn sich nur an einem Item etwas ändert - PropertyChangeEvent - yea! Oldskool!):
Kann mir jemand sagen, was ich hier (gedanklich) falsch mache???
Ach so... Meine TableColumns wurden so initialisiert
Ich denke, das Prinzip ist klar...
Daniel
ich habe gerade festgestellt, dass mein TableView zwar neue Elemente korrekt wieder gibt, aber bei Änderung der Properties nichts anzeigt.
Hier der Code-Schnipsel, der universell für alles verwendet wird (triggern, wenn neue Items hinzu kommen, aber auch, wenn sich nur an einem Item etwas ändert - PropertyChangeEvent - yea! Oldskool!):
Java:
public void updateContent(PWMGroup group, String password) {
if (this.currentGroup != null)
currentGroup.removeListener(internalPropertyChangeListener);
currentGroupPassword = password;
currentGroup = group;
PWMGroup.init(currentGroup);
currentGroup.addListener(internalPropertyChangeListener);
// hier passiert es - oder eben nicht...
contentTableView.setItems(FXCollections
.<PWMGroupEntry> observableArrayList(group.getEntries()));
EventHandler.getInstance().fireEvent(group, MainWindow.GROUP_LOADED);
EventHandler.getInstance().fireEvent(group,
MainWindow.ENTRY_NOT_SELECTED);
}
Kann mir jemand sagen, was ich hier (gedanklich) falsch mache???
Ach so... Meine TableColumns wurden so initialisiert
Java:
contentTableView = new TableView<PWMGroupEntry>(
FXCollections.<PWMGroupEntry> emptyObservableList());
contentTableView.getSelectionModel().setSelectionMode(
SelectionMode.SINGLE);
contentTableView
.setColumnResizePolicy(TableView.UNCONSTRAINED_RESIZE_POLICY);
contentTableView.setMinSize(TableView.USE_PREF_SIZE,
TableView.USE_PREF_SIZE);
contentTableView.setOnMouseClicked(new InternalPWMMouseEventHandler(
Type.CONTENT));
contentTableView
.setOnKeyTyped(new InternalKeyEventHandler(Type.CONTENT));
contentTableView.setContextMenu(ContextMenuCreator.getInstance(
parentAdapter).getContentMenu(false));
TableColumn<PWMGroupEntry, String> tcTitle = new TableColumn<PWMGroupEntry, String>(
"Title");
tcTitle.setPrefWidth(200);
tcTitle.setCellValueFactory(new PropertyValueFactory<PWMGroupEntry, String>(
"name"));
TableColumn<PWMGroupEntry, String> tcUser = new TableColumn<PWMGroupEntry, String>(
"Username");
tcUser.setPrefWidth(200);
tcUser.setCellValueFactory(new PropertyValueFactory<PWMGroupEntry, String>(
"username"));
TableColumn<PWMGroupEntry, String> tcURL = new TableColumn<PWMGroupEntry, String>(
"URL");
tcURL.setPrefWidth(250);
tcURL.setCellValueFactory(new PropertyValueFactory<PWMGroupEntry, String>(
"url"));
tcURL.setCellFactory(new Callback<TableColumn<PWMGroupEntry, String>, TableCell<PWMGroupEntry, String>>() {
@Override
public TableCell<PWMGroupEntry, String> call(
TableColumn<PWMGroupEntry, String> param) {
return new PWMGroupEntryHyperlinkCell(parentAdapter);
}
});
TableColumn<PWMGroupEntry, Calendar> tcDateAdd = new TableColumn<PWMGroupEntry, Calendar>(
"Date Added");
tcDateAdd.setPrefWidth(150);
tcDateAdd
.setCellValueFactory(new PropertyValueFactory<PWMGroupEntry, Calendar>(
"dateAdded"));
tcDateAdd
.setCellFactory(new Callback<TableColumn<PWMGroupEntry, Calendar>, TableCell<PWMGroupEntry, Calendar>>() {
@Override
public TableCell<PWMGroupEntry, Calendar> call(
TableColumn<PWMGroupEntry, Calendar> param) {
return new PWMGroupEntryDateCell();
}
});
TableColumn<PWMGroupEntry, Calendar> tcDateMod = new TableColumn<PWMGroupEntry, Calendar>(
"Date Modified");
tcDateMod.setPrefWidth(150);
tcDateMod
.setCellValueFactory(new PropertyValueFactory<PWMGroupEntry, Calendar>(
"dateModified"));
tcDateMod
.setCellFactory(new Callback<TableColumn<PWMGroupEntry, Calendar>, TableCell<PWMGroupEntry, Calendar>>() {
@Override
public TableCell<PWMGroupEntry, Calendar> call(
TableColumn<PWMGroupEntry, Calendar> param) {
return new PWMGroupEntryDateCell();
}
});
contentTableView.getColumns().add(tcTitle);
contentTableView.getColumns().add(tcUser);
contentTableView.getColumns().add(tcURL);
contentTableView.getColumns().add(tcDateAdd);
contentTableView.getColumns().add(tcDateMod);
Ich denke, das Prinzip ist klar...
Daniel