summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.gui
diff options
context:
space:
mode:
authorShireesh Anjal <shireesh@gluster.com>2011-07-11 00:33:58 +0530
committerShireesh Anjal <shireesh@gluster.com>2011-07-11 00:33:58 +0530
commitefe32527e41e28b30b0393f9963daad608ec5c2c (patch)
tree0eaaf965c5dcd340d643d591e7e36b54a5d25e6c /src/com.gluster.storage.management.gui
parent901d2fc3cfd69219e84de8845e7b8c2e61e35672 (diff)
Task#111 - Auto-refresh of data in views
Diffstat (limited to 'src/com.gluster.storage.management.gui')
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/NavigationView.java14
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/BricksPage.java20
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/TasksPage.java26
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/VolumeOptionsPage.java48
4 files changed, 67 insertions, 41 deletions
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/NavigationView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/NavigationView.java
index 14f999e7..f684a0f7 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/NavigationView.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/NavigationView.java
@@ -89,8 +89,20 @@ public class NavigationView extends ViewPart implements ISelectionListener {
@Override
public void volumeChanged(Volume volume, Event event) {
super.volumeChanged(volume, event);
- selectEntity(volume); // this makes sure that the toolbar buttons get updated according to new status
+ if (volume == entity) {
+ // this makes sure that the toolbar buttons get updated according to new status
+ selectEntity(volume);
+ }
}
+
+ public void volumeDeleted(Volume volume) {
+ super.volumeDeleted(volume);
+ if(volume == entity) {
+ // volume deleted was deleted. selected the root element in the tree.
+ treeViewer.setSelection(new StructuredSelection(GlusterDataModelManager.getInstance().getModel()
+ .getCluster()));
+ }
+ };
};
GlusterDataModelManager.getInstance().addClusterListener(clusterListener);
}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/BricksPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/BricksPage.java
index 9805daec..c9e63889 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/BricksPage.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/BricksPage.java
@@ -18,6 +18,7 @@
*******************************************************************************/
package com.gluster.storage.management.gui.views.pages;
+import java.util.Collection;
import java.util.List;
import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -54,13 +55,26 @@ public class BricksPage extends AbstractTableViewerPage<Brick> {
@Override
protected ClusterListener createClusterListener() {
return new DefaultClusterListener() {
+ @SuppressWarnings("unchecked")
@Override
public void volumeChanged(Volume volume, Event event) {
- if (event.getEventType() == EVENT_TYPE.BRICKS_ADDED || event.getEventType() == EVENT_TYPE.BRICKS_REMOVED) {
- tableViewer.refresh();
+ switch (event.getEventType()) {
+ case BRICKS_ADDED:
+ tableViewer.add(((Collection<Brick>) event.getEventData()).toArray());
parent.update();
+ break;
+
+ case BRICKS_REMOVED:
+ tableViewer.remove(((Collection<Brick>) event.getEventData()).toArray());
+ parent.update();
+ break;
+
+ case BRICKS_CHANGED:
+ tableViewer.update(((Collection<Brick>) event.getEventData()).toArray(), null);
+ parent.update();
+ default:
+ break;
}
-
}
};
}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/TasksPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/TasksPage.java
index 8fbeb891..106984da 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/TasksPage.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/TasksPage.java
@@ -67,40 +67,26 @@ public class TasksPage extends AbstractTableViewerPage<TaskInfo> {
return new DefaultClusterListener() {
@Override
public void taskAdded(TaskInfo taskInfo) {
- refreshViewer();
+ tableViewer.add(taskInfo);
+ parent.update();
}
@Override
public void taskRemoved(TaskInfo taskInfo) {
- refreshViewer();
+ tableViewer.remove(taskInfo);
+ parent.update();
// hide the task related actionset as no task is selected
// site.getPage().hideActionSet(IActionConstants.ACTION_SET_TASK);
- tableViewer.setSelection(new StructuredSelection(taskInfo));
}
@Override
public void taskUpdated(TaskInfo taskInfo) {
- refreshViewer();
+ tableViewer.update(taskInfo, null);
+ parent.update();
// fire selection event so that toolbar gets updated
// (the action class listens to selection and enables/disables automatically)
tableViewer.setSelection(new StructuredSelection(taskInfo));
}
-
- private void refreshViewer() {
- tableViewer.refresh();
- parent.update();
- }
-
- @Override
- public void volumeChanged(Volume volume, Event event) {
- super.volumeChanged(volume, event);
- if (event.getEventType() == EVENT_TYPE.BRICK_REPLACED) {
- if (!tableViewer.getControl().isDisposed()) {
- tableViewer.refresh();
- }
- }
- }
-
};
}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/VolumeOptionsPage.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/VolumeOptionsPage.java
index 2d1e7e98..34829fef 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/VolumeOptionsPage.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/pages/VolumeOptionsPage.java
@@ -118,20 +118,6 @@ public class VolumeOptionsPage extends Composite {
return toolkit.createButton(this, "&Add", SWT.FLAT);
}
- @Override
- public void dispose() {
- super.dispose();
- toolkit.dispose();
-
- if (!(addTopButton.isEnabled() || addBottomButton.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);
- }
-
private void registerListeners(final Composite parent) {
/**
* Ideally not required. However the table viewer is not getting laid out properly on performing
@@ -149,14 +135,16 @@ public class VolumeOptionsPage extends Composite {
@Override
public void volumeChanged(Volume volume, Event event) {
super.volumeChanged(volume, event);
- if (event.getEventType() == EVENT_TYPE.VOLUME_OPTIONS_RESET) {
+
+ switch (event.getEventType()) {
+ case VOLUME_OPTIONS_RESET:
if (!tableViewer.getControl().isDisposed()) {
tableViewer.refresh();
setAddButtonsEnabled(true);
}
- }
+ break;
- if (event.getEventType() == EVENT_TYPE.VOLUME_OPTION_SET) {
+ case VOLUME_OPTION_SET:
String key = (String)event.getEventData();
if (isNewOption(volume, key)) {
// option has been set successfully by the user. re-enable the add button and search filter
@@ -176,6 +164,16 @@ public class VolumeOptionsPage extends Composite {
// existing volume option value changed. update that element.
tableViewer.update(volume.getOptions().get(key), null);
}
+ break;
+ case VOLUME_CHANGED:
+ tableViewer.refresh();
+ if(volume.getOptions().size() == defaultVolumeOptions.size()) {
+ setAddButtonsEnabled(false);
+ } else {
+ setAddButtonsEnabled(true);
+ }
+ default:
+ break;
}
}
@@ -235,6 +233,22 @@ public class VolumeOptionsPage extends Composite {
});
GlusterDataModelManager.getInstance().addClusterListener(clusterListener);
+
+ addDisposeListener(new DisposeListener() {
+
+ @Override
+ public void widgetDisposed(DisposeEvent e) {
+ toolkit.dispose();
+
+ if (!(addTopButton.isEnabled() || addBottomButton.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);
+ }
+ });
}
private void setupPageLayout() {