Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 395532
Collapse All | Expand All

(-)a/ECP2/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/ui/common/CheckoutProjectComposite.java (+26 lines)
Lines 35-40 Link Here
35
 * @author Eugen Neufeld
35
 * @author Eugen Neufeld
36
 */
36
 */
37
public class CheckoutProjectComposite implements ICompositeProvider {
37
public class CheckoutProjectComposite implements ICompositeProvider {
38
39
	/**
40
	 * Listener interface that will be notified if the projectName changes.
41
	 */
42
	public interface CheckoutProjectChangeListener {
43
		/**
44
		 * Callback method providing the new project name.
45
		 * 
46
		 * @param projectName the new project name
47
		 */
48
		void projectNameChanged(String projectName);
49
	}
50
51
	private CheckoutProjectChangeListener listener;
52
38
	private String projectName;
53
	private String projectName;
39
54
40
	private ECPProperties projectProperties = ECPUtil.createProperties();
55
	private ECPProperties projectProperties = ECPUtil.createProperties();
Lines 66-71 Link Here
66
		projectNameText.addModifyListener(new ModifyListener() {
81
		projectNameText.addModifyListener(new ModifyListener() {
67
			public void modifyText(ModifyEvent e) {
82
			public void modifyText(ModifyEvent e) {
68
				projectName = projectNameText.getText();
83
				projectName = projectNameText.getText();
84
				if (listener != null) {
85
					listener.projectNameChanged(projectName);
86
				}
69
			}
87
			}
70
		});
88
		});
71
		StackLayout providerStackLayout = new StackLayout();
89
		StackLayout providerStackLayout = new StackLayout();
Lines 108-111 Link Here
108
	public UIProvider getUiProvider() {
126
	public UIProvider getUiProvider() {
109
		return uiProvider;
127
		return uiProvider;
110
	}
128
	}
129
130
	/**
131
	 * @param listener
132
	 *            the listener to set
133
	 */
134
	public void setListener(CheckoutProjectChangeListener listener) {
135
		this.listener = listener;
136
	}
111
}
137
}
(-)a/ECP2/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/wizards/CheckoutProjectWizard.java (-1 / +20 lines)
Lines 13-22 Link Here
13
13
14
package org.eclipse.emf.ecp.wizards;
14
package org.eclipse.emf.ecp.wizards;
15
15
16
import org.eclipse.emf.ecp.core.ECPProjectManager;
16
import org.eclipse.emf.ecp.core.ECPRepository;
17
import org.eclipse.emf.ecp.core.ECPRepository;
17
import org.eclipse.emf.ecp.core.util.ECPCheckoutSource;
18
import org.eclipse.emf.ecp.core.util.ECPCheckoutSource;
18
import org.eclipse.emf.ecp.internal.ui.Activator;
19
import org.eclipse.emf.ecp.internal.ui.Activator;
19
import org.eclipse.emf.ecp.ui.common.CheckoutProjectComposite;
20
import org.eclipse.emf.ecp.ui.common.CheckoutProjectComposite;
21
import org.eclipse.emf.ecp.ui.common.CheckoutProjectComposite.CheckoutProjectChangeListener;
20
import org.eclipse.emf.ecp.ui.util.Messages;
22
import org.eclipse.emf.ecp.ui.util.Messages;
21
23
22
import org.eclipse.jface.wizard.WizardPage;
24
import org.eclipse.jface.wizard.WizardPage;
Lines 44-52 Link Here
44
			public void createControl(Composite parent) {
46
			public void createControl(Composite parent) {
45
				Composite composite = getUIProvider().createUI(parent);
47
				Composite composite = getUIProvider().createUI(parent);
46
48
47
				setPageComplete(true);
49
				getUIProvider().setListener(new CheckoutProjectChangeListener() {
50
					public void projectNameChanged(String projectName) {
51
						validateName(projectName);
52
					}
53
				});
54
55
				// validate initial project name
56
				validateName(getUIProvider().getProjectName());
48
				setControl(composite);
57
				setControl(composite);
49
			}
58
			}
59
60
			private void validateName(String projectName) {
61
				if (ECPProjectManager.INSTANCE.getProject(projectName) != null) {
62
					setPageComplete(false);
63
					setErrorMessage("A project with name " + projectName + " already exists in the workspace.");
64
				} else {
65
					setErrorMessage(null);
66
					setPageComplete(true);
67
				}
68
			}
50
		};
69
		};
51
		addPage(wp);
70
		addPage(wp);
52
71
(-)a/ECP2/org.eclipse.emf.ecp.ui/src/org/eclipse/emf/ecp/wizards/CreateProjectWizard.java (-3 / +8 lines)
Lines 13-18 Link Here
13
13
14
package org.eclipse.emf.ecp.wizards;
14
package org.eclipse.emf.ecp.wizards;
15
15
16
import org.eclipse.emf.ecp.core.ECPProjectManager;
16
import org.eclipse.emf.ecp.core.ECPProvider;
17
import org.eclipse.emf.ecp.core.ECPProvider;
17
import org.eclipse.emf.ecp.core.ECPProviderRegistry;
18
import org.eclipse.emf.ecp.core.ECPProviderRegistry;
18
import org.eclipse.emf.ecp.internal.ui.Activator;
19
import org.eclipse.emf.ecp.internal.ui.Activator;
Lines 64-73 Link Here
64
					}
65
					}
65
66
66
					public void projectNameChanged(String projectName) {
67
					public void projectNameChanged(String projectName) {
67
						if (projectName != null) {
68
						if (projectName == null) {
68
							setPageComplete(true);
69
						} else {
70
							setPageComplete(false);
69
							setPageComplete(false);
70
						} else if (ECPProjectManager.INSTANCE.getProject(projectName) != null) {
71
							setPageComplete(false);
72
							setErrorMessage("A project with name " + projectName + " already exists in the workspace.");
73
						} else {
74
							setErrorMessage(null);
75
							setPageComplete(true);
71
						}
76
						}
72
					}
77
					}
73
				});
78
				});

Return to bug 395532