|
41 | 41 | import de.doubleslash.keeptime.view.worktable.ProjectTableRow; |
42 | 42 | import de.doubleslash.keeptime.view.worktable.TableRow; |
43 | 43 | import de.doubleslash.keeptime.view.worktable.WorkTableRow; |
| 44 | +import javafx.beans.property.ReadOnlyObjectWrapper; |
44 | 45 | import javafx.event.ActionEvent; |
45 | 46 | import javafx.event.EventHandler; |
46 | 47 | import javafx.fxml.FXML; |
|
54 | 55 | import javafx.scene.control.Dialog; |
55 | 56 | import javafx.scene.control.Label; |
56 | 57 | import javafx.scene.control.TreeItem; |
| 58 | +import javafx.scene.control.TreeTableCell; |
57 | 59 | import javafx.scene.control.TreeTableColumn; |
58 | 60 | import javafx.scene.control.TreeTableView; |
59 | 61 | import javafx.scene.control.cell.TreeItemPropertyValueFactory; |
|
64 | 66 | import javafx.scene.layout.GridPane; |
65 | 67 | import javafx.scene.layout.HBox; |
66 | 68 | import javafx.scene.shape.Circle; |
| 69 | +import javafx.scene.text.Text; |
67 | 70 | import javafx.stage.Stage; |
68 | 71 | import javafx.util.Callback; |
69 | 72 |
|
@@ -115,25 +118,54 @@ private void initialize() { |
115 | 118 | } |
116 | 119 |
|
117 | 120 | private void initTableView() { |
118 | | - final TreeTableColumn<TableRow, String> noteColumn = new TreeTableColumn<>("Notes"); |
119 | | - noteColumn.setCellValueFactory(new TreeItemPropertyValueFactory<TableRow, String>("notes")); |
| 121 | + |
| 122 | + final TreeTableColumn<TableRow, TableRow> noteColumn = new TreeTableColumn<>("Notes"); |
| 123 | + noteColumn.setCellFactory(new Callback<TreeTableColumn<TableRow, TableRow>, TreeTableCell<TableRow, TableRow>>() { |
| 124 | + @Override |
| 125 | + public TreeTableCell<TableRow, TableRow> call(final TreeTableColumn<TableRow, TableRow> column) { |
| 126 | + return new TreeTableCell<TableRow, TableRow>() { |
| 127 | + @Override |
| 128 | + protected void updateItem(final TableRow item, final boolean empty) { |
| 129 | + super.updateItem(item, empty); |
| 130 | + if (item == null || empty) { |
| 131 | + setGraphic(null); |
| 132 | + setText(null); |
| 133 | + LOG.debug("null"); |
| 134 | + } else { |
| 135 | + final Text text = new Text(item.getNotes()); |
| 136 | + text.wrappingWidthProperty().bind(noteColumn.widthProperty().subtract(35)); |
| 137 | + text.setUnderline(item.isUnderlined()); |
| 138 | + this.setGraphic(text); |
| 139 | + } |
| 140 | + } |
| 141 | + }; |
| 142 | + } |
| 143 | + |
| 144 | + }); |
| 145 | + noteColumn.setCellValueFactory( |
| 146 | + (final TreeTableColumn.CellDataFeatures<TableRow, TableRow> entry) -> new ReadOnlyObjectWrapper<>( |
| 147 | + entry.getValue().getValue())); |
120 | 148 | noteColumn.setMinWidth(200); |
| 149 | + noteColumn.impl_setReorderable(false); |
121 | 150 | this.workTableTreeView.getColumns().add(noteColumn); |
122 | 151 |
|
123 | 152 | final TreeTableColumn<TableRow, String> timeRangeColumn = new TreeTableColumn<>("Timeslot"); |
124 | 153 | timeRangeColumn.setCellValueFactory(new TreeItemPropertyValueFactory<TableRow, String>("timeRange")); |
125 | 154 | timeRangeColumn.setMinWidth(120); |
| 155 | + timeRangeColumn.impl_setReorderable(false); |
126 | 156 | this.workTableTreeView.getColumns().add(timeRangeColumn); |
127 | 157 |
|
128 | 158 | final TreeTableColumn<TableRow, String> timeSumColumn = new TreeTableColumn<>("Duration"); |
129 | 159 | timeSumColumn.setCellValueFactory(new TreeItemPropertyValueFactory<TableRow, String>("timeSum")); |
130 | 160 | timeSumColumn.setMinWidth(60); |
| 161 | + timeSumColumn.impl_setReorderable(false); |
131 | 162 | this.workTableTreeView.getColumns().add(timeSumColumn); |
132 | 163 |
|
133 | 164 | final TreeTableColumn<TableRow, Button> buttonColumn = new TreeTableColumn<>(); |
134 | 165 | buttonColumn.setCellValueFactory(new TreeItemPropertyValueFactory<TableRow, Button>("buttonBox")); |
135 | 166 | buttonColumn.setMinWidth(100); |
136 | 167 | buttonColumn.setSortable(false); |
| 168 | + buttonColumn.impl_setReorderable(false); |
137 | 169 | this.workTableTreeView.getColumns().add(buttonColumn); |
138 | 170 |
|
139 | 171 | workTableTreeView.setShowRoot(false); |
|
0 commit comments