1 package kalenteriswing;
2
3 import java.util.ArrayList;
4 import java.util.Collection;
5
6 import kalenteri.Harjoitukset;
7 import kalenteri.Harjoitus;
8 import kalenteri.PvmTarkistus;
9 import kalenteri.Relaatio;
10 import kalenteri.Relaatiot;
11 import kalenteri.Sisallot;
12 import kalenteri.Sisalto;
13 import fi.jyu.mit.ohj2.Mjonot;
14
15
19 public class Kalenteri {
20
21
22 private final static String sisaltoTiedNimi = "SisaltoLista.txt";
23 private static Sisallot sisallot = new Sisallot(sisaltoTiedNimi);
24
25 private Relaatiot relaatiot;
26 private Harjoitukset harjoitukset;
27 private Collection<String> harjoituksenSisallot = new ArrayList<String>();
28 private int[] harjoituksenSisallotId;
29 private Harjoitus h;
30
31
34 public String loginName = "";
35
36
37
40 public Kalenteri() {
41 harjoitukset = new Harjoitukset();
42 relaatiot = new Relaatiot();
43 }
44
45
46
50 public String getHarjAloitusaika(int id) {
51 return harjoitukset.getHarjAloitusaika(id);
52 }
53
57 public String getHarjLopetusaika(int id) {
58 return harjoitukset.getHarjLopetusaika(id);
59 }
60
64 public String getPaikkakunta(int id) {
65 return harjoitukset.getPaikkakunta(id);
66 }
67
71 public String getSeura(int id) {
72 return harjoitukset.getSeura(id);
73 }
74
78 public String getOpettaja(int id) {
79 return harjoitukset.getOpettaja(id);
80 }
81
85 public String getLisatieto(int id) {
86 return harjoitukset.getLisatieto(id);
87 }
88
91 public void setHarjAlkuaika(String text) {
92 h.setAloitusaika(text);
93 }
94
97 public void setHarjLoppuaika(String text) {
98 h.setLopetusaika(text);
99 }
100
103 public void setPaikkakunta(String text) {
104 h.setPaikka(text);
105 }
106
109 public void setSeura(String text) {
110 h.setSeura(text);
111 }
112
115 public void setOpettaja(String text) {
116 h.setOpettaja(text);
117 }
118
121 public void setLisatieto(String text) {
122 h.setLisatieto(text);
123 }
124
125
126
131 public Harjoitus naytaHarjoitus(int ind) {
132 h = harjoitukset.naytaHarjoitus(ind);
133 return h;
134 }
135
138 public void uusiHarjoitus(String pvm) {
139 h = new Harjoitus(pvm);
140 harjoitukset.lisaa(h);
141 relaatiot.lisaa(h.getId());
142 }
143
146 public void poistaHarjoitus(int id) {
147 harjoitukset.poistaHarjoitus(id);
148 }
149
152 public void lisaaSisalto(String uusiSis) {
153 sisallot.lisaaUusiSisalto(uusiSis);
154 sisallot.tallennaTiedostoon(sisaltoTiedNimi);
155 }
156
159 public void poistaSisalto(int selectedIndex) {
160 if (selectedIndex != -1) {
161 sisallot.poista(selectedIndex);
163 sisallot.tallennaTiedostoon(sisaltoTiedNimi);
164 }
165 }
166
167
168
171 public void lueTiedostosta(String tiedostonNimi) {
172 harjoitukset.lueTiedostosta(tiedostonNimi);
173 relaatiot.lueTiedostosta(tiedostonNimi);
174 }
175
178 public void kirjoitaTiedostoon(String fileName) {
179 harjoitukset.kirjoitaTiedostoon(fileName);
180 relaatiot.tallennaSisRelaatioon(h.getId(), getHarjoituksenSisallotId());
181 relaatiot.kirjoitaTiedostoon(harjoitukset, fileName);
182 }
183
184
185
186
190 public Harjoitus setValittuHarjoitus(int selectedIndex) {
191 this.h = harjoitukset.naytaHarjoitus(selectedIndex);
192 harjoituksenSisallotId = relaatiot.getHarjoituksenSisallot(h.getId());
193 harjoituksenSisallot = sisallot.getSisallot(harjoituksenSisallotId);
194 return h;
195 }
196
197
201 @SuppressWarnings("unused")
202 public Object[] getHarjoituksenSisallot(int selectedIndex) {
203 return harjoituksenSisallot.toArray();
204 }
205
206
209 public void lisaaHarjoituksenSisallot(int selectedIndex) {
210 if (selectedIndex != -1) {
211 relaatiot.tallennaUusiSisaltoRelaatioon(h.getId(),sisallot.getIdAtSelectedIndex(selectedIndex));
212 harjoituksenSisallotId = relaatiot.getHarjoituksenSisallot(h.getId());
213 harjoituksenSisallot = sisallot.getSisallot(harjoituksenSisallotId);
214 }
215 }
216
217
220 public void poistaHarjoituksenSisallot(String selectedValue) {
221 relaatiot.poistaValittuSisaltoRelaatiosta(h.getId(),sisallot.getId(selectedValue));
222 harjoituksenSisallotId = relaatiot.getHarjoituksenSisallot(h.getId());
223 harjoituksenSisallot = sisallot.getSisallot(harjoituksenSisallotId);
224 }
225
226
229 public int[] getHarjoituksenSisallotId() {
230 return harjoituksenSisallotId;
231 }
232
233
234
235
240 public boolean tarkistaPvm(String pvmSyote) {
241 if (pvmSyote == null)
242 return false;
243 StringBuffer sb = new StringBuffer(pvmSyote);
244 try {
245 int p = Integer.parseInt(Mjonot.erota(sb, '.'));
246 int k = Integer.parseInt(Mjonot.erota(sb, '.'));
247 int v = Integer.parseInt(Mjonot.erota(sb, '.'));
248 return PvmTarkistus.tarkistaPvm(p, k, v);
249 } catch (NumberFormatException ex) {
250 return false;
251 }
252 }
253
254
255
256
259 public String[] getHarjoitukset() {
260 return harjoitukset.toPvmStringTaulu();
261 }
262
263
267 public Sisalto[] SisallotToString() {
268 return sisallot.toStringTaulu();
269 }
270
271
272
273
278 public String tulosta(int selectedIndex) {
279 String tulostus = "";
280 tulostus += harjoitukset.tulosta(selectedIndex);
281 if (selectedIndex != -1) {
282 tulostus += "Harjoituksen Sisällöt:\n";
283 for (Object temp: getHarjoituksenSisallot(selectedIndex))
284 tulostus += (String) temp + "\n";
285 tulostus += "===" + "\n";
286 tulostus += "Lisätiedot:\n"+h.getLisatieto()
287 +"\n<=== end harjoitus ===>\n";
288 }
289 return tulostus;
290 }
291
292
293
294
298 public Object[] search(String hakusana) {
299 int pituus = hakusana.length();
300 String[] temp = getHarjoitukset();
301 Collection<String> haettuPvmLista = new ArrayList<String>();
302 for (String s : temp) {
303 for (int i=0;i<s.length();i++) {
304 if (i + pituus > s.length())
305 break;
306 if (s.substring(i, i+pituus).equals(hakusana)) {
307 boolean onkoDuplikaattia = false;
308 for (String t : haettuPvmLista) {
309 if (t.equals(s))
310 onkoDuplikaattia = true;
311 }
312 if (!onkoDuplikaattia)
313 haettuPvmLista.add(s);
314 }
315 }
316 }
317 return haettuPvmLista.toArray();
318 }
319
320
321
322
372 public static void main(String[] args) {
373 Harjoitukset har = new Harjoitukset();
374 Harjoitus a = new Harjoitus();
375 Harjoitus b = new Harjoitus();
376
377 har.lisaa(a);
378 har.lisaa(b);
379 har.toString();
380
381 Relaatiot rel = new Relaatiot();
382 Relaatio s = new Relaatio(a.getId());
383 Relaatio q = new Relaatio(b.getId());
384 s.lisaa(1);
385 s.lisaa(4);
386 q.lisaa(51);
387 q.lisaa(32);
388 q.lisaa(8);
389
390 rel.lisaa(s);
391 rel.lisaa(q);
392 System.out.println(rel.toString());
393
394 Sisallot sis = new Sisallot("");
395 Sisalto i = new Sisalto("Aú");
396 Sisalto j = new Sisalto("Martello");
397 Sisalto k = new Sisalto("Negativa");
398 Sisalto l = new Sisalto("Rabo-de-arraya");
399
400 sis.lisaa(i);
401 sis.lisaa(j);
402 sis.lisaa(k);
403 sis.lisaa(l);
404
405 System.out.println(sis.toString());
406
407 l.setSisallonNimi("Rabo-de-arraia");
408
409 System.out.println(sis.toString());
410 }
411
412
413 }
414