summaryrefslogtreecommitdiff
path: root/src/plugins/android/src/com/motorola/studio/android/wizards/widget/NewAndroidWidgetProjectMainPage.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/android/src/com/motorola/studio/android/wizards/widget/NewAndroidWidgetProjectMainPage.java')
-rw-r--r--src/plugins/android/src/com/motorola/studio/android/wizards/widget/NewAndroidWidgetProjectMainPage.java196
1 files changed, 196 insertions, 0 deletions
diff --git a/src/plugins/android/src/com/motorola/studio/android/wizards/widget/NewAndroidWidgetProjectMainPage.java b/src/plugins/android/src/com/motorola/studio/android/wizards/widget/NewAndroidWidgetProjectMainPage.java
new file mode 100644
index 0000000..0112120
--- /dev/null
+++ b/src/plugins/android/src/com/motorola/studio/android/wizards/widget/NewAndroidWidgetProjectMainPage.java
@@ -0,0 +1,196 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.motorola.studio.android.wizards.widget;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.dialogs.DialogPage;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+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.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.ui.PlatformUI;
+
+import com.motorola.studio.android.AndroidPlugin;
+import com.motorola.studio.android.i18n.AndroidNLS;
+import com.motorola.studio.android.model.AndroidProject;
+import com.motorola.studio.android.model.IWizardModel;
+import com.motorola.studio.android.wizards.elements.ApplicationGroup;
+import com.motorola.studio.android.wizards.elements.ProjectNameGroup;
+import com.motorola.studio.android.wizards.elements.SdkTargetSelector;
+import com.motorola.studio.android.wizards.elements.WidgetLocationGroup;
+
+/**
+ * Class that represents the main page in the New Widget Project Wizard
+ */
+public class NewAndroidWidgetProjectMainPage extends WizardPage
+{
+
+ private static final String PAGE_NAME = "Main Page";
+
+ private final AndroidProject project;
+
+ private final String NEW_WIDGET_PROJECT_HELP = AndroidPlugin.PLUGIN_ID + ".newwdgproj";
+
+ /**
+ * Listener for the wizard changes
+ */
+ private final Listener modelListener = new Listener()
+ {
+ public void handleEvent(Event arg0)
+ {
+ IStatus status = project.getStatus();
+ int severity = status.getSeverity();
+ setPageComplete(severity != IStatus.ERROR);
+
+ int msgType;
+ switch (severity)
+ {
+ case IStatus.OK:
+ msgType = DialogPage.NONE;
+ break;
+ case IStatus.ERROR:
+ msgType = DialogPage.ERROR;
+ break;
+ case IStatus.WARNING:
+ msgType = DialogPage.WARNING;
+ break;
+ default:
+ msgType = DialogPage.NONE;
+ break;
+ }
+ String defaultMessage =
+ AndroidNLS.UI_NewAndroidWidgetProjectMainPage_SubtitleCreateProject;
+ setMessage(status.isOK() ? defaultMessage : status.getMessage(), msgType);
+ }
+ };
+
+ /**
+ * Constructor
+ *
+ * @param project The selected project
+ */
+ public NewAndroidWidgetProjectMainPage(AndroidProject project)
+ {
+ super(PAGE_NAME);
+ this.project = project;
+ setTitle(AndroidNLS.UI_NewAndroidWidgetProjectMainPage_TitleCreateProject);
+ setDescription(AndroidNLS.UI_NewAndroidWidgetProjectMainPage_WizardProjectDescription);
+ setPageComplete(false);
+
+ }
+
+ /**
+ * Create the page SWT controls.
+ *
+ * @param parent The parent composite
+ */
+ public void createControl(Composite parent)
+ {
+ Composite composite = new Composite(parent, SWT.NULL);
+ composite.setFont(parent.getFont());
+
+ initializeDialogUnits(parent);
+
+ composite.setLayout(new GridLayout());
+ composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ //only put the project and location groups: no vertical resize, no vertical style
+
+ ProjectNameGroup projectNameGroup = new ProjectNameGroup(composite, project);
+ projectNameGroup.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false));
+
+ // Create Location Group
+ Group groupForLocation = new Group(composite, SWT.SHADOW_ETCHED_IN);
+ // Layout has 1 column
+ groupForLocation.setLayout(new GridLayout());
+ groupForLocation.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false));
+ groupForLocation.setFont(composite.getFont());
+ groupForLocation.setText(AndroidNLS.UI_NewAndroidWidgetProjectMainPage_LabelContents);
+
+ WidgetLocationGroup locationGroup =
+ new WidgetLocationGroup(groupForLocation, project, this);
+ // End of Location Group
+
+ // Create SDK Group
+ //create sdk group with vertical resize, grabbing excedding space
+ Group groupForTarget = new Group(composite, SWT.SHADOW_ETCHED_IN);
+ groupForTarget.setLayout(new GridLayout());
+ groupForTarget.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ groupForTarget.setFont(composite.getFont());
+ groupForTarget.setText(AndroidNLS.UI_NewAndroidProjectMainPage_LabelTarget);
+
+ final SdkTargetSelector mSdkTargetSelector = new SdkTargetSelector(groupForTarget, project);
+ //End of Target Creation
+
+ // Create Package Group
+ Group group = new Group(composite, SWT.SHADOW_ETCHED_IN);
+
+ // Layout has 1 column
+ group.setLayout(new GridLayout());
+ group.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false));
+ group.setFont(composite.getFont());
+ group.setText(AndroidNLS.UI_NewAndroidProjectMainPage_LabelApplication);
+
+ final ApplicationGroup applicationGroup = new ApplicationGroup(group, project);
+
+ Listener listener = new Listener()
+ {
+
+ public void handleEvent(Event arg0)
+ {
+ applicationGroup.updateDefaultName();
+ applicationGroup.updateMinSdkVersion();
+ getContainer().updateButtons();
+ }
+ };
+
+ projectNameGroup.addListener(IWizardModel.MODIFIED, modelListener);
+ projectNameGroup.addListener(IWizardModel.MODIFIED, listener);
+ locationGroup.addListener(IWizardModel.MODIFIED, listener);
+ locationGroup.addListener(IWizardModel.MODIFIED, modelListener);
+ applicationGroup.addListener(IWizardModel.MODIFIED, modelListener);
+ mSdkTargetSelector.addListener(IWizardModel.MODIFIED, modelListener);
+ mSdkTargetSelector.addListener(IWizardModel.MODIFIED, listener);
+
+ //create application group with no vertical resize
+ setPageComplete(false);
+
+ // Show description the first time
+ setErrorMessage(null);
+ setMessage(null);
+
+ projectNameGroup.forceFocus();
+ setControl(composite);
+ composite.layout(true);
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, NEW_WIDGET_PROJECT_HELP);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.DialogPage#setButtonLayoutData(org.eclipse.swt.widgets.Button)
+ */
+ @Override
+ public GridData setButtonLayoutData(Button button)
+ {
+ return super.setButtonLayoutData(button);
+ }
+
+}