Author: adietish
Date: 2011-01-07 09:55:03 -0500 (Fri, 07 Jan 2011)
New Revision: 27980
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/plugin.xml
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/commands/RefreshCloudHandler.java
Log:
[JBIDE-7916] added ability to refresh several clouds
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2011-01-07 14:38:02
UTC (rev 27979)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2011-01-07 14:55:03
UTC (rev 27980)
@@ -1,3 +1,9 @@
+2011-01-07 André Dietisheim <André Dietisheim@adietisheim-thinkpad>
+
+ * plugin.xml:
+ * src/org/jboss/tools/deltacloud/ui/commands/RefreshCloudHandler.java (execute):
+ [JBIDE-7916] added ability to refresh several clouds
+
2011-01-06 André Dietisheim <André Dietisheim@adietisheim-thinkpad>
* src/org/jboss/tools/deltacloud/ui/views/cloud/ImagesCategoryItem.java (.doRun):
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/plugin.xml
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/plugin.xml 2011-01-07 14:38:02
UTC (rev 27979)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/plugin.xml 2011-01-07 14:55:03
UTC (rev 27980)
@@ -149,7 +149,7 @@
<with
variable="selection">
<and>
- <count value="1" />
+ <count value="+" />
<iterate operator="and">
<adapt
type="org.jboss.tools.deltacloud.core.DeltaCloud" />
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/commands/RefreshCloudHandler.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/commands/RefreshCloudHandler.java 2011-01-07
14:38:02 UTC (rev 27979)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/commands/RefreshCloudHandler.java 2011-01-07
14:55:03 UTC (rev 27980)
@@ -10,6 +10,9 @@
******************************************************************************/
package org.jboss.tools.deltacloud.ui.commands;
+import java.util.Collection;
+import java.util.Collections;
+
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
@@ -17,6 +20,8 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.handlers.HandlerUtil;
import org.jboss.tools.deltacloud.core.DeltaCloud;
import org.jboss.tools.deltacloud.core.DeltaCloudException;
@@ -32,26 +37,35 @@
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
- DeltaCloud cloud = getDeltaCloud(event);
- if (cloud != null) {
+ // first try selected item
+ Collection<DeltaCloud> clouds =
getSelectedClouds(HandlerUtil.getCurrentSelection(event));
+ if (!clouds.isEmpty()) {
+ refresh(clouds);
+ } else {
+ // no item selected: try active part
+ refresh(UIUtils.adapt(HandlerUtil.getActivePart(event), DeltaCloud.class));
+ }
+ return Status.OK_STATUS;
+ }
+
+ private Collection<DeltaCloud> getSelectedClouds(ISelection selection) {
+ if (!(selection instanceof IStructuredSelection)) {
+ return Collections.emptyList();
+ }
+
+ return UIUtils.adapt(((IStructuredSelection) selection).toList(), DeltaCloud.class);
+ }
+
+ private void refresh(Collection<DeltaCloud> clouds) {
+ for (DeltaCloud cloud : clouds) {
refresh(cloud);
}
-
- return Status.OK_STATUS;
}
- private DeltaCloud getDeltaCloud(ExecutionEvent event) {
- DeltaCloud cloud = null;
- // first try selected item
- cloud = UIUtils.getFirstAdaptedElement(HandlerUtil.getCurrentSelection(event),
DeltaCloud.class);
+ private void refresh(final DeltaCloud cloud) {
if (cloud == null) {
- // no item selected: try active part
- cloud = UIUtils.adapt(HandlerUtil.getActivePart(event), DeltaCloud.class);
+ return;
}
- return cloud;
- }
-
- protected void refresh(final DeltaCloud cloud) {
// TODO: internationalize strings
new AbstractCloudJob("Refreshing images and instances on " + cloud.getName(),
cloud) {
Show replies by date