Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.swtbot.eclipse.ui/src/org/eclipse/swtbot/eclipse/ui/wizards/NewPluginProjectWizardPage.java')
-rw-r--r--org.eclipse.swtbot.eclipse.ui/src/org/eclipse/swtbot/eclipse/ui/wizards/NewPluginProjectWizardPage.java190
1 files changed, 190 insertions, 0 deletions
diff --git a/org.eclipse.swtbot.eclipse.ui/src/org/eclipse/swtbot/eclipse/ui/wizards/NewPluginProjectWizardPage.java b/org.eclipse.swtbot.eclipse.ui/src/org/eclipse/swtbot/eclipse/ui/wizards/NewPluginProjectWizardPage.java
new file mode 100644
index 00000000..a28eb529
--- /dev/null
+++ b/org.eclipse.swtbot.eclipse.ui/src/org/eclipse/swtbot/eclipse/ui/wizards/NewPluginProjectWizardPage.java
@@ -0,0 +1,190 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Ketan Padegaonkar and others.
+ * 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:
+ * Ketan Padegaonkar - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swtbot.eclipse.ui.wizards;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.pde.core.plugin.TargetPlatform;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+public class NewPluginProjectWizardPage extends WizardPage implements WizardPageSettings {
+
+ private Button productIdButton;
+ private Button applicationIdButton;
+ private Combo productId;
+ private Combo applicationId;
+
+ private Text pluginId;
+ private Text pluginName;
+ private Text pluginVersion;
+ private Text pluginProvider;
+
+ protected NewPluginProjectWizardPage() {
+ super("New SWTBot Test Plugin");
+ setTitle("SWTBot plugin project");
+ }
+
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ composite.setLayout(new GridLayout(2, false));
+
+ Label label;
+ label = new Label(composite, SWT.NONE);
+ label.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
+ label.setText("Plug-in &Name:");
+
+ // name, id, version, providers
+
+ pluginName = new Text(composite, SWT.SINGLE | SWT.LEAD | SWT.BORDER);
+ pluginName.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+ pluginName.setMessage("SWTBot Test Plugin");
+
+ label = new Label(composite, SWT.NONE);
+ label.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
+ label.setText("&Plug-in id:");
+
+ pluginId = new Text(composite, SWT.SINGLE | SWT.LEAD | SWT.BORDER);
+ pluginId.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+ pluginId.setMessage("com.example.rcp.uitest");
+
+ label = new Label(composite, SWT.NONE);
+ label.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
+ label.setText("&Version:");
+
+ pluginVersion = new Text(composite, SWT.SINGLE | SWT.LEAD | SWT.BORDER);
+ pluginVersion.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+ pluginVersion.setText("1.0.0.qualifier");
+ pluginVersion.setMessage("1.0.0.qualifier");
+
+ label = new Label(composite, SWT.NONE);
+ label.setLayoutData(new GridData(SWT.END, SWT.CENTER, false, false));
+ label.setText("&Provider:");
+
+ pluginProvider = new Text(composite, SWT.SINGLE | SWT.LEAD | SWT.BORDER);
+ pluginProvider.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+ pluginProvider.setMessage("Your Company");
+
+ productAndApplication(composite);
+ hookListeners();
+ setControl(composite);
+ }
+
+ private void hookListeners() {
+ applicationIdButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ productId.setEnabled(false);
+ applicationId.setEnabled(true);
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ widgetSelected(e);
+ }
+ });
+
+ productIdButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ applicationId.setEnabled(false);
+ productId.setEnabled(true);
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ widgetSelected(e);
+ }
+ });
+
+ ModifyListener listener = new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ ProjectSettingValidator validator = new ProjectSettingValidator(pluginId.getText(), pluginName.getText(), pluginVersion.getText(), getProjects(), NewPluginProjectWizardPage.this);
+ validator.validate();
+ }
+ };
+
+ pluginId.addModifyListener(listener);
+ pluginName.addModifyListener(listener);
+ pluginVersion.addModifyListener(listener);
+ pluginProvider.addModifyListener(listener);
+ }
+
+ private List<String> getProjects() {
+ IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+
+ ArrayList<String> result = new ArrayList<String>();
+
+ for (IProject project : projects) {
+ result.add(project.getName());
+ }
+ return result;
+ }
+
+
+ private void productAndApplication(Composite parent) {
+ Group group = new Group(parent, SWT.NONE);
+ GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, false);
+ layoutData.horizontalSpan = 2;
+ group.setLayoutData(layoutData);
+ group.setLayout(new GridLayout(2, false));
+ group.setText("Program to test");
+
+ productIdButton = new Button(group, SWT.RADIO);
+ productIdButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
+ productIdButton.setText("&Product id:");
+ productIdButton.setSelection(true);
+
+ productId = new Combo(group, SWT.DROP_DOWN);
+ productId.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+ productId.setItems(TargetPlatform.getProducts());
+ productId.setText(TargetPlatform.getDefaultProduct() == null ? "" : TargetPlatform.getDefaultProduct());
+
+ applicationIdButton = new Button(group, SWT.RADIO);
+ applicationIdButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
+ applicationIdButton.setText("&Application id:");
+
+ applicationId = new Combo(group, SWT.READ_ONLY | SWT.SINGLE);
+ applicationId.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+ applicationId.setItems(TargetPlatform.getApplications());
+ applicationId.setText(TargetPlatform.getDefaultApplication());
+ applicationId.setEnabled(false);
+ }
+
+ public String pluginName() {
+ return pluginName.getText();
+ }
+
+ public String pluginId() {
+ return pluginId.getText();
+ }
+
+ public String pluginVersion() {
+ return pluginVersion.getText();
+ }
+
+ public String pluginProvider() {
+ return pluginProvider.getText();
+ }
+
+}

Back to the top