Author: adietish
Date: 2010-11-12 04:41:44 -0500 (Fri, 12 Nov 2010)
New Revision: 26493
Added:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/CloudViewElementAdapterFactory.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/DeltaCloudImageAdapterFactory.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/DeltaCloudInstanceAdapterFactory.java
Modified:
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/FilterImagesHandler.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVInstanceElement.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/utils/UIUtils.java
Log:
[JBIDE-7558] implemented filter instances, filter images
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/plugin.xml
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/plugin.xml 2010-11-12 09:39:49
UTC (rev 26492)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/plugin.xml 2010-11-12 09:41:44
UTC (rev 26493)
@@ -101,9 +101,9 @@
name="%Preferences.name">
</page>
</extension>
- <!-- connection command handlers -->
<extension
point="org.eclipse.ui.handlers">
+ <!-- connection command handlers -->
<handler
class="org.jboss.tools.deltacloud.ui.commands.NewConnectionHandler"
commandId="org.jboss.tools.deltacloud.ui.newconnection">
@@ -165,9 +165,9 @@
</activeWhen>
</handler>
</extension>
- <!-- instance command handlers -->
<extension
point="org.eclipse.ui.handlers">
+ <!-- instance command handlers -->
<handler
class="org.jboss.tools.deltacloud.ui.commands.StartInstanceHandler"
commandId="org.jboss.tools.deltacloud.ui.startinstance">
@@ -273,9 +273,9 @@
</activeWhen>
</handler>
</extension>
- <!-- Filter handlers -->
<extension
point="org.eclipse.ui.handlers">
+ <!-- Filter handlers -->
<handler
class="org.jboss.tools.deltacloud.ui.commands.FilterImagesHandler"
commandId="org.jboss.tools.deltacloud.ui.filterimages">
@@ -283,8 +283,9 @@
<with
variable="selection">
<iterate operator="and">
- <instanceof
-
value="org.jboss.tools.deltacloud.ui.views.CloudViewElement" />
+ <adapt
+
type="org.jboss.tools.deltacloud.core.DeltaCloud">
+ </adapt>
</iterate>
</with>
</activeWhen>
@@ -295,11 +296,9 @@
<activeWhen>
<with
variable="selection">
- i <iterate operator="and">
+ <iterate operator="and">
<adapt
type="org.jboss.tools.deltacloud.core.DeltaCloud">
- <instanceof
- value="org.jboss.tools.deltacloud.core.DeltaCloud"
/>
</adapt>
</iterate>
</with>
@@ -345,16 +344,16 @@
locationURI="popup:org.jboss.tools.deltacloud.ui.views.InstanceView?after=instances">
<command
commandId="org.jboss.tools.deltacloud.ui.startinstance"
- disabledIcon="icons/runningd.gif"
- icon="icons/running.gif"
+ disabledIcon="icons/rund.gif"
+ icon="icons/run.gif"
label="%command.label"
style="push"
tooltip="%command.tooltip">
</command>
<command
commandId="org.jboss.tools.deltacloud.ui.stopinstance"
- disabledIcon="icons/stoppedd.gif"
- icon="icons/stopped.gif"
+ disabledIcon="icons/stopd.gif"
+ icon="icons/stop.gif"
label="%command.stopinstance.label"
style="push"
tooltip="%command.stopinstance.tooltip">
@@ -411,16 +410,16 @@
locationURI="toolbar:org.jboss.tools.deltacloud.ui.views.InstanceView?after=instances">
<command
commandId="org.jboss.tools.deltacloud.ui.startinstance"
- disabledIcon="icons/runningd.gif"
- icon="icons/running.gif"
+ disabledIcon="icons/rund.gif"
+ icon="icons/run.gif"
label="%command.label"
style="push"
tooltip="%command.tooltip">
</command>
<command
commandId="org.jboss.tools.deltacloud.ui.stopinstance"
- disabledIcon="icons/stoppedd.gif"
- icon="icons/stopped.gif"
+ disabledIcon="icons/stopd.gif"
+ icon="icons/stop.gif"
label="%command.stopinstance.label"
style="push"
tooltip="%command.stopinstance.tooltip">
@@ -447,7 +446,7 @@
icon="icons/cloud.gif"
label="%command.showInRemoteSysExplorer"
style="push"
- tooltip="%command.showInRemoteSysExplorer.tooltip.tooltip">
+ tooltip="%command.showInRemoteSysExplorer.tooltip">
</command>
</menuContribution>
</extension>
@@ -476,16 +475,16 @@
locationURI="popup:org.jboss.tools.deltacloud.ui.views.DeltaCloudView?after=instances">
<command
commandId="org.jboss.tools.deltacloud.ui.startinstance"
- disabledIcon="icons/runningd.gif"
- icon="icons/running.gif"
+ disabledIcon="icons/rund.gif"
+ icon="icons/run.gif"
label="%command.label"
style="push"
tooltip="%command.tooltip">
</command>
<command
commandId="org.jboss.tools.deltacloud.ui.stopinstance"
- disabledIcon="icons/stoppedd.gif"
- icon="icons/stopped.gif"
+ disabledIcon="icons/stopd.gif"
+ icon="icons/stop.gif"
label="%command.stopinstance.label"
style="push"
tooltip="%command.stopinstance.tooltip">
@@ -699,22 +698,28 @@
<extension
point="org.eclipse.core.runtime.adapters">
<factory
-
adaptableType="org.jboss.tools.deltacloud.ui.views.CVInstanceElement"
-
class="org.jboss.tools.deltacloud.ui.CVInstanceElementAdapterFactory">
+
adaptableType="org.jboss.tools.deltacloud.ui.views.CloudViewElement"
+
class="org.jboss.tools.deltacloud.ui.adapter.CloudViewElementAdapterFactory">
<adapter
type="org.jboss.tools.deltacloud.core.DeltaCloudInstance">
</adapter>
+ <adapter
+ type="org.jboss.tools.deltacloud.core.DeltaCloud">
+ </adapter>
+ <adapter
+
type="org.jboss.tools.deltacloud.ui.views.InstancePropertySource">
+ </adapter>
</factory>
<factory
adaptableType="org.jboss.tools.deltacloud.core.DeltaCloudInstance"
-
class="org.jboss.tools.deltacloud.ui.DeltaCloudInstanceAdapterFactory">
+
class="org.jboss.tools.deltacloud.ui.adapter.DeltaCloudInstanceAdapterFactory">
<adapter
type="org.jboss.tools.deltacloud.core.DeltaCloud">
</adapter>
</factory>
<factory
adaptableType="org.jboss.tools.deltacloud.core.DeltaCloudImage"
-
class="org.jboss.tools.deltacloud.ui.DeltaCloudImageAdapterFactory">
+
class="org.jboss.tools.deltacloud.ui.adapter.DeltaCloudImageAdapterFactory">
<adapter
type="org.jboss.tools.deltacloud.core.DeltaCloud">
</adapter>
Copied:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/CloudViewElementAdapterFactory.java
(from rev 26472,
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/CVInstanceElementAdapterFactory.java)
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/CloudViewElementAdapterFactory.java
(rev 0)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/CloudViewElementAdapterFactory.java 2010-11-12
09:41:44 UTC (rev 26493)
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * 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.adapter;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.jboss.tools.deltacloud.core.DeltaCloud;
+import org.jboss.tools.deltacloud.core.DeltaCloudImage;
+import org.jboss.tools.deltacloud.core.DeltaCloudInstance;
+import org.jboss.tools.deltacloud.ui.views.CVImageElement;
+import org.jboss.tools.deltacloud.ui.views.CVInstanceElement;
+import org.jboss.tools.deltacloud.ui.views.CloudViewElement;
+import org.jboss.tools.deltacloud.ui.views.CloudViewElementUtils;
+
+public class CloudViewElementAdapterFactory implements IAdapterFactory {
+
+ @SuppressWarnings("rawtypes")
+ private static final Class[] ADAPTERS = new Class[] {
+ IPropertySource.class,
+ DeltaCloudInstance.class,
+ DeltaCloud.class
+ };
+
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Object adaptableObject, Class adapterType) {
+ Assert.isLegal(adaptableObject instanceof CloudViewElement);
+ CloudViewElement element = (CloudViewElement) adaptableObject;
+ if (adapterType == IPropertySource.class) {
+ return element.getPropertySource();
+ } else if (adapterType == DeltaCloudImage.class) {
+ return getDeltaCloudImage(element);
+ } else if (adapterType == DeltaCloudInstance.class) {
+ return getDeltaCloudInstance(element);
+ } else if (adapterType == DeltaCloud.class) {
+ return CloudViewElementUtils.getCloud(element);
+ } else {
+ return null;
+ }
+ }
+
+ private DeltaCloudInstance getDeltaCloudInstance(CloudViewElement element) {
+ if (element instanceof CVInstanceElement) {
+ return (DeltaCloudInstance) element.getElement();
+ } else {
+ return null;
+ }
+ }
+
+ private DeltaCloudImage getDeltaCloudImage(CloudViewElement element) {
+ if (element instanceof CVImageElement) {
+ return (DeltaCloudImage) element.getElement();
+ } else {
+ return null;
+ }
+ }
+
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Class[] getAdapterList() {
+ return ADAPTERS;
+ }
+
+}
Property changes on:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/CloudViewElementAdapterFactory.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/DeltaCloudImageAdapterFactory.java
(from rev 26472,
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/DeltaCloudImageAdapterFactory.java)
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/DeltaCloudImageAdapterFactory.java
(rev 0)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/DeltaCloudImageAdapterFactory.java 2010-11-12
09:41:44 UTC (rev 26493)
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * 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.adapter;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.jboss.tools.deltacloud.core.DeltaCloud;
+import org.jboss.tools.deltacloud.core.DeltaCloudImage;
+import org.jboss.tools.internal.deltacloud.ui.utils.UIUtils;
+
+public class DeltaCloudImageAdapterFactory implements IAdapterFactory {
+
+ @SuppressWarnings("rawtypes")
+ private static final Class[] ADAPTERS = new Class[]{
+ DeltaCloud.class
+ };
+
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Object adaptableObject, Class adapterType) {
+ if (adaptableObject instanceof DeltaCloudImage) {
+ System.err.println("DeltaCloudImageAdapterFactory#getAdapter for " +
adapterType);
+ return ((DeltaCloudImage) adaptableObject).getDeltaCloud();
+ } else {
+ return UIUtils.adapt(adaptableObject, DeltaCloud.class);
+ }
+ }
+
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Class[] getAdapterList() {
+ return ADAPTERS;
+ }
+
+}
Property changes on:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/DeltaCloudImageAdapterFactory.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/DeltaCloudInstanceAdapterFactory.java
(from rev 26472,
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/DeltaCloudInstanceAdapterFactory.java)
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/DeltaCloudInstanceAdapterFactory.java
(rev 0)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/DeltaCloudInstanceAdapterFactory.java 2010-11-12
09:41:44 UTC (rev 26493)
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * 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.adapter;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.jboss.tools.deltacloud.core.DeltaCloud;
+import org.jboss.tools.deltacloud.core.DeltaCloudInstance;
+import org.jboss.tools.internal.deltacloud.ui.utils.UIUtils;
+
+public class DeltaCloudInstanceAdapterFactory implements IAdapterFactory {
+
+ @SuppressWarnings("rawtypes")
+ private static final Class[] ADAPTERS = new Class[]{
+ DeltaCloud.class
+ };
+
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Object adaptableObject, Class adapterType) {
+ if (adaptableObject instanceof DeltaCloudInstance) {
+ System.err.println("DeltaCloudInstanceAdapterFactory#getAdapter for " +
adapterType);
+ return ((DeltaCloudInstance) adaptableObject).getDeltaCloud();
+ } else {
+ return UIUtils.adapt(adaptableObject, DeltaCloud.class);
+ }
+ }
+
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Class[] getAdapterList() {
+ return ADAPTERS;
+ }
+
+}
Property changes on:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/adapter/DeltaCloudInstanceAdapterFactory.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/commands/FilterImagesHandler.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/commands/FilterImagesHandler.java 2010-11-12
09:39:49 UTC (rev 26492)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/commands/FilterImagesHandler.java 2010-11-12
09:41:44 UTC (rev 26493)
@@ -23,8 +23,6 @@
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.handlers.HandlerUtil;
import org.jboss.tools.deltacloud.core.DeltaCloud;
-import org.jboss.tools.deltacloud.ui.views.CVCloudElement;
-import org.jboss.tools.deltacloud.ui.views.CloudViewElement;
import org.jboss.tools.internal.deltacloud.ui.utils.UIUtils;
import org.jboss.tools.internal.deltacloud.ui.wizards.ImageFilter;
@@ -37,21 +35,15 @@
public Object execute(ExecutionEvent event) throws ExecutionException {
ISelection selection = HandlerUtil.getCurrentSelection(event);
if (selection instanceof IStructuredSelection) {
- CloudViewElement cloudViewElement = UIUtils.getFirstAdaptedElement(selection,
CloudViewElement.class);
- createImagesFilter(cloudViewElement, HandlerUtil.getActiveShell(event));
+ DeltaCloud cloud = UIUtils.getFirstAdaptedElement(selection, DeltaCloud.class);
+ createImagesFilter(cloud, HandlerUtil.getActiveShell(event));
}
return Status.OK_STATUS;
}
- private void createImagesFilter(CloudViewElement element, final Shell shell) {
- if (element != null) {
- while (element != null && !(element instanceof CVCloudElement)) {
- element = (CloudViewElement) element.getParent();
- }
- if (element != null) {
- CVCloudElement cve = (CVCloudElement) element;
- final DeltaCloud cloud = (DeltaCloud) cve.getElement();
+ private void createImagesFilter(final DeltaCloud cloud, final Shell shell) {
+ if (cloud != null) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
@@ -61,7 +53,6 @@
dialog.open();
}
});
- }
}
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVInstanceElement.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVInstanceElement.java 2010-11-12
09:39:49 UTC (rev 26492)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVInstanceElement.java 2010-11-12
09:41:44 UTC (rev 26493)
@@ -11,7 +11,6 @@
package org.jboss.tools.deltacloud.ui.views;
import org.eclipse.ui.views.properties.IPropertySource;
-import org.jboss.tools.deltacloud.core.DeltaCloudInstance;
public class CVInstanceElement extends CloudViewElement {
@@ -23,14 +22,4 @@
public IPropertySource getPropertySource() {
return new InstancePropertySource(this, getElement());
}
-
- @SuppressWarnings("rawtypes")
- @Override
- public Object getAdapter(Class adapter) {
- if (adapter == DeltaCloudInstance.class) {
- return getElement();
- }
-
- return super.getAdapter(adapter);
- }
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/utils/UIUtils.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/utils/UIUtils.java 2010-11-12
09:39:49 UTC (rev 26492)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/utils/UIUtils.java 2010-11-12
09:41:44 UTC (rev 26493)
@@ -130,12 +130,19 @@
public static <T> T adapt(Object object, Class<T> expectedClass) {
if (object == null) {
return null;
- } else if (expectedClass.isAssignableFrom(object.getClass())) {
- return (T) object;
+ }
+
+ Object adaptedObject = null;
+ if (expectedClass.isAssignableFrom(object.getClass())) {
+ adaptedObject = object;
} else if (object instanceof IAdaptable) {
- return (T) ((IAdaptable) object).getAdapter(expectedClass);
+ adaptedObject = ((IAdaptable) object).getAdapter(expectedClass);
+ }
+
+ if (adaptedObject != null) {
+ return (T) adaptedObject;
} else {
- return (T) Platform.getAdapterManager().loadAdapter(object, expectedClass.getName());
+ return (T) Platform.getAdapterManager().loadAdapter(object,
expectedClass.getName());
}
}