-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAddNoteForm.java
More file actions
111 lines (95 loc) · 2.97 KB
/
Copy pathAddNoteForm.java
File metadata and controls
111 lines (95 loc) · 2.97 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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import java.util.Calendar;
import javax.microedition.lcdui.Choice;
import javax.microedition.lcdui.ChoiceGroup;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.DateField;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Gauge;
import javax.microedition.lcdui.TextField;
public class AddNoteForm extends Form implements CommandListener {
private Command save;
private Command cancel;
private Display display;
private Displayable backDisplay;
private ListUpdateListener callback;
private ChoiceGroup categoryField;
private DateField dateField;
private Gauge priorityField;
private TextField titleField;
private TextField contentField;
public AddNoteForm(ListUpdateListener callback, Displayable backDisplay) {
super("Add note");
this.backDisplay = backDisplay;
this.callback = callback;
display = MainMidlet.getDisplay();
setupCommands();
setupFields();
}
public void commandAction(Command c, Displayable d) {
if(c == save)
saveNote();
else if (c == cancel)
closeForm();
}
private void saveNote() {
saveNoteToDB();
closeForm();
cleanFields();
}
private void closeForm() {
display.setCurrent(backDisplay);
}
private void saveNoteToDB() {
Note note = createNote();
if(note!=null) {
byte[] record = ByteUtils.toByteArray(note);
RecordStoreManager.getInstance().saveRecord(record);
callback.onListUpdate(note);
}
}
private Note createNote() {
String title = titleField.getString();
if(title.equals(""))
return null;
long dateInMilis = getDateInMilis();
return new Note(
title,
contentField.getString(),
dateInMilis,
priorityField.getValue(),
Category.toCategory(categoryField.getString(categoryField.getSelectedIndex())));
}
private long getDateInMilis() {
long dateInMilis = dateField.getDate() == null ? Calendar.getInstance().getTime().getTime() : dateField.getDate().getTime();
return dateInMilis;
}
private void setupCommands(){
save = new Command("Save", Command.BACK, 1);
cancel = new Command("Cancel", Command.CANCEL, 1);
this.addCommand(save);
this.addCommand(cancel);
this.setCommandListener(this);
}
private void setupFields() {
titleField = new TextField("Title", "", 32, TextField.ANY);
contentField = new TextField("Content", "", 128, TextField.ANY);
dateField = new DateField("Date", DateField.DATE);
categoryField = new ChoiceGroup("Category", Choice.EXCLUSIVE, Category.elements, null);
priorityField = new Gauge("Priority", true, 10, 5);
this.append(titleField);
this.append(contentField);
this.append(dateField);
this.append(categoryField);
this.append(priorityField);
}
private void cleanFields() {
titleField.setString("");
contentField.setString("");
dateField.setDate(Calendar.getInstance().getTime());
categoryField.setSelectedIndex(0, true);
priorityField.setValue(5);
}
}