-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathTaskLogUI.java
More file actions
83 lines (78 loc) · 1.8 KB
/
Copy pathTaskLogUI.java
File metadata and controls
83 lines (78 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package javaforce.webui.tasks;
import java.util.*;
import javaforce.webui.*;
/** Task Log UI Panel
*
* @author pquiring
*/
public class TaskLogUI extends Panel {
private TaskLog log;
private ScrollPanel rows;
private int year;
private int month;
private Label period;
public TaskLogUI(TaskLog log) {
this.log = log;
//add controls
Row row;
row = new Row();
row.add(new Label("Tasks Log"));
Button prev = new Button("<");
row.add(prev);
period = new Label("YYYY-MM");
row.add(period);
Button next = new Button(">");
row.add(next);
Button refresh = new Button("Refresh");
row.add(refresh);
this.add(row);
//add panel for TaskUI rows
rows = new ScrollPanel();
this.add(rows);
prev.addClickListener((e, c) -> {
if (year == 0) return;
month--;
if (month == 0) {
year--;
month = 12;
}
reload();
});
next.addClickListener((e, c) -> {
if (year == 0) return;
month++;
if (month == 13) {
year++;
month = 1;
}
reload();
});
refresh.addClickListener((e, c) -> {
if (year == 0) return;
reload();
});
Calendar now = Calendar.getInstance();
year = now.get(Calendar.YEAR);
month = now.get(Calendar.MONTH) + 1;
reload();
}
private void reload() {
period.setText(String.format("%d-%02d", year, month));
TaskEvent[] events = log.getEvents(year, month);
rows.removeAll();
if (events.length == 0) {
Row row = new Row();
row.add(new Label("No tasks found"));
rows.add(row);
} else {
addTasks(events);
}
}
private void addTasks(TaskEvent[] events) {
for(TaskEvent event : events) {
TaskUI ui = new TaskUI(event);
ui.update(event);
rows.add(ui);
}
}
}