Mercurial > dive4elements > river
diff gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacageTwinPanel.java @ 8719:36f52c80b7ac
Deduplicate W / BedHeight Difference selection panel code
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 27 Apr 2015 14:50:38 +0200 |
parents | 5dfb3ff98bc6 |
children | 8f6d6d26e96f 5e38e2924c07 |
line wrap: on
line diff
--- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacageTwinPanel.java Mon Apr 27 12:48:41 2015 +0200 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/DatacageTwinPanel.java Mon Apr 27 14:50:38 2015 +0200 @@ -113,11 +113,10 @@ /** * 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) { + public Recommendation createRecommendationFromString(String from, String factory) { // TODO Construct "real" filter. String[] parts = unbracket(from).split(";"); Recommendation.Filter filter = new Recommendation.Filter(); @@ -129,7 +128,7 @@ (); facets.add(facet); filter.add("longitudinal_section", facets); - Recommendation r = new Recommendation("waterlevel", parts[0], + Recommendation r = new Recommendation(factory, parts[0], this.artifact.getUuid(), filter); r.setDisplayName(parts[3]); return r; @@ -139,16 +138,16 @@ /** * Add RecomendationPairRecords from input String to the ListGrid. */ - public void populateGridFromString(String from){ + public void populateGridFromString(String from, String factory){ // Split this string. // Create according recommendations and display strings. String[] recs = from.split("#"); if (recs.length % 2 != 0) return; for (int i = 0; i < recs.length; i+=2) { Recommendation minuend = - createRecommendationFromString(recs[i+0]); + createRecommendationFromString(recs[i+0], factory); Recommendation subtrahend = - createRecommendationFromString(recs[i+1]); + createRecommendationFromString(recs[i+1], factory); RecommendationPairRecord pr = new RecommendationPairRecord( minuend, subtrahend); @@ -182,19 +181,22 @@ layout.setMembersMargin(10); this.helperContainer.addMember(helperLayout); - // Find old data, if any, handle "diffids". + populateGrid(dataList, "waterlevel"); + return layout; + } + + protected void populateGrid(DataList dataList, String factory) { Data data = dataList.get(0); this.dataName = data.getLabel(); for (int i = 0; i < dataList.size(); i++) { if (dataList.get(i) != null && dataList.get(i).getItems() != null) { if (dataList.get(i).getItems() != null) { populateGridFromString( - dataList.get(i).getItems()[0].getStringValue()); + dataList.get(i).getItems()[0].getStringValue(), + factory); } } } - - return layout; } @@ -339,7 +341,6 @@ Recommendation secondR = r.getSecond(); adjustRecommendation(secondR); - ar.add(firstR); ar.add(secondR); } @@ -468,14 +469,20 @@ } + protected String createDataString(String artifact, Recommendation recommendation) { + return createDataString(artifact, recommendation, "staticwkms"); + } + /** * Creates part of the String that encodes minuend or subtrahend. * @param artifact Artifacts UUID. * @param recommendation Recommendation to wrap in string. + * @param factory The factory to encode. */ protected String createDataString( String artifact, - Recommendation recommendation) + Recommendation recommendation, + String factory) { Filter filter = recommendation.getFilter(); Facet f = null; @@ -503,7 +510,7 @@ else { return "[" + artifact - + ";staticwkms;0;" + + ";" + factory + ";0;" + recommendation.getDisplayName() + "]"; } }