JBoss Tools SVN: r27358 - in trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui: src/org/jboss/tools/deltacloud/ui/views/cloudelements and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2010-12-10 09:45:09 -0500 (Fri, 10 Dec 2010)
New Revision: 27358
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/cloudelements/AbstractCloudElementTableView.java
Log:
[JBIDE-7862] layouting the combo's parent as soon as the cloud name gets edited
-> combo resizes to the space needed to show the whole name
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2010-12-10 14:40:29 UTC (rev 27357)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2010-12-10 14:45:09 UTC (rev 27358)
@@ -1,5 +1,9 @@
2010-12-10 André Dietisheim <adietish(a)redhat.com>
+ * src/org/jboss/tools/deltacloud/ui/views/cloudelements/AbstractCloudElementTableView.java:
+ (updateCloudSelector):
+ [JBIDE-7862] layouting the combo's parent as soon as the cloud name gets edited
+ -> combo resizes to the space needed to show the whole name
* 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),
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:40:29 UTC (rev 27357)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloudelements/AbstractCloudElementTableView.java 2010-12-10 14:45:09 UTC (rev 27358)
@@ -361,6 +361,7 @@
currentCloudSelector.select(selectionIndex);
currentCloudSelector.addModifyListener(cloudCloudModifyListener);
}
+ container.layout(true, true);
}
public void cloudsChanged(int type, DeltaCloud cloud) {
15 years, 4 months
JBoss Tools SVN: r27357 - trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/preferences.
by jbosstools-commits@lists.jboss.org
Author: dgeraskov
Date: 2010-12-10 09:40:29 -0500 (Fri, 10 Dec 2010)
New Revision: 27357
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/preferences/PreferencesClassPathUtils.java
Log:
https://issues.jboss.org/browse/JBIDE-7739
code improvements
Modified: trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/preferences/PreferencesClassPathUtils.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/preferences/PreferencesClassPathUtils.java 2010-12-10 14:37:03 UTC (rev 27356)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/preferences/PreferencesClassPathUtils.java 2010-12-10 14:40:29 UTC (rev 27357)
@@ -27,7 +27,8 @@
URL[] customClassPathURLsTmp = prefs == null ? new URL[0] :
prefs.getCustomClassPathURLS();
URL[] customClassPathURLs = null;
- String[] driverURLParts = ConnectionProfileUtil.getConnectionProfileDriverURL(prefs.getConnectionProfileName());
+ String[] driverURLParts = prefs == null ? null :
+ ConnectionProfileUtil.getConnectionProfileDriverURL(prefs.getConnectionProfileName());
URL[] urls = null;
if (driverURLParts != null) {
urls = new URL[driverURLParts.length];
15 years, 4 months
JBoss Tools SVN: r27356 - trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2010-12-10 09:37:03 -0500 (Fri, 10 Dec 2010)
New Revision: 27356
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/InstanceItem.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/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:33:08 UTC (rev 27355)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/cloud/InstanceItem.java 2010-12-10 14:37:03 UTC (rev 27356)
@@ -26,17 +26,16 @@
}
public String getName() {
- Object element = getModel();
+ DeltaCloudInstance instance = getModel();
StringBuilder sb = new StringBuilder();
- if (element instanceof DeltaCloudInstance) {
- DeltaCloudInstance instance = (DeltaCloudInstance) element;
+ if (instance != null) {
if (instance.getName() != null) {
sb.append(instance.getName());
}
if (instance.getId() != null) {
sb.append(" [").append(instance.getId()).append("] ");
}
- }
+ }
return sb.toString();
}
15 years, 4 months
JBoss Tools SVN: r27355 - in trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui: src/org/jboss/tools/deltacloud/ui/views/cloud and 3 other directories.
by jbosstools-commits@lists.jboss.org
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;
15 years, 4 months
JBoss Tools SVN: r27354 - in trunk/hibernatetools/plugins: org.hibernate.eclipse/src/org/hibernate/console/preferences and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: dgeraskov
Date: 2010-12-10 09:21:20 -0500 (Fri, 10 Dec 2010)
New Revision: 27354
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/CodeGenXMLFactory.java
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConnectionProfileUtil.java
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/preferences/PreferencesClassPathUtils.java
Log:
https://issues.jboss.org/browse/JBIDE-7739
code improvements
Modified: trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConnectionProfileUtil.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConnectionProfileUtil.java 2010-12-10 14:10:44 UTC (rev 27353)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConnectionProfileUtil.java 2010-12-10 14:21:20 UTC (rev 27354)
@@ -57,12 +57,12 @@
/*
* try get a path to the sql driver jar file from DTP connection profile
*/
- public static String getConnectionProfileDriverURL(String connectionProfile) {
+ public static String[] getConnectionProfileDriverURL(String connectionProfile) {
DriverInstance di = getDriverDefinition(connectionProfile);
if (di == null) {
return null;
}
- return di.getJarList();
+ return di.getJarListAsArray();
}
public static String getDriverClass(String connectionProfile) {
Modified: trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/preferences/PreferencesClassPathUtils.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/preferences/PreferencesClassPathUtils.java 2010-12-10 14:10:44 UTC (rev 27353)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/preferences/PreferencesClassPathUtils.java 2010-12-10 14:21:20 UTC (rev 27354)
@@ -27,16 +27,14 @@
URL[] customClassPathURLsTmp = prefs == null ? new URL[0] :
prefs.getCustomClassPathURLS();
URL[] customClassPathURLs = null;
- String driverURL = prefs == null ? null :
- ConnectionProfileUtil.getConnectionProfileDriverURL(prefs.getConnectionProfileName());
+ String[] driverURLParts = ConnectionProfileUtil.getConnectionProfileDriverURL(prefs.getConnectionProfileName());
URL[] urls = null;
- if (driverURL != null) {
- String[] driverURLParts = driverURL.split(";"); //$NON-NLS-1$
+ if (driverURLParts != null) {
urls = new URL[driverURLParts.length];
for (int i = 0; i < driverURLParts.length; i++) {
File file = new File(driverURLParts[i].trim());
try {
- urls[i] = file.toURL();
+ urls[i] = file.toURI().toURL();
} catch (MalformedURLException e) {
urls[i] = null;
}
Modified: trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/CodeGenXMLFactory.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/CodeGenXMLFactory.java 2010-12-10 14:10:44 UTC (rev 27353)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/CodeGenXMLFactory.java 2010-12-10 14:21:20 UTC (rev 27354)
@@ -476,14 +476,6 @@
return location;
}
- public String getConnectionProfileDriverURL(String connectionProfile) {
- String driverURL = ConnectionProfileUtil.getConnectionProfileDriverURL(connectionProfile);
- if (driverURL == null) {
- driverURL = ""; //$NON-NLS-1$
- }
- return driverURL;
- }
-
public static boolean isEmpty(String str) {
return (str == null || str.length() == 0);
}
15 years, 4 months
JBoss Tools SVN: r27353 - trunk/deltacloud/tests/org.jboss.tools.deltacloud.test.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2010-12-10 09:10:44 -0500 (Fri, 10 Dec 2010)
New Revision: 27353
Modified:
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/DeltaCloudMockIntegrationTest.launch
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ImageMockIntegrationTest.launch
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/InstanceMockIntegrationTest.launch
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/KeyMockIntegrationTest.launch
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ProfileMockIntegrationTest.launch
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/RealmMockIntegrationTest.launch
trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ServerTypeMockIntegrationTest.launch
Log:
[JBIDE-7856]
* removed notifyCloudRename since DeltaCloud now notifies about changes in its properties (images, instances, name)
* switched the observer pattern in DeltaCloud to PropertyChangeSupport, moved ObservablePojo to core to get PropertyChangeSupport in DeltaCloud.
* switched the observer pattern in DeltaCloud to PropertyChangeSupport, removed IInstanceListListener and IImageListlistener.
* fireing changes when name is changed. Loading instances and images only if url, username, pw change.
Modified: trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/DeltaCloudMockIntegrationTest.launch
===================================================================
--- trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/DeltaCloudMockIntegrationTest.launch 2010-12-10 14:10:08 UTC (rev 27352)
+++ trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/DeltaCloudMockIntegrationTest.launch 2010-12-10 14:10:44 UTC (rev 27353)
@@ -29,7 +29,7 @@
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.test.core.DeltaCloudMockIntegrationTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.core.observable.test.core.DeltaCloudMockIntegrationTest"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.jboss.tools.deltacloud.test"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
Modified: trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ImageMockIntegrationTest.launch
===================================================================
--- trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ImageMockIntegrationTest.launch 2010-12-10 14:10:08 UTC (rev 27352)
+++ trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ImageMockIntegrationTest.launch 2010-12-10 14:10:44 UTC (rev 27353)
@@ -29,7 +29,7 @@
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.test.core.client.ImageMockIntegrationTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.core.observable.test.core.client.ImageMockIntegrationTest"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.jboss.tools.deltacloud.test"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
Modified: trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/InstanceMockIntegrationTest.launch
===================================================================
--- trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/InstanceMockIntegrationTest.launch 2010-12-10 14:10:08 UTC (rev 27352)
+++ trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/InstanceMockIntegrationTest.launch 2010-12-10 14:10:44 UTC (rev 27353)
@@ -29,7 +29,7 @@
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.test.core.client.InstanceMockIntegrationTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.core.observable.test.core.client.InstanceMockIntegrationTest"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.jboss.tools.deltacloud.test"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
Modified: trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/KeyMockIntegrationTest.launch
===================================================================
--- trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/KeyMockIntegrationTest.launch 2010-12-10 14:10:08 UTC (rev 27352)
+++ trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/KeyMockIntegrationTest.launch 2010-12-10 14:10:44 UTC (rev 27353)
@@ -29,7 +29,7 @@
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.test.core.client.KeyMockIntegrationTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.core.observable.test.core.client.KeyMockIntegrationTest"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.jboss.tools.deltacloud.test"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
Modified: trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ProfileMockIntegrationTest.launch
===================================================================
--- trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ProfileMockIntegrationTest.launch 2010-12-10 14:10:08 UTC (rev 27352)
+++ trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ProfileMockIntegrationTest.launch 2010-12-10 14:10:44 UTC (rev 27353)
@@ -29,7 +29,7 @@
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.test.core.client.ProfileMockIntegrationTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.core.observable.test.core.client.ProfileMockIntegrationTest"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.jboss.tools.deltacloud.test"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
Modified: trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/RealmMockIntegrationTest.launch
===================================================================
--- trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/RealmMockIntegrationTest.launch 2010-12-10 14:10:08 UTC (rev 27352)
+++ trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/RealmMockIntegrationTest.launch 2010-12-10 14:10:44 UTC (rev 27353)
@@ -29,7 +29,7 @@
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.test.core.client.RealmMockIntegrationTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.core.observable.test.core.client.RealmMockIntegrationTest"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.jboss.tools.deltacloud.test"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
Modified: trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ServerTypeMockIntegrationTest.launch
===================================================================
--- trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ServerTypeMockIntegrationTest.launch 2010-12-10 14:10:08 UTC (rev 27352)
+++ trunk/deltacloud/tests/org.jboss.tools.deltacloud.test/ServerTypeMockIntegrationTest.launch 2010-12-10 14:10:44 UTC (rev 27353)
@@ -29,7 +29,7 @@
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.test.core.client.ServerTypeMockIntegrationTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.jboss.tools.internal.deltacloud.core.observable.test.core.client.ServerTypeMockIntegrationTest"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.jboss.tools.deltacloud.test"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
15 years, 4 months
JBoss Tools SVN: r27352 - in trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core: META-INF and 6 other directories.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2010-12-10 09:10:08 -0500 (Fri, 10 Dec 2010)
New Revision: 27352
Added:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/IDeltaCloudManagerListener.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/internal/
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/internal/deltacloud/
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/internal/deltacloud/core/
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/internal/deltacloud/core/observable/
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/internal/deltacloud/core/observable/ObservablePojo.java
Removed:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/ICloudManagerListener.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/IImageListListener.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/IInstanceListListener.java
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/META-INF/MANIFEST.MF
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/AbstractDeltaCloudObjectRepository.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloudManager.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/SecurePasswordStore.java
Log:
[JBIDE-7856]
* removed notifyCloudRename since DeltaCloud now notifies about changes in its properties (images, instances, name)
* switched the observer pattern in DeltaCloud to PropertyChangeSupport, moved ObservablePojo to core to get PropertyChangeSupport in DeltaCloud.
* switched the observer pattern in DeltaCloud to PropertyChangeSupport, removed IInstanceListListener and IImageListlistener.
* fireing changes when name is changed. Loading instances and images only if url, username, pw change.
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog 2010-12-10 13:40:26 UTC (rev 27351)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog 2010-12-10 14:10:08 UTC (rev 27352)
@@ -1,3 +1,28 @@
+2010-12-10 André Dietisheim <adietish(a)redhat.com>
+
+ * src/org/jboss/tools/deltacloud/core/DeltaCloudManager.java (notifyCloudRename):
+ [JBIDE-7856] removed notifyCloudRename since DeltaCloud now notifies about changes in its properties (images, instances, name)
+ * src/org/jboss/tools/internal/deltacloud/core/observable/ObservablePojo.java:
+ [JBIDE-7856] switched the observer pattern in DeltaCloud to PropertyChangeSupport, moved ObservablePojo
+ to core to get PropertyChangeSupport in DeltaCloud.
+ * src/org/jboss/tools/deltacloud/core/DeltaCloud.java:
+ [JBIDE-7856] switched the observer pattern in DeltaCloud to PropertyChangeSupport, removed
+ IInstanceListListener and IImageListlistener.
+ (update):
+ (setName):
+ (updateConnectionProperties):
+ (updateInstanceFilter):
+ (updateImageFilter):
+ (loadInstances):
+ (clearImages):
+ (clearInstances):
+ (replaceInstance):
+ (performInstanceAction):
+ (loadImages):
+ (createInstance):
+ [JBIDE-7856] switched the observer pattern in DeltaCloud to PropertyChangeSupport, fireing changes when name is changed.
+ Loading instances and images only if url, username, pw change.
+
2010-12-09 André Dietisheim <adietish(a)redhat.com>
* src/org/jboss/tools/deltacloud/core/DeltaCloud.java
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/META-INF/MANIFEST.MF 2010-12-10 13:40:26 UTC (rev 27351)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/META-INF/MANIFEST.MF 2010-12-10 14:10:08 UTC (rev 27352)
@@ -13,7 +13,8 @@
Export-Package: org.jboss.tools.deltacloud.core;x-friends:="org.jboss.tools.deltacloud.ui,org.jboss.tools.deltacloud.test",
org.jboss.tools.deltacloud.core.client;x-friends:="org.jboss.tools.deltacloud.test,org.jboss.tools.deltacloud.ui",
org.jboss.tools.deltacloud.core.client.request;x-friends:="org.jboss.tools.deltacloud.test",
- org.jboss.tools.deltacloud.core.job
+ org.jboss.tools.deltacloud.core.job,
+ org.jboss.tools.internal.deltacloud.core.observable;x-friends:="org.jboss.tools.deltacloud.ui"
Bundle-ClassPath: .,
lib/apache-mime4j-0.6.jar,
lib/commons-codec-1.3.jar,
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/AbstractDeltaCloudObjectRepository.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/AbstractDeltaCloudObjectRepository.java 2010-12-10 13:40:26 UTC (rev 27351)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/AbstractDeltaCloudObjectRepository.java 2010-12-10 14:10:08 UTC (rev 27352)
@@ -23,7 +23,7 @@
* @param <E> Element to store
* @param <C> Criteria to match element against
*/
-public abstract class AbstractDeltaCloudObjectRepository<E, C> {
+public abstract class AbstractDeltaCloudObjectRepository<E extends IDeltaCloudElement, C> {
private List<E> objects = new ArrayList<E>();
// TODO switch to readwrite lock to gain performance
@@ -34,30 +34,33 @@
this.typeClass = typeClass;
}
- public void add(E object) {
+ public E[] add(E object) {
try {
lock();
objects.add(object);
+ return get();
} finally {
unlock();
}
}
- public void add(Collection<E> objects) {
+ public E[] add(Collection<E> objects) {
try {
lock();
for (E object : objects) {
objects.add(object);
}
+ return get();
} finally {
unlock();
}
}
- public void clear() {
+ public E[] clear() {
try {
lock();
objects.clear();
+ return get();
} finally {
unlock();
}
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java 2010-12-10 13:40:26 UTC (rev 27351)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java 2010-12-10 14:10:08 UTC (rev 27352)
@@ -20,7 +20,6 @@
import java.util.regex.PatternSyntaxException;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.ListenerList;
import org.eclipse.core.runtime.jobs.Job;
import org.jboss.tools.deltacloud.core.client.DeltaCloudAuthException;
import org.jboss.tools.deltacloud.core.client.DeltaCloudClientException;
@@ -31,16 +30,21 @@
import org.jboss.tools.deltacloud.core.client.Instance;
import org.jboss.tools.deltacloud.core.client.InternalDeltaCloudClient;
import org.jboss.tools.deltacloud.core.client.Realm;
+import org.jboss.tools.internal.deltacloud.core.observable.ObservablePojo;
/**
* @author Jeff Jonston
* @author André Dietisheim
*/
-public class DeltaCloud {
+public class DeltaCloud extends ObservablePojo {
public final static String MOCK_TYPE = "MOCK"; //$NON-NLS-1$
public final static String EC2_TYPE = "EC2"; //$NON-NLS-1$
+ public static final String PROP_INSTANCES = "instanceRepo";
+ public static final String PROP_IMAGES = "images";
+ public static final String PROP_NAME = "name";
+
private String name;
private String username;
private String url;
@@ -51,7 +55,7 @@
private InternalDeltaCloudClient client;
private DeltaCloudImagesRepository images;
- private DeltaCloudInstancesRepository instances;
+ private DeltaCloudInstancesRepository instanceRepo;
private IImageFilter imageFilter;
private IInstanceFilter instanceFilter;
@@ -60,8 +64,6 @@
private Object actionLock = new Object();
- ListenerList instanceListeners = new ListenerList();
- ListenerList imageListeners = new ListenerList();
private SecurePasswordStore passwordStore;
public static interface IInstanceStateMatcher {
@@ -94,17 +96,42 @@
instanceFilter = createInstanceFilter(instanceFilterRules);
}
- public void editCloud(String name, String url, String username, String password, String type)
+ public void update(String name, String url, String username, String password, String type)
throws DeltaCloudException {
- this.url = url;
- this.name = name;
- this.username = username;
this.type = type;
- this.passwordStore.update(new DeltaCloudPasswordStorageKey(name, username), password);
- client = createClient(name, url, username, passwordStore.getPassword());
- loadChildren();
+ setName(name);
+
+ boolean changed = updateConnectionProperties(url, username, password);
+ if (changed) {
+ client = createClient(name, url, username, passwordStore.getPassword());
+ loadChildren();
+ }
}
+ private boolean updateConnectionProperties(String url, String username, String password)
+ throws DeltaCloudException {
+ boolean changed = false;
+ if (!equals(this.url, url)) {
+ this.url = url;
+ changed = true;
+ }
+ if (!equals(this.username, username)) {
+ this.username = username;
+ changed = true;
+ }
+ if (!equals(this.passwordStore.getPassword(), password)) {
+ this.passwordStore.setPassword(password);
+ changed = true;
+ }
+ return changed;
+ }
+
+ private boolean equals(Object thisObject, Object thatObject) {
+ return (thisObject != null && thisObject.equals(thatObject))
+ || (thatObject != null && thatObject.equals(thisObject))
+ || (thisObject == null && thatObject == null);
+ }
+
private InternalDeltaCloudClient createClient(String name, String url, String username, String password)
throws DeltaCloudException {
try {
@@ -146,6 +173,10 @@
this.lastImageId = lastImageId;
}
+ protected void setName(String name) {
+ firePropertyChange(PROP_NAME, this.name, this.name = name);
+ }
+
public String getLastKeyname() {
return lastKeyname;
}
@@ -162,9 +193,11 @@
String rules = getInstanceFilter().toString();
instanceFilter = createInstanceFilter(ruleString);
if (!rules.equals(ruleString)) {
- // TODO: remove notification with all instances, replace by
+ // TODO: remove notification with all instanceRepo, replace by
// notifying the changed instance
- notifyInstanceListListeners(getInstancesRepository().get());
+ firePropertyChange(PROP_INSTANCES,
+ getInstancesRepository().get(),
+ getInstancesRepository().get());
}
}
@@ -191,7 +224,11 @@
String rules = getImageFilter().toString();
this.imageFilter = createImageFilter(ruleString);
if (!rules.equals(ruleString)) {
- notifyImageListListeners(getImagesRepository().get());
+ // TODO: remove notification with all instanceRepo, replace by
+ // notifying the changed instance
+ firePropertyChange(PROP_IMAGES,
+ getImagesRepository().get(),
+ getImagesRepository().get());
}
}
@@ -238,38 +275,6 @@
}
}
- public void addInstanceListListener(IInstanceListListener listener) {
- instanceListeners.add(listener);
- }
-
- public void removeInstanceListListener(IInstanceListListener listener) {
- instanceListeners.remove(listener);
- }
-
- private DeltaCloudInstance[] notifyInstanceListListeners(DeltaCloudInstance[] array) {
- Object[] listeners = instanceListeners.getListeners();
- for (int i = 0; i < listeners.length; ++i) {
- ((IInstanceListListener) listeners[i]).listChanged(this, array);
- }
- return array;
- }
-
- public void addImageListListener(IImageListListener listener) {
- imageListeners.add(listener);
- }
-
- public void removeImageListListener(IImageListListener listener) {
- imageListeners.remove(listener);
- }
-
- private DeltaCloudImage[] notifyImageListListeners(DeltaCloudImage[] array) {
- Object[] listeners = imageListeners.getListeners();
- for (int i = 0; i < listeners.length; ++i) {
- ((IImageListListener) listeners[i]).listChanged(this, array);
- }
- return array;
- }
-
public Job getInstanceJob(String id) {
synchronized (actionLock) {
Job j = null;
@@ -314,7 +319,7 @@
public DeltaCloudInstance waitForState(String instanceId, IInstanceStateMatcher stateMatcher, IProgressMonitor pm)
throws InterruptedException, DeltaCloudException {
- DeltaCloudInstance instance = instances.getById(instanceId);
+ DeltaCloudInstance instance = instanceRepo.getById(instanceId);
if (instance != null) {
while (!pm.isCanceled()) {
if (stateMatcher.matchesState(instance, instance.getState())
@@ -336,56 +341,62 @@
}
/**
- * Loads the instances from the server and stores them in this instance.
+ * Loads the instanceRepo from the server and stores them in this instance.
* Furthermore listeners get informed.
*
- * @return the instances
+ * @return the instanceRepo
* @throws DeltaCloudException
*
* @see #notifyInstanceListListeners(DeltaCloudInstance[])
*/
private void loadInstances() throws DeltaCloudException {
try {
- getInstancesRepository().add(client.listInstances(), this);
- notifyImageListListeners(images.get());
+ DeltaCloudInstancesRepository repo = getInstancesRepository();
+ DeltaCloudInstance[] oldInstances = repo.get();
+ repo.add(client.listInstances(), this);
+ // TODO: remove notification with all instanceRepo, replace by
+ // notifying the changed instance
+ firePropertyChange(PROP_INSTANCES, oldInstances, repo.get());
} catch (DeltaCloudClientException e) {
- throw new DeltaCloudException(MessageFormat.format("Could not load instances of cloud {0}: {1}",
+ throw new DeltaCloudException(MessageFormat.format("Could not load instanceRepo of cloud {0}: {1}",
getName(), e.getMessage()), e);
}
}
private void clearImages() {
if (images != null) {
- images.clear();
- notifyImageListListeners(images.get());
+ // TODO: remove notification with all instanceRepo, replace by
+ // notifying the changed instance
+ firePropertyChange(PROP_IMAGES, images.get(), images.clear());
}
}
private void clearInstances() {
- if (instances != null) {
- instances.clear();
- notifyInstanceListListeners(instances.get());
- }
+ // TODO: remove notification with all instanceRepo, replace by
+ // notifying the changed instance
+ firePropertyChange(PROP_INSTANCES,
+ getInstancesRepository().get(),
+ getInstancesRepository().clear());
}
private DeltaCloudInstancesRepository getInstancesRepository() {
- if (instances == null) {
- instances = new DeltaCloudInstancesRepository();
+ if (instanceRepo == null) {
+ instanceRepo = new DeltaCloudInstancesRepository();
}
- return instances;
+ return instanceRepo;
}
/**
- * Gets the instances in async manner. The method does not return the
- * instances but notifies observers of the instances.
+ * Gets the instanceRepo in async manner. The method does not return the
+ * instanceRepo but notifies observers of the instanceRepo.
*
* @throws DeltaCloudException
*/
public DeltaCloudInstance[] getInstances() throws DeltaCloudException {
- if (instances == null) {
+ if (instanceRepo == null) {
loadInstances();
}
- return instances.get();
+ return instanceRepo.get();
}
private DeltaCloudImagesRepository getImagesRepository() {
@@ -442,7 +453,7 @@
}
/**
- * Replaces the current instance with the given one. The instances are
+ * Replaces the current instance with the given one. The instanceRepo are
* matched against identical id
*
* @param instance
@@ -451,27 +462,21 @@
public void replaceInstance(DeltaCloudInstance instance) {
String instanceId = instance.getId();
if (instance != null) {
- DeltaCloudInstance instanceToReplace = instances.getById(instanceId);
- replaceInstance(instance, instanceToReplace);
- // TODO: remove notification with all instances, replace by
- // notifying the changed instance
- notifyInstanceListListeners(getInstancesRepository().get());
+ replaceInstance(instance, instanceRepo.getById(instanceId));
}
}
- // TODO: remove duplicate code with #replaceInstance
public DeltaCloudInstance refreshInstance(String instanceId) throws DeltaCloudException {
DeltaCloudInstance deltaCloudInstance = null;
try {
Instance instance = client.listInstances(instanceId);
deltaCloudInstance = new DeltaCloudInstance(this, instance);
- DeltaCloudInstance currentInstance = instances.getById(instanceId);
+ DeltaCloudInstance currentInstance = instanceRepo.getById(instanceId);
// FIXME: remove BOGUS state when server fixes state
// problems
if (!(deltaCloudInstance.getState().equals(DeltaCloudInstance.BOGUS))
&& !(currentInstance.getState().equals(deltaCloudInstance.getState()))) {
replaceInstance(deltaCloudInstance, currentInstance);
- notifyInstanceListListeners(getInstancesRepository().get());
}
} catch (DeltaCloudClientException e) {
// TODO: is this correct?
@@ -482,12 +487,17 @@
}
private void replaceInstance(DeltaCloudInstance deltaCloudInstance, DeltaCloudInstance currentInstance) {
- getInstancesRepository().remove(currentInstance);
- getInstancesRepository().add(deltaCloudInstance);
+ DeltaCloudInstancesRepository repo = getInstancesRepository();
+ DeltaCloudInstance[] instances = repo.get();
+ repo.remove(currentInstance);
+ repo.add(deltaCloudInstance);
+ // TODO: remove notification with all instanceRepo, replace by
+ // notifying the changed instance
+ firePropertyChange(PROP_INSTANCES, instances, repo.get());
}
public boolean performInstanceAction(String instanceId, String actionId) throws DeltaCloudException {
- return performInstanceAction(instances.getById(instanceId), actionId);
+ return performInstanceAction(instanceRepo.getById(instanceId), actionId);
}
protected boolean performInstanceAction(DeltaCloudInstance instance, String actionId) throws DeltaCloudException {
@@ -495,12 +505,13 @@
if (instance == null) {
return false;
}
-
+ DeltaCloudInstancesRepository repo = getInstancesRepository();
+ DeltaCloudInstance[] instances = repo.get();
boolean result = instance.performInstanceAction(actionId, client);
if (result) {
- // TODO: remove notification with all instances, replace by
+ // TODO: remove notification with all instanceRepo, replace by
// notifying the changed instance
- notifyInstanceListListeners(getInstancesRepository().get());
+ firePropertyChange(PROP_INSTANCES, instances, repo.get());
}
return result;
} catch (DeltaCloudClientException e) {
@@ -535,8 +546,12 @@
*/
private void loadImages() throws DeltaCloudException {
try {
- getImagesRepository().add(client.listImages(), this);
- notifyImageListListeners(images.get());
+ DeltaCloudImagesRepository repo = getImagesRepository();
+ DeltaCloudImage[] oldImages = repo.get();
+ repo.add(client.listImages(), this);
+ // TODO: remove notification with all instanceRepo, replace by
+ // notifying the changed instance
+ firePropertyChange(PROP_IMAGES, oldImages, repo.get());
} catch (DeltaCloudClientException e) {
clearImages();
throw new DeltaCloudException(MessageFormat.format("Could not load images of cloud {0}: {1}",
@@ -583,9 +598,13 @@
instance = client.createInstance(imageId, profileId, realmId, name, memory, storage);
}
if (instance != null) {
- DeltaCloudInstance deltaCloudInstance = getInstancesRepository().add(instance, this);
+ DeltaCloudInstancesRepository repo = getInstancesRepository();
+ DeltaCloudInstance[] instances = repo.get();
+ DeltaCloudInstance deltaCloudInstance = repo.add(instance, this);
deltaCloudInstance.setGivenName(name);
- notifyInstanceListListeners(getInstancesRepository().get());
+ // TODO: remove notification with all instanceRepo, replace by
+ // notifying the changed instance
+ firePropertyChange(PROP_INSTANCES, instances, repo.get());
return deltaCloudInstance;
}
} catch (DeltaCloudClientException e) {
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloudManager.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloudManager.java 2010-12-10 13:40:26 UTC (rev 27351)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloudManager.java 2010-12-10 14:10:08 UTC (rev 27352)
@@ -188,28 +188,23 @@
public void addCloud(DeltaCloud d) throws DeltaCloudException {
doGetClouds().add(d);
saveClouds();
- notifyListeners(ICloudManagerListener.ADD_EVENT, d);
+ notifyListeners(IDeltaCloudManagerListener.ADD_EVENT, d);
}
public void removeCloud(DeltaCloud d) throws DeltaCloudException {
doGetClouds().remove(d);
d.dispose();
saveClouds();
- notifyListeners(ICloudManagerListener.REMOVE_EVENT, d);
+ notifyListeners(IDeltaCloudManagerListener.REMOVE_EVENT, d);
}
- public void notifyCloudRename(DeltaCloud cloud) throws DeltaCloudException {
- saveClouds();
- notifyListeners(ICloudManagerListener.RENAME_EVENT, cloud);
- }
-
- public void addCloudManagerListener(ICloudManagerListener listener) {
+ public void addCloudManagerListener(IDeltaCloudManagerListener listener) {
if (cloudManagerListeners == null)
cloudManagerListeners = new ListenerList(ListenerList.IDENTITY);
cloudManagerListeners.add(listener);
}
- public void removeCloudManagerListener(ICloudManagerListener listener) {
+ public void removeCloudManagerListener(IDeltaCloudManagerListener listener) {
if (cloudManagerListeners != null)
cloudManagerListeners.remove(listener);
}
@@ -218,7 +213,7 @@
if (cloudManagerListeners != null) {
Object[] listeners = cloudManagerListeners.getListeners();
for (int i = 0; i < listeners.length; ++i) {
- ((ICloudManagerListener) listeners[i]).cloudsChanged(type, cloud);
+ ((IDeltaCloudManagerListener) listeners[i]).cloudsChanged(type, cloud);
}
}
}
Deleted: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/ICloudManagerListener.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/ICloudManagerListener.java 2010-12-10 13:40:26 UTC (rev 27351)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/ICloudManagerListener.java 2010-12-10 14:10:08 UTC (rev 27352)
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Red Hat Inc..
- * All rights reserved. This program and the accompanying materials
- * are 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 Incorporated - initial API and implementation
- *******************************************************************************/
-package org.jboss.tools.deltacloud.core;
-
-public interface ICloudManagerListener {
-
- public static int ADD_EVENT = 1;
- public static int REMOVE_EVENT = 2;
- public static int RENAME_EVENT = 3;
-
- void cloudsChanged(int type, DeltaCloud cloud);
-}
Copied: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/IDeltaCloudManagerListener.java (from rev 27269, trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/ICloudManagerListener.java)
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/IDeltaCloudManagerListener.java (rev 0)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/IDeltaCloudManagerListener.java 2010-12-10 14:10:08 UTC (rev 27352)
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat Inc..
+ * All rights reserved. This program and the accompanying materials
+ * are 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 Incorporated - initial API and implementation
+ *******************************************************************************/
+package org.jboss.tools.deltacloud.core;
+
+public interface IDeltaCloudManagerListener {
+
+ public static int ADD_EVENT = 1;
+ public static int REMOVE_EVENT = 2;
+
+ void cloudsChanged(int type, DeltaCloud cloud);
+}
Deleted: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/IImageListListener.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/IImageListListener.java 2010-12-10 13:40:26 UTC (rev 27351)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/IImageListListener.java 2010-12-10 14:10:08 UTC (rev 27352)
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Red Hat Inc..
- * All rights reserved. This program and the accompanying materials
- * are 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 Incorporated - initial API and implementation
- *******************************************************************************/
-package org.jboss.tools.deltacloud.core;
-
-public interface IImageListListener {
-
- public void listChanged(DeltaCloud cloud, DeltaCloudImage[] imges);
-
-}
Deleted: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/IInstanceListListener.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/IInstanceListListener.java 2010-12-10 13:40:26 UTC (rev 27351)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/IInstanceListListener.java 2010-12-10 14:10:08 UTC (rev 27352)
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Red Hat Inc..
- * All rights reserved. This program and the accompanying materials
- * are 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 Incorporated - initial API and implementation
- *******************************************************************************/
-package org.jboss.tools.deltacloud.core;
-
-public interface IInstanceListListener {
-
- public void listChanged(DeltaCloud cloud, DeltaCloudInstance[] list);
-
-}
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/SecurePasswordStore.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/SecurePasswordStore.java 2010-12-10 13:40:26 UTC (rev 27351)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/SecurePasswordStore.java 2010-12-10 14:10:08 UTC (rev 27352)
@@ -51,6 +51,10 @@
}
}
}
+
+ public void setPassword(String password) throws DeltaCloudException {
+ update(storageKey, password);
+ }
public void update(IStorageKey key, String password) throws DeltaCloudException {
if (!storageKey.equals(key)
Copied: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/internal/deltacloud/core/observable/ObservablePojo.java (from rev 27269, 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.core/src/org/jboss/tools/internal/deltacloud/core/observable/ObservablePojo.java (rev 0)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/internal/deltacloud/core/observable/ObservablePojo.java 2010-12-10 14:10:08 UTC (rev 27352)
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * 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.core.observable;
+
+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 firePropertyChange(String propertyName,
+ Object oldValue, Object newValue) {
+ propertyChangeSupport.firePropertyChange(propertyName, oldValue, newValue);
+ }
+
+ public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
+ propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
+ }
+
+ public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
+ propertyChangeSupport.removePropertyChangeListener(propertyName, listener);
+ }
+
+ public void removePropertyChangeListener(
+ PropertyChangeListener listener) {
+ propertyChangeSupport.removePropertyChangeListener(listener);
+ }
+
+ protected PropertyChangeSupport getPropertyChangeSupport() {
+ return propertyChangeSupport;
+ }
+}
Property changes on: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/internal/deltacloud/core/observable/ObservablePojo.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
15 years, 4 months
JBoss Tools SVN: r27351 - trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n.
by jbosstools-commits@lists.jboss.org
Author: dvinnichek
Date: 2010-12-10 08:40:26 -0500 (Fri, 10 Dec 2010)
New Revision: 27351
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/ExternalizeStringsWizardPage.java
Log:
applied patch for fixing Externalise Strings Wizard if web content is in a folder not called "WebContent"
Modified: trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/ExternalizeStringsWizardPage.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/ExternalizeStringsWizardPage.java 2010-12-10 13:30:16 UTC (rev 27350)
+++ trunk/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/ExternalizeStringsWizardPage.java 2010-12-10 13:40:26 UTC (rev 27351)
@@ -22,8 +22,10 @@
import java.util.Properties;
import java.util.Set;
+import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
@@ -63,7 +65,6 @@
import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager;
import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools;
import org.eclipse.wst.xml.core.internal.document.AttrImpl;
-import org.eclipse.wst.xml.core.internal.document.NodeImpl;
import org.eclipse.wst.xml.core.internal.document.TextImpl;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
import org.eclipse.wst.xml.ui.internal.provisional.IDOMSourceEditingTextTools;
@@ -87,7 +88,6 @@
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class ExternalizeStringsWizardPage extends WizardPage {
@@ -992,24 +992,27 @@
String filePath= root.getAttributeNode("template").getNodeValue(); //$NON-NLS-1$
if (((JSPTextEditor) editor).getEditorInput() instanceof FileEditorInput) {
FileEditorInput fei = (FileEditorInput) ((JSPTextEditor) editor).getEditorInput();
- IFile templateFile = (IFile) fei.getFile().getProject().getFolder("WebContent").findMember(filePath); //$NON-NLS-1$
- Document document = null;
- try {
- IDOMModel wtpModel = (IDOMModel)StructuredModelManager.getModelManager().getModelForRead(templateFile);
- if (wtpModel != null) {
- document = wtpModel.getDocument();
+ IResource webContentResource = EclipseResourceUtil.getFirstWebContentResource(fei.getFile().getProject());
+ if (webContentResource instanceof IContainer) {
+ IFile templateFile = (IFile) ((IContainer) webContentResource).findMember(filePath); //$NON-NLS-1$
+ Document document = null;
+ try {
+ IDOMModel wtpModel = (IDOMModel)StructuredModelManager.getModelManager().getModelForRead(templateFile);
+ if (wtpModel != null) {
+ document = wtpModel.getDocument();
+ }
+ } catch(IOException e) {
+ JspEditorPlugin.getPluginLog().logError(e);
+ } catch(CoreException e) {
+ JspEditorPlugin.getPluginLog().logError(e);
}
- } catch(IOException e) {
- JspEditorPlugin.getPluginLog().logError(e);
- } catch(CoreException e) {
- JspEditorPlugin.getPluginLog().logError(e);
+ if (null != document) {
+ /*
+ * Change the document where to look bundles
+ */
+ documentWithBundles = document;
+ }
}
- if (null != document) {
- /*
- * Change the document where to look bundles
- */
- documentWithBundles = document;
- }
}
}
}
15 years, 4 months
JBoss Tools SVN: r27350 - in trunk/hibernatetools/plugins: org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: dgeraskov
Date: 2010-12-10 08:30:16 -0500 (Fri, 10 Dec 2010)
New Revision: 27350
Removed:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/TextDialogCellEditor.java
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ParametersListDialog.java
Log:
https://issues.jboss.org/browse/JBIDE-7791
Query Parameters list value applied after focus lost
Deleted: trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ParametersListDialog.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ParametersListDialog.java 2010-12-10 13:29:43 UTC (rev 27349)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ParametersListDialog.java 2010-12-10 13:30:16 UTC (rev 27350)
@@ -1,152 +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
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.hibernate.console;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @author Dmitry Geraskov
- *
- */
-public class ParametersListDialog extends Dialog {
-
- private ListViewer listViewer;
-
- private ConsoleQueryParameter cqp;
-
- private String[] values;
-
- /**
- * @param parentShell
- */
- public ParametersListDialog(Shell parentShell, ConsoleQueryParameter cqp) {
- super(parentShell);
- this.cqp = cqp;
-
- }
-
- @Override
- protected Control createDialogArea(Composite container) {
- Composite parent = (Composite) super.createDialogArea(container);
- listViewer = new ListViewer(parent);
- GridData gd = new GridData(GridData.FILL_BOTH);
- gd.heightHint = convertHeightInCharsToPixels(15);
- gd.widthHint = convertWidthInCharsToPixels(55);
- org.eclipse.swt.widgets.List list = listViewer.getList();
- list.setLayoutData(gd);
- list.setFont(container.getFont());
- /*List<String> input = new ArrayList<String>();
- Object value = cqp.getValue();
- if (value != null) {
- if (cqp.isArrayValue()) {
- Object[] values = (Object[]) value;
- for (Object object : values) {
- input.add(cqp.convertValueToString(object));
- }
- } else {
- input.add(cqp.convertValueToString(value));
- }
- }*/
- if (!cqp.isNull()){
- list.setItems(cqp.getStringValues());
- }
- if (list.getItemCount() > 0){
- list.select(list.getItemCount() - 1);
- }
- addButtons(parent);
- return parent;
- }
-
- protected void configureShell(Shell shell) {
- super.configureShell(shell);
- shell.setText("Parameter Values"); //$NON-NLS-1$
- }
-
- private Button buttonAdd;
- private Button buttonRemove;
- private Button buttonModify;
-
- private void addButtons(Composite parent) {
- Composite composite = new Composite(parent, SWT.NULL);
- FillLayout fillLayout = new FillLayout(SWT.HORIZONTAL);
- fillLayout.spacing = 2;
-
- composite.setLayout(fillLayout);
-
- buttonAdd = new Button(composite, SWT.PUSH);
- buttonAdd.setText("Add"); //$NON-NLS-1$
-
- buttonModify = new Button(composite, SWT.PUSH);
- buttonModify.setText("Modify"); //$NON-NLS-1$
-
- buttonRemove = new Button(composite, SWT.PUSH);
- buttonRemove.setText("Remove"); //$NON-NLS-1$
-
- buttonAdd.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- InputDialog inputDialog = new InputDialog(null, "Add Element", //$NON-NLS-1$
- "New parameter: ", "", null); //$NON-NLS-1$ //$NON-NLS-2$
- if (inputDialog.open() == Window.OK) {
- listViewer.getList().add(inputDialog.getValue());
- }
- }
- });
-
- buttonModify.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- int line = listViewer.getList().getSelectionIndex();
- if (line >=0 ){
- InputDialog inputDialog = new InputDialog(null, "Add Element", //$NON-NLS-1$
- "New parameter: ", listViewer.getList().getItem(line), null); //$NON-NLS-1$
- if (inputDialog.open() == Window.OK) {
- listViewer.getList().setItem(line, inputDialog.getValue());
- }
- }
-
-
- }
- });
-
- buttonRemove.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent e) {
- int line = listViewer.getList().getSelectionIndex();
- if (line < 0) {
- return;
- } else {
- listViewer.getList().remove(line);
- }
- }
- });
- }
-
- @Override
- protected void okPressed() {
- values = listViewer.getList().getItems();
- super.okPressed();
- }
-
- public String[] getValue() {
- return values;
- }
-
-}
Deleted: trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/TextDialogCellEditor.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/TextDialogCellEditor.java 2010-12-10 13:29:43 UTC (rev 27349)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/TextDialogCellEditor.java 2010-12-10 13:30:16 UTC (rev 27350)
@@ -1,243 +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
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.hibernate.eclipse.console.views;
-
-import java.text.MessageFormat;
-
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @author Dmitry Geraskov
- *
- */
-public abstract class TextDialogCellEditor extends TextCellEditor {
-
- private Text text;
-
- /**
- * The button.
- */
- private Button button;
-
- /**
- * The editor control.
- */
- private Composite editor;
-
- private String[] strValues = null;
-
- private FocusListener buttonFocusListener;
-
- protected TextDialogCellEditor(Composite parent) {
- super(parent);
- }
-
- @Override
- protected Control createControl(Composite parent) {
- Font font = parent.getFont();
- Color bg = parent.getBackground();
-
- editor = new Composite(parent, getStyle());
- editor.setFont(font);
- editor.setBackground(bg);
- editor.setLayout(new DialogCellLayout());
-
- text = (Text) super.createControl(editor);
- updateContents(strValues);
-
- button = createButton(editor);
- button.setFont(font);
-
- button.addKeyListener(new KeyAdapter() {
- /* (non-Javadoc)
- * @see org.eclipse.swt.events.KeyListener#keyReleased(org.eclipse.swt.events.KeyEvent)
- */
- public void keyReleased(KeyEvent e) {
- if (e.character == '\u001b') { // Escape
- fireCancelEditor();
- }
- }
- });
-
- button.addFocusListener(getButtonFocusListener());
-
- button.addSelectionListener(new SelectionAdapter() {
- /* (non-Javadoc)
- * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
- */
- public void widgetSelected(SelectionEvent event) {
- // Remove the button's focus listener since it's guaranteed
- // to lose focus when the dialog opens
- button.removeFocusListener(getButtonFocusListener());
-
- Object newValue = openDialogBox(editor);
-
- // Re-add the listener once the dialog closes
- button.addFocusListener(getButtonFocusListener());
-
- if (newValue != null) {
- boolean newValidState = isCorrect(newValue);
- if (newValidState) {
- markDirty();
- doSetValue(newValue);
- } else {
- // try to insert the current value into the error message.
- setErrorMessage(MessageFormat.format(getErrorMessage(),
- new Object[] { newValue.toString() }));
- }
- fireApplyEditorValue();
- }
- }
-
-
- });
-
- setValueValid(true);
-
- return editor;
- }
-
- @Override
- protected void focusLost() {
- if (isActivated()) {
- if (button != null && !button.isDisposed() && !button.isFocusControl()) {
- if (text != null && !text.isDisposed() && !text.isFocusControl()){
- fireApplyEditorValue();
- deactivate();
- }
- }
- }
- }
-
- protected abstract Object openDialogBox(Control cellEditorWindow);
-
- private FocusListener getButtonFocusListener() {
- if (buttonFocusListener == null) {
- buttonFocusListener = new FocusListener() {
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.events.FocusListener#focusGained(org.eclipse.swt.events.FocusEvent)
- */
- public void focusGained(FocusEvent e) {
-
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.swt.events.FocusListener#focusLost(org.eclipse.swt.events.FocusEvent)
- */
- public void focusLost(FocusEvent e) {
- TextDialogCellEditor.this.focusLost();
- }
- };
- }
-
- return buttonFocusListener;
- }
-
- protected Button createButton(Composite parent) {
- Button result = new Button(parent, SWT.DOWN);
- result.setText("..."); //$NON-NLS-1$
- return result;
- }
-
- public void deactivate() {
- if (button != null && !button.isDisposed()) {
- button.removeFocusListener(getButtonFocusListener());
- }
-
- super.deactivate();
- }
-
- @Override
- protected void editOccured(ModifyEvent e) {
- String text = this.text.getText();
- if (strValues == null || strValues.length == 0){
- strValues = new String[]{text};
- } else {
- strValues[0] = text;
- }
- super.editOccured(e);
- }
-
- protected Object doGetValue() {
- return strValues;
- }
-
- protected void doSetValue(Object value) {
- if (value == null) {
- value = "";
- this.strValues = new String[]{""};
- } else if (value.getClass().isArray()){
- this.strValues = (String[])value;
- value = this.strValues[0];
- }
- super.doSetValue(value);
- }
-
- protected void updateContents(String[] value) {
- if (text == null) {
- return;
- }
-
- String strVal = "";//$NON-NLS-1$
- if (value != null && value.length > 0) {
- strVal = value[0];
- }
- text.setText(strVal);
- }
-
- private class DialogCellLayout extends Layout {
- public void layout(Composite editor, boolean force) {
- Rectangle bounds = editor.getClientArea();
- Point size = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, force);
- if (text != null) {
- text.setBounds(0, 0, bounds.width - size.x, bounds.height);
- }
- button.setBounds(bounds.width - size.x, 0, size.x, bounds.height);
- }
-
- public Point computeSize(Composite editor, int wHint, int hHint,
- boolean force) {
- if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT) {
- return new Point(wHint, hHint);
- }
- Point contentsSize = text.computeSize(SWT.DEFAULT, SWT.DEFAULT,
- force);
- Point buttonSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT,
- force);
- // Just return the button width to ensure the button is not clipped
- // if the label is long.
- // The label will just use whatever extra width there is
- Point result = new Point(buttonSize.x, Math.max(contentsSize.y,
- buttonSize.y));
- return result;
- }
- }
-
-
-}
\ No newline at end of file
15 years, 4 months
JBoss Tools SVN: r27349 - in trunk/hibernatetools/plugins: org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: dgeraskov
Date: 2010-12-10 08:29:43 -0500 (Fri, 10 Dec 2010)
New Revision: 27349
Added:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/StringArrayDialogCellEditor.java
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/StringListDialog.java
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/QueryParametersPage.java
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConsoleMessages.java
trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConsoleMessages.properties
Log:
https://issues.jboss.org/browse/JBIDE-7791
Query Parameters list value applied after focus lost
Modified: trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConsoleMessages.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConsoleMessages.java 2010-12-10 11:32:50 UTC (rev 27348)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConsoleMessages.java 2010-12-10 13:29:43 UTC (rev 27349)
@@ -31,6 +31,13 @@
public static String AbstractConsoleConfigurationPreferences_unknown;
public static String StandAloneConsoleConfigurationPreferences_could_not_resolve_classpaths;
public static String StandAloneConsoleConfigurationPreferences_errors_while_parsing;
+ public static String StringListDialog_Add;
+ public static String StringListDialog_Add_Element;
+ public static String StringListDialog_Elements;
+ public static String StringListDialog_Modify;
+ public static String StringListDialog_Modify_Element;
+ public static String StringListDialog_New_Element;
+ public static String StringListDialog_Remove;
public static String PluginFileAppender_missing_plugin_state_location;
public static String PluginLogAppender_missing_layout_for_appender;
static {
Modified: trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConsoleMessages.properties
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConsoleMessages.properties 2010-12-10 11:32:50 UTC (rev 27348)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ConsoleMessages.properties 2010-12-10 13:29:43 UTC (rev 27349)
@@ -24,6 +24,13 @@
AbstractConsoleConfigurationPreferences_unknown=<unknown>
StandAloneConsoleConfigurationPreferences_could_not_resolve_classpaths=Could not resolve classpaths
StandAloneConsoleConfigurationPreferences_errors_while_parsing=Errors while parsing
+StringListDialog_Add=Add
+StringListDialog_Add_Element=Add Element
+StringListDialog_Elements=Elements
+StringListDialog_Modify=Modify
+StringListDialog_Modify_Element=Modify Element
+StringListDialog_New_Element=New Element:
+StringListDialog_Remove=Remove
PluginFileAppender_missing_plugin_state_location=Missing Plugin State Location.
PluginLogAppender_missing_layout_for_appender=Missing layout for appender
ConsoleConfiguration_connection_profile_not_found=Connection profile not found: ''{0}''.
\ No newline at end of file
Copied: trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/StringListDialog.java (from rev 26997, trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/ParametersListDialog.java)
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/StringListDialog.java (rev 0)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse/src/org/hibernate/console/StringListDialog.java 2010-12-10 13:29:43 UTC (rev 27349)
@@ -0,0 +1,139 @@
+/*******************************************************************************
+ * 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.hibernate.console;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * @author Dmitry Geraskov
+ *
+ */
+public class StringListDialog extends Dialog {
+
+ private ListViewer listViewer;
+
+ private String[] values;
+
+ /**
+ * @param parentShell
+ */
+ public StringListDialog(Shell parentShell, String[] initValue) {
+ super(parentShell);
+ values = initValue;
+ }
+
+ @Override
+ protected Control createDialogArea(Composite container) {
+ Composite parent = (Composite) super.createDialogArea(container);
+ listViewer = new ListViewer(parent);
+ GridData gd = new GridData(GridData.FILL_BOTH);
+ gd.heightHint = convertHeightInCharsToPixels(15);
+ gd.widthHint = convertWidthInCharsToPixels(55);
+ org.eclipse.swt.widgets.List list = listViewer.getList();
+ list.setLayoutData(gd);
+ list.setFont(container.getFont());
+
+ if (values != null){
+ list.setItems(values);
+ }
+
+ if (list.getItemCount() > 0){
+ list.select(list.getItemCount() - 1);
+ }
+ addButtons(parent);
+ return parent;
+ }
+
+ protected void configureShell(Shell shell) {
+ super.configureShell(shell);
+ shell.setText(ConsoleMessages.StringListDialog_Elements);
+ }
+
+ private Button buttonAdd;
+ private Button buttonRemove;
+ private Button buttonModify;
+
+ private void addButtons(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NULL);
+ FillLayout fillLayout = new FillLayout(SWT.HORIZONTAL);
+ fillLayout.spacing = 2;
+
+ composite.setLayout(fillLayout);
+
+ buttonAdd = new Button(composite, SWT.PUSH);
+ buttonAdd.setText(ConsoleMessages.StringListDialog_Add);
+
+ buttonModify = new Button(composite, SWT.PUSH);
+ buttonModify.setText(ConsoleMessages.StringListDialog_Modify);
+
+ buttonRemove = new Button(composite, SWT.PUSH);
+ buttonRemove.setText(ConsoleMessages.StringListDialog_Remove);
+
+ buttonAdd.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ InputDialog inputDialog = new InputDialog(null, ConsoleMessages.StringListDialog_Add_Element,
+ ConsoleMessages.StringListDialog_New_Element, "", null); //$NON-NLS-1$
+ if (inputDialog.open() == Window.OK) {
+ listViewer.getList().add(inputDialog.getValue());
+ }
+ }
+ });
+
+ buttonModify.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ int line = listViewer.getList().getSelectionIndex();
+ if (line >=0 ){
+ InputDialog inputDialog = new InputDialog(null, ConsoleMessages.StringListDialog_Modify_Element,
+ ConsoleMessages.StringListDialog_New_Element, listViewer.getList().getItem(line), null);
+ if (inputDialog.open() == Window.OK) {
+ listViewer.getList().setItem(line, inputDialog.getValue());
+ }
+ }
+
+
+ }
+ });
+
+ buttonRemove.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ int line = listViewer.getList().getSelectionIndex();
+ if (line < 0) {
+ return;
+ } else {
+ listViewer.getList().remove(line);
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void okPressed() {
+ values = listViewer.getList().getItems();
+ super.okPressed();
+ }
+
+ public String[] getValue() {
+ return values;
+ }
+
+}
Modified: trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/QueryParametersPage.java
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/QueryParametersPage.java 2010-12-10 11:32:50 UTC (rev 27348)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/QueryParametersPage.java 2010-12-10 13:29:43 UTC (rev 27349)
@@ -64,8 +64,8 @@
import org.eclipse.ui.part.Page;
import org.hibernate.console.ConsoleQueryParameter;
import org.hibernate.console.ImageConstants;
-import org.hibernate.console.ParametersListDialog;
import org.hibernate.console.QueryInputModel;
+import org.hibernate.console.StringListDialog;
import org.hibernate.eclipse.console.HibernateConsoleMessages;
import org.hibernate.eclipse.console.QueryEditor;
import org.hibernate.eclipse.console.utils.EclipseImages;
@@ -271,10 +271,6 @@
}
if ( VALUE_PROPERTY.equals( property ) ) {
return cqp.getStringValues();
- /*if (cqp.isArrayValue()){
- return cqp.convertValueToString(((Object[])cqp.getValue())[0]);
- }
- return cqp.convertValueToString(cqp.getValue());*/
}
if ( NULL_PROPERTY.equals( property )) {
return Boolean.valueOf(cqp.isNull());
@@ -315,34 +311,20 @@
CellEditor[] editors = new CellEditor[columnProperties.length];
editors[0] = new TextCellEditor( queryParametersTable );
editors[1] = new ComboBoxCellEditor( queryParametersTable, valueTypes );
- editors[2] = new TextDialogCellEditor(queryParametersTable) {
+ editors[2] = new StringArrayDialogCellEditor(queryParametersTable) {
private Button b;
- @Override
- protected Object openDialogBox(Control cellEditorWindow) {
- Object firstElement = ((IStructuredSelection)tableViewer.getSelection()).getFirstElement();
- if(firstElement instanceof ConsoleQueryParameter) {
- ParametersListDialog pld = new ParametersListDialog(null, (ConsoleQueryParameter) firstElement);
- if (pld.open()==Window.OK){
- return pld.getValue();//String[]
- }
- }
- return getValue();//could be String or String[]
- }
-
public void activate() {
- Object param = ((IStructuredSelection)tableViewer.getSelection()).getFirstElement();
- if(param instanceof ConsoleQueryParameter) {
+ Object param = ((IStructuredSelection) tableViewer.getSelection()).getFirstElement();
+ if (param instanceof ConsoleQueryParameter) {
try {
Integer.parseInt(((ConsoleQueryParameter) param).getName());
- /*
- * "ordered" parameter doesn't allow list value
- * see also HQLQueryPage#setupParameters()
- */
+ // "ordered" parameter doesn't allow list value
+ // see also HQLQueryPage#setupParameters()
b.setVisible(false);
- } catch(NumberFormatException nfe) {
- /*"named" parameter allows parameter list value*/
+ } catch (NumberFormatException nfe) {
+ // "named" parameter allows parameter list value
b.setVisible(true);
}
}
Copied: trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/StringArrayDialogCellEditor.java (from rev 26997, trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/TextDialogCellEditor.java)
===================================================================
--- trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/StringArrayDialogCellEditor.java (rev 0)
+++ trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/views/StringArrayDialogCellEditor.java 2010-12-10 13:29:43 UTC (rev 27349)
@@ -0,0 +1,250 @@
+/*******************************************************************************
+ * 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
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.hibernate.eclipse.console.views;
+
+import java.text.MessageFormat;
+
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Layout;
+import org.eclipse.swt.widgets.Text;
+import org.hibernate.console.StringListDialog;
+
+/**
+ * @author Dmitry Geraskov
+ *
+ */
+public class StringArrayDialogCellEditor extends TextCellEditor {
+
+ private Text text;
+
+ /**
+ * The button.
+ */
+ private Button button;
+
+ /**
+ * The editor control.
+ */
+ private Composite editor;
+
+ private String[] strValues = null;
+
+ private FocusListener buttonFocusListener;
+
+ protected StringArrayDialogCellEditor(Composite parent) {
+ super(parent);
+ }
+
+ @Override
+ protected Control createControl(Composite parent) {
+ Font font = parent.getFont();
+ Color bg = parent.getBackground();
+
+ editor = new Composite(parent, getStyle());
+ editor.setFont(font);
+ editor.setBackground(bg);
+ editor.setLayout(new DialogCellLayout());
+
+ text = (Text) super.createControl(editor);
+ updateContents(strValues);
+
+ button = createButton(editor);
+ button.setFont(font);
+
+ button.addKeyListener(new KeyAdapter() {
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.KeyListener#keyReleased(org.eclipse.swt.events.KeyEvent)
+ */
+ public void keyReleased(KeyEvent e) {
+ if (e.character == '\u001b') { // Escape
+ fireCancelEditor();
+ }
+ }
+ });
+
+ button.addFocusListener(getButtonFocusListener());
+
+ button.addSelectionListener(new SelectionAdapter() {
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ public void widgetSelected(SelectionEvent event) {
+ // Remove the button's focus listener since it's guaranteed
+ // to lose focus when the dialog opens
+ button.removeFocusListener(getButtonFocusListener());
+
+ Object newValue = openDialogBox(editor);
+
+ // Re-add the listener once the dialog closes
+ button.addFocusListener(getButtonFocusListener());
+
+ if (newValue != null) {
+ boolean newValidState = isCorrect(newValue);
+ if (newValidState) {
+ markDirty();
+ doSetValue(newValue);
+ } else {
+ // try to insert the current value into the error message.
+ setErrorMessage(MessageFormat.format(getErrorMessage(),
+ new Object[] { newValue.toString() }));
+ }
+ fireApplyEditorValue();
+ }
+ }
+
+
+ });
+
+ setValueValid(true);
+
+ return editor;
+ }
+
+ @Override
+ protected void focusLost() {
+ if (isActivated()) {
+ if (button != null && !button.isDisposed() && !button.isFocusControl()) {
+ if (text != null && !text.isDisposed() && !text.isFocusControl()){
+ fireApplyEditorValue();
+ deactivate();
+ }
+ }
+ }
+ }
+
+ protected Object openDialogBox(Control cellEditorWindow) {
+ String[] value = (String[]) getValue();
+ StringListDialog pld = new StringListDialog(null, value);
+ if (pld.open()==Window.OK){
+ return pld.getValue();//String[]
+ }
+ return null;
+ }
+
+ private FocusListener getButtonFocusListener() {
+ if (buttonFocusListener == null) {
+ buttonFocusListener = new FocusListener() {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.FocusListener#focusGained(org.eclipse.swt.events.FocusEvent)
+ */
+ public void focusGained(FocusEvent e) {
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.swt.events.FocusListener#focusLost(org.eclipse.swt.events.FocusEvent)
+ */
+ public void focusLost(FocusEvent e) {
+ StringArrayDialogCellEditor.this.focusLost();
+ }
+ };
+ }
+
+ return buttonFocusListener;
+ }
+
+ protected Button createButton(Composite parent) {
+ Button result = new Button(parent, SWT.DOWN);
+ result.setText("..."); //$NON-NLS-1$
+ return result;
+ }
+
+ public void deactivate() {
+ if (button != null && !button.isDisposed()) {
+ button.removeFocusListener(getButtonFocusListener());
+ }
+
+ super.deactivate();
+ }
+
+ @Override
+ protected void editOccured(ModifyEvent e) {
+ String text = this.text.getText();
+ if (strValues == null || strValues.length == 0){
+ strValues = new String[]{text};
+ } else {
+ strValues[0] = text;
+ }
+ super.editOccured(e);
+ }
+
+ protected Object doGetValue() {
+ return strValues;
+ }
+
+ protected void doSetValue(Object value) {
+ if (value == null) {
+ this.strValues = new String[]{""}; //$NON-NLS-1$
+ } else if (value.getClass().isArray()){
+ this.strValues = (String[])value;
+ }
+ super.doSetValue(strValues.length > 0 ? strValues[0] : ""); //$NON-NLS-1$
+ }
+
+ protected void updateContents(String[] value) {
+ if (text == null) {
+ return;
+ }
+
+ String strVal = "";//$NON-NLS-1$
+ if (value != null && value.length > 0) {
+ strVal = value[0];
+ }
+ text.setText(strVal);
+ }
+
+ private class DialogCellLayout extends Layout {
+ public void layout(Composite editor, boolean force) {
+ Rectangle bounds = editor.getClientArea();
+ Point size = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, force);
+ if (text != null) {
+ text.setBounds(0, 0, bounds.width - size.x, bounds.height);
+ }
+ button.setBounds(bounds.width - size.x, 0, size.x, bounds.height);
+ }
+
+ public Point computeSize(Composite editor, int wHint, int hHint,
+ boolean force) {
+ if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT) {
+ return new Point(wHint, hHint);
+ }
+ Point contentsSize = text.computeSize(SWT.DEFAULT, SWT.DEFAULT,
+ force);
+ Point buttonSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT,
+ force);
+ // Just return the button width to ensure the button is not clipped
+ // if the label is long.
+ // The label will just use whatever extra width there is
+ Point result = new Point(buttonSize.x, Math.max(contentsSize.y,
+ buttonSize.y));
+ return result;
+ }
+ }
+
+
+}
\ No newline at end of file
15 years, 4 months