comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/fixation/EventSelect.java @ 2719:d1d35892bbdd

Adjusted fixings transitions and implemented event select state. flys-artifacts/trunk@4450 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Mon, 21 May 2012 09:27:32 +0000
parents 53f42adf4505
children 58bdf95df5e4
comparison
equal deleted inserted replaced
2718:9ea3ac23bd9d 2719:d1d35892bbdd
1 package de.intevation.flys.artifacts.states.fixation; 1 package de.intevation.flys.artifacts.states.fixation;
2
3 import java.util.List;
2 4
3 import org.apache.log4j.Logger; 5 import org.apache.log4j.Logger;
4 6
7 import org.w3c.dom.Element;
8
9 import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator;
10
11 import de.intevation.artifacts.CallContext;
12
5 import de.intevation.flys.artifacts.states.DefaultState; 13 import de.intevation.flys.artifacts.states.DefaultState;
14 import de.intevation.flys.artifacts.FLYSArtifact;
15 import de.intevation.flys.utils.FLYSUtils;
16
17 import de.intevation.flys.artifacts.model.FixingsOverview;
18 import de.intevation.flys.artifacts.model.FixingsOverviewFactory;
19 import de.intevation.flys.artifacts.model.FixingsOverview.IdFilter;
20 import de.intevation.flys.artifacts.model.FixingsOverview.Fixing;
21
6 22
7 /** 23 /**
8 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> 24 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
9 */ 25 */
10 public class EventSelect extends DefaultState { 26 public class EventSelect extends DefaultState {
21 37
22 @Override 38 @Override
23 protected String getUIProvider() { 39 protected String getUIProvider() {
24 return "fix.event_panel"; 40 return "fix.event_panel";
25 } 41 }
42
43 @Override
44 protected Element createStaticData(
45 FLYSArtifact flys,
46 ElementCreator creator,
47 CallContext cc,
48 String name,
49 String value,
50 String type
51 ) {
52 int[] array = FLYSUtils.intArrayFromString(value);
53
54 Element dataElement = creator.create("data");
55 creator.addAttr(dataElement, "name", name, true);
56 creator.addAttr(dataElement, "type", type, true);
57
58 String river = FLYSUtils.getRiver(flys).getName();
59
60 FixingsOverview overview = FixingsOverviewFactory.getOverview(river);
61
62 for (int i = 0; i < array.length; i++) {
63 Element itemElement = creator.create("item");
64 creator.addAttr(
65 itemElement,
66 "value",
67 String.valueOf(array[i]),
68 true);
69
70 creator.addAttr(
71 itemElement,
72 "label",
73 getLabel(cc, array[i], overview),
74 true);
75 dataElement.appendChild(itemElement);
76 }
77 return dataElement;
78 }
79
80
81 public static String getLabel(
82 CallContext cc,
83 int value,
84 FixingsOverview overview
85 ) {
86 logger.debug("Create label for value: " + value);
87
88 IdFilter filter = new IdFilter(value);
89 List<Fixing.Column> columns = overview.filter(null, filter);
90 if (!columns.isEmpty()) {
91 return columns.get(0).getDescription();
92 }
93
94 return "";
95 }
26 } 96 }
27 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : 97 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org