summaryrefslogtreecommitdiffstats
path: root/src
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 12:55:15 +0530
commit654dbf9869903d44d52fa69638ac1911433056be (patch)
tree87df5bc62a68f052e2b4a1e423d41b25b585fd7a /src
parentc0e5883de2982710dfc8dfe02ac92d963390dcdc (diff)
Bug 2819 - "Add" button gets enabled without setting value for options
Diffstat (limited to 'src')
-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.java20
2 files changed, 18 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..bbe314a5 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);
@@ -142,6 +141,20 @@ public class VolumeOptionsPage extends Composite {
}
});
+ parent.addDisposeListener(new DisposeListener() {
+
+ @Override
+ 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
+ Entry<String, String> entryBeingAdded = keyEditingSupport.getEntryBeingAdded();
+ volume.getOptions().remove(entryBeingAdded.getKey());
+ }
+ }
+ });
+
+
clusterListener = new DefaultClusterListener() {
@SuppressWarnings("unchecked")
@Override
@@ -246,7 +259,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();
}