[jbosstools-commits] JBoss Tools SVN: r30357 - in trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui: src/org/jboss/tools/deltacloud/ui and 2 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Wed Apr 6 05:55:35 EDT 2011


Author: adietish
Date: 2011-04-06 05:55:34 -0400 (Wed, 06 Apr 2011)
New Revision: 30357

Removed:
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/preferences/IPreferenceKeys.java
Modified:
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/META-INF/MANIFEST.MF
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/IDeltaCloudPreferenceConstants.java
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnection.java
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnectionPage.java
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnectionPageModel.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/NewCloudConnectionWizard.java
Log:
[JBIDE-8599] storing & restoring last used value

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/META-INF/MANIFEST.MF	2011-04-06 09:54:26 UTC (rev 30356)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/META-INF/MANIFEST.MF	2011-04-06 09:55:34 UTC (rev 30357)
@@ -29,5 +29,4 @@
 Export-Package: org.jboss.tools.deltacloud.ui,
  org.jboss.tools.deltacloud.ui.preferences,
  org.jboss.tools.deltacloud.ui.wizard,
- org.jboss.tools.internal.deltacloud.ui.preferences;x-friends:="org.jboss.tools.deltacloud.test",
  org.jboss.tools.internal.deltacloud.ui.utils

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/IDeltaCloudPreferenceConstants.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/IDeltaCloudPreferenceConstants.java	2011-04-06 09:54:26 UTC (rev 30356)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/IDeltaCloudPreferenceConstants.java	2011-04-06 09:55:34 UTC (rev 30357)
@@ -18,6 +18,10 @@
 	public static final String LAST_EC2_KEYNAME = "last_ec2_keyname"; //$NON-NLS-1$
 	public static final String DEFAULT_KEY_DIR = "default_key_directory"; //$NON-NLS-1$
 
+	public static final String LAST_NAME = "org.jboss.tools.internal.deltacloud.ui.wizards.LAST_NAME";
+	public static final String LAST_URL = "org.jboss.tools.internal.deltacloud.ui.wizards.LAST_CREATED_URL";
+	public static final String LAST_USERNAME = "org.jboss.tools.internal.deltacloud.ui.wizards.LAST_USERNAME";
+
 	public static final String CLOUD_NAME_PROPOSAL_KEY = "cloud_name";//$NON-NLS-1$
 	public static final String CLOUD_USERNAME_PROPOSAL_KEY = "cloud_username";//$NON-NLS-1$
 	public static final String CLOUD_URL_PROPOSAL_KEY = "cloud_url";//$NON-NLS-1$

Deleted: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/preferences/IPreferenceKeys.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/preferences/IPreferenceKeys.java	2011-04-06 09:54:26 UTC (rev 30356)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/preferences/IPreferenceKeys.java	2011-04-06 09:55:34 UTC (rev 30357)
@@ -1,17 +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.preferences;
-
-public class IPreferenceKeys {
-
-	public static final String LAST_URL = "org.jboss.tools.internal.deltacloud.ui.wizards.LAST_CREATED_URL";
-	
-}

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnection.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnection.java	2011-04-06 09:54:26 UTC (rev 30356)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnection.java	2011-04-06 09:55:34 UTC (rev 30357)
@@ -10,11 +10,15 @@
  ******************************************************************************/
 package org.jboss.tools.internal.deltacloud.ui.wizards;
 
+import org.jboss.tools.deltacloud.core.DeltaCloud;
+
 /**
  * @author Jeff Johnston
+ * @author André Dietisheim
  */
 public interface CloudConnection {
 	
 	public boolean performTest();
+	public DeltaCloud getDeltaCloud();
 
 }

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnectionPage.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnectionPage.java	2011-04-06 09:54:26 UTC (rev 30356)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnectionPage.java	2011-04-06 09:55:34 UTC (rev 30357)
@@ -67,7 +67,6 @@
 import org.jboss.tools.internal.deltacloud.ui.common.databinding.validator.CompositeValidator;
 import org.jboss.tools.internal.deltacloud.ui.common.databinding.validator.MandatoryStringValidator;
 import org.jboss.tools.internal.deltacloud.ui.common.swt.JFaceUtils;
-import org.jboss.tools.internal.deltacloud.ui.preferences.IPreferenceKeys;
 import org.jboss.tools.internal.deltacloud.ui.utils.ControlDecorationAdapter;
 import org.jboss.tools.internal.deltacloud.ui.utils.DataBindingUtils;
 import org.jboss.tools.internal.deltacloud.ui.utils.UIUtils;
@@ -237,16 +236,23 @@
 		@Override
 		public IStatus validate(Object value) {
 			String connectionName = (String) value;
-			/*
-			 * keeping the same name when editing must be valid
-			 */
+
 			try {
-				if (!connectionName.equals(connectionModel.getInitialName())
-						/* all new names must be unique */
-						&& DeltaCloudManager.getDefault().findCloud(connectionName) != null) {
-					return ValidationStatus
-							.error(WizardMessages.getString(NAME_ALREADY_IN_USE));
+				/* DeltaCloud names must be unique, but
+				 * keeping the same name when editing must be valid
+				 */
+				DeltaCloud deltaCloud = DeltaCloudManager.getDefault().findCloud(connectionName);
+				if (cloudConnection.getDeltaCloud() == null) {
+					if (deltaCloud == null) {
+						return ValidationStatus.ok();
+					}
+				} else {
+					if (cloudConnection.getDeltaCloud().equals(deltaCloud)) {
+						return ValidationStatus.ok();
+					}
 				}
+				return ValidationStatus
+						.error(WizardMessages.getString(NAME_ALREADY_IN_USE));
 			} catch (DeltaCloudException e) {
 				// do nothing
 			}
@@ -276,7 +282,11 @@
 		setDescription(WizardMessages.getString(DESCRIPTION));
 		setTitle(WizardMessages.getString(TITLE));
 		setImageDescriptor(SWTImagesFactory.DESC_DELTA_LARGE);
-		this.connectionModel = new CloudConnectionPageModel();
+		this.connectionModel = new CloudConnectionPageModel(
+										new StringPreferenceValue(IDeltaCloudPreferenceConstants.LAST_NAME, Activator.PLUGIN_ID).get(null),
+										new StringPreferenceValue(IDeltaCloudPreferenceConstants.LAST_URL, Activator.PLUGIN_ID).get(null),
+										new StringPreferenceValue(IDeltaCloudPreferenceConstants.LAST_USERNAME, Activator.PLUGIN_ID).get(null), 
+										null);
 		this.cloudConnection = cloudConnection;
 	}
 
@@ -350,7 +360,7 @@
 
 		// set url from preferences
 		String url =
-				new StringPreferenceValue(IPreferenceKeys.LAST_URL, Activator.PLUGIN_ID).get(urlText.getText());
+				new StringPreferenceValue(IDeltaCloudPreferenceConstants.LAST_URL, Activator.PLUGIN_ID).get(urlText.getText());
 		urlText.setText(url);
 
 		// username

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnectionPageModel.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnectionPageModel.java	2011-04-06 09:54:26 UTC (rev 30356)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnectionPageModel.java	2011-04-06 09:55:34 UTC (rev 30357)
@@ -10,7 +10,7 @@
  ******************************************************************************/
 package org.jboss.tools.internal.deltacloud.ui.wizards;
 
-import java.net.MalformedURLException;
+import java.net.URI;
 import java.text.MessageFormat;
 
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -47,32 +47,39 @@
 	private DeltaCloudDriver driver;
 	private String initialName;
 
-	public CloudConnectionPageModel() {
-		this("", "", "", "", DeltaCloudDriver.UNKNOWN);
-	}
-
-	public CloudConnectionPageModel(String name, String url, String username, String password)
-			throws MalformedURLException {
+	public CloudConnectionPageModel(String name, String url, String username, String password) {
 		this(name, url, username, password, DeltaCloudDriver.UNKNOWN);
 	}
 
 	public CloudConnectionPageModel(String name, String url, String username, String password, DeltaCloudDriver driver) {
 		this.name = name;
 		this.initialName = name;
-		this.url = prependHttp(url);
+		setUrl(prependHttp(url));
 		this.username = username;
 		this.password = password;
-		// this.driver = driver;
 		setDriverByUrl(url);
 	}
 
 	private String prependHttp(String url) {
-		if (url == null || url.length() == 0) {
+		if (!startsWithScheme(url)) {
 			return HTTP_PREFIX + url;
 		} else {
-		return url; 
+			return url;
 		}
 	}
+		
+	private boolean startsWithScheme(String url) {
+		if (url == null || url.length() == 0) {
+			return false;
+		} else {
+			try {
+				String scheme = URI.create(url).getScheme();
+				return scheme != null && scheme.length() > 0;
+			} catch (IllegalArgumentException e ) {
+				return false;
+			}
+		}
+	}
 
 	public String getUsername() {
 		return username;

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	2011-04-06 09:54:26 UTC (rev 30356)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/EditCloudConnectionWizard.java	2011-04-06 09:55:34 UTC (rev 30357)
@@ -19,6 +19,9 @@
 import org.jboss.tools.deltacloud.core.DeltaCloud;
 import org.jboss.tools.deltacloud.core.DeltaCloudDriver;
 import org.jboss.tools.deltacloud.core.job.AbstractCloudJob;
+import org.jboss.tools.deltacloud.ui.Activator;
+import org.jboss.tools.deltacloud.ui.IDeltaCloudPreferenceConstants;
+import org.jboss.tools.deltacloud.ui.preferences.StringPreferenceValue;
 import org.jboss.tools.internal.deltacloud.ui.utils.WizardUtils;
 
 /**
@@ -41,18 +44,24 @@
 	@Override
 	public boolean performFinish() {
 		String name = mainPage.getConnectionName();
+		new StringPreferenceValue(IDeltaCloudPreferenceConstants.LAST_NAME, Activator.PLUGIN_ID)
+				.store(name);
 		String url = mainPage.getUrl();
+		new StringPreferenceValue(IDeltaCloudPreferenceConstants.LAST_URL, Activator.PLUGIN_ID)
+				.store(url);
 		String username = mainPage.getUsername();
+		new StringPreferenceValue(IDeltaCloudPreferenceConstants.LAST_USERNAME, Activator.PLUGIN_ID)
+				.store(username);
 		String password = mainPage.getPassword();
 		DeltaCloudDriver driver = mainPage.getDriver();
 		return editCloud(initialCloud, name, url, username, password, driver);
 	}
 
-
 	private boolean editCloud(final DeltaCloud cloud, final String name, final String url, final String username,
 			final String password, final DeltaCloudDriver driver) {
 		try {
-			Job job = new AbstractCloudJob(WizardMessages.getFormattedString("EditCloudConnection.message", cloud.getName()), cloud) {
+			Job job = new AbstractCloudJob(WizardMessages.getFormattedString("EditCloudConnection.message",
+					cloud.getName()), cloud) {
 
 				@Override
 				protected IStatus doRun(IProgressMonitor monitor) throws Exception {

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewCloudConnectionWizard.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewCloudConnectionWizard.java	2011-04-06 09:54:26 UTC (rev 30356)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewCloudConnectionWizard.java	2011-04-06 09:55:34 UTC (rev 30357)
@@ -25,8 +25,8 @@
 import org.jboss.tools.deltacloud.core.DeltaCloudManager;
 import org.jboss.tools.deltacloud.ui.Activator;
 import org.jboss.tools.deltacloud.ui.ErrorUtils;
+import org.jboss.tools.deltacloud.ui.IDeltaCloudPreferenceConstants;
 import org.jboss.tools.deltacloud.ui.preferences.StringPreferenceValue;
-import org.jboss.tools.internal.deltacloud.ui.preferences.IPreferenceKeys;
 import org.jboss.tools.internal.deltacloud.ui.utils.WizardUtils;
 
 /**
@@ -96,7 +96,7 @@
 			return newCloud.testCredentials();
 		} catch (DeltaCloudException e) {
 			ErrorUtils.handleErrorAsync(WizardMessages.getString("CloudConnectionAuthError.title"),
-							WizardMessages.getFormattedString("CloudConnectionAuthError.message", url), e, getShell());
+					WizardMessages.getFormattedString("CloudConnectionAuthError.message", url), e, getShell());
 			return false;
 		}
 	}
@@ -109,12 +109,17 @@
 	@Override
 	public boolean performFinish() {
 		final String name = mainPage.getConnectionName();
+		new StringPreferenceValue(IDeltaCloudPreferenceConstants.LAST_NAME, Activator.PLUGIN_ID)
+				.store(name);
+
 		final String url = mainPage.getUrl();
-
-		new StringPreferenceValue(IPreferenceKeys.LAST_URL, Activator.PLUGIN_ID)
+		new StringPreferenceValue(IDeltaCloudPreferenceConstants.LAST_URL, Activator.PLUGIN_ID)
 				.store(url);
 
 		final String username = mainPage.getUsername();
+		new StringPreferenceValue(IDeltaCloudPreferenceConstants.LAST_USERNAME, Activator.PLUGIN_ID)
+		.store(username);
+
 		final String password = mainPage.getPassword();
 		final DeltaCloudDriver driver = mainPage.getDriver();
 
@@ -122,7 +127,7 @@
 	}
 
 	private boolean createCloud(final String name, final String url, final String username, final String password,
-			final DeltaCloudDriver driver)  {
+			final DeltaCloudDriver driver) {
 		Job job = new Job(WizardMessages.getFormattedString("CloudConnection.msg", name)) {
 
 			@Override
@@ -146,4 +151,8 @@
 			return false;
 		}
 	}
+
+	public DeltaCloud getDeltaCloud() {
+		return initialCloud;
+	}
 }



More information about the jbosstools-commits mailing list