source: osm/applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/MarkLat.java@ 24885

Last change on this file since 24885 was 24885, checked in by malcolmh, 14 years ago

save

File size: 13.1 KB
Line 
1package oseam.seamarks;
2
3import java.util.Map;
4
5import javax.swing.ImageIcon;
6
7import org.openstreetmap.josm.Main;
8import org.openstreetmap.josm.command.ChangePropertyCommand;
9
10import oseam.dialogs.OSeaMAction;
11import oseam.seamarks.SeaMark.Col;
12
13public class MarkLat extends SeaMark {
14 public MarkLat(OSeaMAction dia) {
15 super(dia);
16 }
17
18 public void parseMark() {
19
20 String str;
21 Map<String, String> keys;
22 keys = dlg.node.getKeys();
23
24 if (!dlg.panelMain.chanButton.isSelected())
25 dlg.panelMain.chanButton.doClick();
26
27 if (keys.containsKey("name"))
28 setName(keys.get("name"));
29
30 if (keys.containsKey("seamark:name"))
31 setName(keys.get("seamark:name"));
32
33 if (keys.containsKey("seamark:buoy_lateral:name"))
34 setName(keys.get("seamark:buoy_lateral:name"));
35 else if (keys.containsKey("seamark:beacon_lateral:name"))
36 setName(keys.get("seamark:beacon_lateral:name"));
37 else if (keys.containsKey("seamark:light_float:name"))
38 setName(keys.get("seamark:light_float:name"));
39
40 String cat = "";
41 String col = "";
42 String top = "";
43
44 if (keys.containsKey("seamark:buoy_lateral:category"))
45 cat = keys.get("seamark:buoy_lateral:category");
46 else if (keys.containsKey("seamark:beacon_lateral:category"))
47 cat = keys.get("seamark:beacon_lateral:category");
48
49 if (keys.containsKey("seamark:buoy_lateral:colour"))
50 col = keys.get("seamark:buoy_lateral:colour");
51 else if (keys.containsKey("seamark:beacon_lateral:colour"))
52 col = keys.get("seamark:beacon_lateral:colour");
53 else if (keys.containsKey("seamark:light_float:colour"))
54 col = keys.get("seamark:light_float:colour");
55
56 if (getShape() != Shp.PERCH) {
57 if (keys.containsKey("seamark:topmark:shape")) {
58 top = keys.get("seamark:topmark:shape");
59 // setTopMark(true);
60 }
61 if (keys.containsKey("seamark:topmark:colour")) {
62 if (col.isEmpty())
63 col = keys.get("seamark:topmark:colour");
64 // setTopMark(true);
65 }
66 }
67
68 if (col.isEmpty()) {
69 if (keys.containsKey("seamark:light:colour"))
70 col = keys.get("seamark:light:colour");
71 }
72
73 /*
74 * if (cat.isEmpty()) { if (col.equals("red")) { setColour(RED); if
75 * (top.equals("cylinder")) { setBuoyIndex(PORT_HAND); setRegion(IALA_A); }
76 * else if (top.equals("cone, point up")) { setBuoyIndex(STARBOARD_HAND);
77 * setRegion(IALA_B); } else { if (getRegion() == IALA_A)
78 * setBuoyIndex(PORT_HAND); else setBuoyIndex(STARBOARD_HAND); } } else if
79 * (col.equals("green")) { setColour(GREEN); if
80 * (top.equals("cone, point up")) { setBuoyIndex(STARBOARD_HAND);
81 * setRegion(IALA_A); } else if (top.equals("cylinder")) {
82 * setBuoyIndex(PORT_HAND); setRegion(IALA_B); } else { if (getRegion() ==
83 * IALA_A) setBuoyIndex(STARBOARD_HAND); else setBuoyIndex(PORT_HAND); } }
84 * else if (col.equals("red;green;red")) { setColour(RED_GREEN_RED); if
85 * (top.equals("cylinder")) { setBuoyIndex(PREF_PORT_HAND);
86 * setRegion(IALA_A); } else if (top.equals("cone, point up")) {
87 * setBuoyIndex(PREF_STARBOARD_HAND); setRegion(IALA_B); } else { if
88 * (getRegion() == IALA_A) setBuoyIndex(PREF_PORT_HAND); else
89 * setBuoyIndex(PREF_STARBOARD_HAND); } } else if
90 * (col.equals("green;red;green")) { setColour(GREEN_RED_GREEN); if
91 * (top.equals("cone, point up")) { setBuoyIndex(PREF_STARBOARD_HAND);
92 * setRegion(IALA_A); } else if (top.equals("cylinder")) {
93 * setBuoyIndex(PREF_PORT_HAND); setRegion(IALA_B); } else { if (getRegion()
94 * == IALA_A) setBuoyIndex(PREF_STARBOARD_HAND); else
95 * setBuoyIndex(PREF_PORT_HAND); } } } else if (cat.equals("port")) {
96 *
97 * setBuoyIndex(PORT_HAND);
98 *
99 * if (col.equals("red")) { setRegion(IALA_A); setColour(RED); } else if
100 * (col.equals("green")) { setRegion(IALA_B); setColour(GREEN); } else { if
101 * (getRegion() == IALA_A) setColour(RED); else setColour(GREEN); } } else
102 * if (cat.equals("starboard")) {
103 *
104 * setBuoyIndex(STARBOARD_HAND);
105 *
106 * if (col.equals("green")) { setRegion(IALA_A); setColour(GREEN); } else if
107 * (col.equals("red")) { setRegion(IALA_B); setColour(RED); } else { if
108 * (getRegion() == IALA_A) setColour(GREEN); else setColour(RED); } } else
109 * if (cat.equals("preferred_channel_port")) {
110 *
111 * setBuoyIndex(PREF_PORT_HAND);
112 *
113 * if (col.equals("red;green;red")) { setRegion(IALA_A);
114 * setColour(RED_GREEN_RED); } else if (col.equals("green;red;green")) {
115 * setRegion(IALA_B); setColour(GREEN_RED_GREEN); } else { if (getRegion()
116 * == IALA_A) setColour(RED_GREEN_RED); else setColour(GREEN_RED_GREEN); }
117 *
118 * } else if (cat.equals("preferred_channel_starboard")) {
119 *
120 * setBuoyIndex(PREF_STARBOARD_HAND);
121 *
122 * if (col.equals("green;red;green")) { setRegion(IALA_A);
123 * setColour(GREEN_RED_GREEN); } else if (col.equals("red;green;red")) {
124 * setRegion(IALA_B); setColour(RED_GREEN_RED); } else { if (getRegion() ==
125 * IALA_A) setColour(GREEN_RED_GREEN); else setColour(RED_GREEN_RED); } }
126 *
127 * if (keys.containsKey("seamark:buoy_lateral:shape")) { str =
128 * keys.get("seamark:buoy_lateral:shape");
129 *
130 * switch (getBuoyIndex()) { case PORT_HAND: if (str.equals("can"))
131 * setStyleIndex(CAN); else if (str.equals("pillar")) setStyleIndex(PILLAR);
132 * else if (str.equals("spar")) setStyleIndex(SPAR); break;
133 *
134 * case PREF_PORT_HAND: if (str.equals("can")) setStyleIndex(CAN); else if
135 * (str.equals("pillar")) setStyleIndex(PILLAR); else if
136 * (str.equals("spar")) setStyleIndex(SPAR); break;
137 *
138 * case STARBOARD_HAND: if (str.equals("conical")) setStyleIndex(CONE); else
139 * if (str.equals("pillar")) setStyleIndex(PILLAR); else if
140 * (str.equals("spar")) setStyleIndex(SPAR); break;
141 *
142 * case PREF_STARBOARD_HAND: if (str.equals("conical")) setStyleIndex(CONE);
143 * else if (str.equals("pillar")) setStyleIndex(PILLAR); else if
144 * (str.equals("spar")) setStyleIndex(SPAR); break; } } else if
145 * (keys.containsKey("seamark:beacon_lateral:shape")) { str =
146 * keys.get("seamark:beacon_lateral:shape"); if (str.equals("tower"))
147 * setStyleIndex(TOWER); else if (str.equals("perch")) setStyleIndex(PERCH);
148 * else setStyleIndex(BEACON); } else if (keys.containsKey("seamark:type")
149 * && (keys.get("seamark:type").equals("beacon_lateral"))) {
150 * setStyleIndex(BEACON); } else if (keys.containsKey("seamark:type") &&
151 * (keys.get("seamark:type").equals("light_float"))) { setStyleIndex(FLOAT);
152 * }
153 *
154 * parseLights(keys); parseFogRadar(keys); setLightColour();
155 */}
156
157 public void setLightColour() {
158 if (getRegion() == IALA_A) {
159 if (getCategory() == Cat.LAT_PORT || getCategory() == Cat.LAT_PREF_PORT)
160 super.setLightColour(Col.RED);
161 else
162 super.setLightColour(Col.GREEN);
163 } else {
164 if (getCategory() == Cat.LAT_PORT || getCategory() == Cat.LAT_PREF_PORT)
165 super.setLightColour(Col.GREEN);
166 else
167 super.setLightColour(Col.RED);
168 }
169 }
170
171 public void paintSign() {
172 boolean region = getRegion();
173 Shp style = getShape();
174
175 String image = "/images/Lateral";
176
177 switch (getCategory()) {
178 case LAT_PORT:
179 if (region == IALA_A)
180 switch (style) {
181 case CAN:
182 image += "_Can_Red";
183 break;
184 case PILLAR:
185 image += "_Pillar_Red";
186 break;
187 case SPAR:
188 image += "_Spar_Red";
189 break;
190 case BEACON:
191 image += "_Beacon_Red";
192 break;
193 case TOWER:
194 image += "_Tower_Red";
195 break;
196 case FLOAT:
197 image += "_Float_Red";
198 break;
199 case PERCH:
200 image += "_Perch_Port";
201 break;
202 default:
203 }
204 else
205 switch (style) {
206 case CAN:
207 image += "_Can_Green";
208 break;
209 case PILLAR:
210 image += "_Pillar_Green";
211 break;
212 case SPAR:
213 image += "_Spar_Green";
214 break;
215 case BEACON:
216 image += "_Beacon_Green";
217 break;
218 case TOWER:
219 image += "_Tower_Green";
220 break;
221 case FLOAT:
222 image += "_Float_Green";
223 break;
224 case PERCH:
225 image += "_Perch_Port";
226 break;
227 default:
228 }
229 break;
230
231 case LAT_STBD:
232 if (region == IALA_A)
233 switch (style) {
234 case CONE:
235 image += "_Cone_Green";
236 break;
237 case PILLAR:
238 image += "_Pillar_Green";
239 break;
240 case SPAR:
241 image += "_Spar_Green";
242 break;
243 case BEACON:
244 image += "_Beacon_Green";
245 break;
246 case TOWER:
247 image += "_Tower_Green";
248 break;
249 case FLOAT:
250 image += "_Float_Green";
251 break;
252 case PERCH:
253 image += "_Perch_Starboard";
254 break;
255 default:
256 }
257 else
258 switch (style) {
259 case CONE:
260 image += "_Cone_Red";
261 break;
262 case PILLAR:
263 image += "_Pillar_Red";
264 break;
265 case SPAR:
266 image += "_Spar_Red";
267 break;
268 case BEACON:
269 image += "_Beacon_Red";
270 break;
271 case TOWER:
272 image += "_Tower_Red";
273 break;
274 case FLOAT:
275 image += "_Float_Red";
276 break;
277 case PERCH:
278 image += "_Perch_Starboard";
279 break;
280 default:
281 }
282 break;
283
284 case LAT_PREF_PORT:
285 if (region == IALA_A)
286 switch (style) {
287 case CAN:
288 image += "_Can_Red_Green_Red";
289 break;
290 case PILLAR:
291 image += "_Pillar_Red_Green_Red";
292 break;
293 case SPAR:
294 image += "_Spar_Red_Green_Red";
295 break;
296 case BEACON:
297 image += "_Beacon_Red_Green_Red";
298 break;
299 case TOWER:
300 image += "_Tower_Red_Green_Red";
301 break;
302 case FLOAT:
303 image += "_Float_Red_Green_Red";
304 break;
305 default:
306 }
307 else
308 switch (style) {
309 case CAN:
310 image += "_Can_Green_Red_Green";
311 break;
312 case PILLAR:
313 image += "_Pillar_Green_Red_Green";
314 break;
315 case SPAR:
316 image += "_Spar_Green_Red_Green";
317 break;
318 case BEACON:
319 image += "_Beacon_Green_Red_Green";
320 break;
321 case TOWER:
322 image += "_Tower_Green_Red_Green";
323 break;
324 case FLOAT:
325 image += "_Float_Green_Red_Green";
326 break;
327 default:
328 }
329 break;
330
331 case LAT_PREF_STBD:
332 if (region == IALA_A)
333 switch (style) {
334 case CONE:
335 image += "_Cone_Green_Red_Green";
336 break;
337 case PILLAR:
338 image += "_Pillar_Green_Red_Green";
339 break;
340 case SPAR:
341 image += "_Spar_Green_Red_Green";
342 break;
343 case BEACON:
344 image += "_Beacon_Green_Red_Green";
345 break;
346 case TOWER:
347 image += "_Tower_Green_Red_Green";
348 break;
349 case FLOAT:
350 image += "_Float_Green_Red_Green";
351 break;
352 default:
353 }
354 else
355 switch (style) {
356 case CONE:
357 image += "_Cone_Red_Green_Red";
358 break;
359 case PILLAR:
360 image += "_Pillar_Red_Green_Red";
361 break;
362 case SPAR:
363 image += "_Spar_Red_Green_Red";
364 break;
365 case BEACON:
366 image += "_Beacon_Red_Green_Red";
367 break;
368 case TOWER:
369 image += "_Tower_Red_Green_Red";
370 break;
371 case FLOAT:
372 image += "_Float_Red_Green_Red";
373 break;
374 default:
375 }
376 break;
377
378 default:
379 }
380
381 if (!image.equals("/images/Lateral")) {
382
383 image += ".png";
384 dlg.panelMain.shapeIcon.setIcon(new ImageIcon(getClass().getResource(image)));
385
386 if (hasTopmark()) {
387 image = "";
388 switch (getCategory()) {
389 case LAT_PORT:
390 case LAT_PREF_PORT:
391 if (region == IALA_A)
392 switch (style) {
393 case CAN:
394 image = "/images/Top_Can_Red_Buoy_Small.png";
395 break;
396 case PILLAR:
397 case SPAR:
398 image = "/images/Top_Can_Red_Buoy.png";
399 break;
400 case BEACON:
401 case TOWER:
402 image = "/images/Top_Can_Red_Beacon.png";
403 break;
404 case FLOAT:
405 image = "/images/Top_Can_Red_Float.png";
406 break;
407 }
408 else
409 switch (style) {
410 case CAN:
411 image = "/images/Top_Can_Green_Buoy_Small.png";
412 break;
413 case PILLAR:
414 case SPAR:
415 image = "/images/Top_Can_Green_Buoy.png";
416 break;
417 case BEACON:
418 case TOWER:
419 image = "/images/Top_Can_Green_Beacon.png";
420 break;
421 case FLOAT:
422 image = "/images/Top_Can_Green_Float.png";
423 break;
424 }
425 break;
426
427 case LAT_STBD:
428 case LAT_PREF_STBD:
429 if (region == IALA_A)
430 switch (style) {
431 case CONE:
432 image = "/images/Top_Cone_Green_Buoy_Small.png";
433 break;
434 case PILLAR:
435 case SPAR:
436 image = "/images/Top_Cone_Green_Buoy.png";
437 break;
438 case BEACON:
439 case TOWER:
440 image = "/images/Top_Cone_Green_Beacon.png";
441 break;
442 case FLOAT:
443 image = "/images/Top_Cone_Green_Float.png";
444 break;
445 }
446 else
447 switch (style) {
448 case CONE:
449 image = "/images/Top_Cone_Red_Buoy_Small.png";
450 break;
451 case PILLAR:
452 case SPAR:
453 image = "/images/Top_Cone_Red_Buoy.png";
454 break;
455 case BEACON:
456 case TOWER:
457 image = "/images/Top_Cone_Red_Beacon.png";
458 break;
459 case FLOAT:
460 image = "/images/Top_Cone_Red_Float.png";
461 break;
462 }
463 break;
464 }
465 if (!image.isEmpty())
466 dlg.panelMain.topIcon.setIcon(new ImageIcon(getClass().getResource(image)));
467 }
468 } else
469 dlg.panelMain.shapeIcon.setIcon(null);
470 super.paintSign();
471 }
472}
Note: See TracBrowser for help on using the repository browser.