diff options
| author | Dhandapani <dhandapani@gluster.com> | 2011-06-10 12:27:14 +0530 |
|---|---|---|
| committer | Dhandapani <dhandapani@gluster.com> | 2011-06-10 12:27:14 +0530 |
| commit | 3c5b8b46c2f64e36efb6df938bd2d02c7475ecfc (patch) | |
| tree | 2dabb34d44a6339e7212860ec7eea7a0f77526db /src/com.gluster.storage.management.gui | |
| parent | 15a7ee0377df78abd5ee28f6fd47d0d53e1a392e (diff) | |
| parent | 5e1b12890c6ad6e6fe3bb17589550dfd74f89344 (diff) | |
Merge branch 'master' of git@github.com:gluster/console
Diffstat (limited to 'src/com.gluster.storage.management.gui')
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); - } - } } |
