[jbosstools-commits] JBoss Tools SVN: r39464 - trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Tue Mar 13 06:42:04 EDT 2012


Author: rob.stryker at jboss.com
Date: 2012-03-13 06:42:04 -0400 (Tue, 13 Mar 2012)
New Revision: 39464

Removed:
   trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressBinaryUI.java
Modified:
   trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressDetailsComposite.java
   trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressDetailsSection.java
   trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressWizardFragment.java
Log:
decouple wizard from section for openshift server details

Deleted: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressBinaryUI.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressBinaryUI.java	2012-03-13 10:31:21 UTC (rev 39463)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressBinaryUI.java	2012-03-13 10:42:04 UTC (rev 39464)
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012 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.openshift.express.internal.ui.behaviour;
-
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.wizard.IWizardContainer;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.server.core.IRuntime;
-import org.eclipse.wst.server.core.IServerWorkingCopy;
-import org.eclipse.wst.server.ui.wizard.IWizardHandle;
-import org.jboss.ide.eclipse.as.ui.editor.DeploymentTypeUIUtil;
-import org.jboss.ide.eclipse.as.ui.editor.IDeploymentTypeUI;
-import org.jboss.tools.common.ui.WizardUtils;
-import org.jboss.tools.openshift.express.internal.core.behaviour.ExpressServerUtils;
-
-public class ExpressBinaryUI implements IDeploymentTypeUI {
-	private ExpressDetailsComposite composite;
-	private IServerModeUICallback wrapped;
-	public ExpressBinaryUI() {
-		// TODO Auto-generated constructor stub
-	}
-
-	@Override
-	public void fillComposite(Composite parent, IServerModeUICallback callback) {
-		parent.setLayout(new FillLayout());
-		wrapped = wrapCallback(callback);
-		
-		composite = ExpressDetailsComposite.createComposite(parent,wrapped, 
-				ExpressServerUtils.EXPRESS_BINARY_MODE, true);
-	}
-
-	private IServerModeUICallback wrapCallback(final IServerModeUICallback inner) {
-		return new IServerModeUICallback() {
-			public IServerWorkingCopy getServer() {
-				return inner.getServer();
-			}
-			public IRuntime getRuntime() {
-				return inner.getRuntime();
-			}
-			public void execute(IUndoableOperation operation) {
-				inner.execute(operation);
-			}
-			public void executeLongRunning(Job j) {
-				if( inner instanceof DeploymentTypeUIUtil.NewServerWizardBehaviourCallback) {
-					IWizardHandle handle = ((DeploymentTypeUIUtil.NewServerWizardBehaviourCallback)inner).getHandle();
-					// depends on COMMON, DAMN
-					IWizardContainer container = ((WizardPage)handle).getWizard().getContainer();
-					try {
-						WizardUtils.runInWizard(j, null, container);
-					} catch(Exception e) {
-						// TODO clean
-					}
-				} else {
-					inner.executeLongRunning(j);
-				}
-			}
-			public void setErrorMessage(String msg) {
-				inner.setErrorMessage(msg);
-			}
-			public Object getAttribute(String key) {
-				return null;
-			}
-		};
-	}
-
-	@Override
-	public void performFinish(IProgressMonitor monitor) throws CoreException {
-	}
-	
-}

Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressDetailsComposite.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressDetailsComposite.java	2012-03-13 10:31:21 UTC (rev 39463)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressDetailsComposite.java	2012-03-13 10:42:04 UTC (rev 39464)
@@ -18,6 +18,7 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
@@ -53,15 +54,13 @@
 import org.eclipse.wst.server.core.IServerWorkingCopy;
 import org.eclipse.wst.server.core.ServerCore;
 import org.eclipse.wst.server.ui.wizard.IWizardHandle;
-import org.jboss.ide.eclipse.as.ui.Messages;
 import org.jboss.ide.eclipse.as.ui.UIUtil;
 import org.jboss.ide.eclipse.as.ui.editor.DeploymentTypeUIUtil;
 import org.jboss.ide.eclipse.as.ui.editor.IDeploymentTypeUI.IServerModeUICallback;
-import org.jboss.ide.eclipse.as.ui.editor.ServerWorkingCopyPropertyComboCommand;
-import org.jboss.ide.eclipse.as.ui.editor.ServerWorkingCopyPropertyCommand;
 import org.jboss.tools.openshift.express.internal.core.behaviour.ExpressServerUtils;
 import org.jboss.tools.openshift.express.internal.core.console.UserDelegate;
 import org.jboss.tools.openshift.express.internal.core.console.UserModel;
+import org.jboss.tools.openshift.express.internal.ui.OpenShiftUIActivator;
 import org.jboss.tools.openshift.express.internal.ui.wizard.ConnectToOpenShiftWizardModel;
 import org.jboss.tools.openshift.express.internal.ui.wizard.CredentialsWizardPageModel;
 import org.jboss.tools.openshift.express.internal.ui.wizard.ImportOpenShiftExpressApplicationWizard;
@@ -74,13 +73,6 @@
  * @author Rob Stryker
  */
 public class ExpressDetailsComposite {
-	public static ExpressDetailsComposite createComposite(Composite parent,
-			IServerModeUICallback callback, String mode, boolean showVerify) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		composite.setLayout(new GridLayout(2, false));
-		return new ExpressDetailsComposite(composite, callback, mode, showVerify);
-	}
-
 	// How to display errors, set attributes, etc
 	protected IServerModeUICallback callback;
 	
@@ -103,7 +95,6 @@
 	private UserDelegate fuser;
 	private List<IApplication> appList;
 	private String[] appListNames;
-	private String error;
 	private IServerWorkingCopy server;
 	private String mode;
 	private HashMap<IApplication, IProject[]> projectsPerApp = new HashMap<IApplication, IProject[]>();
@@ -121,7 +112,7 @@
 		createWidgets(fill);
 		fillWidgets();
 		addListeners();
-		postLongRunningValidate();
+		quickValidate();
 	}
 
 	public Composite getComposite() {
@@ -154,7 +145,7 @@
 			try {
 				this.app = app.getName();
 				updateModelForNewUser(tmpUser);
-				postLongRunningValidate();
+				quickValidate();
 				showVerify = false;
 				IProject[] p = projectsPerApp.get(app);
 				showImportLink = p == null || p.length == 0;
@@ -293,23 +284,22 @@
 				String storedPass = UserModel.getDefault().getPasswordFromSecureStorage(user);
 				if (storedPass != null && !storedPass.equals(""))
 					passText.setText(storedPass);
-				callback.execute(new SetUserCommand(server));
 			}
 		};
 		userText.addModifyListener(nameModifyListener);
 
 		passModifyListener = new ModifyListener() {
 			public void modifyText(ModifyEvent e) {
-				// pass = passText.getText();
-				callback.execute(new SetPassCommand(server));
+				pass = passText.getText();
 			}
 		};
-		if( showVerify ) passText.addModifyListener(passModifyListener);
+		
+		if( showVerify ) 
+			passText.addModifyListener(passModifyListener);
 
 		remoteModifyListener = new ModifyListener() {
 			public void modifyText(ModifyEvent e) {
 				remote = remoteText.getText();
-				callback.execute(new SetRemoteCommand(server));
 			}
 		};
 		remoteText.addModifyListener(remoteModifyListener);
@@ -322,10 +312,9 @@
 					if( ind != -1 ) {
 						fapplication = appList.get(ind);
 					}
-					callback.execute(new SetApplicationCommand(server));
 					resetDeployProjectCombo();
 					enableImportLink();
-					postLongRunningValidate();
+					quickValidate();
 				}
 			};
 			appNameCombo.addModifyListener(appModifyListener);
@@ -335,7 +324,6 @@
 			deployProjectModifyListener = new ModifyListener() {
 				public void modifyText(ModifyEvent e) {
 					deployProject = deployProjectCombo.getText();
-					callback.execute(new SetDeployProjectCommand(server));
 				}
 			};
 			deployProjectCombo.addModifyListener(deployProjectModifyListener);
@@ -343,7 +331,6 @@
 		deployDestinationModifyListener = new ModifyListener() {
 			public void modifyText(ModifyEvent e) {
 				deployFolder = deployFolderText.getText();
-				callback.execute(new SetDeployFolderCommand(server));
 			}
 		};
 		deployFolderText.addModifyListener(deployDestinationModifyListener);
@@ -436,7 +423,7 @@
 		};
 		callback.executeLongRunning(j);
 		postVerifyUpdateWidgets();
-		postLongRunningValidate();
+		quickValidate();
 	}
 
 	private void postVerifyUpdateWidgets() {
@@ -468,11 +455,14 @@
 		importLink.setEnabled(p == null || p.length == 0);
 	}
 
-	private void postLongRunningValidate() {
+	private void quickValidate() {
 		if( !showVerify )
 			return;
-		
-		error = null;
+		callback.setErrorMessage(getErrorString());
+	}
+
+	private String getErrorString() {
+		String error = null;
 		if( credentialsFailed ) {
 			error = "Credentials Failed";
 		} else {
@@ -488,63 +478,9 @@
 				}
 			}
 		}
-		callback.setErrorMessage(error);
+		return error;
 	}
 
-	public class SetUserCommand extends ServerWorkingCopyPropertyCommand {
-		public SetUserCommand(IServerWorkingCopy server) {
-			super(server, Messages.EditorChangeUsernameCommandName, userText, userText.getText(),
-					ExpressServerUtils.ATTRIBUTE_USERNAME, nameModifyListener);
-		}
-	}
-
-	public class SetRemoteCommand extends ServerWorkingCopyPropertyCommand {
-		public SetRemoteCommand(IServerWorkingCopy server) {
-			super(server, "Change Remote Name", remoteText, remoteText.getText(),
-					ExpressServerUtils.ATTRIBUTE_REMOTE_NAME, remoteModifyListener);
-		}
-	}
-
-	public class SetApplicationCommand extends ServerWorkingCopyPropertyComboCommand {
-		public SetApplicationCommand(IServerWorkingCopy server) {
-			super(server, "Change Application Name", appNameCombo, appNameCombo.getText(),
-					ExpressServerUtils.ATTRIBUTE_APPLICATION_NAME, appModifyListener);
-		}
-	}
-
-	public class SetDeployProjectCommand extends ServerWorkingCopyPropertyComboCommand {
-		public SetDeployProjectCommand(IServerWorkingCopy server) {
-			super(server, "Change Deployment Project", appNameCombo, deployProjectCombo.getText(),
-					ExpressServerUtils.ATTRIBUTE_DEPLOY_PROJECT, deployProjectModifyListener);
-		}
-	}
-
-	public class SetDeployFolderCommand extends ServerWorkingCopyPropertyCommand {
-		public SetDeployFolderCommand(IServerWorkingCopy server) {
-			super(server, "Change Deployment Folder", deployFolderText, deployFolderText.getText(),
-					ExpressServerUtils.ATTRIBUTE_DEPLOY_FOLDER_NAME, deployDestinationModifyListener);
-		}
-	}
-
-	public class SetPassCommand extends ServerWorkingCopyPropertyCommand {
-		public SetPassCommand(IServerWorkingCopy server) {
-			super(server, Messages.EditorChangePasswordCommandName, passText, passText.getText(),
-					null, passModifyListener);
-			oldVal = passText.getText();
-		}
-
-		public void execute() {
-			pass = newVal;
-		}
-
-		public void undo() {
-			pass = oldVal;
-			text.removeModifyListener(listener);
-			text.setText(oldVal);
-			text.addModifyListener(listener);
-		}
-	}
-
 	private Runnable getVerifyingCredentialsJob() {
 		final ConnectToOpenShiftWizardModel inner = new ConnectToOpenShiftWizardModel();
 		final CredentialsWizardPageModel model = new CredentialsWizardPageModel(inner);
@@ -553,7 +489,6 @@
 		return new Runnable() {
 			public void run() {
 				final IStatus s = model.validateCredentials();
-				error = null;
 				if (!s.isOK()) {
 					credentialsFailed = true;
 				} else {
@@ -561,7 +496,7 @@
 					try {
 						updateModelForNewUser(inner.getUser());
 					} catch(OpenShiftException ose) {
-						error = ose.getMessage();
+						callback.setErrorMessage(ose.getMessage());
 					}
 				}
 			}
@@ -588,10 +523,23 @@
 		IProject[] possibleProjects = projectsPerApp.get(fapplication);
 		this.deployProject = possibleProjects == null || possibleProjects.length == 0 ? null : possibleProjects[0].getName();
 		
+		fillServerWithDetails();
+	}
+	
+	
+	public void finish(IProgressMonitor monitor) throws CoreException {
+		try {
+			UserModel.getDefault().addUser(fuser);
+			fillServerWithDetails();
+		} catch(OpenShiftException ose) {
+			throw new CoreException(new Status(IStatus.ERROR, OpenShiftUIActivator.PLUGIN_ID, ose.getMessage(), ose));
+		}
+	}
+	private void fillServerWithDetails() throws OpenShiftException {
 		// Fill the server working copy
 		// update the values
 		IServerWorkingCopy wc = callback.getServer();
-		ExpressServerUtils.fillServerWithOpenShiftDetails(wc, application, 
+		ExpressServerUtils.fillServerWithOpenShiftDetails(wc, fapplication, 
 				fuser, mode, deployProject, deployFolder, remote);
 	}
 
@@ -602,28 +550,4 @@
 		}
 		return appNames;
 	}
-
-	public String getUsername() {
-		return user;
-	}
-
-	public String getPassword() {
-		return pass;
-	}
-
-	public String getApplicationName() {
-		return app;
-	}
-
-	public UserDelegate getUser() {
-		return fuser;
-	}
-
-	public IApplication getApplication() {
-		return fapplication;
-	}
-
-	public String getRemote() {
-		return remote;
-	}
 }

Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressDetailsSection.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressDetailsSection.java	2012-03-13 10:31:21 UTC (rev 39463)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressDetailsSection.java	2012-03-13 10:42:04 UTC (rev 39464)
@@ -10,22 +10,51 @@
  *******************************************************************************/
 package org.jboss.tools.openshift.express.internal.ui.behaviour;
 
-import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FormLayout;
 import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
 import org.eclipse.ui.forms.widgets.ExpandableComposite;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.model.WorkbenchContentProvider;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.eclipse.ui.views.navigator.ResourceComparator;
+import org.eclipse.wst.server.core.IServerWorkingCopy;
 import org.eclipse.wst.server.ui.editor.ServerEditorSection;
-import org.jboss.ide.eclipse.as.ui.editor.DeploymentTypeUIUtil;
-import org.jboss.ide.eclipse.as.ui.editor.IDeploymentTypeUI.IServerModeUICallback;
+import org.eclipse.wst.server.ui.internal.editor.ServerEditorPartInput;
+import org.jboss.ide.eclipse.as.ui.UIUtil;
+import org.jboss.ide.eclipse.as.ui.editor.ServerWorkingCopyPropertyCommand;
 import org.jboss.tools.openshift.express.internal.core.behaviour.ExpressServerUtils;
 
 public class ExpressDetailsSection extends ServerEditorSection {
-	private ExpressDetailsComposite details;
 	private IEditorInput input;
+	protected Text userText, remoteText;
+	protected Text deployFolderText;
+	protected Text appNameText, deployProjectText;
+	protected Button verifyButton,  browseDestButton;
+
 	public void init(IEditorSite site, IEditorInput input) {
 		super.init(site, input);
 		this.input = input;
@@ -38,29 +67,148 @@
 		Section section = toolkit.createSection(parent, ExpandableComposite.TWISTIE|ExpandableComposite.EXPANDED|ExpandableComposite.TITLE_BAR);
 		section.setText("Openshift Express Server");
 		section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL| GridData.GRAB_VERTICAL));
+		Composite c = new Composite(section, SWT.NONE);
+		c.setLayout(new GridLayout(2,true));
+		createWidgets(c);
+		toolkit.paintBordersFor(c);
+		toolkit.adapt(c);
+		section.setClient(c);
+		
+		initWidgets();
+		addListeners();
+	}
+	
+	protected void initWidgets() {
+		// Set the widgets
+		String user = ExpressServerUtils.getExpressUsername(server);
+		String appName = ExpressServerUtils.getExpressApplicationName(server);
+		String depProj = ExpressServerUtils.getExpressDeployProject(server);
+		userText.setText(user == null ? "" : user);
+		appNameText.setText(appName == null ? "" : appName);
+		deployProjectText.setText(depProj == null ? "" : depProj);
+		userText.setEnabled(false);
+		appNameText.setEnabled(false);
+		deployProjectText.setEnabled(false);
+		
+		String outDir = ExpressServerUtils.getExpressDeployFolder(server);
+		String remote = ExpressServerUtils.getExpressRemoteName(server);
+		deployFolderText.setText(outDir == null ? "" : outDir);
+		remoteText.setText(remote == null ? "" : remote);
+		
+	}
+	
+	protected Composite createComposite(Section section) {
+		createWidgets(section);
+		return section;
+	}
+	
+	private void createWidgets(Composite composite) {
+		composite.setLayout(new GridLayout(2, false));
+		Label userLabel = new Label(composite, SWT.NONE);
+		GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(userLabel);
+		userText = new Text(composite, SWT.SINGLE | SWT.BORDER);
+		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(userText);
+		Label appNameLabel = new Label(composite, SWT.NONE);
+		GridDataFactory.fillDefaults()
+				.align(SWT.LEFT, SWT.CENTER).applyTo(appNameLabel);
+		appNameText = new Text(composite, SWT.SINGLE | SWT.BORDER);
+		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(appNameText);
+		
+		Label deployLocationLabel = new Label(composite, SWT.NONE);
+		deployProjectText = new Text(composite, SWT.SINGLE | SWT.BORDER);
+		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(deployProjectText);
+		
+		Label zipDestLabel = new Label(composite, SWT.NONE);
+		
+		Composite zipDestComposite = new Composite(composite, SWT.NONE);
+		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(zipDestComposite);
+		zipDestComposite.setLayout(new FormLayout());
+		browseDestButton = new Button(zipDestComposite, SWT.PUSH);
+		browseDestButton.setLayoutData(UIUtil.createFormData2(0,5,100,-5,null,0,100,0));
+		deployFolderText = new Text(zipDestComposite, SWT.SINGLE | SWT.BORDER);
+		deployFolderText.setLayoutData(UIUtil.createFormData2(0,5,100,-5,0,0,browseDestButton,-5));
+		
+		Label remoteLabel = new Label(composite, SWT.NONE);
+		GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(remoteLabel);
+		remoteText = new Text(composite, SWT.SINGLE | SWT.BORDER);
+		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(remoteText);
 
-		details = ExpressDetailsComposite.createComposite(section, createCallback(), ExpressServerUtils.EXPRESS_SOURCE_MODE, false);
-		toolkit.paintBordersFor(details.getComposite());
-		toolkit.adapt(details.getComposite());
-		section.setClient(details.getComposite());
-		details.appNameCombo.setEnabled(false);
+		// Text
+		appNameLabel.setText("Application Name: ");
+		deployLocationLabel.setText("Deploy Project: " );
+		zipDestLabel.setText("Output Directory: ");
+		userLabel.setText("Username: ");
+		remoteLabel.setText("Remote: ");
+		browseDestButton.setText("Browse...");
 	}
 	
-	private IServerModeUICallback createCallback() {
-		return DeploymentTypeUIUtil.getCallback(server, input, this);
+	ModifyListener remoteModifyListener, deployDestinationModifyListener;
+	protected void addListeners() {
+		remoteModifyListener = new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				((ServerEditorPartInput) input).getServerCommandManager().execute(new SetRemoteCommand(server));
+			}
+		};
+		remoteText.addModifyListener(remoteModifyListener);
+		deployDestinationModifyListener = new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				((ServerEditorPartInput) input).getServerCommandManager().execute(new SetDeployFolderCommand(server));
+			}
+		};
+		deployFolderText.addModifyListener(deployDestinationModifyListener);
+		
+		browseDestButton.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				browsePressed();
+			}
+		});
+
 	}
+	
+	private void browsePressed() {
+		IFolder f = chooseFolder();
+		if( f != null ) {
+			deployFolderText.setText(f.getFullPath().removeFirstSegments(1).makeRelative().toOSString());
+		}
+	}
+	
+	private IFolder chooseFolder() {
+		String depProject = ExpressServerUtils.getExpressDeployProject(server);
+		String depFolder = ExpressServerUtils.getExpressDeployFolder(server);
+		
+		IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject(depProject);
 
-	/**
-	 * Allow a section an opportunity to respond to a doSave request on the editor.
-	 * @param monitor the progress monitor for the save operation.
-	 */
-	public void doSave(IProgressMonitor monitor) {
-//		try {
-//			ExpressServerUtils.setExpressPassword(server.getOriginal(), details.getPassword());
-//			monitor.worked(100);
-//		} catch( CoreException ce ) {
-//			// TODO 
-//		}
+		ILabelProvider lp= new WorkbenchLabelProvider();
+		ITreeContentProvider cp= new WorkbenchContentProvider();
+
+		ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(Display.getDefault().getActiveShell(), lp, cp);
+		dialog.setTitle("Deploy Location");
+		dialog.setMessage("Please choose a location to put zipped projects");
+		dialog.setInput(p);
+		dialog.setComparator(new ResourceComparator(ResourceComparator.NAME));
+		
+		IResource res= p.findMember(new Path(depFolder));
+		if (res != null)
+			dialog.setInitialSelection(res);
+
+		if (dialog.open() == Window.OK)
+			return (IFolder) dialog.getFirstResult();
+		return null;
 	}
-
+	
+	public class SetRemoteCommand extends ServerWorkingCopyPropertyCommand {
+		public SetRemoteCommand(IServerWorkingCopy server) {
+			super(server, "Change Remote Name", remoteText, remoteText.getText(),
+					ExpressServerUtils.ATTRIBUTE_REMOTE_NAME, remoteModifyListener, 
+					ExpressServerUtils.ATTRIBUTE_REMOTE_NAME_DEFAULT);
+		}
+	}
+	
+	public class SetDeployFolderCommand extends ServerWorkingCopyPropertyCommand {
+		public SetDeployFolderCommand(IServerWorkingCopy server) {
+			super(server, "Change Deployment Folder", deployFolderText, deployFolderText.getText(),
+					ExpressServerUtils.ATTRIBUTE_DEPLOY_FOLDER_NAME, deployDestinationModifyListener, 
+					ExpressServerUtils.ATTRIBUTE_DEPLOY_FOLDER_DEFAULT);
+		}
+	}
 }

Modified: trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressWizardFragment.java
===================================================================
--- trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressWizardFragment.java	2012-03-13 10:31:21 UTC (rev 39463)
+++ trunk/openshift/plugins/org.jboss.tools.openshift.express.ui/src/org/jboss/tools/openshift/express/internal/ui/behaviour/ExpressWizardFragment.java	2012-03-13 10:42:04 UTC (rev 39464)
@@ -16,6 +16,8 @@
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jface.wizard.IWizardContainer;
 import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.wst.server.ui.wizard.IWizardHandle;
 import org.eclipse.wst.server.ui.wizard.WizardFragment;
@@ -43,7 +45,7 @@
 	}
 
 	public boolean isComplete() {
-		return getTaskModel().getObject(ExpressServerUtils.TASK_WIZARD_ATTR_SELECTED_APP) != null;
+		return super.isComplete();
 	}
 	
 	public Composite createComposite(Composite parent, IWizardHandle handle) {
@@ -60,8 +62,11 @@
 				}
 			}
 		};
-		composite = ExpressDetailsComposite.createComposite(parent,callback, ExpressServerUtils.EXPRESS_SOURCE_MODE, true);
-		return composite.getComposite();
+		Composite composite = new Composite(parent, SWT.NONE);
+		composite.setLayout(new GridLayout(2, false));
+		this.composite = new ExpressDetailsComposite(
+				composite, callback,ExpressServerUtils.EXPRESS_SOURCE_MODE, true);
+		return this.composite.getComposite();
 	}
 		
 	public void enter() {
@@ -70,18 +75,6 @@
 	
 	public void performFinish(IProgressMonitor monitor) throws CoreException {
 		super.performFinish(monitor);
-		UserDelegate user = composite.getUser();
-		UserModel.getDefault().addUser(user);
-		IApplication app = composite.getApplication();
-		
-		// Only clone and import if there's no project already in existence
-		IProject p = ExpressServerUtils.findProjectForApplication(app);
-		System.out.println(p);
-		if( p == null ) {
-			System.out.println(p);
-			// clone and import
-			
-			// If we had to clone and import, we also need to add the module ??
-		}
+		composite.finish(monitor);
 	}
 }



More information about the jbosstools-commits mailing list