diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-04-19 17:15:38 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-04-19 17:15:38 +0530 |
| commit | c9b891e9010d3bda51975d507050959338df4d69 (patch) | |
| tree | 770f0e99279d2a3e5ac5da4d9815c81f100500a6 /src | |
| parent | 2790da81da45bd578464a4029c014e6a9bc46b8c (diff) | |
Bug 2810 - Option automatically changes when move and come back from other option
Diffstat (limited to 'src')
2 files changed, 38 insertions, 11 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 7a47c855..936cf450 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 @@ -4,6 +4,7 @@ package com.gluster.storage.management.gui.views.details; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -71,7 +72,12 @@ public class OptionKeyEditingSupport extends EditingSupport { @Override protected Object getValue(Object element) { - return cellEditor.getValue(); + Entry<String, String> entryBeingAdded = getEntryBeingAdded(); + if(entryBeingAdded == null) { + return cellEditor.getValue(); + } + + return getIndexOfEntry(entryBeingAdded); } @Override @@ -81,6 +87,29 @@ public class OptionKeyEditingSupport extends EditingSupport { return cellEditor; } + private int getIndexOfEntry(Entry<String, String> entryBeingAdded) { + for(int index = 0; index < allowedKeys.length; index++) { + if(allowedKeys[index].equals(entryBeingAdded.getKey())) { + return index; + } + } + return -1; + } + + private Entry<String, String> getEntryBeingAdded() { + Entry<String, String> entryBeingAdded = null; + Iterator<Entry<String, String>> iter = volume.getOptions().entrySet().iterator(); + while(iter.hasNext()) { + Entry<String, String> nextEntry = iter.next(); + if(!iter.hasNext() && nextEntry.getValue().isEmpty()) { + // it's the LAST entry, and it's value is empty. + // means this is a new row being added in the table viewer. + entryBeingAdded = nextEntry; + } + } + return entryBeingAdded; + } + @SuppressWarnings("unchecked") @Override protected boolean canEdit(Object element) { 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 b30ce379..7ab5b9b8 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 @@ -91,14 +91,6 @@ public class VolumeOptionsPage extends Composite { registerListeners(parent); } - /** - * @return - */ - private DefaultClusterListener createClusterListener() { - // TODO Auto-generated method stub - return null; - } - private void createAddButton() { addButton = toolkit.createButton(this, "&Add", SWT.FLAT); addButton.addSelectionListener(new SelectionAdapter() { @@ -210,6 +202,7 @@ public class VolumeOptionsPage extends Composite { valueColumn.getColumn() .setText(OPTIONS_TABLE_COLUMN_NAMES[OPTIONS_TABLE_COLUMN_INDICES.OPTION_VALUE.ordinal()]); valueColumn.setLabelProvider(new ColumnLabelProvider() { + @SuppressWarnings("unchecked") @Override public String getText(Object element) { return ((Entry<String, String>) element).getValue(); @@ -226,6 +219,7 @@ public class VolumeOptionsPage extends Composite { TableViewerColumn keyColumn = new TableViewerColumn(tableViewer, SWT.NONE); keyColumn.getColumn().setText(OPTIONS_TABLE_COLUMN_NAMES[OPTIONS_TABLE_COLUMN_INDICES.OPTION_KEY.ordinal()]); keyColumn.setLabelProvider(new ColumnLabelProvider() { + @SuppressWarnings("unchecked") @Override public String getText(Object element) { return ((Entry<String, String>) element).getKey(); @@ -234,8 +228,12 @@ public class VolumeOptionsPage extends Composite { @SuppressWarnings("unchecked") @Override public String getToolTipText(Object element) { - VolumeOptionInfo optionInfo = GlusterDataModelManager.getInstance().getVolumeOptionInfo( - ((Entry<String, String>) element).getKey()); + String key = ((Entry<String, String>) element).getKey(); + if(key.isEmpty()) { + return "Click to select a volume option key"; + } + + VolumeOptionInfo optionInfo = GlusterDataModelManager.getInstance().getVolumeOptionInfo(key); return optionInfo.getDescription() + CoreConstants.NEWLINE + "Default value: " + optionInfo.getDefaultValue(); } |
