summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-04-19 17:15:38 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-04-19 17:15:38 +0530
commitc9b891e9010d3bda51975d507050959338df4d69 (patch)
tree770f0e99279d2a3e5ac5da4d9815c81f100500a6 /src
parent2790da81da45bd578464a4029c014e6a9bc46b8c (diff)
Bug 2810 - Option automatically changes when move and come back from other option
Diffstat (limited to 'src')
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/OptionKeyEditingSupport.java31
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/VolumeOptionsPage.java18
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();
}