diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-04-20 12:55:15 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-04-20 14:17:56 +0530 |
| commit | 2ff38f796bf2921f6b5dd7ee3b3d58197f6dab1e (patch) | |
| tree | d3906aeb0f86d6dfd9890ca2b84830a574f4c277 /src/com.gluster.storage.management.gui | |
| parent | c0e5883de2982710dfc8dfe02ac92d963390dcdc (diff) | |
Bug 2819 - "Add" button gets enabled without setting value for options
Diffstat (limited to 'src/com.gluster.storage.management.gui')
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(); } |
