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()]);

http://dive4elements.wald.intevation.org