Author: adietish
Date: 2012-02-15 16:55:53 -0500 (Wed, 15 Feb 2012)
New Revision: 38781
Added:
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/databinding/IObservablePojo.java
Modified:
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/databinding/ObservablePojo.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/GitCloningSettingsWizardPage.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/GitCloningSettingsWizardPageModel.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/IOpenShiftExpressWizardModel.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizard.java
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizardModel.java
Log:
[JBIDE-10917] making sure that the GitCloningWizardPage gets notified of changes in
ApplicationName (was: initial invalid state caused by empty application name was not
updated by changes in application name on ApplicationConfigurationWizardPage)
Added:
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/databinding/IObservablePojo.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/databinding/IObservablePojo.java
(rev 0)
+++
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/databinding/IObservablePojo.java 2012-02-15
21:55:53 UTC (rev 38781)
@@ -0,0 +1,20 @@
+package org.jboss.tools.common.databinding;
+
+import java.beans.PropertyChangeListener;
+
+public interface IObservablePojo {
+
+ public void addPropertyChangeListener(String propertyName, PropertyChangeListener
listener);
+
+ public void addPropertyChangeListener(PropertyChangeListener listener);
+
+ public void removePropertyChangeListener(String propertyName, PropertyChangeListener
listener);
+
+ public void removePropertyChangeListener(
+ PropertyChangeListener listener);
+
+ public void removeAllPropertyChangeListeners();
+
+ public void dispose();
+
+}
\ No newline at end of file
Property changes on:
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/databinding/IObservablePojo.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/databinding/ObservablePojo.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/databinding/ObservablePojo.java 2012-02-15
21:25:24 UTC (rev 38780)
+++
trunk/common/plugins/org.jboss.tools.common/src/org/jboss/tools/common/databinding/ObservablePojo.java 2012-02-15
21:55:53 UTC (rev 38781)
@@ -17,7 +17,7 @@
* A POJO base class that may notify observers on behalf of
* {@link PropertyChangeSupport}
*/
-public abstract class ObservablePojo {
+public abstract class ObservablePojo implements IObservablePojo {
private PropertyChangeSupport propertyChangeSupport;
@@ -33,27 +33,38 @@
propertyChangeSupport.fireIndexedPropertyChange(propertyName, index, oldValue,
newValue);
}
+ @Override
public void addPropertyChangeListener(String propertyName, PropertyChangeListener
listener) {
if (!contains(listener)) {
propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
}
}
+ @Override
public void addPropertyChangeListener(PropertyChangeListener listener) {
if (!contains(listener)) {
propertyChangeSupport.addPropertyChangeListener(listener);
}
}
+ @Override
public void removePropertyChangeListener(String propertyName, PropertyChangeListener
listener) {
propertyChangeSupport.removePropertyChangeListener(propertyName, listener);
}
+ @Override
public void removePropertyChangeListener(
PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener(listener);
}
-
+
+ @Override
+ public void removeAllPropertyChangeListeners() {
+ for (PropertyChangeListener listener :
getPropertyChangeSupport().getPropertyChangeListeners()) {
+ getPropertyChangeSupport().removePropertyChangeListener(listener);
+ }
+ }
+
protected boolean contains(PropertyChangeListener listener) {
boolean contains = false;
for (PropertyChangeListener registeredListener :
propertyChangeSupport.getPropertyChangeListeners()) {
@@ -68,4 +79,9 @@
protected PropertyChangeSupport getPropertyChangeSupport() {
return propertyChangeSupport;
}
+
+ @Override
+ public void dispose() {
+ removeAllPropertyChangeListeners();
+ }
}
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 2012-02-15
21:25:24 UTC (rev 38780)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/DeltaCloud.java 2012-02-15
21:55:53 UTC (rev 38781)
@@ -601,8 +601,14 @@
return null;
}
- public void dispose() throws DeltaCloudException {
- passwordStore.remove();
+ @Override
+ public void dispose() {
+ super.dispose();
+ try {
+ passwordStore.remove();
+ } catch(DeltaCloudException e) {
+ Activator.log(e);
+ }
}
public String toString() {
Modified:
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/GitCloningSettingsWizardPage.java
===================================================================
---
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/GitCloningSettingsWizardPage.java 2012-02-15
21:25:24 UTC (rev 38780)
+++
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/GitCloningSettingsWizardPage.java 2012-02-15
21:55:53 UTC (rev 38781)
@@ -123,7 +123,11 @@
UIUtils.focusOnSelection(useDefaultRepoPathButton, repoPathText);
dbc.addValidationStatusProvider(
- new RepoPathValidationStatusProvider(isDefaultRepoObservable, repoPathObservable));
+ new RepoPathValidationStatusProvider(
+ isDefaultRepoObservable
+ , repoPathObservable
+ ,
BeanProperties.value(GitCloningSettingsWizardPageModel.PROPERTY_APPLICATION_NAME).observe(
+ pageModel)));
// Remote Name Management
useDefaultRemoteNameButton = new Button(cloneGroup, SWT.CHECK);
@@ -219,6 +223,7 @@
// allow to enable a proj only for as7 openshift applications
// pageModel.resetRepositoryPath();
pageModel.resetRemoteName();
+// pageModel.refreshApplicationName();
enableWidgets(pageModel.isNewProject());
}
@@ -243,23 +248,25 @@
private final IObservableValue isDefaultRepoPathObservable;
private final IObservableValue repoPathObservable;
+ private IObservableValue applicationNameObservable;
public RepoPathValidationStatusProvider(IObservableValue isDefaultRepoPathObservable,
- IObservableValue repoPathObservable) {
+ IObservableValue repoPathObservable, IObservableValue applicationNameObservable) {
this.isDefaultRepoPathObservable = isDefaultRepoPathObservable;
this.repoPathObservable = repoPathObservable;
+ this.applicationNameObservable = applicationNameObservable;
}
@Override
protected IStatus validate() {
Boolean isDefaultRepoPath = (Boolean) isDefaultRepoPathObservable.getValue();
String repoPath = (String) repoPathObservable.getValue();
+ String applicationName = (String) applicationNameObservable.getValue();
// skip the validation if the user wants to create a new project.
// The
// name and state of the existing project do
// not matter...
- String applicationName = pageModel.getApplicationName();
if (applicationName == null
|| applicationName.length() == 0) {
return OpenShiftUIActivator
Modified:
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/GitCloningSettingsWizardPageModel.java
===================================================================
---
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/GitCloningSettingsWizardPageModel.java 2012-02-15
21:25:24 UTC (rev 38780)
+++
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/GitCloningSettingsWizardPageModel.java 2012-02-15
21:55:53 UTC (rev 38781)
@@ -13,6 +13,9 @@
import static
org.jboss.tools.openshift.express.internal.ui.wizard.IOpenShiftExpressWizardModel.EXISTING_PROJECT_REMOTE_NAME_DEFAULT;
import static
org.jboss.tools.openshift.express.internal.ui.wizard.IOpenShiftExpressWizardModel.NEW_PROJECT_REMOTE_NAME_DEFAULT;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.jboss.tools.common.ui.databinding.ObservableUIPojo;
@@ -28,6 +31,7 @@
*/
public class GitCloningSettingsWizardPageModel extends ObservableUIPojo {
+ public static final String PROPERTY_APPLICATION_NAME = "applicationName";
public static final String PROPERTY_REPO_PATH = "repositoryPath";
public static final String PROPERTY_REMOTE_NAME = "remoteName";
public static final String PROPERTY_USE_DEFAULT_REPO_PATH =
"useDefaultRepoPath";
@@ -39,13 +43,34 @@
public GitCloningSettingsWizardPageModel(IOpenShiftExpressWizardModel wizardModel) {
this.wizardModel = wizardModel;
+ wizardModel.addPropertyChangeListener(IOpenShiftExpressWizardModel.APPLICATION_NAME,
onWizardApplicationNameChanged());
setRepositoryPath(getDefaultRepositoryPath());
}
+ private PropertyChangeListener onWizardApplicationNameChanged() {
+ return new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ firePropertyChange(PROPERTY_APPLICATION_NAME, evt.getOldValue(), evt.getNewValue());
+ }
+ };
+ }
+
public boolean isNewProject() {
return wizardModel.isNewProject();
}
+// public void refreshApplicationName() {
+// firePropertyChange(PROPERTY_APPLICATION_NAME, null,
wizardModel.getApplicationName());
+// }
+
+ public void setApplicationName(String name) {
+ firePropertyChange(PROPERTY_APPLICATION_NAME
+ , wizardModel.getApplicationName()
+ , wizardModel.setApplicationName(name));
+ }
+
public String getApplicationName() {
return wizardModel.getApplicationName();
}
Modified:
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/IOpenShiftExpressWizardModel.java
===================================================================
---
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/IOpenShiftExpressWizardModel.java 2012-02-15
21:25:24 UTC (rev 38780)
+++
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/IOpenShiftExpressWizardModel.java 2012-02-15
21:55:53 UTC (rev 38781)
@@ -21,6 +21,7 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.IServerType;
+import org.jboss.tools.common.databinding.IObservablePojo;
import org.jboss.tools.openshift.egit.ui.util.EGitUIUtils;
import org.jboss.tools.openshift.express.internal.core.behaviour.ExpressServerUtils;
@@ -32,7 +33,7 @@
/**
* @author André Dietisheim
*/
-public interface IOpenShiftExpressWizardModel extends IUserAwareModel {
+public interface IOpenShiftExpressWizardModel extends IUserAwareModel, IObservablePojo {
public static final String NEW_PROJECT = "enableProject";
public static final String USER = "user";
Modified:
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizard.java
===================================================================
---
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizard.java 2012-02-15
21:25:24 UTC (rev 38780)
+++
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizard.java 2012-02-15
21:55:53 UTC (rev 38781)
@@ -313,4 +313,9 @@
}
}
+ @Override
+ public void dispose() {
+ wizardModel.dispose();
+ }
+
}
Modified:
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizardModel.java
===================================================================
---
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizardModel.java 2012-02-15
21:25:24 UTC (rev 38780)
+++
trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/wizard/OpenShiftExpressApplicationWizardModel.java 2012-02-15
21:55:53 UTC (rev 38781)
@@ -397,7 +397,8 @@
@Override
public String setApplicationName(String applicationName) {
- return (String) dataModel.put(APPLICATION_NAME, applicationName);
+ firePropertyChange(APPLICATION_NAME, getApplicationName(),
dataModel.put(APPLICATION_NAME, applicationName));
+ return applicationName;
}
protected void setApplicationName(IApplication application) {