6060import javafx .scene .control .DatePicker ;
6161import javafx .scene .control .Dialog ;
6262import javafx .scene .control .Label ;
63+ import javafx .scene .control .Tooltip ;
6364import javafx .scene .control .TreeItem ;
6465import javafx .scene .control .TreeTableCell ;
6566import javafx .scene .control .TreeTableColumn ;
7273import javafx .scene .layout .GridPane ;
7374import javafx .scene .layout .HBox ;
7475import javafx .scene .shape .Circle ;
75- import javafx .scene .text .Text ;
7676import javafx .stage .Stage ;
7777import javafx .util .Callback ;
7878
@@ -85,6 +85,8 @@ public class ReportController {
8585
8686 private static final String FX_BACKGROUND_COLOR_NOT_WORKED = "-fx-background-color: #BBBBBB;" ;
8787
88+ private static final String FX_BACKGROUND_COLOR_WORKED = "-fx-background-color: #00a5e1;" ;
89+
8890 private static final String EDIT_WORK_DIALOG_TITLE = "Edit work" ;
8991
9092 @ FXML
@@ -149,10 +151,10 @@ protected void updateItem(final TableRow item, final boolean empty) {
149151 setText (null );
150152 } else {
151153 final String notes = item .getNotes ();
152- final Text text = new Text (notes .isEmpty () ? EMPTY_NOTE : notes );
153- text . wrappingWidthProperty (). bind ( noteColumn . widthProperty (). subtract ( 35 ));
154- text . setUnderline ( item . isUnderlined ( ));
155- this .setGraphic (text );
154+ final Label label = new Label (notes .isEmpty () ? EMPTY_NOTE : notes );
155+ label . setUnderline ( item . isUnderlined ( ));
156+ label . setTooltip ( new Tooltip ( notes ));
157+ this .setGraphic (label );
156158 }
157159 }
158160 };
@@ -220,7 +222,7 @@ private void updateReport(final LocalDate dateToShow) {
220222 }
221223
222224 final HBox projectButtonBox = new HBox ();
223- projectButtonBox .getChildren ().add (createProjectReportButton (onlyCurrentProjectWork ));
225+ projectButtonBox .getChildren ().add (createCopyProjectButton (onlyCurrentProjectWork ));
224226
225227 final Circle circle = new Circle (6 , project .getColor ());
226228
@@ -229,6 +231,7 @@ private void updateReport(final LocalDate dateToShow) {
229231
230232 for (final Work w : onlyCurrentProjectWork ) {
231233 final HBox workButtonBox = new HBox (5.0 );
234+ workButtonBox .getChildren ().add (createCopyWorkButton (w ));
232235 workButtonBox .getChildren ().add (createEditWorkButton (w ));
233236 workButtonBox .getChildren ().add (createDeleteWorkButton (w ));
234237 final TreeItem <TableRow > workRow = new TreeItem <>(new WorkTableRow (w , workButtonBox ));
@@ -264,6 +267,9 @@ public void updateItem(final LocalDate item, final boolean empty) {
264267 if (model .getWorkRepository ().findByStartDateOrderByStartTimeAsc (item ).isEmpty ()) {
265268 setDisable (true );
266269 setStyle (FX_BACKGROUND_COLOR_NOT_WORKED );
270+ } else {
271+ setDisable (false );
272+ setStyle (FX_BACKGROUND_COLOR_WORKED );
267273 }
268274 }
269275
@@ -349,8 +355,8 @@ private GridPane setUpEditWorkGridPane(final Work work, final Dialog<Work> dialo
349355 return grid ;
350356 }
351357
352- private Button createProjectReportButton (final List <Work > projectWork ) {
353- final Button bProjectReport = new Button ("" , new FontAwesomeIconView (FontAwesomeIcon .CLIPBOARD ));
358+ private Button createCopyProjectButton (final List <Work > projectWork ) {
359+ final Button copyButton = new Button ("" , new FontAwesomeIconView (FontAwesomeIcon .CLIPBOARD ));
354360 final EventHandler <ActionEvent > eventListener = actionEvent -> {
355361 LOG .debug ("Copy to Clipboard clicked." );
356362 final ProjectReport pr = new ProjectReport (projectWork .size ());
@@ -365,9 +371,22 @@ private Button createProjectReportButton(final List<Work> projectWork) {
365371 clipboard .setContent (content );
366372 };
367373
368- bProjectReport .setOnAction (eventListener );
369- return bProjectReport ;
374+ copyButton .setOnAction (eventListener );
375+ return copyButton ;
376+ }
377+
378+ private Node createCopyWorkButton (final Work w ) {
379+ final Button copyButton = new Button ("" , new FontAwesomeIconView (FontAwesomeIcon .CLIPBOARD ));
380+ final EventHandler <ActionEvent > eventListener = actionEvent -> {
381+ LOG .debug ("Copy to Clipboard clicked." );
382+ final Clipboard clipboard = Clipboard .getSystemClipboard ();
383+ final ClipboardContent content = new ClipboardContent ();
384+ content .putString (w .getNotes ());
385+ clipboard .setContent (content );
386+ };
370387
388+ copyButton .setOnAction (eventListener );
389+ return copyButton ;
371390 }
372391
373392 public void update () {
0 commit comments