-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOknoZadania.java
executable file
·131 lines (104 loc) · 3.8 KB
/
OknoZadania.java
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
import java.awt.Point;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Klasa okna do wprowadzania zadania.
*
* @author Pawel Kaczanowski
* @version 1.0
*/
public class OknoZadania extends Window {
/**
* Pola tekstowe opis i termin wykonania.
*/
private TextBox opisBox, terminWykonaniaBox;
/**
* Przyciski dodaj i zamknij.
*/
private Button przyciskDodaj, przyciskZamknij;
/**
* Przechowuje wprowadzone zadanie.
*/
private Zadanie wprowadzoneZadanie;
/**
* Konstruktor klasy OknoZadania
*/
public OknoZadania() {
super("Nowe zadanie");
// stworzenie kontenera glownego
Container glownyKontener = new Container(new Point(1, 3));
// stworzenie pola opisu
opisBox = new TextBox(new Point(160, 60), "");
// stworzenie etykiety opisu
Label etykietaOpisu = new Label("Opis:");
// stworzenie kontenera opisu
Container kontenerOpis = new Container(new Point(2, 1));
//dodanie do kontenera
kontenerOpis.addComponent(etykietaOpisu);
kontenerOpis.addComponent(opisBox);
//dodanie kontenera opisu do kontenera glownego
glownyKontener.addComponent(kontenerOpis);
//stworzenie elementow GUI dla terminu wykonania
terminWykonaniaBox = new TextBox(new Point(100, 20), "");
terminWykonaniaBox.acceptOnly("0123456789-");
terminWykonaniaBox.setMaxLength(10);
Label etykietaTerminWykonania = new Label("Termin:");
//stworzenie kontenera dla terminu wykonania i dodanie obiektow
Container kontenerTermin = new Container(new Point(2, 1));
kontenerTermin.addComponent(etykietaTerminWykonania);
kontenerTermin.addComponent(terminWykonaniaBox);
glownyKontener.addComponent(kontenerTermin);
// stworzenie przyciskow
przyciskDodaj = new Button("Dodaj", new Point(50, 23));
przyciskZamknij = new Button("Zamknij", new Point(50, 23));
// stworzenie konetenra przyciskow
Container kontenerPrzyciskow = new Container(new Point(2, 1));
// dodanie przyciskow do kontenera
kontenerPrzyciskow.addComponent(przyciskDodaj);
kontenerPrzyciskow.addComponent(przyciskZamknij);
// dodanie kontenera przyciskow do glownego konenera
glownyKontener.addComponent(kontenerPrzyciskow);
// dodanie glownego kontenera do okna
addContainer(glownyKontener);
}
@Override
public void act() {
super.act();
if (przyciskZamknij.wasClicked()) {
//ukrycie okna
toggleShow();
}
if (przyciskDodaj.wasClicked()) {
//pobranie opisu
String opis = opisBox.getText();
//pobranie terminu wykonania
String terminWykonaniaNapis = terminWykonaniaBox.getText();
Date terminWykonania = wczytajTermin(terminWykonaniaNapis);
//przypisanie zadani
wprowadzoneZadanie = new Zadanie(opis, terminWykonania);
//ukrycie okna
toggleShow();
}
}
public Zadanie pobierzWprowadzoneZadanie() {
Zadanie temp = wprowadzoneZadanie;
wprowadzoneZadanie = null;
return temp;
}
/**
* Zamienia termin wykonania z napisu na date.
*/
private Date wczytajTermin(String data) {
//stworzenie parsera ze znanym juz nam formatem daty
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd");
try {
//jesli niepoprawne to wyrzuci ParseException
Date skonwertowanaData = parser.parse(data);
return skonwertowanaData;
// zlapanie bledu
} catch (Exception e) {
//jestli blad to zwracam aktualna date
return new Date();
}
}
}