summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-04-20 12:55:15 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-04-20 14:17:56 +0530
commit2ff38f796bf2921f6b5dd7ee3b3d58197f6dab1e (patch)
treed3906aeb0f86d6dfd9890ca2b84830a574f4c277
parentc0e5883de2982710dfc8dfe02ac92d963390dcdc (diff)
Bug 2819 - "Add" button gets enabled without setting value for options
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/OptionKeyEditingSupport.java2
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/VolumeOptionsPage.java12
2 files changed, 10 insertions, 4 deletions
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/OptionKeyEditingSupport.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/OptionKeyEditingSupport.java
index 9e0a18ca..27dc8d4b 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/OptionKeyEditingSupport.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/OptionKeyEditingSupport.java
@@ -102,7 +102,7 @@ public class OptionKeyEditingSupport extends EditingSupport {
return -1;
}
- private Entry<String, String> getEntryBeingAdded() {
+ protected Entry<String, String> getEntryBeingAdded() {
Entry<String, String> entryBeingAdded = null;
Iterator<Entry<String, String>> iter = volume.getOptions().entrySet().iterator();
while(iter.hasNext()) {
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 969a18e9..45287599 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
@@ -37,8 +37,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;
@@ -75,6 +73,7 @@ public class VolumeOptionsPage extends Composite {
private static final String[] OPTIONS_TABLE_COLUMN_NAMES = new String[] { "Option Key", "Option Value" };
private Button addButton;
private TableViewerColumn keyColumn;
+ private OptionKeyEditingSupport keyEditingSupport;
public VolumeOptionsPage(final Composite parent, int style, Volume volume) {
super(parent, style);
@@ -125,6 +124,12 @@ public class VolumeOptionsPage extends Composite {
private void registerListeners(final Composite parent) {
addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
+ if(!addButton.isEnabled()) {
+ // user has selected key, but not added value. Since this is not a valid entry,
+ // remove the last option (without value) from the volume
+ volume.getOptions().remove(keyEditingSupport.getEntryBeingAdded().getKey());
+ }
+
GlusterDataModelManager.getInstance().removeClusterListener(clusterListener);
toolkit.dispose();
}
@@ -246,7 +251,8 @@ public class VolumeOptionsPage extends Composite {
});
// Editing support required when adding new key
- keyColumn.setEditingSupport(new OptionKeyEditingSupport(keyColumn.getViewer(), volume));
+ keyEditingSupport = new OptionKeyEditingSupport(keyColumn.getViewer(), volume);
+ keyColumn.setEditingSupport(keyEditingSupport);
return keyColumn.getColumn();
}