summaryrefslogtreecommitdiffstats
path: root/src/com.gluster.storage.management.gui
diff options
context:
space:
mode:
authorDhandapani <dhandapani@gluster.com>2011-06-10 12:27:14 +0530
committerDhandapani <dhandapani@gluster.com>2011-06-10 12:27:14 +0530
commit3c5b8b46c2f64e36efb6df938bd2d02c7475ecfc (patch)
tree2dabb34d44a6339e7212860ec7eea7a0f77526db /src/com.gluster.storage.management.gui
parent15a7ee0377df78abd5ee28f6fd47d0d53e1a392e (diff)
parent5e1b12890c6ad6e6fe3bb17589550dfd74f89344 (diff)
Merge branch 'master' of git@github.com:gluster/console
Diffstat (limited to 'src/com.gluster.storage.management.gui')
-rw-r--r--src/com.gluster.storage.management.gui/plugin.xml11
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/Perspective.java5
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java16
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveServerAction.java17
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/utils/GUIHelper.java5
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/DetailsView.java110
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/DiscoveredServersView.java30
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServersView.java3
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/NavigationView.java2
-rw-r--r--src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumesView.java32
10 files changed, 20 insertions, 211 deletions
diff --git a/src/com.gluster.storage.management.gui/plugin.xml b/src/com.gluster.storage.management.gui/plugin.xml
index 89b2460b..f4c3c8f6 100644
--- a/src/com.gluster.storage.management.gui/plugin.xml
+++ b/src/com.gluster.storage.management.gui/plugin.xml
@@ -16,7 +16,7 @@
<perspective
name="Gluster Perspective"
class="com.gluster.storage.management.gui.Perspective"
- id="com.gluster.storage.management.gui.perspective">
+ id="com.gluster.storage.management.gui.Perspective">
</perspective>
</extension>
<extension
@@ -30,15 +30,6 @@
restorable="true">
</view>
<view
- allowMultiple="false"
- category="com.gluster.storage.management.gui.category"
- class="com.gluster.storage.management.gui.views.DetailsView"
- icon="icons/gluster_icon.png"
- id="com.gluster.storage.management.gui.views.details.DetailsView"
- name="Details"
- restorable="true">
- </view>
- <view
category="org.eclipse.ui"
class="org.eclipse.ui.ExtensionFactory:progressView"
icon="icons/progress-bar.png"
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/Perspective.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/Perspective.java
index 3f8702ce..6a4bb37b 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/Perspective.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/Perspective.java
@@ -21,15 +21,12 @@ package com.gluster.storage.management.gui;
import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPerspectiveFactory;
-import com.gluster.storage.management.gui.views.DetailsView;
-import com.gluster.storage.management.gui.views.NavigationView;
-
public class Perspective implements IPerspectiveFactory {
/**
* The ID of the perspective as specified in the extension.
*/
- public static final String ID = "com.gluster.storage.management.gui.perspective";
+ public static final String ID = Perspective.class.getName();
public void createInitialLayout(IPageLayout layout) {
layout.setEditorAreaVisible(false);
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java
index 230bff6a..4fd99cc7 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/AddServerAction.java
@@ -65,13 +65,13 @@ public class AddServerAction extends AbstractActionDelegate {
}
}
- showStatusMessage(action.getDescription(), selectedServers, successServers, errMsg, partErrMsg);
+ showStatusMessage(action.getDescription(), selectedServers, successServers, partSuccessServers, errMsg, partErrMsg);
}
});
}
private void showStatusMessage(String dialogTitle, Set<Server> selectedServers, Set<Server> successServers,
- String errMsg, String partErrMsg) {
+ Set<Server> partSuccessServers, String errMsg, String partErrMsg) {
if (successServers.size() == selectedServers.size()) {
if (selectedServers.size() == 1) {
showInfoDialog(dialogTitle, "Server [" + selectedServers.iterator().next() + "] added successfully!");
@@ -83,15 +83,13 @@ public class AddServerAction extends AbstractActionDelegate {
}
String finalMsg = "";
- if (successServers.size() == 0) {
+ if (successServers.size() == 0 && partSuccessServers.size() == 0) {
finalMsg = "Server Addition Failed! Error(s):" + CoreConstants.NEWLINE + errMsg;
} else {
- finalMsg = "Following servers added successfully : "
- + CoreConstants.NEWLINE
- + successServers
- + (partErrMsg.isEmpty() ? "" : CoreConstants.NEWLINE
- + "Following servers were added to cluster, but with some errors: " + CoreConstants.NEWLINE
- + partErrMsg)
+ finalMsg = (successServers.isEmpty() ? "" : "Following servers added successfully : "
+ + CoreConstants.NEWLINE + successServers + CoreConstants.NEWLINE)
+ + (partSuccessServers.isEmpty() ? "" : "Following servers were added to cluster, but with some errors: "
+ + CoreConstants.NEWLINE + partErrMsg + CoreConstants.NEWLINE)
+ (errMsg.isEmpty() ? "" : CoreConstants.NEWLINE
+ "Following errors occurred on other selected servers: " + CoreConstants.NEWLINE + errMsg);
}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveServerAction.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveServerAction.java
index 0ca5627c..f8f611fb 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveServerAction.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/actions/RemoveServerAction.java
@@ -33,6 +33,7 @@ import org.eclipse.swt.widgets.Display;
import com.gluster.storage.management.client.GlusterDataModelManager;
import com.gluster.storage.management.client.GlusterServersClient;
import com.gluster.storage.management.core.constants.CoreConstants;
+import com.gluster.storage.management.core.model.Brick;
import com.gluster.storage.management.core.model.Cluster;
import com.gluster.storage.management.core.model.GlusterServer;
import com.gluster.storage.management.core.model.Status;
@@ -106,7 +107,7 @@ public class RemoveServerAction extends AbstractActionDelegate {
private boolean validate(IAction action, Set<GlusterServer> selectedServers) {
Map<GlusterServer, List<String>> usedServers = new HashMap<GlusterServer, List<String>>();
for (GlusterServer server : selectedServers) {
- List<String> configuredVolumes = getServerVolumeNames(server.getName());
+ List<String> configuredVolumes = modelManager.getVolumesOfServer(server.getName());
if (configuredVolumes.size() > 0) {
usedServers.put(server, configuredVolumes);
@@ -132,20 +133,6 @@ public class RemoveServerAction extends AbstractActionDelegate {
return true;
}
- private List<String> getServerVolumeNames(String serverName) {
- Cluster cluster = modelManager.getModel().getCluster();
- List<String> volumeNames = new ArrayList<String>();
- for (Volume volume : cluster.getVolumes()) {
- for (String brick : volume.getDisks()) {
- if (serverName.equals(brick.split(":")[0])) {
- volumeNames.add(volume.getName());
- break;
- }
- }
- }
- return volumeNames;
- }
-
public void dispose() {
}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/utils/GUIHelper.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/utils/GUIHelper.java
index a38c6b38..9e2ec9e0 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/utils/GUIHelper.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/utils/GUIHelper.java
@@ -366,12 +366,11 @@ public class GUIHelper {
* Type of the selected object to look for
* @return The selected object of given type if found, else null
*/
- @SuppressWarnings("rawtypes")
- public Object getSelectedEntity(IWorkbenchSite site, Class expectedType) {
+ public <T> T getSelectedEntity(IWorkbenchSite site, Class<T> expectedType) {
return getSelectedEntity(site.getWorkbenchWindow(), expectedType);
}
- @SuppressWarnings({ "unchecked", "rawtypes" })
+ @SuppressWarnings({ "unchecked" })
public <T> T getSelectedEntity(IWorkbenchWindow window, Class<T> expectedType) {
ISelection selection = window.getSelectionService().getSelection(NavigationView.ID);
if (selection instanceof IStructuredSelection) {
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/DetailsView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/DetailsView.java
deleted file mode 100644
index efdb6457..00000000
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/DetailsView.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Gluster, Inc. <http://www.gluster.com>
- * This file is part of Gluster Management Console.
- *
- * Gluster Management Console is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License as published
- * by the Free Software Foundation; either version 3 of the License, or
- * (at your option) any later version.
- *
- * Gluster Management Console is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see
- * <http://www.gnu.org/licenses/>.
- *******************************************************************************/
-package com.gluster.storage.management.gui.views;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.IWorkbenchWindow;
-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.gui.toolbar.GlusterToolbarManager;
-import com.gluster.storage.management.gui.views.details.TabCreatorFactory;
-import com.gluster.storage.management.gui.views.details.TabCreatorFactoryImpl;
-
-/**
- * This view is displayed on the right hand side of the platform UI. It updates itself with appropriate tabs
- * whenever selection changes on the navigation view (cluster tree) on the left hand side of the UI.
- */
-public class DetailsView extends ViewPart implements ISelectionListener {
- public static final String ID = DetailsView.class.getName();
- private final FormToolkit toolkit = new FormToolkit(Display.getCurrent());
- private TabFolder tabFolder;
- private Entity entity;
- private TabCreatorFactory tabCreatorFactory = new TabCreatorFactoryImpl();
- private GlusterToolbarManager toolbarManager;
- private IWorkbenchPartSite site;
-
- public DetailsView() {
- super();
- }
-
- @Override
- public void createPartControl(final Composite parent) {
- parent.addDisposeListener(new DisposeListener() {
- public void widgetDisposed(DisposeEvent e) {
- toolkit.dispose();
- }
- });
-
- tabFolder = new TabFolder(parent, SWT.TOP);
-
- // listen to selection event on the navigation tree view
- IWorkbenchWindow window = getViewSite().getWorkbenchWindow();
- window.getSelectionService().addSelectionListener(this);
-
- // Create the toolbar manager
- toolbarManager = new GlusterToolbarManager(window);
- site = getSite();
- }
-
- @Override
- public void setFocus() {
- tabFolder.setFocus();
- }
-
- private void removeAllTabs() {
- for (TabItem item : tabFolder.getItems()) {
- item.getControl().dispose();
- item.dispose();
- }
- }
-
- @Override
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- if (part instanceof NavigationView && selection instanceof TreeSelection) {
- Entity selectedEntity = (Entity) ((TreeSelection) selection).getFirstElement();
-
- if (entity == selectedEntity || selectedEntity == null) {
- // entity selection has not changed. do nothing.
- return;
- }
-
- entity = selectedEntity;
- removeAllTabs();
-
- // Create tabs for newly selected entity
- tabCreatorFactory.getTabCreator(entity).createTabs(entity, tabFolder, toolkit, site);
-
- // update toolbar buttons visibility based on selected entity
- toolbarManager.updateToolbar(entity);
- }
- }
-}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/DiscoveredServersView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/DiscoveredServersView.java
index 69c506f4..fe0b1f36 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/DiscoveredServersView.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/DiscoveredServersView.java
@@ -22,12 +22,8 @@ package com.gluster.storage.management.gui.views;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.part.ViewPart;
import com.gluster.storage.management.core.model.Entity;
@@ -39,7 +35,7 @@ import com.gluster.storage.management.gui.views.pages.ServersPage;
/**
*
*/
-public class DiscoveredServersView extends ViewPart implements IDoubleClickListener, ISelectionListener {
+public class DiscoveredServersView extends ViewPart implements IDoubleClickListener {
public static final String ID = DiscoveredServersView.class.getName();
private static final GUIHelper guiHelper = GUIHelper.getInstance();
private EntityGroup<Server> servers;
@@ -53,6 +49,7 @@ public class DiscoveredServersView extends ViewPart implements IDoubleClickListe
*
* @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
+ @SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public void createPartControl(Composite parent) {
if (servers == null) {
@@ -64,7 +61,6 @@ public class DiscoveredServersView extends ViewPart implements IDoubleClickListe
page = new ServersPage(parent, getSite(), servers);
page.addDoubleClickListener(this);
- getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(NavigationView.ID, this);
}
/*
@@ -84,26 +80,4 @@ public class DiscoveredServersView extends ViewPart implements IDoubleClickListe
clusterView.selectEntity((Entity) ((StructuredSelection) event.getSelection()).getFirstElement());
}
}
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart,
- * org.eclipse.jface.viewers.ISelection)
- */
- @Override
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- if (part instanceof NavigationView && selection instanceof TreeSelection) {
- Entity selectedEntity = (Entity) ((TreeSelection) selection).getFirstElement();
-
- if (servers == selectedEntity || selectedEntity == null || !(selectedEntity instanceof EntityGroup)
- || ((EntityGroup) selectedEntity).getEntityType() != Server.class) {
- // entity selection has not changed. do nothing.
- return;
- }
-
- servers = (EntityGroup<Server>) selectedEntity;
- page.setInput(servers);
- }
- }
}
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServersView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServersView.java
index fa9c2e7f..dfaf904a 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServersView.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/GlusterServersView.java
@@ -46,10 +46,11 @@ public class GlusterServersView extends ViewPart implements IDoubleClickListener
/* (non-Javadoc)
* @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
+ @SuppressWarnings("unchecked")
@Override
public void createPartControl(Composite parent) {
if (servers == null) {
- servers = (EntityGroup<GlusterServer>)guiHelper.getSelectedEntity(getSite(), EntityGroup.class);
+ servers = (EntityGroup<GlusterServer>) guiHelper.getSelectedEntity(getSite(), EntityGroup.class);
}
page = new GlusterServersPage(getSite(), parent, SWT.NONE, servers);
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 aede70c5..a5da2f62 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
@@ -61,7 +61,7 @@ public class NavigationView extends ViewPart implements ISelectionListener {
viewsManager = new GlusterViewsManager(getSite().getPage());
// listen to selection events to update views/toolbar accordingly
- getSite().getPage().addSelectionListener(this);
+ getSite().getPage().addPostSelectionListener(this);
}
private void createNavigationTree(Composite parent) {
diff --git a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumesView.java b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumesView.java
index 4ccf5325..0a48d870 100644
--- a/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumesView.java
+++ b/src/com.gluster.storage.management.gui/src/com/gluster/storage/management/gui/views/VolumesView.java
@@ -22,26 +22,20 @@ package com.gluster.storage.management.gui.views;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.part.ViewPart;
import com.gluster.storage.management.core.model.Entity;
import com.gluster.storage.management.core.model.EntityGroup;
-import com.gluster.storage.management.core.model.Server;
import com.gluster.storage.management.core.model.Volume;
import com.gluster.storage.management.gui.utils.GUIHelper;
-import com.gluster.storage.management.gui.views.pages.ServersPage;
import com.gluster.storage.management.gui.views.pages.VolumesPage;
/**
*
*/
-public class VolumesView extends ViewPart implements IDoubleClickListener, ISelectionListener {
+public class VolumesView extends ViewPart implements IDoubleClickListener {
public static final String ID = VolumesView.class.getName();
private static final GUIHelper guiHelper = GUIHelper.getInstance();
private EntityGroup<Volume> volumes;
@@ -52,6 +46,7 @@ public class VolumesView extends ViewPart implements IDoubleClickListener, ISele
*
* @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
+ @SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public void createPartControl(Composite parent) {
if (volumes == null) {
@@ -63,7 +58,6 @@ public class VolumesView extends ViewPart implements IDoubleClickListener, ISele
page = new VolumesPage(parent, getSite(), volumes);
page.addDoubleClickListener(this);
- getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(NavigationView.ID, this);
}
/*
@@ -83,26 +77,4 @@ public class VolumesView extends ViewPart implements IDoubleClickListener, ISele
clusterView.selectEntity((Entity) ((StructuredSelection) event.getSelection()).getFirstElement());
}
}
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart,
- * org.eclipse.jface.viewers.ISelection)
- */
- @Override
- public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- if (part instanceof NavigationView && selection instanceof TreeSelection) {
- Entity selectedEntity = (Entity) ((TreeSelection) selection).getFirstElement();
-
- if (volumes == selectedEntity || selectedEntity == null || !(selectedEntity instanceof EntityGroup)
- || ((EntityGroup) selectedEntity).getEntityType() != Volume.class) {
- // entity selection has not changed. do nothing.
- return;
- }
-
- volumes = (EntityGroup<Volume>) selectedEntity;
- page.setInput(volumes);
- }
- }
}