Author: adietish
Date: 2010-12-10 09:33:08 -0500 (Fri, 10 Dec 2010)
New Revision: 27355
Removed:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/common/databinding/ObservablePojo.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/views/cloud/CloudElementCategoryItem.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/CloudItem.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewContentProvider.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewItem.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewLabelProvider.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/ImageItem.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/ImagesCategoryItem.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/InstanceItem.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/InstancesCategoryItem.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/LoadingItem.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/NumericFoldingItem.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/RootItem.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/AbstractCloudElementTableView.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/AbstractCloudElementViewLabelAndContentProvider.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/ImageView.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/ImageViewLabelAndContentProvider.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/InstanceView.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/InstanceViewLabelAndContentProvider.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnectionModel.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/EditCloudConnectionWizard.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstanceModel.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstanceWizard.java
Log:
[JBIDE-7856]
* removed DeltaCloudManager#notifyCloudRename and IDeltaCloudManagerListener#RENAME_EVENT.
DeltaCloud now notifies about changes in its properties (images, instances, name), no
manual triggering of change notification needed any more
* switched the observer pattern in DeltaCloud to PropertyChangeSupport, listening to
changes in name, image and instances of the cloud
* updating CloudViewItem in tree if cloud name changes
* updating cloud combo in InstanceView and ImageView if cloud name changes
* now using Generics in the various Items to gain strict typing
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2010-12-10 14:21:20
UTC (rev 27354)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2010-12-10 14:33:08
UTC (rev 27355)
@@ -1,3 +1,34 @@
+2010-12-10 André Dietisheim <adietish(a)redhat.com>
+
+ * src/org/jboss/tools/internal/deltacloud/ui/wizards/EditCloudConnectionWizard.java
(performFinish):
+ [JBIDE-7856] removed DeltaCloudManager#notifyCloudRename and
IDeltaCloudManagerListener#RENAME_EVENT.
+ DeltaCloud now notifies about changes in its properties (images, instances, name),
+ no manual triggering of change notification needed any more
+ *
src/org/jboss/tools/deltacloud/ui/views/cloudelements/InstanceViewLabelAndContentProvider.java:
+ *
src/org/jboss/tools/deltacloud/ui/views/cloudelements/ImageViewLabelAndContentProvider.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloudelements/InstanceView.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloudelements/ImageView.java:
+ *
src/org/jboss/tools/deltacloud/ui/views/cloudelements/AbstractCloudElementViewLabelAndContentProvider.java:
+ *
src/org/jboss/tools/deltacloud/ui/views/cloudelements/AbstractCloudElementTableView.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewLabelProvider.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewContentProvider.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/RootItem.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/LoadingItem.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/NumericFoldingItem.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/ImageItem.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewItem.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/CloudItem.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/CloudElementCategoryItem.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/ImagesCategoryItem.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/InstancesCategoryItem.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/ImageItem.java:
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/InstanceItem.java:
+ [JBIDE-7856] switched the observer pattern in DeltaCloud to PropertyChangeSupport,
+ listening to changes in name, image and instances of the cloud,
+ updating CloudViewItem in tree if cloud name changes,
+ updating cloud combo in InstanceView and ImageView if cloud name changes,
+ now using Generics in the various Items to gain strict typing,
+
2010-12-09 André Dietisheim <adietish(a)redhat.com>
*
src/org/jboss/tools/deltacloud/ui/views/cloudelements/AbstractCloudElementTableView.java
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/CloudElementCategoryItem.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/CloudElementCategoryItem.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/CloudElementCategoryItem.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -10,6 +10,8 @@
*******************************************************************************/
package org.jboss.tools.deltacloud.ui.views.cloud;
+import java.beans.PropertyChangeListener;
+
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.ui.views.properties.IPropertySource;
import org.jboss.tools.deltacloud.core.DeltaCloud;
@@ -19,11 +21,12 @@
* @author Jeff Johnston
* @author Andre Dietisheim
*/
-public abstract class CloudElementCategoryItem<CLOUDELEMENT> extends
DeltaCloudViewItem {
+public abstract class CloudElementCategoryItem<CLOUDELEMENT> extends
DeltaCloudViewItem<DeltaCloud> implements
+ PropertyChangeListener {
- protected CloudElementCategoryItem(Object model, DeltaCloudViewItem parent, TreeViewer
viewer) {
+ protected CloudElementCategoryItem(DeltaCloud model, DeltaCloudViewItem<?> parent,
TreeViewer viewer) {
super(model, parent, viewer);
- addCloudElementListener(getCloud());
+ addPropertyChangeListener(model);
}
@Override
@@ -46,7 +49,7 @@
protected abstract void asyncAddCloudElements();
- protected void addChildren(Object[] modelElements) {
+ protected void addChildren(CLOUDELEMENT[] modelElements) {
if (modelElements.length > NumericFoldingItem.FOLDING_SIZE) {
addFoldedChildren(modelElements);
} else {
@@ -54,7 +57,7 @@
}
}
- protected void addFoldedChildren(Object[] modelElements) {
+ protected void addFoldedChildren(CLOUDELEMENT[] modelElements) {
int min = 0;
int max = NumericFoldingItem.FOLDING_SIZE;
int length = modelElements.length;
@@ -73,7 +76,7 @@
}
}
- protected void onListChanged(DeltaCloud cloud, CLOUDELEMENT[] cloudElements) throws
DeltaCloudException {
+ protected void onCloudElementsChanged(DeltaCloud cloud, CLOUDELEMENT[] cloudElements)
throws DeltaCloudException {
try {
clearChildren();
initialized.set(false);
@@ -85,27 +88,15 @@
}
}
- protected abstract CLOUDELEMENT[] filter(CLOUDELEMENT[] cloudElements) throws
DeltaCloudException;
-
- protected abstract DeltaCloudViewItem[] getElements(Object[] modelElements, int
startIndex, int stopIndex);
+ protected abstract CLOUDELEMENT[] filter(CLOUDELEMENT[] cloudElements) throws
DeltaCloudException;
+ protected abstract DeltaCloudViewItem<?>[] getElements(CLOUDELEMENT[]
modelElements, int startIndex, int stopIndex);
+
@Override
public IPropertySource getPropertySource() {
// no property source for cathegories
return null;
}
- protected DeltaCloud getCloud() {
- return (DeltaCloud) getModel();
- }
-
- @Override
- protected void dispose() {
- removeCloudElementListener(getCloud());
- }
-
- protected abstract void addCloudElementListener(DeltaCloud cloud);
-
- protected abstract void removeCloudElementListener(DeltaCloud cloud);
-
+ protected abstract void addPropertyChangeListener(DeltaCloud cloud);
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/CloudItem.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/CloudItem.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/CloudItem.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -10,6 +10,8 @@
*******************************************************************************/
package org.jboss.tools.deltacloud.ui.views.cloud;
+import java.beans.PropertyChangeEvent;
+
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.ui.views.properties.IPropertySource;
import org.jboss.tools.deltacloud.core.DeltaCloud;
@@ -19,22 +21,17 @@
* @author Jeff Johnston
* @author Andre Dietisheim
*/
-public class CloudItem extends DeltaCloudViewItem {
+public class CloudItem extends DeltaCloudViewItem<DeltaCloud> {
private TreeViewer viewer;
- protected CloudItem(Object element, DeltaCloudViewItem parent, TreeViewer viewer) {
- super(element, parent, viewer);
+ protected CloudItem(DeltaCloud model, DeltaCloudViewItem<?> parent, TreeViewer
viewer) {
+ super(model, parent, viewer);
this.viewer = viewer;
}
public String getName() {
- Object element = getModel();
- if (element instanceof DeltaCloud) {
- return ((DeltaCloud) element).getName();
- } else {
- return "";
- }
+ return getModel().getName();
}
@Override
@@ -57,6 +54,14 @@
public IPropertySource getPropertySource() {
return new CloudPropertySource(getModel());
}
-
-
+
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ viewer.update(this, new String[]{DeltaCloud.PROP_NAME});
+ }
+
+ @Override
+ protected void addPropertyChangeListener(DeltaCloud cloud) {
+ cloud.addPropertyChangeListener(DeltaCloud.PROP_NAME, this);
+ }
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewContentProvider.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewContentProvider.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewContentProvider.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -15,12 +15,12 @@
public class DeltaCloudViewContentProvider implements ITreeContentProvider {
- private DeltaCloudViewItem root;
+ private DeltaCloudViewItem<?> root;
@Override
public Object[] getChildren(Object element) {
if (element instanceof DeltaCloudViewItem) {
- return ((DeltaCloudViewItem) element).getChildren();
+ return ((DeltaCloudViewItem<?>) element).getChildren();
} else {
return null;
}
@@ -29,7 +29,7 @@
@Override
public Object getParent(Object element) {
if (element instanceof DeltaCloudViewItem) {
- return ((DeltaCloudViewItem) element).getParent();
+ return ((DeltaCloudViewItem<?>) element).getParent();
} else {
return null;
}
@@ -37,7 +37,7 @@
@Override
public boolean hasChildren(Object element) {
- DeltaCloudViewItem e = (DeltaCloudViewItem) element;
+ DeltaCloudViewItem<?> e = (DeltaCloudViewItem<?>) element;
return e.hasChildren();
}
@@ -53,7 +53,7 @@
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- root = (DeltaCloudViewItem) newInput;
+ root = (DeltaCloudViewItem<?>) newInput;
}
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewItem.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewItem.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewItem.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -10,6 +10,9 @@
*******************************************************************************/
package org.jboss.tools.deltacloud.ui.views.cloud;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -28,20 +31,21 @@
* @author Jeff Johnston
* @author Andre Dietisheim
*/
-public abstract class DeltaCloudViewItem implements IAdaptable {
+public abstract class DeltaCloudViewItem<DELTACLOUDITEM> implements IAdaptable,
PropertyChangeListener {
- private Object model;
- private DeltaCloudViewItem parent;
- protected List<DeltaCloudViewItem> children =
- Collections.synchronizedList(new ArrayList<DeltaCloudViewItem>());
+ private DELTACLOUDITEM model;
+ private DeltaCloudViewItem<?> parent;
+ protected List<DeltaCloudViewItem<?>> children =
+ Collections.synchronizedList(new ArrayList<DeltaCloudViewItem<?>>());
protected TreeViewer viewer;
protected AtomicBoolean initialized = new AtomicBoolean();
- protected DeltaCloudViewItem(Object model, DeltaCloudViewItem parent, TreeViewer viewer)
{
+ protected DeltaCloudViewItem(DELTACLOUDITEM model, DeltaCloudViewItem<?> parent,
TreeViewer viewer) {
this.model = model;
this.parent = parent;
this.viewer = viewer;
initDisposeListener(viewer);
+ addPropertyChangeListener(model);
}
public abstract String getName();
@@ -56,7 +60,7 @@
@Override
public void run() {
// viewer.getTree().setRedraw(false);
- for (final DeltaCloudViewItem element : children) {
+ for (final DeltaCloudViewItem<?> element : children) {
viewer.remove(element);
}
// viewer.getTree().setRedraw(true);
@@ -73,7 +77,7 @@
return parent;
}
- public void addChild(final DeltaCloudViewItem element) {
+ public void addChild(final DeltaCloudViewItem<?> element) {
children.add(element);
getDisplay().asyncExec(new Runnable() {
@@ -84,8 +88,8 @@
});
}
- public void addChildren(final DeltaCloudViewItem[] elements) {
- for (DeltaCloudViewItem element : elements) {
+ public void addChildren(final DeltaCloudViewItem<?>[] elements) {
+ for (DeltaCloudViewItem<?> element : elements) {
children.add(element);
}
@@ -97,7 +101,7 @@
});
}
- public void removeChild(final DeltaCloudViewItem element) {
+ public void removeChild(final DeltaCloudViewItem<?> element) {
getDisplay().asyncExec(new Runnable() {
@Override
@@ -120,7 +124,7 @@
});
}
- public Object getModel() {
+ public DELTACLOUDITEM getModel() {
return model;
}
@@ -158,6 +162,24 @@
}
protected void dispose() {
- // nothing to do
+ removePropertyChangeListener(getModel());
}
+
+ public void propertyChange(PropertyChangeEvent event) {
+ // do nothing
+ }
+
+ protected void removePropertyChangeListener(DELTACLOUDITEM model) {
+ try {
+ Method method = model.getClass().getMethod("removePropertyChangeListener",
PropertyChangeListener.class);
+ if (method != null) {
+ method.invoke(model, this);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ protected abstract void addPropertyChangeListener(DELTACLOUDITEM object);
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewLabelProvider.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewLabelProvider.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewLabelProvider.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -33,7 +33,7 @@
@Override
public String getText(Object element) {
- DeltaCloudViewItem e = (DeltaCloudViewItem)element;
+ DeltaCloudViewItem<?> e = (DeltaCloudViewItem<?>)element;
return e.getName();
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/ImageItem.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/ImageItem.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/ImageItem.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -19,23 +19,23 @@
* @author Jeff Johnston
* @author Andre Dietisheim
*/
-public class ImageItem extends DeltaCloudViewItem {
+public class ImageItem extends DeltaCloudViewItem<DeltaCloudImage> {
- protected ImageItem(Object model, DeltaCloudViewItem parent, TreeViewer viewer) {
+ protected ImageItem(DeltaCloudImage model, DeltaCloudViewItem<?> parent,
TreeViewer viewer) {
super(model, parent, viewer);
}
public String getName() {
- Object element = getModel();
- if (element instanceof DeltaCloudImage) {
- return ((DeltaCloudImage) element).getName();
- } else {
- return "";
- }
+ return getModel().getName();
}
@Override
public IPropertySource getPropertySource() {
return new ImagePropertySource(getModel());
}
+
+ @Override
+ protected void addPropertyChangeListener(DeltaCloudImage object) {
+ // do nothing
+ }
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/ImagesCategoryItem.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/ImagesCategoryItem.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/ImagesCategoryItem.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.jboss.tools.deltacloud.ui.views.cloud;
+import java.beans.PropertyChangeEvent;
import java.text.MessageFormat;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -20,7 +21,6 @@
import org.jboss.tools.deltacloud.core.DeltaCloudException;
import org.jboss.tools.deltacloud.core.DeltaCloudImage;
import org.jboss.tools.deltacloud.core.IImageFilter;
-import org.jboss.tools.deltacloud.core.IImageListListener;
import org.jboss.tools.deltacloud.core.job.AbstractCloudJob;
import org.jboss.tools.deltacloud.ui.ErrorUtils;
import org.jboss.tools.deltacloud.ui.views.CVMessages;
@@ -29,11 +29,11 @@
* @author Jeff Johnston
* @author Andre Dietisheim
*/
-public class ImagesCategoryItem extends CloudElementCategoryItem<DeltaCloudImage>
implements IImageListListener {
+public class ImagesCategoryItem extends CloudElementCategoryItem<DeltaCloudImage>
{
private static final String IMAGE_CATEGORY_NAME = "ImageCategoryName";
//$NON-NLS-1$
- protected ImagesCategoryItem(Object model, DeltaCloudViewItem parent, TreeViewer viewer)
{
+ protected ImagesCategoryItem(DeltaCloud model, DeltaCloudViewItem<?> parent,
TreeViewer viewer) {
super(model, parent, viewer);
}
@@ -45,7 +45,7 @@
protected void asyncAddCloudElements() {
setLoadingIndicator();
new AbstractCloudJob(
- MessageFormat.format("Get images from cloud {0}", getCloud().getName()),
getCloud()) {
+ MessageFormat.format("Get images from cloud {0}", getModel().getName()),
getModel()) {
@Override
protected IStatus doRun(IProgressMonitor monitor) throws DeltaCloudException {
@@ -64,8 +64,8 @@
}
@Override
- protected DeltaCloudViewItem[] getElements(Object[] modelElements, int startIndex, int
stopIndex) {
- DeltaCloudViewItem[] elements = new DeltaCloudViewItem[stopIndex - startIndex];
+ protected DeltaCloudViewItem<?>[] getElements(DeltaCloudImage[] modelElements, int
startIndex, int stopIndex) {
+ DeltaCloudViewItem<?>[] elements = new DeltaCloudViewItem[stopIndex -
startIndex];
for (int i = startIndex; i < stopIndex; ++i) {
elements[i - startIndex] = new ImageItem(modelElements[i], this, viewer);
}
@@ -73,35 +73,30 @@
}
@Override
- public synchronized void listChanged(DeltaCloud cloud, DeltaCloudImage[] newImages) {
+ public void propertyChange(PropertyChangeEvent event) {
+ super.propertyChange(event);
+ DeltaCloud cloud = (DeltaCloud) event.getSource();
+ DeltaCloudImage[] newImages = (DeltaCloudImage[]) event.getNewValue();
try {
- onListChanged(cloud, newImages);
+ onCloudElementsChanged(cloud, newImages);
} catch (DeltaCloudException e) {
// TODO: internationalize strings
ErrorUtils.handleError(
"Error",
- MessageFormat.format("Could not get images from cloud \"{0}\"",
cloud.getName()), e,
+ MessageFormat.format("Could not display new images from cloud
\"{0}\"", cloud.getName()), e,
viewer.getControl().getShell());
}
}
@Override
protected DeltaCloudImage[] filter(DeltaCloudImage[] images) throws DeltaCloudException
{
- DeltaCloud cloud = (DeltaCloud) getModel();
+ DeltaCloud cloud = getModel();
IImageFilter f = cloud.getImageFilter();
return f.filter(images).toArray(new DeltaCloudImage[images.length]);
}
- protected void addCloudElementListener(DeltaCloud cloud) {
- if (cloud != null) {
- cloud.addImageListListener(this);
- }
+ @Override
+ protected void addPropertyChangeListener(DeltaCloud cloud) {
+ cloud.addPropertyChangeListener(DeltaCloud.PROP_IMAGES, this);
}
-
- protected void removeCloudElementListener(DeltaCloud cloud) {
- if (cloud != null) {
- cloud.removeImageListListener(this);
- }
- }
-
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/InstanceItem.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/InstanceItem.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/InstanceItem.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -19,9 +19,9 @@
* @author Jeff Johnston
* @author Andre Dietisheim
*/
-public class InstanceItem extends DeltaCloudViewItem {
+public class InstanceItem extends DeltaCloudViewItem<DeltaCloudInstance> {
- protected InstanceItem(Object model, DeltaCloudViewItem parent, TreeViewer viewer) {
+ protected InstanceItem(DeltaCloudInstance model, DeltaCloudViewItem<?> parent,
TreeViewer viewer) {
super(model, parent, viewer);
}
@@ -45,4 +45,9 @@
public IPropertySource getPropertySource() {
return new InstancePropertySource(this, getModel());
}
+
+ @Override
+ protected void addPropertyChangeListener(DeltaCloudInstance object) {
+ // do nothing
+ }
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/InstancesCategoryItem.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/InstancesCategoryItem.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/InstancesCategoryItem.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.jboss.tools.deltacloud.ui.views.cloud;
+import java.beans.PropertyChangeEvent;
import java.text.MessageFormat;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -20,7 +21,6 @@
import org.jboss.tools.deltacloud.core.DeltaCloudException;
import org.jboss.tools.deltacloud.core.DeltaCloudInstance;
import org.jboss.tools.deltacloud.core.IInstanceFilter;
-import org.jboss.tools.deltacloud.core.IInstanceListListener;
import org.jboss.tools.deltacloud.core.job.AbstractCloudJob;
import org.jboss.tools.deltacloud.ui.ErrorUtils;
import org.jboss.tools.deltacloud.ui.views.CVMessages;
@@ -29,11 +29,11 @@
* @author Jeff Johnston
* @author Andre Dietisheim
*/
-public class InstancesCategoryItem extends
CloudElementCategoryItem<DeltaCloudInstance> implements IInstanceListListener {
+public class InstancesCategoryItem extends
CloudElementCategoryItem<DeltaCloudInstance> {
private static final String INSTANCE_CATEGORY_NAME = "InstanceCategoryName";
//$NON-NLS-1$
- protected InstancesCategoryItem(Object model, DeltaCloudViewItem parent, TreeViewer
viewer) {
+ protected InstancesCategoryItem(DeltaCloud model, DeltaCloudViewItem<?> parent,
TreeViewer viewer) {
super(model, parent, viewer);
}
@@ -45,7 +45,7 @@
protected void asyncAddCloudElements() {
setLoadingIndicator();
new AbstractCloudJob(
- MessageFormat.format("Get instances from cloud {0}", getCloud().getName()),
getCloud()) {
+ MessageFormat.format("Get instances from cloud {0}", getModel().getName()),
getModel()) {
@Override
protected IStatus doRun(IProgressMonitor monitor) throws DeltaCloudException {
@@ -65,43 +65,37 @@
}
@Override
- protected DeltaCloudViewItem[] getElements(Object[] modelElements, int startIndex, int
stopIndex) {
- DeltaCloudViewItem[] elements = new DeltaCloudViewItem[stopIndex - startIndex];
+ protected DeltaCloudViewItem<?>[] getElements(DeltaCloudInstance[] modelElements,
int startIndex, int stopIndex) {
+ DeltaCloudViewItem<?>[] elements = new DeltaCloudViewItem[stopIndex -
startIndex];
for (int i = startIndex; i < stopIndex; ++i) {
elements[i - startIndex] = new InstanceItem(modelElements[i], this, viewer);
}
return elements;
}
+ protected void addPropertyChangeListener(DeltaCloud cloud) {
+ cloud.addPropertyChangeListener(DeltaCloud.PROP_INSTANCES, this);
+ }
+
@Override
- public void listChanged(DeltaCloud cloud, DeltaCloudInstance[] newInstances) {
+ public void propertyChange(PropertyChangeEvent event) {
+ DeltaCloud cloud = (DeltaCloud) event.getSource();
+ DeltaCloudInstance[] newInstances = (DeltaCloudInstance[]) event.getNewValue();
try {
- onListChanged(cloud, newInstances);
+ onCloudElementsChanged(cloud, newInstances);
} catch (DeltaCloudException e) {
// TODO: internationalize strings
ErrorUtils.handleError(
"Error",
- MessageFormat.format("Could not get instances from cloud
\"{0}\"", cloud.getName()), e,
+ MessageFormat.format("Could not display new instances from cloud
\"{0}\"", cloud.getName()), e,
viewer.getControl().getShell());
}
}
@Override
protected DeltaCloudInstance[] filter(DeltaCloudInstance[] instances) throws
DeltaCloudException {
- DeltaCloud cloud = (DeltaCloud) getModel();
+ DeltaCloud cloud = getModel();
IInstanceFilter f = cloud.getInstanceFilter();
return f.filter(instances).toArray(new DeltaCloudInstance[instances.length]);
}
-
- protected void addCloudElementListener(DeltaCloud cloud) {
- if (cloud != null) {
- cloud.addInstanceListListener(this);
- }
- }
-
- protected void removeCloudElementListener(DeltaCloud cloud) {
- if (cloud != null) {
- cloud.removeInstanceListListener(this);
- }
- }
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/LoadingItem.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/LoadingItem.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/LoadingItem.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -17,9 +17,9 @@
* A tree element that shows the user that the tree is currently loading
* elements
*/
-public class LoadingItem extends DeltaCloudViewItem {
+public class LoadingItem extends DeltaCloudViewItem<Object> {
- protected LoadingItem(DeltaCloudViewItem parent, TreeViewer viewer) {
+ protected LoadingItem(DeltaCloudViewItem<?> parent, TreeViewer viewer) {
super(null, parent, viewer);
}
@@ -34,4 +34,9 @@
// TODO: internationalize strings
return "Loading...";
}
+
+ @Override
+ protected void addPropertyChangeListener(Object object) {
+ // do nothing
+ }
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/NumericFoldingItem.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/NumericFoldingItem.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/NumericFoldingItem.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -17,13 +17,13 @@
* @author Jeff Johnston
* @author Andre Dietisheim
*/
-public class NumericFoldingItem extends DeltaCloudViewItem {
+public class NumericFoldingItem extends DeltaCloudViewItem<Object> {
public static int FOLDING_SIZE = 50;
private Object min;
private int max;
- protected NumericFoldingItem(int min, int max, DeltaCloudViewItem parent, TreeViewer
viewer) {
+ protected NumericFoldingItem(int min, int max, DeltaCloudViewItem<?> parent,
TreeViewer viewer) {
super(null, parent, viewer);
this.min = min;
this.max = max;
@@ -54,4 +54,9 @@
return null;
}
+ @Override
+ protected void addPropertyChangeListener(Object object) {
+ // do nothing
+ }
+
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/RootItem.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/RootItem.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/RootItem.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -16,14 +16,14 @@
import org.jboss.tools.deltacloud.core.DeltaCloud;
import org.jboss.tools.deltacloud.core.DeltaCloudException;
import org.jboss.tools.deltacloud.core.DeltaCloudManager;
-import org.jboss.tools.deltacloud.core.ICloudManagerListener;
+import org.jboss.tools.deltacloud.core.IDeltaCloudManagerListener;
import org.jboss.tools.deltacloud.ui.ErrorUtils;
/**
* @author Jeff Johnston
* @author Andre Dietisheim
*/
-public class RootItem extends DeltaCloudViewItem implements ICloudManagerListener {
+public class RootItem extends DeltaCloudViewItem<DeltaCloudManager> implements
IDeltaCloudManagerListener {
protected RootItem(TreeViewer viewer) {
super(DeltaCloudManager.getDefault(), null, viewer); //$NON-NLS-1$
@@ -68,8 +68,8 @@
children.add(e);
}
- private DeltaCloudViewItem getCloudViewElement(DeltaCloud cloudToMatch) {
- for (DeltaCloudViewItem cloudElement : children) {
+ private DeltaCloudViewItem<?> getCloudViewElement(DeltaCloud cloudToMatch) {
+ for (DeltaCloudViewItem<?> cloudElement : children) {
DeltaCloud cloud = (DeltaCloud) cloudElement.getModel();
if (cloudToMatch.equals(cloud)) {
return cloudElement;
@@ -85,17 +85,17 @@
public void cloudsChanged(int type, DeltaCloud cloud) {
switch (type) {
- case ICloudManagerListener.ADD_EVENT:
+ case IDeltaCloudManagerListener.ADD_EVENT:
addChild(new CloudItem(cloud, this, viewer));
break;
- case ICloudManagerListener.REMOVE_EVENT:
+ case IDeltaCloudManagerListener.REMOVE_EVENT:
removeChild(getCloudViewElement(cloud));
break;
- case ICloudManagerListener.RENAME_EVENT:
- DeltaCloudViewItem cloudViewElement = getCloudViewElement(cloud);
- viewer.refresh(cloudViewElement);
- break;
}
- initialized.set(true);
}
+
+ @Override
+ protected void addPropertyChangeListener(DeltaCloudManager object) {
+ // do nothing
+ }
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/AbstractCloudElementTableView.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/AbstractCloudElementTableView.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/AbstractCloudElementTableView.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -11,6 +11,8 @@
package org.jboss.tools.deltacloud.ui.views.cloudelements;
import java.util.ArrayList;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.util.List;
import org.eclipse.jface.action.IMenuManager;
@@ -43,8 +45,8 @@
import org.jboss.tools.deltacloud.core.DeltaCloud;
import org.jboss.tools.deltacloud.core.DeltaCloudException;
import org.jboss.tools.deltacloud.core.DeltaCloudManager;
-import org.jboss.tools.deltacloud.core.ICloudManagerListener;
import org.jboss.tools.deltacloud.core.IDeltaCloudElement;
+import org.jboss.tools.deltacloud.core.IDeltaCloudManagerListener;
import org.jboss.tools.deltacloud.core.IInstanceFilter;
import org.jboss.tools.deltacloud.ui.Activator;
import org.jboss.tools.deltacloud.ui.ErrorUtils;
@@ -63,7 +65,7 @@
* @author Andre Dietisheim
*/
public abstract class AbstractCloudElementTableView<CLOUDELEMENT extends
IDeltaCloudElement> extends ViewPart implements
- ICloudManagerListener {
+ IDeltaCloudManagerListener, PropertyChangeListener {
private final static String CLOUD_SELECTOR_LABEL = "CloudSelector.label";
//$NON-NLS-1$
@@ -73,12 +75,11 @@
private Combo currentCloudSelector;
private Label currentCloudSelectorLabel;
private TableViewer viewer;
-
private DeltaCloud currentCloud;
-
private TextPreferenceValue lastSelectedCloudPref;
+ private Composite container;
- private ModifyListener cloudModifyListener = new ModifyListener() {
+ private ModifyListener cloudCloudModifyListener = new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
@@ -89,7 +90,9 @@
DeltaCloud newSelectedCloud = getCloud(index, getClouds());
if (isNewCloud(newSelectedCloud)) {
+ removePropertyChangeListener(currentCloud);
currentCloud = newSelectedCloud;
+ addPropertyChangeListener(currentCloud);
lastSelectedCloudPref.store(currentCloud.getName());
Display.getCurrent().asyncExec(new Runnable() {
@@ -115,17 +118,6 @@
}
};
- private Composite container;
-
- private boolean isNewCloud(DeltaCloud cloud) {
- return currentCloud == null
- || !currentCloud.equals(cloud);
- }
-
- public AbstractCloudElementTableView() {
- lastSelectedCloudPref = new TextPreferenceValue(getSelectedCloudPrefsKey(),
Activator.getDefault());
- }
-
private class ColumnListener extends SelectionAdapter {
private int column;
@@ -149,6 +141,15 @@
}
};
+ public AbstractCloudElementTableView() {
+ lastSelectedCloudPref = new TextPreferenceValue(getSelectedCloudPrefsKey(),
Activator.getDefault());
+ }
+
+ private boolean isNewCloud(DeltaCloud cloud) {
+ return currentCloud == null
+ || !currentCloud.equals(cloud);
+ }
+
protected abstract String getSelectedCloudPrefsKey();
@Override
@@ -172,7 +173,7 @@
viewer = createTableViewer(tableArea);
currentCloud = getCloud(currentCloudSelector.getSelectionIndex(), clouds);
-
+ addPropertyChangeListener(currentCloud);
setViewerInput(currentCloud);
setFilterLabelVisible(currentCloud, filterLabel);
@@ -316,7 +317,7 @@
currentCloudSelectorLabel.setText(CVMessages.getString(CLOUD_SELECTOR_LABEL));
this.currentCloudSelector = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
- currentCloudSelector.addModifyListener(cloudModifyListener);
+ currentCloudSelector.addModifyListener(cloudCloudModifyListener);
// Following is a kludge so that on Linux the Combo is read-only but
// has a white background.
currentCloudSelector.addVerifyListener(new VerifyListener() {
@@ -342,17 +343,38 @@
}
}
+ @Override
+ public void propertyChange(PropertyChangeEvent event) {
+ if (DeltaCloud.PROP_NAME.equals(event.getPropertyName())) {
+ DeltaCloud cloud = (DeltaCloud) event.getSource();
+ updateCloudSelector(cloud);
+ }
+ }
+
+ private void updateCloudSelector(DeltaCloud cloud) {
+ DeltaCloud[] clouds = getClouds();
+ int index = getCloudIndex(cloud, clouds);
+ if (index >= 0) {
+ int selectionIndex = currentCloudSelector.getSelectionIndex();
+ currentCloudSelector.removeModifyListener(cloudCloudModifyListener);
+ currentCloudSelector.setItem(index, cloud.getName());
+ currentCloudSelector.select(selectionIndex);
+ currentCloudSelector.addModifyListener(cloudCloudModifyListener);
+ }
+ }
+
public void cloudsChanged(int type, DeltaCloud cloud) {
- int currIndex = 0;
- if (currentCloud != null) {
- currIndex = currentCloudSelector.getSelectionIndex();
+ switch (type) {
+ case IDeltaCloudManagerListener.ADD_EVENT:
+ addPropertyChangeListener(cloud);
+ break;
+ case IDeltaCloudManagerListener.REMOVE_EVENT:
+ removePropertyChangeListener(cloud);
+ break;
}
+
DeltaCloud[] clouds = getClouds();
int index = getCloudIndex(currentCloud, getClouds());
- if (type == ICloudManagerListener.RENAME_EVENT) {
- index = currIndex; // no change in cloud displayed
- }
-
String[] cloudNames = toCloudNames(clouds);
setCloudSelectorItems(cloudNames, currentCloudSelector);
this.currentCloud = getCloud(index, clouds);
@@ -367,6 +389,18 @@
container.layout(true, true);
}
+ protected void addPropertyChangeListener(DeltaCloud cloud) {
+ if (cloud != null) {
+ cloud.addPropertyChangeListener(DeltaCloud.PROP_NAME, this);
+ }
+ }
+
+ protected void removePropertyChangeListener(DeltaCloud cloud) {
+ if (cloud != null) {
+ cloud.removePropertyChangeListener(this);
+ }
+ }
+
private String[] toCloudNames(DeltaCloud[] clouds) {
List<String> cloudNames = new ArrayList<String>();
for (DeltaCloud cloud : clouds) {
@@ -378,9 +412,9 @@
}
private void setCloudSelectorItems(String[] cloudNames, Combo cloudSelector) {
- cloudSelector.removeModifyListener(cloudModifyListener);
+ cloudSelector.removeModifyListener(cloudCloudModifyListener);
cloudSelector.setItems(cloudNames);
- cloudSelector.addModifyListener(cloudModifyListener);
+ cloudSelector.addModifyListener(cloudCloudModifyListener);
}
/**
@@ -399,5 +433,4 @@
DeltaCloudManager.getDefault().removeCloudManagerListener(this);
super.dispose();
}
-
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/AbstractCloudElementViewLabelAndContentProvider.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/AbstractCloudElementViewLabelAndContentProvider.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/AbstractCloudElementViewLabelAndContentProvider.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -10,6 +10,8 @@
*******************************************************************************/
package org.jboss.tools.deltacloud.ui.views.cloudelements;
+import java.beans.PropertyChangeListener;
+
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.viewers.BaseLabelProvider;
import org.eclipse.jface.viewers.TableViewer;
@@ -29,7 +31,7 @@
* @author Andre Dietisheim
*/
public abstract class AbstractCloudElementViewLabelAndContentProvider<CLOUDELEMENT
extends IDeltaCloudElement> extends
- BaseLabelProvider implements ITableContentAndLabelProvider {
+ BaseLabelProvider implements ITableContentAndLabelProvider, PropertyChangeListener {
private DeltaCloud currentCloud;
private ICloudElementFilter<CLOUDELEMENT> localFilter;
@@ -59,13 +61,13 @@
this.viewer = (TableViewer) viewer;
removeListener(currentCloud);
this.currentCloud = (DeltaCloud) newInput;
- addListener(currentCloud);
+ addPropertyChangeListener(currentCloud);
asyncAddCloudElements(currentCloud);
}
-
- public void listChanged(final DeltaCloud cloud, final CLOUDELEMENT[] cloudElements) {
+
+ protected void updateCloudElements(CLOUDELEMENT[] elements, DeltaCloud cloud) {
if (isCurrentCloud(cloud)) {
- addToViewer(cloudElements);
+ addToViewer(elements);
}
}
@@ -120,11 +122,15 @@
removeListener(currentCloud);
}
- protected abstract void addListener(DeltaCloud cloud);
+ protected void removeListener(DeltaCloud cloud) {
+ if (cloud != null) {
+ cloud.removePropertyChangeListener(this);
+ }
+ }
- protected abstract void removeListener(DeltaCloud cloud);
-
protected abstract ICloudElementFilter<CLOUDELEMENT> getCloudFilter(DeltaCloud
cloud);
protected abstract void asyncAddCloudElements(DeltaCloud cloud);
+
+ protected abstract void addPropertyChangeListener(DeltaCloud cloud);
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/ImageView.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/ImageView.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/ImageView.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -22,7 +22,7 @@
* @author Jeff Johnston
* @author Andre Dietisheim
*/
-public class ImageView extends AbstractCloudElementTableView<DeltaCloudImage> {
+public class ImageView extends AbstractCloudElementTableView<DeltaCloudImage> {
@Override
protected String getSelectedCloudPrefsKey() {
@@ -43,4 +43,12 @@
protected void refreshToolbarCommandStates() {
// do nothing
}
+
+ @Override
+ protected void addPropertyChangeListener(DeltaCloud cloud) {
+ if (cloud != null) {
+ super.addPropertyChangeListener(cloud);
+ cloud.addPropertyChangeListener(DeltaCloud.PROP_IMAGES, this);
+ }
+ }
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/ImageViewLabelAndContentProvider.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/ImageViewLabelAndContentProvider.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/ImageViewLabelAndContentProvider.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.jboss.tools.deltacloud.ui.views.cloudelements;
+import java.beans.PropertyChangeEvent;
import java.text.MessageFormat;
import java.util.EnumSet;
import java.util.HashMap;
@@ -23,7 +24,6 @@
import org.jboss.tools.deltacloud.core.DeltaCloudException;
import org.jboss.tools.deltacloud.core.DeltaCloudImage;
import org.jboss.tools.deltacloud.core.ICloudElementFilter;
-import org.jboss.tools.deltacloud.core.IImageListListener;
import org.jboss.tools.deltacloud.core.job.AbstractCloudJob;
/**
@@ -31,7 +31,7 @@
* @author André Dietisheim
*/
public class ImageViewLabelAndContentProvider extends
AbstractCloudElementViewLabelAndContentProvider<DeltaCloudImage>
- implements ITableContentAndLabelProvider, IImageListListener {
+ implements ITableContentAndLabelProvider {
public enum Column {
NAME(0, 20),
@@ -115,16 +115,20 @@
}
@Override
- protected void addListener(DeltaCloud currentCloud) {
- if (currentCloud != null) {
- currentCloud.addImageListListener(this);
+ public void propertyChange(PropertyChangeEvent event) {
+ if (DeltaCloud.PROP_IMAGES.equals(event.getPropertyName())) {
+ DeltaCloud cloud = (DeltaCloud) event.getSource();
+ DeltaCloudImage[] images = (DeltaCloudImage[]) event.getNewValue();
+ updateCloudElements(images, cloud);
}
}
-
+
@Override
- protected void removeListener(DeltaCloud currentCloud) {
- if (currentCloud != null) {
- currentCloud.removeImageListListener(this);
- }
+ public void addPropertyChangeListener(DeltaCloud cloud) {
+ cloud.addPropertyChangeListener(DeltaCloud.PROP_IMAGES, this);
}
+
+ protected DeltaCloudImage[] getCloudElements(DeltaCloud cloud) throws
DeltaCloudException {
+ return cloud.getImages();
+ }
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/InstanceView.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/InstanceView.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/InstanceView.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -49,4 +49,10 @@
evaluationService.requestEvaluation("org.jboss.tools.deltacloud.ui.commands.canReboot");
evaluationService.requestEvaluation("org.jboss.tools.deltacloud.ui.commands.canDestroy");
}
+
+ @Override
+ protected void addPropertyChangeListener(DeltaCloud cloud) {
+ super.addPropertyChangeListener(cloud);
+ cloud.addPropertyChangeListener(DeltaCloud.PROP_INSTANCES, this);
+ }
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/InstanceViewLabelAndContentProvider.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/InstanceViewLabelAndContentProvider.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/InstanceViewLabelAndContentProvider.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.jboss.tools.deltacloud.ui.views.cloudelements;
+import java.beans.PropertyChangeEvent;
import java.text.MessageFormat;
import java.util.EnumSet;
import java.util.HashMap;
@@ -25,7 +26,6 @@
import org.jboss.tools.deltacloud.core.DeltaCloudException;
import org.jboss.tools.deltacloud.core.DeltaCloudInstance;
import org.jboss.tools.deltacloud.core.ICloudElementFilter;
-import org.jboss.tools.deltacloud.core.IInstanceListListener;
import org.jboss.tools.deltacloud.core.job.AbstractCloudJob;
import org.jboss.tools.deltacloud.ui.SWTImagesFactory;
@@ -34,7 +34,7 @@
* @author Andre Dietisheim
*/
public class InstanceViewLabelAndContentProvider extends
- AbstractCloudElementViewLabelAndContentProvider<DeltaCloudInstance> implements
ITableContentAndLabelProvider, IInstanceListListener {
+ AbstractCloudElementViewLabelAndContentProvider<DeltaCloudInstance> implements
ITableContentAndLabelProvider {
public enum Column {
NAME(0, 20),
@@ -118,10 +118,6 @@
return "";
}
- @Override
- public void dispose() {
- }
-
protected ICloudElementFilter<DeltaCloudInstance> getCloudFilter(DeltaCloud cloud)
{
return cloud.getInstanceFilter();
}
@@ -134,9 +130,10 @@
@Override
protected IStatus doRun(IProgressMonitor monitor) throws DeltaCloudException {
try {
- addToViewer(cloud.getInstances());;
+ addToViewer(cloud.getInstances());
+ ;
return Status.OK_STATUS;
- } catch(DeltaCloudException e) {
+ } catch (DeltaCloudException e) {
throw e;
}
}
@@ -144,17 +141,18 @@
}
@Override
- protected void addListener(DeltaCloud currentCloud) {
- if (currentCloud != null) {
- currentCloud.addInstanceListListener(this);
+ public void propertyChange(PropertyChangeEvent event) {
+ if (DeltaCloud.PROP_INSTANCES.equals(event.getPropertyName())) {
+ DeltaCloud cloud = (DeltaCloud) event.getSource();
+ DeltaCloudInstance[] instances = (DeltaCloudInstance[]) event.getNewValue();
+ updateCloudElements(instances, cloud);
}
}
@Override
- protected void removeListener(DeltaCloud currentCloud) {
+ public void addPropertyChangeListener(DeltaCloud currentCloud) {
if (currentCloud != null) {
- currentCloud.removeInstanceListListener(this);
+ currentCloud.addPropertyChangeListener(DeltaCloud.PROP_INSTANCES, this);
}
}
-
}
Deleted:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/common/databinding/ObservablePojo.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/common/databinding/ObservablePojo.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/common/databinding/ObservablePojo.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -1,39 +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.internal.deltacloud.ui.common.databinding;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-/**
- * A POJO base class that may notify observers on behalf of
- * {@link PropertyChangeSupport}
- */
-public abstract class ObservablePojo {
-
- private PropertyChangeSupport propertyChangeSupport;
-
- public ObservablePojo() {
- this.propertyChangeSupport = new PropertyChangeSupport(this);
- }
-
- public void addPropertyChangeListener(String propertyName, PropertyChangeListener
listener) {
- propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
- }
-
- public void removePropertyChangeListener(String propertyName, PropertyChangeListener
listener) {
- propertyChangeSupport.removePropertyChangeListener(propertyName, listener);
- }
-
- protected PropertyChangeSupport getPropertyChangeSupport() {
- return propertyChangeSupport;
- }
-}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnectionModel.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnectionModel.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnectionModel.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -14,7 +14,7 @@
import org.jboss.tools.deltacloud.core.client.DeltaCloudClientImpl;
import org.jboss.tools.deltacloud.core.client.DeltaCloudClientImpl.DeltaCloudServerType;
-import org.jboss.tools.internal.deltacloud.ui.common.databinding.ObservablePojo;
+import org.jboss.tools.internal.deltacloud.core.observable.ObservablePojo;
/**
* @author Andre Dietisheim
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/EditCloudConnectionWizard.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/EditCloudConnectionWizard.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/EditCloudConnectionWizard.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -10,8 +10,11 @@
*******************************************************************************/
package org.jboss.tools.internal.deltacloud.ui.wizards;
+import java.text.MessageFormat;
+
import org.jboss.tools.deltacloud.core.DeltaCloud;
import org.jboss.tools.deltacloud.core.DeltaCloudManager;
+import org.jboss.tools.deltacloud.ui.ErrorUtils;
public class EditCloudConnectionWizard extends NewCloudConnectionWizard {
@@ -29,13 +32,13 @@
String password = mainPage.getModel().getPassword();
String type = getServerType();
try {
- String oldName = initialCloud.getName();
- initialCloud.editCloud(name, url, username, password, type);
+ initialCloud.update(name, url, username, password, type);
DeltaCloudManager.getDefault().saveClouds();
- if (!name.equals(oldName)) {
- DeltaCloudManager.getDefault().notifyCloudRename(initialCloud);
- }
} catch (Exception e) {
+ // TODO internationalize strings
+ ErrorUtils.handleError("Error",
+ MessageFormat.format("Could not edit cloud \"{0}\"",
initialCloud.getName()),
+ e, getShell());
}
return true;
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstanceModel.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstanceModel.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstanceModel.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -11,7 +11,7 @@
package org.jboss.tools.internal.deltacloud.ui.wizards;
import org.jboss.tools.deltacloud.core.DeltaCloudImage;
-import org.jboss.tools.internal.deltacloud.ui.common.databinding.ObservablePojo;
+import org.jboss.tools.internal.deltacloud.core.observable.ObservablePojo;
/**
* @author Jeff Jonhston
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstanceWizard.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstanceWizard.java 2010-12-10
14:21:20 UTC (rev 27354)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstanceWizard.java 2010-12-10
14:33:08 UTC (rev 27355)
@@ -172,8 +172,9 @@
}
}
instance = cloud.createInstance(name, imageId, realmId, profileId, keyname, memory,
storage);
- if (instance != null)
+ if (instance != null) {
result = true;
+ }
if (instance != null &&
instance.getState().equals(DeltaCloudInstance.PENDING)) {
final String instanceId = instance.getId();
final String instanceName = name;