Author: adietish
Date: 2011-01-06 09:07:35 -0500 (Thu, 06 Jan 2011)
New Revision: 27944
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/DeltaCloudViewItem.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/InstancesCategoryItem.java
Log:
[JBIDE-8061] now adding children in background thread, relying on property update for
refresh only
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2011-01-06 13:08:56
UTC (rev 27943)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2011-01-06 14:07:35
UTC (rev 27944)
@@ -1,3 +1,12 @@
+2011-01-06 André Dietisheim <André Dietisheim@adietisheim-thinkpad>
+
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/ImagesCategoryItem.java (.doRun):
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/InstancesCategoryItem.java (.doRun):
+ * src/org/jboss/tools/deltacloud/ui/views/cloud/CloudElementCategoryItem.java
+ (getChildren):
+ (replaceCloudElements):
+ [JBIDE-8061] now adding children in background thread, relying on property update for
refresh only
+
2011-01-05 André Dietisheim <André Dietisheim@adietisheim-thinkpad>
* src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties:
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 2011-01-06
13:08:56 UTC (rev 27943)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/CloudElementCategoryItem.java 2011-01-06
14:07:35 UTC (rev 27944)
@@ -42,27 +42,26 @@
protected void setLoadingIndicator() {
clearChildren();
addChild(new LoadingItem(this, getViewer()));
-// refresh();
}
protected abstract void asyncLoadCloudElements();
- protected void addChildren(CLOUDELEMENT[] modelElements) {
- if (modelElements.length > NumericFoldingItem.FOLDING_SIZE) {
- addFoldedChildren(modelElements);
+ protected void addChildren(CLOUDELEMENT[] cloudElements) {
+ if (cloudElements.length > NumericFoldingItem.FOLDING_SIZE) {
+ addFoldedChildren(cloudElements);
} else {
- addChildren(getElements(modelElements, 0, modelElements.length));
+ addChildren(getElements(cloudElements, 0, cloudElements.length));
}
}
- protected void addFoldedChildren(CLOUDELEMENT[] modelElements) {
+ protected void addFoldedChildren(CLOUDELEMENT[] cloudElements) {
int min = 0;
int max = NumericFoldingItem.FOLDING_SIZE;
- int length = modelElements.length;
+ int length = cloudElements.length;
while (length > NumericFoldingItem.FOLDING_SIZE) {
NumericFoldingItem f = new NumericFoldingItem(min, max, this, getViewer());
addChild(f);
- f.addChildren(getElements(modelElements, min, max));
+ f.addChildren(getElements(cloudElements, min, max));
min += NumericFoldingItem.FOLDING_SIZE;
max += NumericFoldingItem.FOLDING_SIZE;
length -= NumericFoldingItem.FOLDING_SIZE;
@@ -70,13 +69,14 @@
if (length > 0) {
NumericFoldingItem f = new NumericFoldingItem(min, max, this, getViewer());
addChild(f);
- f.addChildren(getElements(modelElements, min, min + length));
+ f.addChildren(getElements(cloudElements, min, min + length));
}
}
- protected void onCloudElementsChanged(DeltaCloud cloud, CLOUDELEMENT[] cloudElements)
throws DeltaCloudException {
+ protected void replaceCloudElements(DeltaCloud cloud, CLOUDELEMENT[] cloudElements)
throws DeltaCloudException {
clearChildren();
addChildren(filter(cloudElements));
+ setChildrenInitialized(true); // unrequested update
refresh();
expand();
}
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 2011-01-06
13:08:56 UTC (rev 27943)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/DeltaCloudViewItem.java 2011-01-06
14:07:35 UTC (rev 27944)
@@ -187,6 +187,9 @@
});
}
+ protected void dispose() {
+ }
+
protected Display getDisplay() {
return viewer.getControl().getDisplay();
}
@@ -194,7 +197,4 @@
protected TreeViewer getViewer() {
return viewer;
}
-
- protected void dispose() {
- }
}
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 2011-01-06
13:08:56 UTC (rev 27943)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/ImagesCategoryItem.java 2011-01-06
14:07:35 UTC (rev 27944)
@@ -51,7 +51,8 @@
@Override
protected IStatus doRun(IProgressMonitor monitor) throws DeltaCloudException {
try {
- getCloud().getImages();
+ DeltaCloudImage[] images = getCloud().getImages();
+ replaceCloudElements(getModel(), images);
return Status.OK_STATUS;
} catch(DeltaCloudException e) {
clearChildren();
@@ -75,7 +76,8 @@
DeltaCloud cloud = (DeltaCloud) event.getSource();
DeltaCloudImage[] newImages = (DeltaCloudImage[]) event.getNewValue();
try {
- onCloudElementsChanged(cloud, newImages);
+ System.err.println("images updated");
+ replaceCloudElements(cloud, newImages);
} catch (DeltaCloudException e) {
// TODO: internationalize strings
ErrorUtils.handleError(
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 2011-01-06
13:08:56 UTC (rev 27943)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/InstancesCategoryItem.java 2011-01-06
14:07:35 UTC (rev 27944)
@@ -13,7 +13,6 @@
import java.beans.PropertyChangeEvent;
import java.text.MessageFormat;
-import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
@@ -53,7 +52,8 @@
@Override
protected IStatus doRun(IProgressMonitor monitor) throws DeltaCloudException {
try {
- getCloud().getInstances();
+ DeltaCloudInstance[] instances = getCloud().getInstances();
+ replaceCloudElements(getModel(), instances);
return Status.OK_STATUS;
} catch (DeltaCloudException e) {
clearChildren();
@@ -80,10 +80,10 @@
@Override
public void propertyChange(PropertyChangeEvent event) {
DeltaCloud cloud = (DeltaCloud) event.getSource();
- Assert.isTrue(cloud == getModel());
DeltaCloudInstance[] newInstances = (DeltaCloudInstance[]) event.getNewValue();
try {
- onCloudElementsChanged(cloud, newInstances);
+ System.err.println("images updated");
+ replaceCloudElements(cloud, newInstances);
} catch (DeltaCloudException e) {
// TODO: internationalize strings
ErrorUtils.handleError(