author | viric@mandarina |
Sun, 14 Jan 2007 20:05:40 +0100 | |
changeset 10 | 757b42639637 |
parent 9 | 9f8e342f193e |
child 12 | 3932322b7d83 |
permissions | -rw-r--r-- |
0 | 1 |
package horaris; |
2 |
||
3 |
import ogdl.*; |
|
4 |
||
5 |
import javax.microedition.lcdui.*; |
|
6 |
import java.util.Vector; |
|
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
7 |
import java.util.Hashtable; |
0 | 8 |
import java.lang.Exception; |
9 |
||
5 | 10 |
public class HoraroTransporta |
11 |
implements CommandListener, ItemStateListener, Ekrano |
|
0 | 12 |
{ |
13 |
private Graph radiko; |
|
14 |
private Graph tagoj; |
|
15 |
private Graph direktoj; |
|
16 |
private Graph lokoj; |
|
17 |
private Graph sencoj; |
|
18 |
||
19 |
private Form myform; |
|
20 |
private ChoiceGroup ftagoj; |
|
21 |
private ChoiceGroup fsenco; |
|
22 |
private ChoiceGroup fkomenco; |
|
23 |
private ChoiceGroup ffino; |
|
24 |
private Command cmd_sercxi; |
|
25 |
private Command cmd_malantauxen; |
|
5 | 26 |
|
27 |
private Ekrano last; |
|
0 | 28 |
|
29 |
private TimeList mytimelist; |
|
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
30 |
|
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
31 |
private Vector temporezulto; |
8 | 32 |
private Vector tmpTempoj; |
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
33 |
private Hashtable inforezulto; |
0 | 34 |
|
35 |
||
5 | 36 |
public HoraroTransporta(Graph _radiko, Ekrano _last) throws Exception |
0 | 37 |
{ |
38 |
radiko = _radiko; |
|
5 | 39 |
last = _last; |
0 | 40 |
|
41 |
tagoj = radiko.getNode("Dies"); |
|
42 |
lokoj = radiko.getNode("Llocs"); |
|
43 |
sencoj = radiko.getNode("Sentits"); |
|
44 |
||
45 |
myform = new Form("Cerca"); |
|
46 |
||
47 |
/* Items */ |
|
48 |
ftagoj = new ChoiceGroup("Dia", ChoiceGroup.MULTIPLE); |
|
49 |
addTagoj(ftagoj); |
|
50 |
myform.append(ftagoj); |
|
4
f92e04d4bfe5
Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents:
2
diff
changeset
|
51 |
defaultTagoj(); |
0 | 52 |
|
53 |
fsenco = new ChoiceGroup("Sentit", ChoiceGroup.EXCLUSIVE); |
|
54 |
addSencoj(fsenco); |
|
55 |
myform.append(fsenco); |
|
56 |
||
9
9f8e342f193e
Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents:
8
diff
changeset
|
57 |
fkomenco = new ChoiceGroup("Origen", ChoiceGroup.EXCLUSIVE); |
0 | 58 |
addLokoj(fkomenco); |
59 |
myform.append(fkomenco); |
|
60 |
||
9
9f8e342f193e
Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents:
8
diff
changeset
|
61 |
ffino = new ChoiceGroup("DestÃ", ChoiceGroup.EXCLUSIVE); |
0 | 62 |
addLokoj(ffino); |
63 |
myform.append(ffino); |
|
64 |
||
2 | 65 |
defaultKomencoFino(); |
66 |
||
0 | 67 |
/* Commands */ |
68 |
cmd_sercxi = new Command("Buscar", Command.OK, 0); |
|
69 |
cmd_malantauxen = new Command("Enrera", Command.BACK, 0); |
|
70 |
myform.addCommand(cmd_sercxi); |
|
71 |
myform.addCommand(cmd_malantauxen); |
|
72 |
myform.setCommandListener(this); |
|
73 |
myform.setItemStateListener(this); |
|
10 | 74 |
|
75 |
show(); |
|
76 |
} |
|
77 |
||
78 |
public void show() |
|
79 |
{ |
|
80 |
mytimelist = null; |
|
5 | 81 |
Main.display.setCurrent(myform); |
0 | 82 |
} |
83 |
||
84 |
private void addTagoj(ChoiceGroup g) |
|
85 |
{ |
|
86 |
for (int i=0; i < tagoj.size(); i++) |
|
87 |
g.append(tagoj.get(i).getName(), null); |
|
88 |
} |
|
89 |
||
90 |
private void addSencoj(ChoiceGroup g) { |
|
91 |
||
92 |
for (int i=0; i < sencoj.size(); i++) |
|
93 |
g.append(sencoj.get(i).getName(), null); |
|
94 |
} |
|
95 |
||
96 |
private void addLokoj(ChoiceGroup g) { |
|
97 |
||
98 |
for (int i=0; i < lokoj.size(); i++) |
|
99 |
g.append(lokoj.get(i).getName(), null); |
|
100 |
} |
|
101 |
||
102 |
private boolean inVector(Vector v, String s) |
|
103 |
{ |
|
104 |
for (int i=0; i < v.size(); i++) |
|
105 |
if(s.equals((String)v.elementAt(i))) |
|
106 |
return true; |
|
107 |
return false; |
|
108 |
} |
|
109 |
||
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
110 |
private void sercxiTempojn(Vector tagoj, String senco, |
0 | 111 |
String komenco, String fino) |
112 |
{ |
|
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
113 |
temporezulto = new Vector(); |
8 | 114 |
tmpTempoj = new Vector(); |
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
115 |
inforezulto = new Hashtable(); |
0 | 116 |
|
117 |
for (int i=0; i < radiko.size(); i++) |
|
118 |
{ |
|
119 |
if (! radiko.get(i).getName().equals("Comboi")) |
|
120 |
continue; |
|
121 |
||
122 |
Graph veturo = radiko.get(i); |
|
123 |
Graph gtmp; |
|
124 |
boolean bona; |
|
125 |
||
126 |
String elirtempo = null, alventempo = null; |
|
127 |
||
128 |
/* Dies */ |
|
129 |
gtmp = veturo.getNode("Dies"); |
|
130 |
bona = false; |
|
131 |
for(int j=0; j < gtmp.size(); j++) |
|
132 |
{ |
|
133 |
if (inVector(tagoj, gtmp.get(j).getName()) ) |
|
134 |
bona = true; |
|
135 |
} |
|
136 |
if (bona != true) |
|
137 |
continue; |
|
138 |
||
139 |
/* Sentits */ |
|
140 |
gtmp = veturo.getNode("Sentit"); |
|
141 |
bona = false; |
|
142 |
for(int j=0; j < gtmp.size(); j++) |
|
143 |
{ |
|
144 |
if (senco.equals(gtmp.get(j).getName())) |
|
145 |
bona = true; |
|
146 |
} |
|
147 |
if (bona != true) |
|
148 |
continue; |
|
149 |
||
150 |
/* Komenco kaj Fino */ |
|
151 |
gtmp = veturo.getNode("Hores"); |
|
152 |
for(int j=0; j < gtmp.size(); j++) |
|
153 |
{ |
|
154 |
String stacio = gtmp.get(j).get(0).getName(); |
|
155 |
||
156 |
if (stacio.equals(komenco)) |
|
157 |
{ |
|
158 |
elirtempo = gtmp.get(j).getName(); |
|
159 |
} |
|
160 |
else if (stacio.equals(fino)) |
|
161 |
{ |
|
162 |
alventempo = gtmp.get(j).getName(); |
|
163 |
} |
|
164 |
} |
|
165 |
if (elirtempo == null || alventempo == null) |
|
166 |
continue; |
|
167 |
||
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
168 |
/* Krei la informon aldonan */ |
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
169 |
gtmp = veturo.getNode("Comentari"); |
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
170 |
Vector comments = new Vector(); |
9
9f8e342f193e
Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents:
8
diff
changeset
|
171 |
if (gtmp != null) |
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
172 |
{ |
9
9f8e342f193e
Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents:
8
diff
changeset
|
173 |
for (int j = 0; j < gtmp.size(); j++) |
9f8e342f193e
Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents:
8
diff
changeset
|
174 |
{ |
9f8e342f193e
Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents:
8
diff
changeset
|
175 |
comments.addElement(gtmp.get(j).getName()); |
9f8e342f193e
Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents:
8
diff
changeset
|
176 |
} |
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
177 |
} |
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
178 |
|
0 | 179 |
/* Trovita! */ |
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
180 |
addSortedTime(elirtempo, alventempo, comments); |
0 | 181 |
} |
9
9f8e342f193e
Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents:
8
diff
changeset
|
182 |
|
9f8e342f193e
Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents:
8
diff
changeset
|
183 |
/* Free memory */ |
9f8e342f193e
Moving from MIDP2/CLDC1.1 to MIDP1/CLDC1.0. Added About windows.
viric@mandarina
parents:
8
diff
changeset
|
184 |
tmpTempoj = null; |
0 | 185 |
} |
2 | 186 |
|
187 |
private Tempo str2Tempo(String s) |
|
188 |
{ |
|
189 |
int i = s.indexOf('-'); |
|
190 |
return new Tempo(s.substring(0,i)); |
|
191 |
} |
|
192 |
||
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
193 |
private void addSortedTime(String eliro, String alveno, Vector comments) |
2 | 194 |
{ |
195 |
Tempo teliro = new Tempo(eliro); |
|
196 |
boolean set = false; |
|
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
197 |
|
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
198 |
String montro = eliro + "-" + alveno; |
2 | 199 |
|
8 | 200 |
for(int i=0; i< tmpTempoj.size(); i++) |
2 | 201 |
{ |
202 |
Tempo tmp; |
|
8 | 203 |
tmp = (Tempo) tmpTempoj.elementAt(i); |
2 | 204 |
if (tmp.compareTo(teliro) > 0) |
205 |
{ |
|
206 |
set = true; |
|
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
207 |
temporezulto.insertElementAt(montro, i); |
8 | 208 |
tmpTempoj.insertElementAt(teliro, i); |
2 | 209 |
break; |
210 |
} |
|
211 |
} |
|
212 |
if (set == false) |
|
213 |
{ |
|
8 | 214 |
temporezulto.addElement(montro); |
215 |
tmpTempoj.addElement(teliro); |
|
2 | 216 |
} |
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
217 |
inforezulto.put(montro, comments); |
2 | 218 |
} |
0 | 219 |
|
220 |
public void commandAction(Command c, Displayable d) |
|
221 |
{ |
|
222 |
||
223 |
if (c == cmd_sercxi) |
|
224 |
{ |
|
225 |
Vector tagoj = new Vector(); |
|
226 |
for (int i = 0; i < ftagoj.size(); i++) |
|
227 |
{ |
|
228 |
if (ftagoj.isSelected(i)) |
|
229 |
tagoj.addElement(ftagoj.getString(i)); |
|
230 |
} |
|
231 |
String senco = |
|
232 |
fsenco.getString(fsenco.getSelectedIndex()); |
|
233 |
String komenco = |
|
234 |
fkomenco.getString(fkomenco.getSelectedIndex()); |
|
235 |
String fino = |
|
236 |
ffino.getString(ffino.getSelectedIndex()); |
|
237 |
||
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
238 |
/* Donos rezulton en temporezulto kaj inforezulto */ |
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
239 |
sercxiTempojn(tagoj, senco, komenco, fino); |
0 | 240 |
|
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
241 |
if (temporezulto.size() > 0) |
0 | 242 |
{ |
7
19f4a2b1a4b9
Added option for showing comments for each Convoy.
viric@mandarina
parents:
5
diff
changeset
|
243 |
mytimelist = new TimeList(temporezulto, inforezulto, this); |
0 | 244 |
mytimelist.show(); |
245 |
} |
|
246 |
} else if (c == cmd_malantauxen) |
|
247 |
{ |
|
5 | 248 |
last.show(); |
0 | 249 |
} |
250 |
} |
|
251 |
||
4
f92e04d4bfe5
Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents:
2
diff
changeset
|
252 |
private void defaultTagoj() |
f92e04d4bfe5
Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents:
2
diff
changeset
|
253 |
{ |
f92e04d4bfe5
Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents:
2
diff
changeset
|
254 |
for (int i = 0; i < ftagoj.size(); i++) |
f92e04d4bfe5
Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents:
2
diff
changeset
|
255 |
{ |
f92e04d4bfe5
Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents:
2
diff
changeset
|
256 |
if (tagoj.getNode(ftagoj.getString(i)).get(0) != null) |
f92e04d4bfe5
Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents:
2
diff
changeset
|
257 |
ftagoj.setSelectedIndex(i, true); |
f92e04d4bfe5
Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents:
2
diff
changeset
|
258 |
else |
f92e04d4bfe5
Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents:
2
diff
changeset
|
259 |
ftagoj.setSelectedIndex(i, false); |
f92e04d4bfe5
Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents:
2
diff
changeset
|
260 |
} |
f92e04d4bfe5
Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents:
2
diff
changeset
|
261 |
} |
f92e04d4bfe5
Default Tagoj. Implicit Main List. Less println.
viric@llimona
parents:
2
diff
changeset
|
262 |
|
2 | 263 |
private void defaultKomencoFino() |
264 |
{ |
|
265 |
String elektita; |
|
266 |
elektita = fsenco.getString(fsenco.getSelectedIndex()); |
|
267 |
||
268 |
Graph komenco; |
|
269 |
komenco = sencoj.getNode(elektita).get(0); |
|
270 |
if (komenco == null) |
|
271 |
return; |
|
272 |
||
273 |
for (int i = 0; i < fkomenco.size(); i++) |
|
274 |
if (fkomenco.getString(i).equals(komenco.getName())) |
|
275 |
fkomenco.setSelectedIndex(i, true); |
|
276 |
||
277 |
Graph fino; |
|
278 |
fino = sencoj.getNode(elektita).get(1); |
|
279 |
if (fino == null) |
|
280 |
return; |
|
281 |
||
282 |
for (int i = 0; i < ffino.size(); i++) |
|
283 |
if (ffino.getString(i).equals(fino.getName())) |
|
284 |
ffino.setSelectedIndex(i, true); |
|
285 |
} |
|
286 |
||
0 | 287 |
public void itemStateChanged(Item item) |
288 |
{ |
|
2 | 289 |
if (item == fsenco) |
290 |
{ |
|
291 |
defaultKomencoFino(); |
|
292 |
} |
|
0 | 293 |
} |
294 |
} |