summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--com.gluster.storage.management.gui/plugin.xml41
-rw-r--r--com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AbstractActionDelegate.java5
-rw-r--r--com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java13
-rw-r--r--com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/CreateVolumeAction.java14
-rw-r--r--com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/MigrateDiskAction.java28
-rw-r--r--com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/DetailsView.java2
6 files changed, 84 insertions, 19 deletions
diff --git a/com.gluster.storage.management.gui/plugin.xml b/com.gluster.storage.management.gui/plugin.xml
index 8097f4ef..6c956981 100644
--- a/com.gluster.storage.management.gui/plugin.xml
+++ b/com.gluster.storage.management.gui/plugin.xml
@@ -350,6 +350,11 @@
style="push"
toolbarPath="Normal"
tooltip="Migrate Disk">
+ <enablement>
+ <objectClass
+ name="com.gluster.storage.management.core.model.Disk">
+ </objectClass>
+ </enablement>
</action>
<action
allowLabelUpdate="false"
@@ -819,6 +824,42 @@
</not>
</visibility>
</objectContribution>
+ <objectContribution
+ id="gluster.context.menu.entityGroup"
+ objectClass="com.gluster.storage.management.core.model.EntityGroup">
+ <action
+ allowLabelUpdate="false"
+ class="com.gluster.storage.management.gui.actions.CreateVolumeAction"
+ definitionId="com.gluster.storage.management.gui.commands.CreateVolume"
+ icon="icons/volume-create.png"
+ id="com.gluster.storage.management.gui.actions.CreateVolumeAction"
+ label="&amp;Create Volume"
+ menubarPath="additions"
+ mode="FORCE_TEXT"
+ pulldown="false"
+ retarget="false"
+ state="false"
+ style="push"
+ toolbarPath="Normal"
+ tooltip="Create a new Volume">
+ </action>
+ <action
+ allowLabelUpdate="false"
+ class="com.gluster.storage.management.gui.actions.AddServerAction"
+ definitionId="com.gluster.storage.management.gui.commands.AddServer"
+ icon="icons/server-add.png"
+ id="com.gluster.storage.management.gui.actions.AddServerAction"
+ label="&amp;Add Server(s)"
+ menubarPath="additions"
+ mode="FORCE_TEXT"
+ pulldown="false"
+ retarget="false"
+ state="false"
+ style="push"
+ toolbarPath="Normal"
+ tooltip="Add Server(s) to Cluster">
+ </action>
+ </objectContribution>
</extension>
</plugin>
diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AbstractActionDelegate.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AbstractActionDelegate.java
index ddcb91c0..80953cde 100644
--- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AbstractActionDelegate.java
+++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AbstractActionDelegate.java
@@ -3,6 +3,7 @@ package com.gluster.storage.management.gui.actions;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
@@ -27,7 +28,9 @@ public abstract class AbstractActionDelegate implements IWorkbenchWindowActionDe
return;
}
- this.selectedEntity = selectedEntity;
+ if(selectedEntity != null) {
+ this.selectedEntity = selectedEntity;
+ }
}
}
diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java
index 9a278c74..9d385068 100644
--- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java
+++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java
@@ -5,6 +5,9 @@ import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import com.gluster.storage.management.core.model.EntityGroup;
+import com.gluster.storage.management.core.model.Volume;
+
public class AddServerAction extends AbstractActionDelegate {
@Override
public void run(IAction action) {
@@ -15,4 +18,14 @@ public class AddServerAction extends AbstractActionDelegate {
public void dispose() {
System.out.println("Disposing [" + this.getClass().getSimpleName() + "]");
}
+
+ @Override
+ public void selectionChanged(IAction action, ISelection selection) {
+ super.selectionChanged(action, selection);
+
+ action.setEnabled(true);
+ if(selectedEntity instanceof EntityGroup && ((EntityGroup)selectedEntity).getEntityType() == Volume.class) {
+ action.setEnabled(false);
+ }
+ }
}
diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/CreateVolumeAction.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/CreateVolumeAction.java
index ea5ac084..2cd1a505 100644
--- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/CreateVolumeAction.java
+++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/CreateVolumeAction.java
@@ -1,8 +1,11 @@
package com.gluster.storage.management.gui.actions;
import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.wizard.WizardDialog;
+import com.gluster.storage.management.core.model.EntityGroup;
+import com.gluster.storage.management.core.model.Volume;
import com.gluster.storage.management.gui.dialogs.CreateVolumeWizard;
public class CreateVolumeAction extends AbstractActionDelegate {
@@ -20,4 +23,15 @@ public class CreateVolumeAction extends AbstractActionDelegate {
public void dispose() {
window = null;
}
+
+ @Override
+ public void selectionChanged(IAction action, ISelection selection) {
+ super.selectionChanged(action, selection);
+
+ action.setEnabled(true);
+ if(selectedEntity instanceof EntityGroup && ((EntityGroup)selectedEntity).getEntityType() != Volume.class) {
+ // selected entity is either "servers" or "discovered servers".
+ action.setEnabled(false);
+ }
+ }
}
diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/MigrateDiskAction.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/MigrateDiskAction.java
index 3d59f179..f8d6eb35 100644
--- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/MigrateDiskAction.java
+++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/MigrateDiskAction.java
@@ -16,32 +16,28 @@ public class MigrateDiskAction extends AbstractActionDelegate {
@Override
public void run(IAction action) {
// MigrateDiskDialog dialog = new MigrateDiskDialog(window.getShell(), volume, disk);
-// dialog.create();
-// dialog.open();
+// dialog.create();
+// dialog.open();
MigrateDiskWizard wizard = new MigrateDiskWizard(volume, disk);
-
+
WizardDialog dialog = new WizardDialog(window.getShell(), wizard);
- dialog.create();
- dialog.getShell().setSize(1024, 600);
- dialog.open();
+ dialog.create();
+ dialog.getShell().setSize(1024, 600);
+ dialog.open();
}
@Override
public void selectionChanged(IAction action, ISelection selection) {
super.selectionChanged(action, selection);
-
- if(selectedEntity == null) {
- // this happens when user clicks on the "Disks" tab
- return;
- }
-
- action.setEnabled(false);
+
if (selectedEntity instanceof Volume) {
volume = (Volume) selectedEntity;
- action.setEnabled(true);
- } else if (selectedEntity instanceof Disk) {
+ }
+
+ action.setEnabled(false);
+ if (selectedEntity instanceof Disk) {
disk = (Disk) selectedEntity;
- action.setEnabled(((StructuredSelection) selection).size() <= 1);
+ action.setEnabled(((StructuredSelection) selection).size() == 1);
}
}
diff --git a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/DetailsView.java b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/DetailsView.java
index ff40d1ea..29b575ac 100644
--- a/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/DetailsView.java
+++ b/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/details/DetailsView.java
@@ -13,12 +13,10 @@ import org.eclipse.ui.ISelectionListener;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchPartSite;
import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.contexts.IContextService;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.part.ViewPart;
import com.gluster.storage.management.core.model.Entity;
-import com.gluster.storage.management.core.model.Volume;
import com.gluster.storage.management.gui.toolbar.ToolbarManager;
import com.gluster.storage.management.gui.views.navigator.NavigationView;