Skip to content

Commit bf16348

Browse files
committed
underlining work items; Table no longer reorderable
1 parent 8229a3e commit bf16348

File tree

4 files changed

+46
-2
lines changed

4 files changed

+46
-2
lines changed

src/main/java/de/doubleslash/keeptime/view/ReportController.java

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import de.doubleslash.keeptime.view.worktable.ProjectTableRow;
4242
import de.doubleslash.keeptime.view.worktable.TableRow;
4343
import de.doubleslash.keeptime.view.worktable.WorkTableRow;
44+
import javafx.beans.property.ReadOnlyObjectWrapper;
4445
import javafx.event.ActionEvent;
4546
import javafx.event.EventHandler;
4647
import javafx.fxml.FXML;
@@ -54,6 +55,7 @@
5455
import javafx.scene.control.Dialog;
5556
import javafx.scene.control.Label;
5657
import javafx.scene.control.TreeItem;
58+
import javafx.scene.control.TreeTableCell;
5759
import javafx.scene.control.TreeTableColumn;
5860
import javafx.scene.control.TreeTableView;
5961
import javafx.scene.control.cell.TreeItemPropertyValueFactory;
@@ -64,6 +66,7 @@
6466
import javafx.scene.layout.GridPane;
6567
import javafx.scene.layout.HBox;
6668
import javafx.scene.shape.Circle;
69+
import javafx.scene.text.Text;
6770
import javafx.stage.Stage;
6871
import javafx.util.Callback;
6972

@@ -115,25 +118,54 @@ private void initialize() {
115118
}
116119

117120
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()));
120148
noteColumn.setMinWidth(200);
149+
noteColumn.impl_setReorderable(false);
121150
this.workTableTreeView.getColumns().add(noteColumn);
122151

123152
final TreeTableColumn<TableRow, String> timeRangeColumn = new TreeTableColumn<>("Timeslot");
124153
timeRangeColumn.setCellValueFactory(new TreeItemPropertyValueFactory<TableRow, String>("timeRange"));
125154
timeRangeColumn.setMinWidth(120);
155+
timeRangeColumn.impl_setReorderable(false);
126156
this.workTableTreeView.getColumns().add(timeRangeColumn);
127157

128158
final TreeTableColumn<TableRow, String> timeSumColumn = new TreeTableColumn<>("Duration");
129159
timeSumColumn.setCellValueFactory(new TreeItemPropertyValueFactory<TableRow, String>("timeSum"));
130160
timeSumColumn.setMinWidth(60);
161+
timeSumColumn.impl_setReorderable(false);
131162
this.workTableTreeView.getColumns().add(timeSumColumn);
132163

133164
final TreeTableColumn<TableRow, Button> buttonColumn = new TreeTableColumn<>();
134165
buttonColumn.setCellValueFactory(new TreeItemPropertyValueFactory<TableRow, Button>("buttonBox"));
135166
buttonColumn.setMinWidth(100);
136167
buttonColumn.setSortable(false);
168+
buttonColumn.impl_setReorderable(false);
137169
this.workTableTreeView.getColumns().add(buttonColumn);
138170

139171
workTableTreeView.setShowRoot(false);

src/main/java/de/doubleslash/keeptime/view/worktable/ProjectTableRow.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,9 @@ public HBox getButtonBox() {
3838
return buttonBox;
3939
}
4040

41+
@Override
42+
public boolean isUnderlined() {
43+
return project.isWork();
44+
}
45+
4146
}

src/main/java/de/doubleslash/keeptime/view/worktable/TableRow.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,6 @@ public interface TableRow {
1212

1313
public HBox getButtonBox();
1414

15+
public boolean isUnderlined();
16+
1517
}

src/main/java/de/doubleslash/keeptime/view/worktable/WorkTableRow.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,9 @@ public HBox getButtonBox() {
3636
return buttonBox;
3737
}
3838

39+
@Override
40+
public boolean isUnderlined() {
41+
return false;
42+
}
43+
3944
}

0 commit comments

Comments
 (0)