aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/ActivityPage.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/ActivityPage.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/ActivityPage.java326
1 files changed, 0 insertions, 326 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/ActivityPage.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/ActivityPage.java
deleted file mode 100644
index ba4aedc8a..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/ActivityPage.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php
- *
- * 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.android.ide.eclipse.adt.internal.wizards.templates;
-
-import static com.android.ide.eclipse.adt.internal.wizards.templates.NewProjectWizard.CATEGORY_ACTIVITIES;
-import static com.android.ide.eclipse.adt.internal.wizards.templates.NewProjectWizard.CATEGORY_OTHER;
-import static com.android.ide.eclipse.adt.internal.wizards.templates.NewProjectWizard.IS_LAUNCHER;
-import static com.android.ide.eclipse.adt.internal.wizards.templates.TemplateHandler.PREVIEW_PADDING;
-import static com.android.ide.eclipse.adt.internal.wizards.templates.TemplateHandler.PREVIEW_WIDTH;
-
-import com.android.ide.eclipse.adt.AdtPlugin;
-import com.android.ide.eclipse.adt.internal.editors.layout.gle2.ImageControl;
-import com.google.common.collect.Lists;
-import com.google.common.io.Files;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-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.Label;
-import org.eclipse.swt.widgets.List;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-
-class ActivityPage extends WizardPage implements SelectionListener {
- private final NewProjectWizardState mValues;
- private List mList;
- private Button mCreateToggle;
- private java.util.List<File> mTemplates;
-
- private boolean mIgnore;
- private boolean mShown;
- private ImageControl mPreview;
- private Image mPreviewImage;
- private boolean mDisposePreviewImage;
- private Label mHeading;
- private Label mDescription;
- private boolean mOnlyActivities;
- private boolean mAskCreate;
- private boolean mLauncherActivitiesOnly;
-
- /**
- * Create the wizard.
- */
- ActivityPage(NewProjectWizardState values, boolean onlyActivities, boolean askCreate) {
- super("activityPage"); //$NON-NLS-1$
- mValues = values;
- mOnlyActivities = onlyActivities;
- mAskCreate = askCreate;
-
- if (onlyActivities) {
- setTitle("Create Activity");
- } else {
- setTitle("Create Android Object");
- }
- if (onlyActivities && askCreate) {
- setDescription(
- "Select whether to create an activity, and if so, what kind of activity.");
- } else {
- setDescription("Select which template to use");
- }
- }
-
- /** Sets whether the activity page should only offer launcher activities */
- void setLauncherActivitiesOnly(boolean launcherActivitiesOnly) {
- mLauncherActivitiesOnly = launcherActivitiesOnly;
- }
-
- @Override
- public void createControl(Composite parent) {
- Composite container = new Composite(parent, SWT.NULL);
- setControl(container);
- }
-
- @SuppressWarnings("unused") // SWT constructors have side effects and aren't unused
- private void onEnter() {
- Composite container = (Composite) getControl();
- container.setLayout(new GridLayout(3, false));
-
- if (mAskCreate) {
- mCreateToggle = new Button(container, SWT.CHECK);
- mCreateToggle.setSelection(true);
- mCreateToggle.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1));
- mCreateToggle.setText("Create Activity");
- mCreateToggle.addSelectionListener(this);
- }
-
- mList = new List(container, SWT.BORDER | SWT.V_SCROLL);
- mList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
-
-
- TemplateManager manager = mValues.template.getManager();
- java.util.List<File> templates = manager.getTemplates(CATEGORY_ACTIVITIES);
-
- if (!mOnlyActivities) {
- templates.addAll(manager.getTemplates(CATEGORY_OTHER));
- }
- java.util.List<String> names = new ArrayList<String>(templates.size());
- File current = mValues.activityValues.getTemplateLocation();
- mTemplates = Lists.newArrayListWithExpectedSize(templates.size());
- int index = -1;
- for (int i = 0, n = templates.size(); i < n; i++) {
- File template = templates.get(i);
- TemplateMetadata metadata = manager.getTemplate(template);
- if (metadata == null) {
- continue;
- }
- if (mLauncherActivitiesOnly) {
- Parameter parameter = metadata.getParameter(IS_LAUNCHER);
- if (parameter == null) {
- continue;
- }
- }
- mTemplates.add(template);
- names.add(metadata.getTitle());
- if (template.equals(current)) {
- index = names.size();
- }
- }
- String[] items = names.toArray(new String[names.size()]);
- mList.setItems(items);
- if (index == -1 && !mTemplates.isEmpty()) {
- mValues.activityValues.setTemplateLocation(mTemplates.get(0));
- index = 0;
- }
- if (index >= 0) {
- mList.setSelection(index);
- mList.addSelectionListener(this);
- }
-
- // Preview
- mPreview = new ImageControl(container, SWT.NONE, null);
- mPreview.setDisposeImage(false); // Handled manually in this class
- GridData gd_mImage = new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1);
- gd_mImage.widthHint = PREVIEW_WIDTH + 2 * PREVIEW_PADDING;
- mPreview.setLayoutData(gd_mImage);
- new Label(container, SWT.NONE);
-
- mHeading = new Label(container, SWT.NONE);
- mHeading.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
- new Label(container, SWT.NONE);
-
- mDescription = new Label(container, SWT.WRAP);
- mDescription.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 2, 1));
-
- Font font = JFaceResources.getFontRegistry().getBold(JFaceResources.BANNER_FONT);
- if (font != null) {
- mHeading.setFont(font);
- }
-
- updatePreview();
- }
-
- private void updatePreview() {
- Image oldImage = mPreviewImage;
- boolean dispose = mDisposePreviewImage;
- mPreviewImage = null;
-
- String title = "";
- String description = "";
- TemplateHandler handler = mValues.activityValues.getTemplateHandler();
- TemplateMetadata template = handler.getTemplate();
- if (template != null) {
- String thumb = template.getThumbnailPath();
- if (thumb != null && !thumb.isEmpty()) {
- File file = new File(mValues.activityValues.getTemplateLocation(),
- thumb.replace('/', File.separatorChar));
- if (file != null) {
- try {
- byte[] bytes = Files.toByteArray(file);
- ByteArrayInputStream input = new ByteArrayInputStream(bytes);
- mPreviewImage = new Image(getControl().getDisplay(), input);
- mDisposePreviewImage = true;
- input.close();
- } catch (IOException e) {
- AdtPlugin.log(e, null);
- }
- }
- } else {
- // Fallback icon
- mDisposePreviewImage = false;
- mPreviewImage = TemplateMetadata.getDefaultTemplateIcon();
- }
- title = template.getTitle();
- description = template.getDescription();
- }
-
- mHeading.setText(title);
- mDescription.setText(description);
- mPreview.setImage(mPreviewImage);
- mPreview.fitToWidth(PREVIEW_WIDTH);
-
- if (oldImage != null && dispose) {
- oldImage.dispose();
- }
-
- Composite parent = (Composite) getControl();
- parent.layout(true, true);
- parent.redraw();
- }
-
- @Override
- public void dispose() {
- super.dispose();
-
- if (mPreviewImage != null && mDisposePreviewImage) {
- mDisposePreviewImage = false;
- mPreviewImage.dispose();
- mPreviewImage = null;
- }
- }
-
- @Override
- public void setVisible(boolean visible) {
- if (visible && !mShown) {
- onEnter();
- }
-
- super.setVisible(visible);
-
- if (visible) {
- mShown = true;
- if (mAskCreate) {
- try {
- mIgnore = true;
- mCreateToggle.setSelection(mValues.createActivity);
- } finally {
- mIgnore = false;
- }
- }
- }
-
- validatePage();
- }
-
-
- private void validatePage() {
- IStatus status = null;
-
- if (mValues.createActivity) {
- if (mList.getSelectionCount() < 1) {
- status = new Status(IStatus.ERROR, AdtPlugin.PLUGIN_ID,
- "Select an activity type");
- } else {
- TemplateHandler templateHandler = mValues.activityValues.getTemplateHandler();
- status = templateHandler.validateTemplate(mValues.minSdkLevel,
- mValues.getBuildApi());
- }
- }
-
- setPageComplete(status == null || status.getSeverity() != IStatus.ERROR);
- if (status != null) {
- setMessage(status.getMessage(),
- status.getSeverity() == IStatus.ERROR
- ? IMessageProvider.ERROR : IMessageProvider.WARNING);
- } else {
- setErrorMessage(null);
- setMessage(null);
- }
- }
-
- @Override
- public boolean isPageComplete() {
- // Ensure that the Finish button isn't enabled until
- // the user has reached and completed this page
- if (!mShown && mValues.createActivity) {
- return false;
- }
-
- return super.isPageComplete();
- }
-
- // ---- Implements SelectionListener ----
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- if (mIgnore) {
- return;
- }
-
- Object source = e.getSource();
- if (source == mCreateToggle) {
- mValues.createActivity = mCreateToggle.getSelection();
- mList.setEnabled(mValues.createActivity);
- } else if (source == mList) {
- int index = mList.getSelectionIndex();
- if (index >= 0 && index < mTemplates.size()) {
- File template = mTemplates.get(index);
- mValues.activityValues.setTemplateLocation(template);
- updatePreview();
- }
- }
-
- validatePage();
- }
-
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-}