Author: adietish
Date: 2010-11-04 12:23:50 -0400 (Thu, 04 Nov 2010)
New Revision: 26261
Removed:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/DisconnectCloudsDialog.java
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/commands/DisconnectCloudHandler.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageView.java
Log:
[JBIDE-7498] I now do not popup dialog if:
- a single cloud is selected
I do popup a dialog if:
- several clouds are selected
OR
- a non-cloud element(s) is selected
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2010-11-04 16:05:46
UTC (rev 26260)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2010-11-04 16:23:50
UTC (rev 26261)
@@ -1,5 +1,7 @@
2010-11-04 André Dietisheim <adietish(a)redhat.com>
+ * src/org/jboss/tools/deltacloud/ui/views/ImageView.java (.modifyText):
+ [JBIDE-7498] do nothing if event's is triggered for cloud's that has been
deleted
* src/org/jboss/tools/deltacloud/ui/views/PerformInstanceActionThread.java:
[JBIDE-7484] removed instance related methods from client, unified funtionality in
#performAction and offered additional methods on
Instance (#start, #stop, #destroy, #reboot). Furthermore update instance upon action
responses from server.
@@ -8,6 +10,7 @@
* src/org/jboss/tools/deltacloud/ui/views/DisconnectCloudsDialog.java:
* src/org/jboss/tools/deltacloud/ui/commands/DisconnectCloudHandler.java:
[JBIDE-7495] changed dialog and handler to climb up the hierarchy to the connection and
offer to disconnect the cloud connection
+ [JBIDE-7495] delete cloud directly (no dialog) if single cloud is selected
2010-11-02 André Dietisheim <adietish(a)redhat.com>
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/commands/DisconnectCloudHandler.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/commands/DisconnectCloudHandler.java 2010-11-04
16:05:46 UTC (rev 26260)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/commands/DisconnectCloudHandler.java 2010-11-04
16:23:50 UTC (rev 26261)
@@ -19,42 +19,110 @@
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
+import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.dialogs.ListSelectionDialog;
import org.eclipse.ui.handlers.HandlerUtil;
import org.jboss.tools.deltacloud.core.DeltaCloud;
import org.jboss.tools.deltacloud.core.DeltaCloudManager;
+import org.jboss.tools.deltacloud.ui.views.CVCloudElement;
+import org.jboss.tools.deltacloud.ui.views.CVMessages;
import org.jboss.tools.deltacloud.ui.views.CloudViewElement;
-import org.jboss.tools.deltacloud.ui.views.DisconnectCloudsDialog;
/**
* @author Andre Dietisheim
*/
public class DisconnectCloudHandler extends AbstractHandler implements IHandler {
+ public static class DisconnectCloudsDialog extends ListSelectionDialog {
+
+ private static final String CONFIRM_CLOUD_DELETE_TITLE =
"ConfirmCloudDelete.title"; //$NON-NLS-1$
+ private static final String CONFIRM_CLOUD_DELETE_MSG =
"ConfirmCloudDelete.msg"; //$NON-NLS-1$
+
+ private static class DeltaCloudItemProvider implements IStructuredContentProvider {
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public Object[] getElements(Object cloudViewElements) {
+ Assert.isTrue(cloudViewElements instanceof Collection);
+ Collection<DeltaCloud> deltaClouds = (Collection<DeltaCloud>)
cloudViewElements;
+ return deltaClouds.toArray(new DeltaCloud[deltaClouds.size()]);
+ }
+
+ @Override
+ public void dispose() {
+ }
+
+ @Override
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ }
+ }
+
+ private static class CloudElementNameProvider extends LabelProvider {
+ public String getText(Object element) {
+ return ((DeltaCloud) element).getName();
+ }
+ };
+
+ public DisconnectCloudsDialog(Shell parentShell, Collection<?> cloudViewElements)
{
+ super(parentShell
+ , cloudViewElements
+ , new DeltaCloudItemProvider()
+ , new CloudElementNameProvider(), CVMessages.getString(CONFIRM_CLOUD_DELETE_MSG));
+ setTitle(CVMessages.getString(CONFIRM_CLOUD_DELETE_TITLE));
+ }
+ }
+
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
ISelection selection = HandlerUtil.getCurrentSelection(event);
if (selection instanceof IStructuredSelection) {
- DisconnectCloudsDialog dialog = new DisconnectCloudsDialog(
- shell
- , getSelectedClouds(selection));
- if (Dialog.OK == dialog.open()) {
- removeCloudViewElements(dialog.getResult());
+ List<?> selectedElements = ((IStructuredSelection) selection).toList();
+ DeltaCloud deltaCloud = getFirstSelectedCloud(selectedElements);
+ if (selectedElements.size() == 1 && deltaCloud != null) {
+ removeDeltaCloud(deltaCloud);
+ } else {
+ removeWithDialog(shell, selectedElements);
}
}
return Status.OK_STATUS;
}
- private Collection<DeltaCloud> getSelectedClouds(ISelection selection) {
+ private void removeWithDialog(Shell shell, List<?> selectedElements) {
+ DisconnectCloudsDialog dialog = new DisconnectCloudsDialog(
+ shell
+ , getSelectedClouds(selectedElements));
+ if (Dialog.OK == dialog.open()) {
+ removeDeltaClouds(dialog.getResult());
+ }
+ }
+
+ private DeltaCloud getFirstSelectedCloud(List<?> selectedElements) {
+ DeltaCloud deltaCloud = null;
+ if (selectedElements.size() > 0) {
+ Object object = selectedElements.get(0);
+ if (object instanceof CVCloudElement) {
+ Object element = ((CVCloudElement) object).getElement();
+ if (element instanceof DeltaCloud) {
+ deltaCloud = (DeltaCloud) element;
+ }
+ }
+ }
+ return deltaCloud;
+ }
+
+ private Collection<DeltaCloud> getSelectedClouds(List<?> selectedElements)
{
Set<DeltaCloud> selectedClouds = new HashSet<DeltaCloud>();
- List<?> selectedElements = ((IStructuredSelection) selection).toList();
for (Object element : selectedElements) {
DeltaCloud deltaCloud = getDeltaCloud(element);
if (deltaCloud != null) {
@@ -89,9 +157,13 @@
return getDeltaCloud((CloudViewElement) element.getParent());
}
- private void removeCloudViewElements(Object[] deltaClouds) {
+ private void removeDeltaClouds(Object[] deltaClouds) {
for (Object deltaCloud : deltaClouds) {
- DeltaCloudManager.getDefault().removeCloud((DeltaCloud) deltaCloud);
+ removeDeltaCloud((DeltaCloud) deltaCloud);
}
}
+
+ private void removeDeltaCloud(DeltaCloud deltaCloud) {
+ DeltaCloudManager.getDefault().removeCloud((DeltaCloud) deltaCloud);
+ }
}
Deleted:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/DisconnectCloudsDialog.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/DisconnectCloudsDialog.java 2010-11-04
16:05:46 UTC (rev 26260)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/DisconnectCloudsDialog.java 2010-11-04
16:23:50 UTC (rev 26261)
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at
http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.deltacloud.ui.views;
-
-import java.util.Collection;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.ListSelectionDialog;
-import org.jboss.tools.deltacloud.core.DeltaCloud;
-
-public class DisconnectCloudsDialog extends ListSelectionDialog {
-
- private static final String CONFIRM_CLOUD_DELETE_TITLE =
"ConfirmCloudDelete.title"; //$NON-NLS-1$
- private static final String CONFIRM_CLOUD_DELETE_MSG =
"ConfirmCloudDelete.msg"; //$NON-NLS-1$
-
- private static class DeltaCloudItemProvider implements IStructuredContentProvider {
-
- @SuppressWarnings("unchecked")
- @Override
- public Object[] getElements(Object cloudViewElements) {
- Assert.isTrue(cloudViewElements instanceof Collection);
- Collection<DeltaCloud> deltaClouds = (Collection<DeltaCloud>)
cloudViewElements;
- return deltaClouds.toArray(new DeltaCloud[deltaClouds.size()]);
- }
-
- @Override
- public void dispose() {
- }
-
- @Override
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- }
- }
-
- private static class CloudElementNameProvider extends LabelProvider {
- public String getText(Object element) {
- return ((DeltaCloud) element).getName();
- }
- };
-
- public DisconnectCloudsDialog(Shell parentShell, Collection<?> cloudViewElements)
{
- super(parentShell
- , cloudViewElements
- , new DeltaCloudItemProvider()
- , new CloudElementNameProvider(), CVMessages.getString(CONFIRM_CLOUD_DELETE_MSG));
- setTitle(CVMessages.getString(CONFIRM_CLOUD_DELETE_TITLE));
- }
-}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageView.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageView.java 2010-11-04
16:05:46 UTC (rev 26260)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageView.java 2010-11-04
16:23:50 UTC (rev 26261)
@@ -76,16 +76,16 @@
private Label filterLabel;
@SuppressWarnings("unused")
private DeltaCloudImage selectedElement;
-
+
private DeltaCloud[] clouds;
private DeltaCloud currCloud;
-
+
private ImageViewLabelAndContentProvider contentProvider;
-
+
private Action refreshAction;
private Action filterAction;
private Action launchAction;
-
+
private ImageView parentView;
public ImageView() {
@@ -96,57 +96,60 @@
@Override
public void modifyText(ModifyEvent e) {
- int index = cloudSelector.getSelectionIndex();
- if (currCloud != null)
+ if (currCloud != null) {
currCloud.removeImageListListener(parentView);
- currCloud = clouds[index];
- Preferences prefs = new InstanceScope().getNode(Activator.PLUGIN_ID);
- try {
- prefs.put(IDeltaCloudPreferenceConstants.LAST_CLOUD_IMAGE_VIEW,
currCloud.getName());
- } catch(Exception exc) {
- // do nothing
}
+ int index = cloudSelector.getSelectionIndex();
+ if (index >= 0) {
+ currCloud = clouds[index];
+ Preferences prefs = new InstanceScope().getNode(Activator.PLUGIN_ID);
+ try {
+ prefs.put(IDeltaCloudPreferenceConstants.LAST_CLOUD_IMAGE_VIEW,
currCloud.getName());
+ } catch (Exception exc) {
+ // do nothing
+ }
- viewer.setInput(new DeltaCloudImage[0]);
- viewer.refresh();
- Display.getCurrent().asyncExec(new Runnable() {
+ viewer.setInput(new DeltaCloudImage[0]);
+ viewer.refresh();
+ Display.getCurrent().asyncExec(new Runnable() {
- @Override
- public void run() {
- viewer.setInput(currCloud);
- currCloud.addImageListListener(parentView);
- viewer.refresh();
-
- }
-
- });
+ @Override
+ public void run() {
+ viewer.setInput(currCloud);
+ currCloud.addImageListListener(parentView);
+ viewer.refresh();
+
+ }
+
+ });
+ }
}
-
};
-
+
private class ColumnListener extends SelectionAdapter {
-
+
private int column;
private TableViewer viewer;
-
+
public ColumnListener(int column, TableViewer viewer) {
this.column = column;
this.viewer = viewer;
}
+
@Override
public void widgetSelected(SelectionEvent e) {
- ImageComparator comparator = (ImageComparator)viewer.getComparator();
+ ImageComparator comparator = (ImageComparator) viewer.getComparator();
Table t = viewer.getTable();
if (comparator.getColumn() == column) {
comparator.reverseDirection();
}
comparator.setColumn(column);
- TableColumn tc = (TableColumn)e.getSource();
+ TableColumn tc = (TableColumn) e.getSource();
t.setSortColumn(tc);
t.setSortDirection(SWT.NONE);
viewer.refresh();
}
-
+
};
@Override
@@ -157,7 +160,7 @@
DeltaCloudManager.getDefault().removeCloudManagerListener(this);
super.dispose();
}
-
+
@Override
public void createPartControl(Composite parent) {
container = new Composite(parent, SWT.NULL);
@@ -165,10 +168,10 @@
layout.marginHeight = 0;
layout.marginWidth = 0;
container.setLayout(layout);
-
+
Label cloudSelectorLabel = new Label(container, SWT.NULL);
cloudSelectorLabel.setText(CVMessages.getString(CLOUD_SELECTOR_LABEL));
-
+
cloudSelector = new Combo(container, SWT.BORDER | SWT.READ_ONLY);
initializeCloudSelector();
cloudSelector.addModifyListener(cloudModifyListener);
@@ -180,15 +183,15 @@
e.doit = false;
}
});
-
+
filterLabel = new Label(container, SWT.NULL);
filterLabel.setText(CVMessages.getString(FILTERED_LABEL));
filterLabel.setToolTipText(CVMessages.getString(FILTERED_TOOLTIP));
-
+
Composite tableArea = new Composite(container, SWT.NULL);
TableColumnLayout tableLayout = new TableColumnLayout();
tableArea.setLayout(tableLayout);
-
+
viewer = new TableViewer(tableArea, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL |
SWT.BORDER);
Table table = viewer.getTable();
table.setHeaderVisible(true);
@@ -198,10 +201,10 @@
viewer.setLabelProvider(contentProvider);
ImageComparator comparator = new ImageComparator(0);
viewer.setComparator(comparator);
-
+
for (int i = 0; i < ImageViewLabelAndContentProvider.Column.getSize(); ++i) {
- ImageViewLabelAndContentProvider.Column c =
- ImageViewLabelAndContentProvider.Column.getColumn(i);
+ ImageViewLabelAndContentProvider.Column c =
+ ImageViewLabelAndContentProvider.Column.getColumn(i);
TableColumn tc = new TableColumn(table, SWT.NONE);
if (i == 0)
table.setSortColumn(tc);
@@ -210,7 +213,7 @@
tc.addSelectionListener(new ColumnListener(i, viewer));
}
table.setSortDirection(SWT.NONE);
-
+
if (currCloud != null) {
currCloud.removeImageListListener(parentView);
viewer.setInput(currCloud);
@@ -227,12 +230,12 @@
f.top = new FormAttachment(0, 5 + centering);
f.left = new FormAttachment(0, 30);
cloudSelectorLabel.setLayoutData(f);
-
+
f = new FormData();
f.top = new FormAttachment(0, 5);
f.left = new FormAttachment(cloudSelectorLabel, 5);
cloudSelector.setLayoutData(f);
-
+
f = new FormData();
f.top = new FormAttachment(0, 5 + centering);
f.right = new FormAttachment(100, -10);
@@ -244,17 +247,17 @@
f.right = new FormAttachment(100, 0);
f.bottom = new FormAttachment(100, 0);
tableArea.setLayoutData(f);
-
+
// Create the help context id for the viewer's control
PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(),
"org.jboss.tools.deltacloud.ui.viewer");
makeActions();
hookContextMenu();
hookSelection();
contributeToActionBars();
-
+
DeltaCloudManager.getDefault().addCloudManagerListener(this);
}
-
+
private void hookSelection() {
viewer.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
@@ -263,7 +266,7 @@
}
});
}
-
+
private void hookContextMenu() {
MenuManager menuMgr = new MenuManager("#PopupMenu");
menuMgr.setRemoveAllWhenShown(true);
@@ -285,9 +288,9 @@
private void handleSelection() {
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
- selectedElement = (DeltaCloudImage)selection.getFirstElement();
+ selectedElement = (DeltaCloudImage) selection.getFirstElement();
}
-
+
private void fillLocalPullDown(IMenuManager manager) {
manager.add(refreshAction);
manager.add(filterAction);
@@ -298,9 +301,9 @@
// Other plug-ins can contribute there actions here
manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
}
-
+
private void fillLocalToolBar(IToolBarManager manager) {
- //TODO
+ // TODO
}
private void makeActions() {
@@ -323,7 +326,7 @@
refreshAction.setToolTipText(CVMessages.getString(REFRESH));
refreshAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
getImageDescriptor(ISharedImages.IMG_TOOL_REDO));
-
+
filterAction = new Action() {
public void run() {
Display.getDefault().asyncExec(new Runnable() {
@@ -341,7 +344,7 @@
else
filterLabel.setVisible(false);
}
-
+
});
}
};
@@ -351,7 +354,7 @@
launchAction = new Action() {
public void run() {
ISelection selection = viewer.getSelection();
- final DeltaCloudImage image =
(DeltaCloudImage)((IStructuredSelection)selection).getFirstElement();
+ final DeltaCloudImage image = (DeltaCloudImage) ((IStructuredSelection)
selection).getFirstElement();
Display.getDefault().asyncExec(new Runnable() {
@Override
@@ -363,20 +366,20 @@
dialog.create();
dialog.open();
}
-
+
});
}
};
launchAction.setText(CVMessages.getString(LAUNCH_INSTANCE));
launchAction.setToolTipText(CVMessages.getString(LAUNCH_INSTANCE));
}
-
+
@Override
public void setFocus() {
// TODO Auto-generated method stub
}
-
+
private void initializeCloudSelector() {
int defaultIndex = 0;
clouds = DeltaCloudManager.getDefault().getClouds();
@@ -396,7 +399,7 @@
currCloud = clouds[defaultIndex];
}
}
-
+
public void changeEvent(int type) {
String currName = null;
int currIndex = 0;