diff options
| author | Shireesh Anjal <shireesh@gluster.com> | 2011-03-21 20:17:17 +0530 |
|---|---|---|
| committer | Shireesh Anjal <shireesh@gluster.com> | 2011-03-21 20:17:17 +0530 |
| commit | 97964bbc552cf0c3a86d0dff8ba00d930f60fd5d (patch) | |
| tree | adf02c55e211f6dbab51003fea5d39c243c289b3 /com.gluster.storage.management.gui/src/com | |
| parent | 975063f3f52493f5370a36da21c7436f2702683e (diff) | |
Modified to enable/disable start/stop volume actions depending on the status of currently selected volume
Diffstat (limited to 'com.gluster.storage.management.gui/src/com')
3 files changed, 45 insertions, 12 deletions
diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StartVolumeAction.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StartVolumeAction.java index dc8ee77b..6dbe6315 100644 --- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StartVolumeAction.java +++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StartVolumeAction.java @@ -19,25 +19,37 @@ package com.gluster.storage.management.gui.actions; import org.eclipse.jface.action.IAction; -import org.eclipse.ui.PlatformUI; +import org.eclipse.jface.viewers.ISelection; -import com.gluster.storage.management.gui.views.DiscoveredServersView; +import com.gluster.storage.management.core.model.Volume; +import com.gluster.storage.management.core.model.Volume.VOLUME_STATUS; public class StartVolumeAction extends AbstractActionDelegate { + @Override public void run(IAction action) { - PlatformUI - .getWorkbench() - .getActiveWorkbenchWindow() - .getActivePage() - .hideView( - PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() - .findViewReference(DiscoveredServersView.ID)); - System.out.println("After closing the view!"); + System.out.println("Running [" + this.getClass().getSimpleName() + "]"); } @Override public void dispose() { System.out.println("Disposing [" + this.getClass().getSimpleName() + "]"); } + + /* + * (non-Javadoc) + * + * @see + * com.gluster.storage.management.gui.actions.AbstractActionDelegate#selectionChanged(org.eclipse.jface.action.IAction + * , org.eclipse.jface.viewers.ISelection) + */ + @Override + public void selectionChanged(IAction action, ISelection selection) { + super.selectionChanged(action, selection); + + if (selectedEntity instanceof Volume) { + Volume volume = (Volume) selectedEntity; + action.setEnabled(volume.getStatus() == VOLUME_STATUS.OFFLINE); + } + } } diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StopVolumeAction.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StopVolumeAction.java index 7011f677..8e0e7f50 100644 --- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StopVolumeAction.java +++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/StopVolumeAction.java @@ -19,6 +19,10 @@ package com.gluster.storage.management.gui.actions; import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.ISelection; + +import com.gluster.storage.management.core.model.Volume; +import com.gluster.storage.management.core.model.Volume.VOLUME_STATUS; public class StopVolumeAction extends AbstractActionDelegate { @Override @@ -30,4 +34,18 @@ public class StopVolumeAction extends AbstractActionDelegate { public void dispose() { System.out.println("Disposing [" + this.getClass().getSimpleName() + "]"); } + + /* (non-Javadoc) + * @see com.gluster.storage.management.gui.actions.AbstractActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) + */ + @Override + public void selectionChanged(IAction action, ISelection selection) { + // TODO Auto-generated method stub + super.selectionChanged(action, selection); + + if (selectedEntity instanceof Volume) { + Volume volume = (Volume) selectedEntity; + action.setEnabled(volume.getStatus() == VOLUME_STATUS.ONLINE); + } + } } diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/NavigationView.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/NavigationView.java index 21378db8..8618c1da 100644 --- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/NavigationView.java +++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/NavigationView.java @@ -58,9 +58,9 @@ public class NavigationView extends ViewPart implements ISelectionListener { // Create the views and toolbar managers toolbarManager = new GlusterToolbarManager(getSite().getWorkbenchWindow()); viewsManager = new GlusterViewsManager(getSite().getPage()); - + // listen to selection events to update views/toolbar accordingly - getSite().getPage().addSelectionListener(this); + getSite().getPage().addSelectionListener(this); } private void createNavigationTree(Composite parent) { @@ -127,6 +127,9 @@ public class NavigationView extends ViewPart implements ISelectionListener { // update views and toolbar buttons visibility based on selected entity viewsManager.updateViews(entity); toolbarManager.updateToolbar(entity); + + // Opening of other views may cause navigation tree to lose focus; get it back. + setFocus(); } } } |
