# HG changeset patch # User Felix Wolfsteller # Date 1318240936 0 # Node ID b0ed67cb5197b63f773f6e9db58d84087a169068 # Parent 887eb0cd7dfc640d54f74492ed144b3cd1d1c1c0 Minor refactoring, improved displayed Strings in W-Diff branch. flys-client/trunk@2920 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 887eb0cd7dfc -r b0ed67cb5197 flys-client/ChangeLog --- a/flys-client/ChangeLog Mon Oct 10 09:31:08 2011 +0000 +++ b/flys-client/ChangeLog Mon Oct 10 10:02:16 2011 +0000 @@ -1,3 +1,11 @@ +2011-10-10 Felix Wolfsteller + + * src/main/java/de/intevation/flys/client/client/ui/RecommendationPairRecord.java: + New file. Extracted from DatacagePairWidget. + + * src/main/java/de/intevation/flys/client/client/ui/DatacagePairWidget.java: + Extracted RecommendationPairRecord implementation and constats. + 2011-10-10 Ingo Weinzierl flys/issue375 (ÜSK, Streckemessung) diff -r 887eb0cd7dfc -r b0ed67cb5197 flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacagePairWidget.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacagePairWidget.java Mon Oct 10 09:31:08 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacagePairWidget.java Mon Oct 10 10:02:16 2011 +0000 @@ -35,61 +35,12 @@ /** The "remote" ListGrid to insert data to when add-button is clicked. */ protected ListGrid grid; - /** First attribute-name for StringPairRecord. */ - protected static final String ATTRIBUTE_FIRST = "first"; - - /** Second attribute-name for StringPairRecord. */ - protected static final String ATTRIBUTE_SECOND = "second"; - /** First (upper) DataCage Grid. */ protected DatacageWidget firstDatacageWidget; /** Second (lower) DataCage Grid. */ protected DatacageWidget secondDatacageWidget; - - - /** - * Two strings to be displayed in a GridList, derived from two - * Recommendations. - */ - protected class RecommendationPairRecord extends ListGridRecord { - Recommendation first; - Recommendation second; - String firstName; - String secondName; - - public RecommendationPairRecord() { - } - - public RecommendationPairRecord(String firstName, - Recommendation first, - String secondName, - Recommendation second) - { - setFirst(first, firstName); - setSecond(second, secondName); - } - - - public void setFirst(Recommendation first, String name) { - this.first = first; - this.firstName = name; - setAttribute(ATTRIBUTE_FIRST, name); - } - - - public void setSecond(Recommendation second, String name) { - this.second = second; - this.secondName = name; - setAttribute(ATTRIBUTE_SECOND, name); - } - - public Recommendation getFirst() {return first;} - public Recommendation getSecond() {return second;} - public String getFirstName() {return firstName;} - public String getSecondName() {return secondName;} - } - + /** * diff -r 887eb0cd7dfc -r b0ed67cb5197 flys-client/src/main/java/de/intevation/flys/client/client/ui/DatacageTwinPanel.java --- 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 facets = new ArrayList + (); + 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 ar = new HashSet(); for (ListGridRecord record : records) { - DatacagePairWidget.RecommendationPairRecord r = - (DatacagePairWidget.RecommendationPairRecord) record; + RecommendationPairRecord r = + (RecommendationPairRecord) record; ar.add(r.getFirst()); ar.add(r.getSecond()); } diff -r 887eb0cd7dfc -r b0ed67cb5197 flys-client/src/main/java/de/intevation/flys/client/client/ui/RecommendationPairRecord.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/RecommendationPairRecord.java Mon Oct 10 10:02:16 2011 +0000 @@ -0,0 +1,98 @@ +package de.intevation.flys.client.client.ui; + +import com.smartgwt.client.widgets.grid.ListGridRecord; +import de.intevation.flys.client.shared.model.Recommendation; + + +/** + * Two strings to be displayed in a GridList, derived from two + * Recommendations. + */ +public class RecommendationPairRecord extends ListGridRecord { + + /** First attribute-name for StringPairRecord. */ + protected static final String ATTRIBUTE_FIRST = "first"; + + /** Second attribute-name for StringPairRecord. */ + protected static final String ATTRIBUTE_SECOND = "second"; + + Recommendation first; + Recommendation second; + String firstName; + String secondName; + + + public RecommendationPairRecord() { + } + + + public RecommendationPairRecord(String firstName, + Recommendation first, + String secondName, + Recommendation second) + { + setFirst(first, firstName); + setSecond(second, secondName); + } + + + public void setFirst(Recommendation first, String name) { + this.first = first; + this.firstName = name; + setAttribute(ATTRIBUTE_FIRST, name); + } + + + public void setSecond(Recommendation second, String name) { + this.second = second; + this.secondName = name; + setAttribute(ATTRIBUTE_SECOND, name); + } + + + public Recommendation getFirst() { + return first; + } + + + public Recommendation getSecond() { + return second; + } + + + public String getFirstName() { + return firstName; + } + + + public String getSecondName() { + return secondName; + } + +/* + * public static Recommmendation recommendationfromString(String from, + String factory, String masterArtifactId) + { + String parts = StringUtil.unbracket(from).split(";"); + // TODO proper filter instead of null. + Recommendation r = new Recommendation(factory, parts[0], + masterArtifactId, null); + return r; + } + + public static RecommendationPairRecord[] fromString(String from, + String masterArtifactId) + { + if (from == null) { + return new RecommendationPairRecord[] {}; + } + + //List + String recs = from.split("#"); + for (int i = 0; i < recs.length; i+=2) { + Recommendation minuend = recommendationfromString(recs[i+0], "waterlevel", masterArtifactId); + Recommendation subtrahend = recommendationfromString(recs[i+0], "waterlevel", masterArtifactId); + } + return new RecommendationPairRecord[] {}; + }*/ +}