comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/fixation/EventSelect.java @ 9267:c7e5285d434f

bundu bezugswst work
author gernotbelger
date Wed, 18 Jul 2018 15:34:53 +0200
parents e4606eae8ea5
children 9744ce3c3853
comparison
equal deleted inserted replaced
9266:465347d12990 9267:c7e5285d434f
9 package org.dive4elements.river.artifacts.states.fixation; 9 package org.dive4elements.river.artifacts.states.fixation;
10 10
11 import java.util.List; 11 import java.util.List;
12 12
13 import org.apache.log4j.Logger; 13 import org.apache.log4j.Logger;
14 14 import org.dive4elements.artifacts.CallContext;
15 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator;
16 import org.dive4elements.river.artifacts.D4EArtifact;
17 import org.dive4elements.river.artifacts.model.FixingsOverview;
18 import org.dive4elements.river.artifacts.model.FixingsOverview.Fixing;
19 import org.dive4elements.river.artifacts.model.FixingsOverview.IdFilter;
20 import org.dive4elements.river.artifacts.model.FixingsOverviewFactory;
21 import org.dive4elements.river.artifacts.states.DefaultState;
22 import org.dive4elements.river.utils.RiverUtils;
15 import org.w3c.dom.Element; 23 import org.w3c.dom.Element;
16
17 import org.dive4elements.artifacts.common.utils.XMLUtils.ElementCreator;
18
19 import org.dive4elements.artifacts.CallContext;
20
21 import org.dive4elements.river.artifacts.states.DefaultState;
22 import org.dive4elements.river.artifacts.D4EArtifact;
23 import org.dive4elements.river.utils.RiverUtils;
24
25 import org.dive4elements.river.artifacts.model.FixingsOverview;
26 import org.dive4elements.river.artifacts.model.FixingsOverviewFactory;
27 import org.dive4elements.river.artifacts.model.FixingsOverview.IdFilter;
28 import org.dive4elements.river.artifacts.model.FixingsOverview.Fixing;
29
30 24
31 /** 25 /**
32 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> 26 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
33 */ 27 */
34 public class EventSelect extends DefaultState { 28 public class EventSelect extends DefaultState {
35 29
36 /** The log used in this class. */ 30 /** The log used in this class. */
37 private static Logger log = Logger.getLogger(EventSelect.class); 31 private static Logger log = Logger.getLogger(EventSelect.class);
38
39 32
40 /** 33 /**
41 * The default constructor that initializes an empty State object. 34 * The default constructor that initializes an empty State object.
42 */ 35 */
43 public EventSelect() { 36 public EventSelect() {
47 protected String getUIProvider() { 40 protected String getUIProvider() {
48 return "fix.event_panel"; 41 return "fix.event_panel";
49 } 42 }
50 43
51 @Override 44 @Override
52 protected Element createStaticData( 45 protected Element createStaticData(final D4EArtifact flys, final ElementCreator creator, final CallContext cc, final String name, final String value,
53 D4EArtifact flys, 46 final String type) {
54 ElementCreator creator, 47 return this.createStaticDataPublic(flys, creator, cc, name, value, type);
55 CallContext cc, 48 }
56 String name,
57 String value,
58 String type
59 ) {
60 int[] array = RiverUtils.intArrayFromString(value);
61 49
62 Element dataElement = creator.create("data"); 50 public final static Element createStaticDataPublic(final D4EArtifact flys, final ElementCreator creator, final CallContext cc, final String name,
51 final String value, final String type) {
52 final int[] array = RiverUtils.intArrayFromString(value);
53
54 final Element dataElement = creator.create("data");
63 creator.addAttr(dataElement, "name", name, true); 55 creator.addAttr(dataElement, "name", name, true);
64 creator.addAttr(dataElement, "type", type, true); 56 creator.addAttr(dataElement, "type", type, true);
65 57
66 String river = RiverUtils.getRiver(flys).getName(); 58 final String river = RiverUtils.getRiver(flys).getName();
67 59
68 FixingsOverview overview = FixingsOverviewFactory.getOverview(river); 60 final FixingsOverview overview = FixingsOverviewFactory.getOverview(river);
69 61
70 for (int i = 0; i < array.length; i++) { 62 for (final int element : array) {
71 Element itemElement = creator.create("item"); 63 final Element itemElement = creator.create("item");
72 creator.addAttr( 64 creator.addAttr(itemElement, "value", String.valueOf(element), true);
73 itemElement,
74 "value",
75 String.valueOf(array[i]),
76 true);
77 65
78 creator.addAttr( 66 creator.addAttr(itemElement, "label", getLabelForEvent(cc, element, overview), true);
79 itemElement,
80 "label",
81 getLabel(cc, array[i], overview),
82 true);
83 dataElement.appendChild(itemElement); 67 dataElement.appendChild(itemElement);
84 } 68 }
85 return dataElement; 69 return dataElement;
86 } 70 }
87 71
88 72 private static final String getLabelForEvent(final CallContext cc, final int value, final FixingsOverview overview) {
89 public static String getLabel(
90 CallContext cc,
91 int value,
92 FixingsOverview overview
93 ) {
94 log.debug("Create label for value: " + value); 73 log.debug("Create label for value: " + value);
95 74
96 IdFilter filter = new IdFilter(value); 75 final IdFilter filter = new IdFilter(value);
97 List<Fixing.Column> columns = overview.filter(null, filter); 76 final List<Fixing.Column> columns = overview.filter(null, filter);
98 return columns.isEmpty() 77 return columns.isEmpty() ? "" : columns.get(0).getDescription();
99 ? ""
100 : columns.get(0).getDescription();
101 } 78 }
102 } 79 }
103 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : 80 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org