From f6ae65e4a97c9c55852bd413e26a8e61fc7761c4 Mon Sep 17 00:00:00 2001 From: Shireesh Anjal Date: Tue, 26 Apr 2011 18:49:38 +0530 Subject: Bug 2822 - "Add" button gets disabled when search string is entered --- .../management/gui/views/details/VolumeOptionsPage.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/VolumeOptionsPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/VolumeOptionsPage.java index 179f0a1e..c0a69693 100644 --- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/VolumeOptionsPage.java +++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/VolumeOptionsPage.java @@ -39,8 +39,6 @@ import org.eclipse.swt.events.PaintEvent; import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; @@ -193,7 +191,7 @@ public class VolumeOptionsPage extends Composite { if(event.getEventType() == EVENT_TYPE.VOLUME_OPTION_SET) { Entry eventEntry = (Entry)event.getEventData(); - if (eventEntry.getKey().equals(volume.getOptions().keySet().toArray()[volume.getOptions().size()-1])) { + if (isNewOption(volume, eventEntry.getKey())) { // option has been set successfully by the user. re-enable the add button and search filter textbox addButton.setEnabled(true); filterText.setEnabled(true); @@ -208,6 +206,17 @@ public class VolumeOptionsPage extends Composite { } } } + + private boolean isNewOption(Volume volume, String optionKey) { + if(filterText.getText().length() > 0) { + // user has been filtering the contents. adding new option is allowed only when contents are NOT + // filtered. Thus it's impossible that this is a newly added option + return false; + } + + // if this is the last option in the volume options, it must be the new option + return optionKey.equals(volume.getOptions().keySet().toArray()[volume.getOptions().size()-1]); + } }; GlusterDataModelManager.getInstance().addClusterListener(clusterListener); } -- cgit