Skip to content

Commit 98deeba

Browse files
author
Wolfram Lutz
committed
#21: Introduced 'Copy to clipboard' button.
1 parent e97870f commit 98deeba

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

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

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,24 @@
1212

1313
import com.sun.javafx.scene.control.skin.DatePickerSkin;
1414

15+
import antlr.debug.Event;
1516
import de.doubleslash.keeptime.common.DateFormatter;
1617
import de.doubleslash.keeptime.controller.Controller;
1718
import de.doubleslash.keeptime.model.Model;
1819
import de.doubleslash.keeptime.model.Project;
1920
import de.doubleslash.keeptime.model.Work;
21+
import javafx.event.ActionEvent;
22+
import javafx.event.EventHandler;
2023
import javafx.fxml.FXML;
2124
import javafx.scene.Node;
2225
import javafx.scene.control.Button;
2326
import javafx.scene.control.DateCell;
2427
import javafx.scene.control.DatePicker;
2528
import javafx.scene.control.Label;
2629
import javafx.scene.control.TextArea;
30+
import javafx.scene.input.Clipboard;
31+
import javafx.scene.input.ClipboardContent;
32+
import javafx.scene.input.MouseEvent;
2733
import javafx.scene.control.ScrollPane;
2834
import javafx.scene.layout.BorderPane;
2935
import javafx.scene.layout.GridPane;
@@ -109,11 +115,15 @@ private void updateReport(final LocalDate newvalue) {
109115
this.gridPane.add(workedTimeLabel, 2, rowIndex);
110116

111117
// text will be set later
118+
/*
112119
final TextArea textArea = new TextArea();
113120
textArea.setMaxHeight(20);
114121
textArea.setFont(Font.font("System", FontWeight.NORMAL, 15));
115122
textArea.setWrapText(true);
116123
this.gridPane.add(textArea, 1, rowIndex);
124+
*/
125+
final Button bProjectReport = createProjectReport();
126+
this.gridPane.add(bProjectReport, 1, rowIndex);
117127

118128
rowIndex++;
119129

@@ -142,14 +152,37 @@ private void updateReport(final LocalDate newvalue) {
142152

143153
rowIndex++;
144154
}
145-
textArea.setText(pr.getNotes(true));
155+
// textArea.setText(pr.getNotes(true));
156+
bProjectReport.setUserData(pr.getNotes(true));
146157
}
147158
this.scrollPane.setVvalue(0); // scroll to the top
148159

149160
this.currentDayTimeLabel.setText(DateFormatter.secondsToHHMMSS(currentSeconds));
150161
this.currentDayWorkTimeLabel.setText(DateFormatter.secondsToHHMMSS(currentWorkSeconds));
151162
}
152163

164+
private Button createProjectReport() {
165+
final Button bProjectReport = new Button("Copy to clipboard");
166+
final EventHandler<ActionEvent> eventListener = new EventHandler<ActionEvent>() {
167+
168+
@Override
169+
public void handle(final ActionEvent event) {
170+
final Object source = event.getSource();
171+
final Button btn = (Button) source;
172+
final Object userData = btn.getUserData();
173+
final String notes = (String) userData;
174+
175+
final Clipboard clipboard = Clipboard.getSystemClipboard();
176+
final ClipboardContent content = new ClipboardContent();
177+
content.putString(notes);
178+
clipboard.setContent(content);
179+
}
180+
181+
};
182+
bProjectReport.setOnAction(eventListener);
183+
return bProjectReport;
184+
}
185+
153186
public void setModelAndController(final Model model, final Controller controller) {
154187
this.model = model;
155188
this.controller = controller;

0 commit comments

Comments
 (0)