JBoss Tools SVN: r35291 - trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-10-03 13:25:20 -0400 (Mon, 03 Oct 2011)
New Revision: 35291
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java
Log:
[JBIDE-9793] implementing DomainWizardPage
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java 2011-10-03 17:25:02 UTC (rev 35290)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java 2011-10-03 17:25:20 UTC (rev 35291)
@@ -86,7 +86,7 @@
Button createButton = new Button(container, SWT.NONE);
createButton.setText("&Create New Domain");
- GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).span(2, 1).indent(0, 10).hint(140, 34).applyTo(createButton);
+ GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).span(2, 1).indent(0, 10).hint(160, 34).applyTo(createButton);
createButton.addSelectionListener(onCreate(dbc));
DataBindingUtils.bindButtonEnablementToValidationStatus(createButton, dbc);
}
11 years, 8 months
JBoss Tools SVN: r35290 - trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-10-03 13:25:02 -0400 (Mon, 03 Oct 2011)
New Revision: 35290
Modified:
trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding/DataBindingUtils.java
Log:
[JBIDE-9805] moved DatabindingUtils to org.jboss.tools.common.ui
Modified: trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding/DataBindingUtils.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding/DataBindingUtils.java 2011-10-03 16:56:39 UTC (rev 35289)
+++ trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding/DataBindingUtils.java 2011-10-03 17:25:02 UTC (rev 35290)
@@ -46,10 +46,9 @@
*/
public static void bindButtonEnablementToValidationStatus(final Button button,
DataBindingContext dbc, Binding... bindings) {
- IObservableCollection validationStatusProviders = toObservableCollection(bindings);
dbc.bindValue(
WidgetProperties.enabled().observe(button),
- createAggregateValidationStatus(validationStatusProviders, dbc),
+ createAggregateValidationStatus(dbc, bindings),
new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),
new UpdateValueStrategy().setConverter(new Status2BooleanConverter(IStatus.ERROR)));
}
@@ -66,13 +65,13 @@
* @return
*/
protected static AggregateValidationStatus createAggregateValidationStatus(
- IObservableCollection validationStatusProviders, DataBindingContext dbc) {
+ DataBindingContext dbc, Binding... bindings) {
AggregateValidationStatus aggregatedValidationStatus;
- if (validationStatusProviders == null) {
+ if (bindings.length == 0) {
aggregatedValidationStatus = new AggregateValidationStatus(dbc, AggregateValidationStatus.MAX_SEVERITY);
} else {
aggregatedValidationStatus = new AggregateValidationStatus(
- validationStatusProviders, AggregateValidationStatus.MAX_SEVERITY);
+ toObservableCollection(bindings), AggregateValidationStatus.MAX_SEVERITY);
}
return aggregatedValidationStatus;
}
11 years, 8 months
JBoss Tools SVN: r35289 - trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-10-03 12:56:39 -0400 (Mon, 03 Oct 2011)
New Revision: 35289
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java
Log:
[JBIDE-9793] implementing DomainWizardPage
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java 2011-10-03 16:52:15 UTC (rev 35288)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java 2011-10-03 16:56:39 UTC (rev 35289)
@@ -48,10 +48,11 @@
*/
public class NewDomainWizardPage extends AbstractOpenshiftWizardPage {
+ private static final String OPENSHIFT_EXPRESS_SIGNUP_URL = "https://openshift.redhat.com/app/user/new/express"; //$NON-NLS-1$
+
private static final String DIRECTORY_SSH_KEYS = ".ssh";
private static final String FILTEREXPRESSION_PUBLIC_SSH_KEY = "*.pub";
private static final String FILTERNAME_PUBLIC_SSH_KEY = "Public ssh key file (*.pub)";
- protected static final String OPENSHIFT_EXPRESS_SIGNUP_URL = "https://openshift.redhat.com/app/user/new/express"; //$NON-NLS-1$
public NewDomainWizardPage(IWizard wizard, ServerAdapterWizardModel model) {
super("New Domain", "Please create a new domain",
11 years, 8 months
JBoss Tools SVN: r35288 - in trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui: src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-10-03 12:52:15 -0400 (Mon, 03 Oct 2011)
New Revision: 35288
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/META-INF/MANIFEST.MF
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizard.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizardModel.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerWizardPage.java
Log:
[JBIDE-9793] implementing DomainWizardPage
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/META-INF/MANIFEST.MF 2011-10-03 16:24:34 UTC (rev 35287)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/META-INF/MANIFEST.MF 2011-10-03 16:52:15 UTC (rev 35288)
@@ -16,4 +16,5 @@
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.jboss.tools.common.databinding,
org.jboss.tools.common.ui,
- org.jboss.tools.common.ui.databinding
+ org.jboss.tools.common.ui.databinding,
+ org.jboss.tools.common.ui.preferencevalue
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java 2011-10-03 16:52:15 UTC (rev 35288)
@@ -0,0 +1,187 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.ide.eclipse.as.openshift.ui.internal.wizard;
+
+
+import java.io.File;
+
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.ValidationStatusProvider;
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.wizard.IWizard;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.PlatformUI;
+import org.jboss.ide.eclipse.as.openshift.core.NotFoundOpenshiftException;
+import org.jboss.ide.eclipse.as.openshift.core.OpenshiftException;
+import org.jboss.ide.eclipse.as.openshift.ui.internal.OpenshiftUIActivator;
+import org.jboss.tools.common.ui.BrowserUtil;
+import org.jboss.tools.common.ui.WizardUtils;
+import org.jboss.tools.common.ui.databinding.DataBindingUtils;
+
+/**
+ * @author André Dietisheim
+ */
+public class NewDomainWizardPage extends AbstractOpenshiftWizardPage {
+
+ private static final String DIRECTORY_SSH_KEYS = ".ssh";
+ private static final String FILTEREXPRESSION_PUBLIC_SSH_KEY = "*.pub";
+ private static final String FILTERNAME_PUBLIC_SSH_KEY = "Public ssh key file (*.pub)";
+ protected static final String OPENSHIFT_EXPRESS_SIGNUP_URL = "https://openshift.redhat.com/app/user/new/express"; //$NON-NLS-1$
+
+ public NewDomainWizardPage(IWizard wizard, ServerAdapterWizardModel model) {
+ super("New Domain", "Please create a new domain",
+ "new Domain", wizard, model);
+ this.model = model;
+ }
+
+ protected void doCreateControls(Composite container, DataBindingContext dbc) {
+ GridLayoutFactory.fillDefaults().numColumns(3).margins(10, 10).applyTo(container);
+
+ Label namespaceLabel = new Label(container, SWT.NONE);
+ namespaceLabel.setText("&Domain name");
+ GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(namespaceLabel);
+ Text namespaceText = new Text(container, SWT.BORDER);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(2, 1).applyTo(namespaceText);
+ DataBindingUtils.bindMandatoryTextField(namespaceText, "Domain name", ServerAdapterWizardModel.PROPERTY_NAMESPACE, model, dbc);
+
+ Label sshKeyLabel = new Label(container, SWT.NONE);
+ sshKeyLabel.setText("SSH Key");
+ GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(sshKeyLabel);
+ Text sshKeyText = new Text(container, SWT.READ_ONLY | SWT.BORDER);
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(sshKeyText);
+ DataBindingUtils.bindMandatoryTextField(sshKeyText, "SSH Key", ServerAdapterWizardModel.PROPERTY_SSHKEY, sshKeyText, dbc);
+ Button browseSShKeyButton = new Button(container, SWT.PUSH);
+ browseSShKeyButton.setText("Browse");
+ GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).hint(100, 34).applyTo(browseSShKeyButton);
+ browseSShKeyButton.addSelectionListener(onBrowseSshKey());
+
+ Label spacerLabel = new Label(container, SWT.None);
+ GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(spacerLabel);
+
+ Button createButton = new Button(container, SWT.NONE);
+ createButton.setText("&Create New Domain");
+ GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).span(2, 1).indent(0, 10).hint(140, 34).applyTo(createButton);
+ createButton.addSelectionListener(onCreate(dbc));
+ DataBindingUtils.bindButtonEnablementToValidationStatus(createButton, dbc);
+ }
+
+ private SelectionListener onBrowseSshKey() {
+ return new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+ FileDialog dialog = new FileDialog(shell);
+ dialog.setFilterPath(getSshKeysDirectory());
+ dialog.setFilterNames(new String[]{FILTERNAME_PUBLIC_SSH_KEY});
+ dialog.setFilterExtensions(new String[]{FILTEREXPRESSION_PUBLIC_SSH_KEY});
+ String sshKeyPath = dialog.open();
+ if (sshKeyPath != null){
+ model.setSshKey(dialog.getFileName());
+ };
+ }
+ };
+ }
+
+ private String getSshKeysDirectory() {
+ String userHome = System.getProperty("user.home");
+ File sshKeysDirectory = new File(userHome, DIRECTORY_SSH_KEYS);
+ return sshKeysDirectory.getAbsolutePath();
+ }
+
+ protected SelectionAdapter onCreate(final DataBindingContext dbc) {
+ return new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ try {
+ WizardUtils.runInWizard(
+ new Job("Creating new domain") {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ try {
+ model.createDomain();
+ } catch (OpenshiftException e) {
+ return new Status(IStatus.ERROR, OpenshiftUIActivator.PLUGIN_ID, NLS.bind(
+ "Could not create a new domain with the name \"{0}\"", model.getNamespace()), e);
+ }
+ return Status.OK_STATUS;
+ }
+ }, getWizard().getContainer(), dbc);
+ } catch (Exception ex) {
+ // ignore
+ }
+ };
+ };
+ }
+
+ protected SelectionAdapter onSignupLinkClicked() {
+ return new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ BrowserUtil.checkedCreateInternalBrowser(OPENSHIFT_EXPRESS_SIGNUP_URL, OPENSHIFT_EXPRESS_SIGNUP_URL,
+ OpenshiftUIActivator.PLUGIN_ID, OpenshiftUIActivator.getDefault().getLog());
+ getWizard().getContainer().getShell().close();
+ }
+ };
+ }
+
+ protected IObservableCollection toObservableCollection(ValidationStatusProvider... validationStatusProviders) {
+ WritableList validationProviders = new WritableList();
+ for (ValidationStatusProvider provider : validationStatusProviders) {
+ validationProviders.add(provider);
+ }
+ return validationProviders;
+ }
+
+ @Override
+ protected void onPageVisible(DataBindingContext dbc) {
+ try {
+ WizardUtils.runInWizard(
+ new Job("Loading domain name") {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ try {
+ model.loadDomain();
+ } catch(NotFoundOpenshiftException e) {
+ e.printStackTrace();
+ } catch (OpenshiftException e) {
+ return new Status(IStatus.ERROR, OpenshiftUIActivator.PLUGIN_ID,
+ "Could not get domain name", e);
+ }
+ return Status.OK_STATUS;
+ }
+ }, getWizard().getContainer(), dbc);
+ } catch (Exception ex) {
+ // ignore
+ }
+ }
+}
Property changes on: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/NewDomainWizardPage.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizard.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizard.java 2011-10-03 16:24:34 UTC (rev 35287)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizard.java 2011-10-03 16:52:15 UTC (rev 35288)
@@ -38,6 +38,7 @@
public void addPages() {
ServerAdapterWizardModel model = new ServerAdapterWizardModel();
addPage(new ServerWizardPage(this, model));
+ addPage(new NewDomainWizardPage(this, model));
addPage(new ApplicationWizardPage(this, model));
}
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizardModel.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizardModel.java 2011-10-03 16:24:34 UTC (rev 35287)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerAdapterWizardModel.java 2011-10-03 16:52:15 UTC (rev 35288)
@@ -12,33 +12,66 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.jboss.ide.eclipse.as.openshift.core.IDomain;
import org.jboss.ide.eclipse.as.openshift.core.IOpenshiftService;
+import org.jboss.ide.eclipse.as.openshift.core.ISSHPublicKey;
import org.jboss.ide.eclipse.as.openshift.core.IUser;
import org.jboss.ide.eclipse.as.openshift.core.OpenshiftException;
import org.jboss.ide.eclipse.as.openshift.core.User;
+import org.jboss.ide.eclipse.as.openshift.core.UserConfiguration;
import org.jboss.ide.eclipse.as.openshift.ui.internal.OpenshiftUIActivator;
import org.jboss.tools.common.ui.databinding.ObservableUIPojo;
+import org.jboss.tools.common.ui.preferencevalue.StringPreferenceValue;
/**
* @author André Dietisheim
*/
public class ServerAdapterWizardModel extends ObservableUIPojo {
+ private static final String RHLOGIN_PREFS_KEY = "org.jboss.ide.eclipse.as.openshift.ui.internal.wizard.ServerAdapterWizardModel_RHLOGIN";
+
public static final String PROPERTY_SERVER_URL = "serverUrl";
public static final String PROPERTY_RHLOGIN = "rhLogin";
public static final String PROPERTY_PASSWORD = "password";
- public static final String PROPERTY_CREDENTIALSVALIDITY = "credentialsValidity";
+ public static final String PROPERTY_CREDENTIALS_VALIDITY = "credentialsValidity";
+ public static final String PROPERTY_NAMESPACE = "namespace";
+ public static final String PROPERTY_SSHKEY = "sshKey";
private String serverUrl;
private String rhLogin;
private String password;
private IStatus credentialsValidity;
private IUser user;
+ private String namespace;
+ private StringPreferenceValue rhLoginPreferenceValue;
+ private IDomain domain;
+ private String sshKey;
public ServerAdapterWizardModel() {
this.serverUrl = IOpenshiftService.BASE_URL;
+ this.rhLoginPreferenceValue = new StringPreferenceValue(RHLOGIN_PREFS_KEY, OpenshiftUIActivator.PLUGIN_ID);
+ this.rhLogin = initRhLogin();
}
+ protected String initRhLogin() {
+ String rhLogin = null;
+ rhLogin = rhLoginPreferenceValue.get();
+ if (rhLogin == null) {
+ rhLogin = getUserConfiguration();
+ }
+ return rhLogin;
+ }
+
+ protected String getUserConfiguration() {
+ String configuredUsername = null;
+ try {
+ configuredUsername = new UserConfiguration().getRhlogin();
+ } catch (Exception e) {
+ // do nothing
+ }
+ return configuredUsername;
+ }
+
public String getServerUrl() {
return serverUrl;
}
@@ -52,6 +85,7 @@
}
public void setRhLogin(String rhLogin) {
+ rhLoginPreferenceValue.store(rhLogin);
firePropertyChange(PROPERTY_RHLOGIN, this.rhLogin, this.rhLogin = rhLogin);
}
@@ -64,7 +98,7 @@
}
private void setCredentialsStatus(IStatus status) {
- firePropertyChange(PROPERTY_CREDENTIALSVALIDITY, this.credentialsValidity,
+ firePropertyChange(PROPERTY_CREDENTIALS_VALIDITY, this.credentialsValidity,
this.credentialsValidity = status);
}
@@ -76,7 +110,7 @@
IStatus status = new Status(IStatus.ERROR, OpenshiftUIActivator.PLUGIN_ID, "Your credentails are not valid.");
try {
this.user = new User(getRhLogin(), getPassword());
- if(user.isValid()) {
+ if (user.isValid()) {
status = Status.OK_STATUS;
}
} catch (OpenshiftException e) {
@@ -88,4 +122,40 @@
public IUser getUser() {
return user;
}
+
+ public String getNamespace() {
+ return this.namespace;
+ }
+
+ public void createDomain() throws OpenshiftException {
+ this.domain = getUser().createDomain(namespace, loadSshKey());
+ }
+
+ public String getSshKey() {
+ return sshKey;
+ }
+
+ public void setSshKey(String sshKey) {
+ firePropertyChange(PROPERTY_SSHKEY, this.sshKey, this.sshKey = sshKey);
+ }
+
+ private ISSHPublicKey loadSshKey() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void renameDomain() throws OpenshiftException {
+ IDomain domain = getUser().getDomain();
+ domain.setNamespace(namespace);
+ }
+
+ public void setNamespace(String namespace) throws OpenshiftException {
+ firePropertyChange(PROPERTY_NAMESPACE, this.namespace, this.namespace = namespace);
+ }
+
+ public void loadDomain() throws OpenshiftException {
+ this.domain = getUser().getDomain();
+ setNamespace(domain.getNamespace());
+ }
+
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerWizardPage.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerWizardPage.java 2011-10-03 16:24:34 UTC (rev 35287)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.ui/src/org/jboss/ide/eclipse/as/openshift/ui/internal/wizard/ServerWizardPage.java 2011-10-03 16:52:15 UTC (rev 35288)
@@ -10,14 +10,10 @@
******************************************************************************/
package org.jboss.ide.eclipse.as.openshift.ui.internal.wizard;
-import org.eclipse.core.databinding.AggregateValidationStatus;
import org.eclipse.core.databinding.Binding;
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.ValidationStatusProvider;
import org.eclipse.core.databinding.beans.BeanProperties;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.list.WritableList;
import org.eclipse.core.databinding.observable.value.WritableValue;
import org.eclipse.core.databinding.validation.IValidator;
import org.eclipse.core.databinding.validation.ValidationStatus;
@@ -25,12 +21,9 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.databinding.fieldassist.ControlDecorationSupport;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -42,8 +35,7 @@
import org.jboss.ide.eclipse.as.openshift.ui.internal.OpenshiftUIActivator;
import org.jboss.tools.common.ui.BrowserUtil;
import org.jboss.tools.common.ui.WizardUtils;
-import org.jboss.tools.common.ui.databinding.MandatoryStringValidator;
-import org.jboss.tools.common.ui.databinding.Status2BooleanConverter;
+import org.jboss.tools.common.ui.databinding.DataBindingUtils;
/**
* @author André Dietisheim
@@ -55,7 +47,8 @@
private Button validateButton;
public ServerWizardPage(IWizard wizard, ServerAdapterWizardModel model) {
- super("Server connetion", "Please provide the credentails of your user account on Openshift Express", "Server Connection", wizard, model);
+ super("Server connetion", "Please provide the credentails of your user account on Openshift Express",
+ "Server Connection", wizard, model);
this.model = model;
}
@@ -91,7 +84,7 @@
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(rhLoginLabel);
Text rhLoginText = new Text(container, SWT.BORDER);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(2, 1).applyTo(rhLoginText);
- Binding rhLoginBining = bindMandatoryTextField(
+ Binding rhLoginBining = DataBindingUtils.bindMandatoryTextField(
rhLoginText, "Username", ServerAdapterWizardModel.PROPERTY_RHLOGIN, model, dbc);
Label passwordLabel = new Label(container, SWT.NONE);
@@ -99,7 +92,7 @@
GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(passwordLabel);
Text passwordText = new Text(container, SWT.BORDER | SWT.PASSWORD);
GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).span(2, 1).applyTo(passwordText);
- Binding passwordBinding = bindMandatoryTextField(
+ Binding passwordBinding = DataBindingUtils.bindMandatoryTextField(
passwordText, "Password", ServerAdapterWizardModel.PROPERTY_PASSWORD, model, dbc);
Label spacerLabel = new Label(container, SWT.None);
@@ -112,11 +105,14 @@
this.validateButton = new Button(container, SWT.NONE);
validateButton.setText("&Validate");
GridDataFactory.fillDefaults().align(SWT.RIGHT, SWT.CENTER).indent(0, 10).hint(100, 34).applyTo(validateButton);
- bindValidateButtonEnablement(validateButton, dbc, toObservableCollection(rhLoginBining, passwordBinding));
+ DataBindingUtils.bindButtonEnablementToValidationStatus(
+ validateButton,
+ dbc,
+ rhLoginBining, passwordBinding);
validateButton.addSelectionListener(onValidate(dbc));
dbc.bindValue(
new WritableValue(null, IStatus.class),
- BeanProperties.value(ServerAdapterWizardModel.PROPERTY_CREDENTIALSVALIDITY).observe(model),
+ BeanProperties.value(ServerAdapterWizardModel.PROPERTY_CREDENTIALS_VALIDITY).observe(model),
new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),
new UpdateValueStrategy().setAfterGetValidator(
new CredentialsStatusValidator()));
@@ -156,36 +152,6 @@
};
}
- private Binding bindMandatoryTextField(Text text, String fieldName, String modelProperty,
- ServerAdapterWizardModel model,
- DataBindingContext dbc) {
- Binding binding = dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(text),
- BeanProperties.value(modelProperty).observe(model),
- new UpdateValueStrategy().setAfterGetValidator(
- new MandatoryStringValidator(NLS.bind("You have to provide a value for the {0}.", fieldName))),
- null);
- ControlDecorationSupport.create(binding, SWT.LEFT | SWT.TOP);
- return binding;
- }
-
- private void bindValidateButtonEnablement(final Button testButton, DataBindingContext dbc,
- IObservableCollection validationStatusProviders) {
- dbc.bindValue(
- WidgetProperties.enabled().observe(testButton),
- new AggregateValidationStatus(validationStatusProviders, AggregateValidationStatus.MAX_SEVERITY),
- new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),
- new UpdateValueStrategy().setConverter(new Status2BooleanConverter(IStatus.ERROR)));
- }
-
- protected IObservableCollection toObservableCollection(ValidationStatusProvider... validationStatusProviders) {
- WritableList validationProviders = new WritableList();
- for (ValidationStatusProvider provider : validationStatusProviders) {
- validationProviders.add(provider);
- }
- return validationProviders;
- }
-
private static class CredentialsStatusValidator implements IValidator {
public IStatus validate(Object value) {
if (value instanceof IStatus) {
11 years, 8 months
JBoss Tools SVN: r35287 - trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-10-03 12:24:34 -0400 (Mon, 03 Oct 2011)
New Revision: 35287
Modified:
trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding/DataBindingUtils.java
Log:
[JBIDE-9805] moved DatabindingUtils to org.jboss.tools.common.ui
Modified: trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding/DataBindingUtils.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding/DataBindingUtils.java 2011-10-03 15:37:20 UTC (rev 35286)
+++ trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding/DataBindingUtils.java 2011-10-03 16:24:34 UTC (rev 35287)
@@ -14,10 +14,10 @@
import org.eclipse.core.databinding.Binding;
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.ValidationStatusProvider;
import org.eclipse.core.databinding.beans.BeanProperties;
import org.eclipse.core.databinding.observable.IObservableCollection;
import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.databinding.fieldassist.ControlDecorationSupport;
import org.eclipse.jface.databinding.swt.WidgetProperties;
@@ -45,7 +45,8 @@
* the data binding context to use when binding
*/
public static void bindButtonEnablementToValidationStatus(final Button button,
- IObservableCollection validationStatusProviders, DataBindingContext dbc) {
+ DataBindingContext dbc, Binding... bindings) {
+ IObservableCollection validationStatusProviders = toObservableCollection(bindings);
dbc.bindValue(
WidgetProperties.enabled().observe(button),
createAggregateValidationStatus(validationStatusProviders, dbc),
@@ -77,16 +78,16 @@
}
/**
- * Returns an observable collection for a given array of observable values.
+ * Returns an observable collection for a given array of validation status providers.
*
* @param observableValue
* the array of observable values
* @return an observable collection
*/
- public static IObservableCollection toObservableCollection(IObservableValue... observableValues) {
+ private static IObservableCollection toObservableCollection(ValidationStatusProvider... validationStatusProviders) {
WritableList observableCollection = new WritableList();
- for (IObservableValue observableValue : observableValues) {
- observableCollection.add(observableValue);
+ for (ValidationStatusProvider validationStatusProvider : validationStatusProviders) {
+ observableCollection.add(validationStatusProvider);
}
return observableCollection;
}
11 years, 8 months
JBoss Tools SVN: r35286 - trunk/common/plugins/org.jboss.tools.common.ui/META-INF.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-10-03 11:37:20 -0400 (Mon, 03 Oct 2011)
New Revision: 35286
Modified:
trunk/common/plugins/org.jboss.tools.common.ui/META-INF/MANIFEST.MF
Log:
[JBIDE-9805] moved DatabindingUtils to org.jboss.tools.common.ui
Modified: trunk/common/plugins/org.jboss.tools.common.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.ui/META-INF/MANIFEST.MF 2011-10-03 15:37:04 UTC (rev 35285)
+++ trunk/common/plugins/org.jboss.tools.common.ui/META-INF/MANIFEST.MF 2011-10-03 15:37:20 UTC (rev 35286)
@@ -16,7 +16,9 @@
org.eclipse.ui.workbench.texteditor;bundle-version="3.7.0",
org.eclipse.jface.text;bundle-version="3.7.0",
org.eclipse.core.databinding;bundle-version="1.4.0",
- org.eclipse.jface.databinding;bundle-version="1.5.0"
+ org.eclipse.jface.databinding;bundle-version="1.5.0",
+ org.eclipse.core.databinding.property;bundle-version="1.4.0",
+ org.eclipse.core.databinding.beans;bundle-version="1.2.100"
Export-Package: org.jboss.tools.common.ui,
org.jboss.tools.common.ui.databinding,
org.jboss.tools.common.ui.preferences,
11 years, 8 months
JBoss Tools SVN: r35285 - in trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui: databinding and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-10-03 11:37:04 -0400 (Mon, 03 Oct 2011)
New Revision: 35285
Added:
trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding/DataBindingUtils.java
Modified:
trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/CommonUIMessages.java
trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/messages.properties
Log:
[JBIDE-9805] moved DatabindingUtils to org.jboss.tools.common.ui
Modified: trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/CommonUIMessages.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/CommonUIMessages.java 2011-10-03 15:04:57 UTC (rev 35284)
+++ trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/CommonUIMessages.java 2011-10-03 15:37:04 UTC (rev 35285)
@@ -71,6 +71,8 @@
public static String BROWSER_COULD_NOT_DISPLAY_MALFORMED_URL;
public static String URLSTRINGVALIDATOR_NOT_A_VALID_URL;
+
+ public static String MANDATORYSTRING_VALIDATOR_MUST_PROVIDE_VALUE;
static {
NLS.initializeMessages(BUNDLE_NAME, CommonUIMessages.class);
Added: trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding/DataBindingUtils.java
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding/DataBindingUtils.java (rev 0)
+++ trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding/DataBindingUtils.java 2011-10-03 15:37:04 UTC (rev 35285)
@@ -0,0 +1,124 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.common.ui.databinding;
+
+import org.eclipse.core.databinding.AggregateValidationStatus;
+import org.eclipse.core.databinding.Binding;
+import org.eclipse.core.databinding.DataBindingContext;
+import org.eclipse.core.databinding.UpdateValueStrategy;
+import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.observable.IObservableCollection;
+import org.eclipse.core.databinding.observable.list.WritableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.databinding.fieldassist.ControlDecorationSupport;
+import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Text;
+import org.jboss.tools.common.ui.CommonUIMessages;
+
+/**
+ * @author André Dietisheim
+ */
+public class DataBindingUtils {
+
+ /**
+ * Binds the enabled status of the given button to the validity status of
+ * the given providers. If those are not provided the validation status of
+ * the whole context is used.
+ *
+ * @param button
+ * the button whose enablement is bound
+ * @param validationStatusProviders
+ * the providers that shall toggle the button enablement
+ * @param dbc
+ * the data binding context to use when binding
+ */
+ public static void bindButtonEnablementToValidationStatus(final Button button,
+ IObservableCollection validationStatusProviders, DataBindingContext dbc) {
+ dbc.bindValue(
+ WidgetProperties.enabled().observe(button),
+ createAggregateValidationStatus(validationStatusProviders, dbc),
+ new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),
+ new UpdateValueStrategy().setConverter(new Status2BooleanConverter(IStatus.ERROR)));
+ }
+
+ /**
+ * Creates an aggregated validation status for the given providers and
+ * databinding context. If no providers are given the whole context is used
+ * a provider.
+ *
+ * @param validationStatusProviders
+ * to use
+ * @param dbc
+ * the data binding context to use
+ * @return
+ */
+ protected static AggregateValidationStatus createAggregateValidationStatus(
+ IObservableCollection validationStatusProviders, DataBindingContext dbc) {
+ AggregateValidationStatus aggregatedValidationStatus;
+ if (validationStatusProviders == null) {
+ aggregatedValidationStatus = new AggregateValidationStatus(dbc, AggregateValidationStatus.MAX_SEVERITY);
+ } else {
+ aggregatedValidationStatus = new AggregateValidationStatus(
+ validationStatusProviders, AggregateValidationStatus.MAX_SEVERITY);
+ }
+ return aggregatedValidationStatus;
+ }
+
+ /**
+ * Returns an observable collection for a given array of observable values.
+ *
+ * @param observableValue
+ * the array of observable values
+ * @return an observable collection
+ */
+ public static IObservableCollection toObservableCollection(IObservableValue... observableValues) {
+ WritableList observableCollection = new WritableList();
+ for (IObservableValue observableValue : observableValues) {
+ observableCollection.add(observableValue);
+ }
+ return observableCollection;
+ }
+
+ /**
+ * Binds the given text field with the given name to the given model
+ * property. A validator, that wont validate if there's no content in the
+ * text field is attached.
+ *
+ * @param text
+ * the text field to bind
+ * @param fieldName
+ * the name of the text field
+ * @param modelProperty
+ * the property of the model to bind to
+ * @param model
+ * the model to bind to
+ * @param dbc
+ * the data binding context to use
+ * @return
+ */
+ public static Binding bindMandatoryTextField(Text text, String fieldName, String modelProperty,
+ Object model, DataBindingContext dbc) {
+ Binding binding = dbc.bindValue(
+ WidgetProperties.text(SWT.Modify).observe(text),
+ BeanProperties.value(modelProperty).observe(model),
+ new UpdateValueStrategy().setAfterGetValidator(
+ new MandatoryStringValidator(NLS.bind(
+ CommonUIMessages.MANDATORYSTRING_VALIDATOR_MUST_PROVIDE_VALUE, fieldName))),
+ null);
+ ControlDecorationSupport.create(binding, SWT.LEFT | SWT.TOP);
+ return binding;
+ }
+
+}
Property changes on: trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/databinding/DataBindingUtils.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/messages.properties
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/messages.properties 2011-10-03 15:04:57 UTC (rev 35284)
+++ trunk/common/plugins/org.jboss.tools.common.ui/src/org/jboss/tools/common/ui/messages.properties 2011-10-03 15:37:04 UTC (rev 35285)
@@ -30,4 +30,5 @@
BROWSER_COULD_NOT_OPEN_BROWSER=Could not open browser for url \"{0}\".
BROWSER_COULD_NOT_DISPLAY_MALFORMED_URL=Could not display malformed url \"{0}\".
-URLSTRINGVALIDATOR_NOT_A_VALID_URL=\"{0}\" is not a valid url.
\ No newline at end of file
+URLSTRINGVALIDATOR_NOT_A_VALID_URL=\"{0}\" is not a valid url.
+MANDATORYSTRING_VALIDATOR_MUST_PROVIDE_VALUE=You have to provide a value for the {0}.
\ No newline at end of file
11 years, 8 months
JBoss Tools SVN: r35284 - trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-10-03 11:04:57 -0400 (Mon, 03 Oct 2011)
New Revision: 35284
Modified:
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserInfoIntegrationTest.java
Log:
[JBIDE-9820] added tests. implementation is already throwing distinct exceptions
Modified: trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserInfoIntegrationTest.java
===================================================================
--- trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserInfoIntegrationTest.java 2011-10-03 15:00:13 UTC (rev 35283)
+++ trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserInfoIntegrationTest.java 2011-10-03 15:04:57 UTC (rev 35284)
@@ -23,11 +23,11 @@
import org.jboss.ide.eclipse.as.openshift.core.OpenshiftException;
import org.jboss.ide.eclipse.as.openshift.core.OpenshiftService;
import org.jboss.ide.eclipse.as.openshift.core.internal.ApplicationInfo;
+import org.jboss.ide.eclipse.as.openshift.core.internal.InternalUser;
import org.jboss.ide.eclipse.as.openshift.core.internal.UserInfo;
import org.jboss.ide.eclipse.as.openshift.test.internal.core.fakes.TestUser;
import org.jboss.ide.eclipse.as.openshift.test.internal.core.utils.ApplicationInfoAsserts;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
/**
@@ -41,14 +41,12 @@
private OpenshiftService openshiftService;
private TestUser user;
- @Ignore
@Before
public void setUp() {
this.openshiftService = new OpenshiftService();
this.user = new TestUser();
}
- @Ignore
@Test
public void canGetUserInfo() throws Exception {
UserInfo userInfo = openshiftService.getUserInfo(user);
@@ -94,7 +92,6 @@
}
}
- @Ignore
@Test
public void canUseReturnedSSHKeyToChangeDomain() throws Exception {
UserInfo userInfo = openshiftService.getUserInfo(user);
11 years, 8 months
JBoss Tools SVN: r35283 - in trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core: fakes and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-10-03 11:00:13 -0400 (Mon, 03 Oct 2011)
New Revision: 35283
Modified:
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserInfoIntegrationTest.java
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/fakes/TestUser.java
Log:
[JBIDE-9820] added tests. implementation is already throwing distinct exceptions
Modified: trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserInfoIntegrationTest.java
===================================================================
--- trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserInfoIntegrationTest.java 2011-10-03 14:07:20 UTC (rev 35282)
+++ trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserInfoIntegrationTest.java 2011-10-03 15:00:13 UTC (rev 35283)
@@ -18,6 +18,8 @@
import org.jboss.ide.eclipse.as.openshift.core.ICartridge;
import org.jboss.ide.eclipse.as.openshift.core.IOpenshiftService;
import org.jboss.ide.eclipse.as.openshift.core.ISSHPublicKey;
+import org.jboss.ide.eclipse.as.openshift.core.InvalidCredentialsOpenshiftException;
+import org.jboss.ide.eclipse.as.openshift.core.NotFoundOpenshiftException;
import org.jboss.ide.eclipse.as.openshift.core.OpenshiftException;
import org.jboss.ide.eclipse.as.openshift.core.OpenshiftService;
import org.jboss.ide.eclipse.as.openshift.core.internal.ApplicationInfo;
@@ -25,6 +27,7 @@
import org.jboss.ide.eclipse.as.openshift.test.internal.core.fakes.TestUser;
import org.jboss.ide.eclipse.as.openshift.test.internal.core.utils.ApplicationInfoAsserts;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
/**
@@ -32,15 +35,20 @@
*/
public class UserInfoIntegrationTest {
+ private static final String PASSWORD_USER_WITHOUT_DOMAIN = "1q2w3e";
+ private static final String RHLOGIN_USER_WITHOUT_DOMAIN = "toolsjboss.no.domain(a)gmail.com";
+
private OpenshiftService openshiftService;
private TestUser user;
+ @Ignore
@Before
public void setUp() {
this.openshiftService = new OpenshiftService();
this.user = new TestUser();
}
+ @Ignore
@Test
public void canGetUserInfo() throws Exception {
UserInfo userInfo = openshiftService.getUserInfo(user);
@@ -49,6 +57,22 @@
assertEquals(user.getRhlogin(), userInfo.getRhLogin());
}
+ @Test(expected = InvalidCredentialsOpenshiftException.class)
+ public void getUserInfoForInexistantUserThrowsException() throws Exception {
+ TestUser inexistantUser = new TestUser("inexistantUsername", "bogusPassword");
+ openshiftService.getUserInfo(inexistantUser);
+ }
+
+ /**
+ * {@link OpenshiftService#getUserInfo(InternalUser)} for a user without
+ * domain throws {@link NotFoundOpenshiftException}
+ */
+ @Test(expected = NotFoundOpenshiftException.class)
+ public void canGetUserInfoForUserWithoutDomain() throws Exception {
+ TestUser inexistantUser = new TestUser(RHLOGIN_USER_WITHOUT_DOMAIN, PASSWORD_USER_WITHOUT_DOMAIN);
+ openshiftService.getUserInfo(inexistantUser);
+ }
+
@Test
public void userInfoContainsOneMoreApplicationAfterCreatingNewApplication() throws Exception {
UserInfo userInfo = openshiftService.getUserInfo(user);
@@ -70,6 +94,7 @@
}
}
+ @Ignore
@Test
public void canUseReturnedSSHKeyToChangeDomain() throws Exception {
UserInfo userInfo = openshiftService.getUserInfo(user);
@@ -78,7 +103,7 @@
ISSHPublicKey sshKey = userInfo.getSshPublicKey();
openshiftService.changeDomain(createRandomName(), sshKey, user);
}
-
+
private String createRandomName() {
return String.valueOf(System.currentTimeMillis());
}
Modified: trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/fakes/TestUser.java
===================================================================
--- trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/fakes/TestUser.java 2011-10-03 14:07:20 UTC (rev 35282)
+++ trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/fakes/TestUser.java 2011-10-03 15:00:13 UTC (rev 35283)
@@ -32,6 +32,10 @@
super(RHLOGIN, password);
}
+ public TestUser(String rhlogin, String password) {
+ super(rhlogin, password);
+ }
+
public TestUser(String rhlogin, String password, String url) {
super(rhlogin, password, url);
}
11 years, 8 months
JBoss Tools SVN: r35282 - in trunk/as: plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal and 3 other directories.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-10-03 10:07:20 -0400 (Mon, 03 Oct 2011)
New Revision: 35282
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/UserConfiguration.java
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserConfigurationTest.java
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/fakes/UserConfigurationFake.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/InternalUser.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/utils/StreamUtils.java
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/OpenshiftTestSuite.java
Log:
[JBIDE-9819] implemented UserConfiguration & tests
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/UserConfiguration.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/UserConfiguration.java (rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/UserConfiguration.java 2011-10-03 14:07:20 UTC (rev 35282)
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.ide.eclipse.as.openshift.core;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Properties;
+
+import org.jboss.ide.eclipse.as.openshift.core.internal.utils.StreamUtils;
+
+/**
+ * @author André Dietisheim
+ */
+public class UserConfiguration {
+
+ private static final String CONFIGURATION_FOLDER = ".openshift";
+ private static final String CONFIGURATION_FILE = "express.conf";
+ private static final String PROPERTY_USERHOME = "user.home";
+ protected static final String KEY_RHLOGIN = "default_rhlogin";
+
+ private Properties properties;
+ protected File file;
+
+ public UserConfiguration() throws OpenshiftException, IOException {
+ this.file = getUserConfigurationFile();
+ this.properties = getUserProperties(file);
+ }
+
+ protected File getUserConfigurationFile() throws OpenshiftException, IOException {
+ String userHome = System.getProperty(PROPERTY_USERHOME);
+ if (userHome == null) {
+ throw new OpenshiftException("Could not read user configuration: user home directory not found");
+ }
+ return new File(CONFIGURATION_FILE, userHome + File.separatorChar + CONFIGURATION_FOLDER);
+ }
+
+ protected Properties getUserProperties(File userConfigurationFile) throws FileNotFoundException, IOException {
+ FileReader reader = null;
+ try {
+ Properties userConfigurationProperties = new Properties();
+ reader = new FileReader(userConfigurationFile);
+ userConfigurationProperties.load(reader);
+ return userConfigurationProperties;
+ } finally {
+ StreamUtils.close(reader);
+ }
+ }
+
+ public String getRhlogin() {
+ return properties.getProperty(KEY_RHLOGIN);
+ }
+
+ public void setRhlogin(String rhlogin) {
+ properties.put(KEY_RHLOGIN, rhlogin);
+ }
+
+ public void store() throws IOException {
+ Writer writer = null;
+ try {
+ writer = new FileWriter(file);
+ properties.store(writer, "");
+ } finally {
+ StreamUtils.close(writer);
+ }
+ }
+}
Property changes on: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/UserConfiguration.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/InternalUser.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/InternalUser.java 2011-10-03 13:42:27 UTC (rev 35281)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/InternalUser.java 2011-10-03 14:07:20 UTC (rev 35282)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.ide.eclipse.as.openshift.core.internal;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -24,6 +25,7 @@
import org.jboss.ide.eclipse.as.openshift.core.InvalidCredentialsOpenshiftException;
import org.jboss.ide.eclipse.as.openshift.core.OpenshiftException;
import org.jboss.ide.eclipse.as.openshift.core.OpenshiftService;
+import org.jboss.ide.eclipse.as.openshift.core.UserConfiguration;
/**
* @author André Dietisheim
@@ -40,6 +42,14 @@
private IOpenshiftService service;
+ public InternalUser(String password) throws OpenshiftException, IOException {
+ this(new UserConfiguration(), password);
+ }
+
+ public InternalUser(UserConfiguration configuration, String password) {
+ this(configuration.getRhlogin(), password, (ISSHPublicKey) null, new OpenshiftService());
+ }
+
public InternalUser(String rhlogin, String password) {
this(rhlogin, password, (ISSHPublicKey) null, new OpenshiftService());
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/utils/StreamUtils.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/utils/StreamUtils.java 2011-10-03 13:42:27 UTC (rev 35281)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/utils/StreamUtils.java 2011-10-03 14:07:20 UTC (rev 35282)
@@ -2,12 +2,14 @@
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
+import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
import java.io.StringWriter;
+import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
@@ -79,4 +81,16 @@
}
}
+ public static void close(Reader reader) throws IOException {
+ if (reader != null) {
+ reader.close();
+ }
+ }
+
+ public static void close(Writer writer) throws IOException {
+ if (writer != null) {
+ writer.close();
+ }
+ }
+
}
Modified: trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/OpenshiftTestSuite.java
===================================================================
--- trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/OpenshiftTestSuite.java 2011-10-03 13:42:27 UTC (rev 35281)
+++ trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/OpenshiftTestSuite.java 2011-10-03 14:07:20 UTC (rev 35282)
@@ -16,6 +16,7 @@
@RunWith(Suite.class)
@Suite.SuiteClasses({
+ UserConfigurationTest.class,
ApplicationTest.class,
ApplicationLogReaderTest.class,
ListCartridgesTest.class,
Added: trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserConfigurationTest.java
===================================================================
--- trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserConfigurationTest.java (rev 0)
+++ trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserConfigurationTest.java 2011-10-03 14:07:20 UTC (rev 35282)
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.ide.eclipse.as.openshift.test.internal.core;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.jboss.ide.eclipse.as.openshift.core.OpenshiftException;
+import org.jboss.ide.eclipse.as.openshift.core.internal.utils.StreamUtils;
+import org.jboss.ide.eclipse.as.openshift.test.internal.core.fakes.UserConfigurationFake;
+import org.junit.Test;
+
+/**
+ * @author André Dietisheim
+ */
+public class UserConfigurationTest {
+
+ private static final String USERNAME_REGEX = "[^=]+=(.+)";
+ private static final String USERNAME = "dummyUser";
+ private static final String ANOTHER_USERNAME = "anotherUser";
+
+ @Test
+ public void canReadUsername() throws OpenshiftException, IOException {
+ UserConfigurationFake userConfiguration = new UserConfigurationFake() {
+
+ @Override
+ protected void initFile(Writer writer) throws IOException {
+ writer.append(KEY_RHLOGIN).append('=').append(USERNAME).append('\n');
+ }
+
+ };
+ assertEquals(USERNAME, userConfiguration.getRhlogin());
+ }
+
+ @Test
+ public void canStoreUsername() throws OpenshiftException, IOException {
+ UserConfigurationFake userConfiguration = new UserConfigurationFake() {
+
+ @Override
+ protected void initFile(Writer writer) throws IOException {
+ writer.append(KEY_RHLOGIN).append('=').append(USERNAME).append('\n');
+ }
+
+ };
+ userConfiguration.setRhlogin(ANOTHER_USERNAME);
+ userConfiguration.store();
+ final File userConfigurationFile = userConfiguration.getFile();
+ assertNotNull(userConfigurationFile);
+ String fileContent = StreamUtils.readToString(new FileReader(userConfigurationFile));
+ Pattern pattern = Pattern.compile(USERNAME_REGEX);
+ Matcher matcher = pattern.matcher(fileContent);
+ assertTrue(matcher.matches());
+ assertEquals(1, matcher.groupCount());
+ assertEquals(ANOTHER_USERNAME, matcher.group(1));
+ }
+
+ @Test
+ public void canStoreAndReadUsername() throws OpenshiftException, IOException {
+ UserConfigurationFake userConfiguration = new UserConfigurationFake() {
+
+ @Override
+ protected void initFile(Writer writer) throws IOException {
+ writer.append(KEY_RHLOGIN).append('=').append(USERNAME).append('\n');
+ }
+
+ };
+ userConfiguration.setRhlogin(ANOTHER_USERNAME);
+ userConfiguration.store();
+ final File userConfigurationFile = userConfiguration.getFile();
+ assertNotNull(userConfigurationFile);
+ UserConfigurationFake userConfiguration2 = new UserConfigurationFake() {
+
+ @Override
+ protected File getUserConfigurationFile() throws OpenshiftException, IOException {
+ return userConfigurationFile;
+ }
+ };
+ assertEquals(ANOTHER_USERNAME, userConfiguration2.getRhlogin());
+ }
+}
Property changes on: trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserConfigurationTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/fakes/UserConfigurationFake.java
===================================================================
--- trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/fakes/UserConfigurationFake.java (rev 0)
+++ trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/fakes/UserConfigurationFake.java 2011-10-03 14:07:20 UTC (rev 35282)
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.ide.eclipse.as.openshift.test.internal.core.fakes;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+
+import org.jboss.ide.eclipse.as.openshift.core.OpenshiftException;
+import org.jboss.ide.eclipse.as.openshift.core.UserConfiguration;
+import org.jboss.ide.eclipse.as.openshift.core.internal.utils.StreamUtils;
+
+/**
+ * @author André Dietisheim
+ */
+public class UserConfigurationFake extends UserConfiguration {
+
+
+ public UserConfigurationFake() throws OpenshiftException, IOException {
+ super();
+ }
+
+ @Override
+ protected File getUserConfigurationFile() throws OpenshiftException, IOException {
+ Writer writer = null;
+ try {
+ File file = File.createTempFile(createRandomString(), null);
+ writer = new FileWriter(file);
+ initFile(writer);
+ return file;
+ } finally {
+ StreamUtils.close(writer);
+ }
+ }
+
+ protected void initFile(Writer writer) throws IOException {
+ }
+
+ public File getFile() {
+ return file;
+ }
+
+ private String createRandomString() {
+ return String.valueOf(System.currentTimeMillis());
+ }
+
+}
Property changes on: trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/fakes/UserConfigurationFake.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
11 years, 8 months