# HG changeset patch # User Ingo Weinzierl # Date 1319192347 0 # Node ID 9d67cd17ab78d095d143193793cd3d76c76b8f16 # Parent ce0bbac13bc89c89dbcf8f91c861f46db0fa78c7 Bugfix: #352 Keep grid selection in theme panels alive after themes has been modified. flys-client/trunk@3054 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r ce0bbac13bc8 -r 9d67cd17ab78 flys-client/ChangeLog --- a/flys-client/ChangeLog Fri Oct 21 08:11:32 2011 +0000 +++ b/flys-client/ChangeLog Fri Oct 21 10:19:07 2011 +0000 @@ -1,3 +1,10 @@ +2011-10-21 Ingo Weinzierl + + flys/issue352 (W-INFO / WSP: Markierung bei Verschieben in Steuerung geht verloren) + + * src/main/java/de/intevation/flys/client/client/ui/ThemePanel.java: + Keep grid selection alive after theme has been modified. + 2011-10-21 Raimund Renkert * src/main/java/de/intevation/flys/client/client/ui/StyleEditorWindow.java: diff -r ce0bbac13bc8 -r 9d67cd17ab78 flys-client/src/main/java/de/intevation/flys/client/client/ui/ThemePanel.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/ThemePanel.java Fri Oct 21 08:11:32 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/ThemePanel.java Fri Oct 21 10:19:07 2011 +0000 @@ -199,6 +199,8 @@ protected void updateGrid() { GWT.log("ThemePanel.updateGrid"); + ListGridRecord[] selected = list.getSelectedRecords(); + clearGrid(); ThemeList themeList = getThemeList(); @@ -217,14 +219,30 @@ continue; } - list.addData(createRecord(theme)); + FacetRecord newRecord = createRecord(theme); + list.addData(newRecord); + + String newArtifact = theme.getArtifact(); + String newFacet = theme.getFacet(); + int newIndex = theme.getIndex(); + + for (ListGridRecord r: selected) { + FacetRecord sel = (FacetRecord) r; + Theme oldTheme = sel.getTheme(); + + if (oldTheme.getArtifact().equals(newArtifact) + && oldTheme.getFacet().equals(newFacet) + && oldTheme.getIndex() == newIndex) { + list.selectRecord(newRecord); + } + } } fireOutputParameterChanged(); } - protected ListGridRecord createRecord(Theme theme) { + protected FacetRecord createRecord(Theme theme) { return new FacetRecord(theme); }