# HG changeset patch # User Andre Heinecke # Date 1414410720 -3600 # Node ID e98dbf72c9ecc05d6b4435f4646bbc0f8c560924 # Parent 4b315e5d2d4f6de88cfab53fdbc25b9a6f867b58 (issue1733) Fix switch between location and distance This changes the enable methods to state switchers. Combining them avoids the problem that they could be out of sync. diff -r 4b315e5d2d4f -r e98dbf72c9ec gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LocationDistancePanel.java --- a/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LocationDistancePanel.java Mon Oct 27 12:38:22 2014 +0100 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/LocationDistancePanel.java Mon Oct 27 12:52:00 2014 +0100 @@ -692,7 +692,7 @@ } if (theMode.equals(FIELD_VALUE_DISTANCE)) { - enableDistancePanel(); + enableDistanceMode(); inputTables.selectTab(1); } currentFiltered = (ListGrid)inputTables.getSelectedTab().getPane(); @@ -734,6 +734,13 @@ filterRange.clear(); filterResultCount.setValue(""); + // The assumption is that location is tab 0 and distance tab 1 + if (inputTables.getSelectedTabNumber() == 0) { + enableLocationMode(); + } else { + enableDistanceMode(); + } + Canvas c = evt.getTabPane(); if(c instanceof ListGrid) { currentFiltered = (ListGrid)c; @@ -1157,7 +1164,8 @@ /** * Activates the location panel. */ - protected void enableLocationPanel() { + protected void enableLocationMode() { + mode.setValue(FIELD_MODE, FIELD_VALUE_LOCATION); container.hideMember(distancePanel); container.showMember(locationPanel); } @@ -1166,7 +1174,8 @@ /** * Activates the distance panel. */ - protected void enableDistancePanel() { + protected void enableDistanceMode() { + mode.setValue(FIELD_MODE, FIELD_VALUE_DISTANCE); container.hideMember(locationPanel); container.showMember(distancePanel); } @@ -1185,8 +1194,7 @@ return; } if (value.equals(FIELD_VALUE_LOCATION)) { - event.getItem().setValue(FIELD_VALUE_LOCATION); - enableLocationPanel(); + enableLocationMode(); filterDescription.clear(); filterRange.clear(); filterResultCount.setValue(""); @@ -1195,8 +1203,7 @@ inputTables.selectTab(0); } else { - event.getItem().setValue(FIELD_VALUE_DISTANCE); - enableDistancePanel(); + enableDistanceMode(); filterDescription.clear(); filterRange.clear(); filterResultCount.setValue("");