Mercurial > dive4elements > river
comparison flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageTwinPanel.java @ 1298:b0ed67cb5197
Minor refactoring, improved displayed Strings in W-Diff branch.
flys-client/trunk@2920 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Mon, 10 Oct 2011 10:02:16 +0000 |
parents | d9cb362b8b34 |
children | 18b0414bde44 |
comparison
equal
deleted
inserted
replaced
1297:887eb0cd7dfc | 1298:b0ed67cb5197 |
---|---|
66 super(); | 66 super(); |
67 this.user = user; | 67 this.user = user; |
68 } | 68 } |
69 | 69 |
70 | 70 |
71 /** | |
72 * Remove first occurrence of "[" and "]" (if both do occur). | |
73 * @param value String to be stripped of [] (might be null). | |
74 * @return input string but with [ and ] removed, or input string if no | |
75 * brackets were found. | |
76 * @see StringUtil.unbracket | |
77 */ | |
78 public static final String unbracket(String value) { | |
79 // null- guard. | |
80 if (value == null) return value; | |
81 | |
82 int start = value.indexOf("["); | |
83 int end = value.indexOf("]"); | |
84 | |
85 if (start < 0 || end < 0) { | |
86 return value; | |
87 } | |
88 | |
89 value = value.substring(start + 1, end); | |
90 | |
91 return value; | |
92 } | |
93 | |
94 | |
95 /** | |
96 * Create a recommendation from a string representation of it. | |
97 * @TODO describe format of input string | |
98 * @param from string in format as shown above. | |
99 * @return recommendation from input string. | |
100 */ | |
101 public Recommendation createRecommendationFromString(String from) { | |
102 // TODO Construct "real" filter. | |
103 String[] parts = unbracket(from).split(";"); | |
104 Recommendation.Filter filter = new Recommendation.Filter(); | |
105 Recommendation.Facet facet = new Recommendation.Facet( | |
106 parts[1], | |
107 parts[2]); | |
108 | |
109 List<Recommendation.Facet> facets = new ArrayList<Recommendation.Facet> | |
110 (); | |
111 facets.add(facet); | |
112 filter.add("longitudinal_section", facets); | |
113 Recommendation r = new Recommendation("waterlevel", parts[0], | |
114 this.artifact.getUuid(), filter); | |
115 return r; | |
116 } | |
117 | |
118 | |
119 /** | |
120 * Add RecomendationPairRecords from input String to the ListGrid. | |
121 */ | |
122 public void populateGridFromString(String from){ | |
123 // Split this string. | |
124 // Create according recommendations and display strings. | |
125 String[] recs = from.split("#"); | |
126 // TODO real name | |
127 if (recs.length % 2 != 0) return; | |
128 for (int i = 0; i < recs.length; i+=2) { | |
129 Recommendation minuend = createRecommendationFromString(recs[i+0]); | |
130 Recommendation subtrahend = createRecommendationFromString(recs[i+1]); | |
131 RecommendationPairRecord pr = new RecommendationPairRecord( | |
132 "A", minuend, "B", subtrahend); | |
133 this.differencesList.addData(pr); | |
134 } | |
135 } | |
136 | |
137 | |
71 @Override | 138 @Override |
72 public Canvas create(DataList dataList) { | 139 public Canvas create(DataList dataList) { |
73 GWT.log("createData()"); | 140 GWT.log("createData()"); |
74 Data data = dataList.get(0); | |
75 this.dataName = data.getLabel(); | |
76 | 141 |
77 // TODO use i18n of data. | 142 // TODO use i18n of data. |
78 Canvas label = new Label("Subtrahend/Minuend");//data.getDescription()); | 143 Canvas label = new Label("Subtrahend/Minuend");//data.getDescription()); |
79 Canvas widget = createWidget(); | 144 Canvas widget = createWidget(); |
80 Canvas submit = getNextButton(); | 145 Canvas submit = getNextButton(); |
88 /*layout.addMember(label);*/ | 153 /*layout.addMember(label);*/ |
89 layout.addMember(widget); | 154 layout.addMember(widget); |
90 layout.addMember(submit); | 155 layout.addMember(submit); |
91 layout.setMembersMargin(10); | 156 layout.setMembersMargin(10); |
92 this.helperContainer.addMember(helperLayout); | 157 this.helperContainer.addMember(helperLayout); |
158 | |
159 // Find old data, if any. | |
160 Data data = dataList.get(0); | |
161 // "diffids" data handling. | |
162 this.dataName = data.getLabel(); | |
163 for (int i = 0; i < dataList.size(); i++) { | |
164 if (dataList.get(i) != null) { | |
165 if (dataList.get(i).getItems() != null) { | |
166 populateGridFromString(dataList.get(i).getItems()[0].getStringValue()); | |
167 } | |
168 else{ | |
169 System.out.println("DatacageTwinPanel: Datalist for item is null"); | |
170 } | |
171 } | |
172 else{ | |
173 System.out.println("DatacageTwinPanel: Data " + i + " is null (not displayable)."); | |
174 } | |
175 } | |
93 | 176 |
94 return layout; | 177 return layout; |
95 } | 178 } |
96 | 179 |
97 | 180 |
144 Config config = Config.getInstance(); | 227 Config config = Config.getInstance(); |
145 ListGridRecord[] records = differencesList.getRecords(); | 228 ListGridRecord[] records = differencesList.getRecords(); |
146 | 229 |
147 Set<Recommendation> ar = new HashSet<Recommendation>(); | 230 Set<Recommendation> ar = new HashSet<Recommendation>(); |
148 for (ListGridRecord record : records) { | 231 for (ListGridRecord record : records) { |
149 DatacagePairWidget.RecommendationPairRecord r = | 232 RecommendationPairRecord r = |
150 (DatacagePairWidget.RecommendationPairRecord) record; | 233 (RecommendationPairRecord) record; |
151 ar.add(r.getFirst()); | 234 ar.add(r.getFirst()); |
152 ar.add(r.getSecond()); | 235 ar.add(r.getSecond()); |
153 } | 236 } |
154 | 237 |
155 final Recommendation[] rs = ar.toArray(new Recommendation[ar.size()]); | 238 final Recommendation[] rs = ar.toArray(new Recommendation[ar.size()]); |