Mercurial > dive4elements > river
diff 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 |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageTwinPanel.java Mon Oct 10 09:31:08 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageTwinPanel.java Mon Oct 10 10:02:16 2011 +0000 @@ -68,11 +68,76 @@ } + /** + * Remove first occurrence of "[" and "]" (if both do occur). + * @param value String to be stripped of [] (might be null). + * @return input string but with [ and ] removed, or input string if no + * brackets were found. + * @see StringUtil.unbracket + */ + public static final String unbracket(String value) { + // null- guard. + if (value == null) return value; + + int start = value.indexOf("["); + int end = value.indexOf("]"); + + if (start < 0 || end < 0) { + return value; + } + + value = value.substring(start + 1, end); + + return value; + } + + + /** + * Create a recommendation from a string representation of it. + * @TODO describe format of input string + * @param from string in format as shown above. + * @return recommendation from input string. + */ + public Recommendation createRecommendationFromString(String from) { + // TODO Construct "real" filter. + String[] parts = unbracket(from).split(";"); + Recommendation.Filter filter = new Recommendation.Filter(); + Recommendation.Facet facet = new Recommendation.Facet( + parts[1], + parts[2]); + + List<Recommendation.Facet> facets = new ArrayList<Recommendation.Facet> + (); + facets.add(facet); + filter.add("longitudinal_section", facets); + Recommendation r = new Recommendation("waterlevel", parts[0], + this.artifact.getUuid(), filter); + return r; + } + + + /** + * Add RecomendationPairRecords from input String to the ListGrid. + */ + public void populateGridFromString(String from){ + // Split this string. + // Create according recommendations and display strings. + String[] recs = from.split("#"); + // TODO real name + if (recs.length % 2 != 0) return; + for (int i = 0; i < recs.length; i+=2) { + Recommendation minuend = createRecommendationFromString(recs[i+0]); + Recommendation subtrahend = createRecommendationFromString(recs[i+1]); + RecommendationPairRecord pr = new RecommendationPairRecord( + "A", minuend, "B", subtrahend); + this.differencesList.addData(pr); + } + } + + @Override public Canvas create(DataList dataList) { GWT.log("createData()"); - Data data = dataList.get(0); - this.dataName = data.getLabel(); // TODO use i18n of data. Canvas label = new Label("Subtrahend/Minuend");//data.getDescription()); @@ -91,6 +156,24 @@ layout.setMembersMargin(10); this.helperContainer.addMember(helperLayout); + // Find old data, if any. + Data data = dataList.get(0); + // "diffids" data handling. + this.dataName = data.getLabel(); + for (int i = 0; i < dataList.size(); i++) { + if (dataList.get(i) != null) { + if (dataList.get(i).getItems() != null) { + populateGridFromString(dataList.get(i).getItems()[0].getStringValue()); + } + else{ + System.out.println("DatacageTwinPanel: Datalist for item is null"); + } + } + else{ + System.out.println("DatacageTwinPanel: Data " + i + " is null (not displayable)."); + } + } + return layout; } @@ -146,8 +229,8 @@ Set<Recommendation> ar = new HashSet<Recommendation>(); for (ListGridRecord record : records) { - DatacagePairWidget.RecommendationPairRecord r = - (DatacagePairWidget.RecommendationPairRecord) record; + RecommendationPairRecord r = + (RecommendationPairRecord) record; ar.add(r.getFirst()); ar.add(r.getSecond()); }