Skip to content
Snippets Groups Projects
Commit 7d812c25 authored by Andreas Bayha's avatar Andreas Bayha
Browse files

Kernel: Added custom editor initialization for DynamicTableTreeViewer


The DynamicTableTreeViewerUIProvider can provide dedicated values to
initialize the editor cells.

Issue-ref: 4254
Issue-URL: af3#4254

Signed-off-by: default avatarAndreas Bayha <bayha@fortiss.org>
parent 92500b1b
No related branches found
No related tags found
1 merge request!1824254
DynamicList.java 786300e2e914826da239329d190abea1710478ea GREEN
DynamicListContentProvider.java 817cba44f246a361207a88ef9a4e1869215803f7 GREEN
DynamicStreamContentProvider.java f46e91400609cba54793dd240be0fe2aa0d5cced GREEN
DynamicTextFieldTreeTableCell.java de24117e6f785b328f1ff62383626a0b4b54e8ff GREEN
DynamicTextFieldTreeTableCell.java 157b9a86b5e6ba01a118459d93e4db74d7d8fbca YELLOW
DynamicTreeContentProviderBase.java 91896b1fb5104d126544c44c1ff8c30f2a13a8d6 GREEN
DynamicTreeItem.java 7e81ea98038b5eca90df583e0268d4e8f37aaf25 GREEN
DynamicTreeItemBase.java d883066ecc181120302ca32f328538de7a45b093 GREEN
DynamicTreeTableUIProviderBase.java 25592d4d2fb4a6cf904e8bdd98fc5138cbea5f17 GREEN
DynamicTreeTableUIProviderBase.java 29aa753793ab90676d45e5b76b11f7b46ce02a97 YELLOW
DynamicTreeTableViewer.java 77e9995a3bee37d57578dad9434a53c702128efa YELLOW
DynamicTreeUIProviderBase.java 82d3c051213f0147f4c67ad247a08696cee73110 GREEN
DynamicTreeViewer.java 33066062a82101cf28410e4d04f85bb9c24251db GREEN
......
......@@ -42,11 +42,20 @@ public class DynamicTextFieldTreeTableCell<T> extends TextFieldTreeTableCell<T,
/** The current entered text in the TextField. */
private String currentInput = "";
/** */
DynamicTreeTableUIProviderBase<T> uiProvider;
/** The column index, this cell is embedded in. */
int columnIndex;
/**
* Constructor.
*/
public DynamicTextFieldTreeTableCell() {
public DynamicTextFieldTreeTableCell(DynamicTreeTableUIProviderBase<T> uiProvider, int columnIndex) {
this(new DefaultStringConverter());
this.uiProvider = uiProvider;
this.columnIndex = columnIndex;
}
/**
......@@ -116,6 +125,9 @@ public class DynamicTextFieldTreeTableCell<T> extends TextFieldTreeTableCell<T,
textField.setOnKeyReleased(event -> {
currentInput = textField.getText();
});
String initialEditorContent = uiProvider.getInitialEditorContent(currentlyEditedElement, columnIndex);
textField.setText(initialEditorContent);
}
}
......
......@@ -64,6 +64,19 @@ public abstract class DynamicTreeTableUIProviderBase<T> {
return "";
}
/**
* Determines, which {@link String} is in text editor cells when stating to edit.
*
* @param element
* The element for which eitr content shall be provided
* @param column
* The column index for which the content shall be provided
* @return The {@link String} which shal be displayed in the editor.
*/
public String getInitialEditorContent(T element, int column) {
return getLabel(element, column);
}
/**
* @param element
* the element to be displayed in the current row
......@@ -534,27 +547,29 @@ public abstract class DynamicTreeTableUIProviderBase<T> {
*/
public void applyToTextColumn(int columnIndex, TreeTableColumn<T, String> column) {
column.setCellFactory(ttColumn -> {
DynamicTextFieldTreeTableCell<T> cell = new DynamicTextFieldTreeTableCell<T>() {
DynamicTextFieldTreeTableCell<T> cell =
new DynamicTextFieldTreeTableCell<T>(this, columnIndex) {
/** {@inheritDoc} */
@Override
protected boolean canEdit(T element) {
return DynamicTreeTableUIProviderBase.this.isEditable(columnIndex, element);
}
/** {@inheritDoc} */
@Override
protected boolean canEdit(T element) {
return DynamicTreeTableUIProviderBase.this.isEditable(columnIndex,
element);
}
/** {@inheritDoc} */
@Override
protected void setValueOnLeavingCell(T element, String currentValue) {
updateValue(element, columnIndex, currentValue);
}
/** {@inheritDoc} */
@Override
protected void setValueOnLeavingCell(T element, String currentValue) {
updateValue(element, columnIndex, currentValue);
}
/** {@inheritDoc} */
@Override
public void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
styleCell(this, columnIndex);
}
};
/** {@inheritDoc} */
@Override
public void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
styleCell(this, columnIndex);
}
};
styleCell(cell, columnIndex);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment