aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/export/ProjectCheckPage.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/export/ProjectCheckPage.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/export/ProjectCheckPage.java291
1 files changed, 0 insertions, 291 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/export/ProjectCheckPage.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/export/ProjectCheckPage.java
deleted file mode 100644
index b8a7043da..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/export/ProjectCheckPage.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * Copyright (C) 2008 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.export;
-
-import com.android.ide.common.xml.ManifestData;
-import com.android.ide.eclipse.adt.AdtConstants;
-import com.android.ide.eclipse.adt.internal.editors.IconFactory;
-import com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper;
-import com.android.ide.eclipse.adt.internal.project.BaseProjectHelper;
-import com.android.ide.eclipse.adt.internal.project.ProjectChooserHelper;
-import com.android.ide.eclipse.adt.internal.project.ProjectChooserHelper.NonLibraryProjectOnlyFilter;
-import com.android.ide.eclipse.adt.internal.project.ProjectHelper;
-import com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.ExportWizardPage;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.IJavaProject;
-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.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.Text;
-
-/**
- * First Export Wizard Page. Display warning/errors.
- */
-final class ProjectCheckPage extends ExportWizardPage {
- private final static String IMG_ERROR = "error.png"; //$NON-NLS-1$
- private final static String IMG_WARNING = "warning.png"; //$NON-NLS-1$
-
- private final ExportWizard mWizard;
- private Image mError;
- private Image mWarning;
- private boolean mHasMessage = false;
- private Composite mTopComposite;
- private Composite mErrorComposite;
- private Text mProjectText;
- private ProjectChooserHelper mProjectChooserHelper;
- private boolean mFirstOnShow = true;
-
- protected ProjectCheckPage(ExportWizard wizard, String pageName) {
- super(pageName);
- mWizard = wizard;
-
- setTitle("Project Checks");
- setDescription("Performs a set of checks to make sure the application can be exported.");
- }
-
- @Override
- public void createControl(Composite parent) {
- mProjectChooserHelper = new ProjectChooserHelper(parent.getShell(),
- new NonLibraryProjectOnlyFilter());
-
- GridLayout gl = null;
- GridData gd = null;
-
- mTopComposite = new Composite(parent, SWT.NONE);
- mTopComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
- mTopComposite.setLayout(new GridLayout(1, false));
-
- // composite for the project selection.
- Composite projectComposite = new Composite(mTopComposite, SWT.NONE);
- projectComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- projectComposite.setLayout(gl = new GridLayout(3, false));
- gl.marginHeight = gl.marginWidth = 0;
-
- Label label = new Label(projectComposite, SWT.NONE);
- label.setLayoutData(gd = new GridData(GridData.FILL_HORIZONTAL));
- gd.horizontalSpan = 3;
- label.setText("Select the project to export:");
-
- new Label(projectComposite, SWT.NONE).setText("Project:");
- mProjectText = new Text(projectComposite, SWT.BORDER);
- mProjectText.setLayoutData(gd = new GridData(GridData.FILL_HORIZONTAL));
- mProjectText.addModifyListener(new ModifyListener() {
- @Override
- public void modifyText(ModifyEvent e) {
- handleProjectNameChange();
- }
- });
-
- Button browseButton = new Button(projectComposite, SWT.PUSH);
- browseButton.setText("Browse...");
- browseButton.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetSelected(SelectionEvent e) {
- IJavaProject javaProject = mProjectChooserHelper.chooseJavaProject(
- mProjectText.getText().trim(),
- "Please select a project to export");
-
- if (javaProject != null) {
- IProject project = javaProject.getProject();
-
- // set the new name in the text field. The modify listener will take
- // care of updating the status and the ExportWizard object.
- mProjectText.setText(project.getName());
- }
- }
- });
-
- setControl(mTopComposite);
- }
-
- @Override
- void onShow() {
- if (mFirstOnShow) {
- // get the project and init the ui
- IProject project = mWizard.getProject();
- if (project != null) {
- mProjectText.setText(project.getName());
- }
-
- mFirstOnShow = false;
- }
- }
-
- private void buildErrorUi(IProject project) {
- // Show description the first time
- setErrorMessage(null);
- setMessage(null);
- setPageComplete(true);
- mHasMessage = false;
-
- // composite parent for the warning/error
- GridLayout gl = null;
- mErrorComposite = new Composite(mTopComposite, SWT.NONE);
- mErrorComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- gl = new GridLayout(2, false);
- gl.marginHeight = gl.marginWidth = 0;
- gl.verticalSpacing *= 3; // more spacing than normal.
- mErrorComposite.setLayout(gl);
-
- if (project == null) {
- setErrorMessage("Select project to export.");
- mHasMessage = true;
- } else {
- try {
- if (project.hasNature(AdtConstants.NATURE_DEFAULT) == false) {
- addError(mErrorComposite, "Project is not an Android project.");
- } else {
- // check for errors
- if (ProjectHelper.hasError(project, true)) {
- addError(mErrorComposite, "Project has compilation error(s)");
- }
-
- // check the project output
- IFolder outputIFolder = BaseProjectHelper.getJavaOutputFolder(project);
- if (outputIFolder == null) {
- addError(mErrorComposite,
- "Unable to get the output folder of the project!");
- }
-
- // project is an android project, we check the debuggable attribute.
- ManifestData manifestData = AndroidManifestHelper.parseForData(project);
- Boolean debuggable = null;
- if (manifestData != null) {
- debuggable = manifestData.getDebuggable();
- }
-
- if (debuggable != null && debuggable == Boolean.TRUE) {
- addWarning(mErrorComposite,
- "The manifest 'debuggable' attribute is set to true.\n" +
- "You should set it to false for applications that you release to the public.\n\n" +
- "Applications with debuggable=true are compiled in debug mode always.");
- }
-
- // check for mapview stuff
- }
- } catch (CoreException e) {
- // unable to access nature
- addError(mErrorComposite, "Unable to get project nature");
- }
- }
-
- if (mHasMessage == false) {
- Label label = new Label(mErrorComposite, SWT.NONE);
- GridData gd = new GridData(GridData.FILL_HORIZONTAL);
- gd.horizontalSpan = 2;
- label.setLayoutData(gd);
- label.setText("No errors found. Click Next.");
- }
-
- mTopComposite.layout();
- }
-
- /**
- * Adds an error label to a {@link Composite} object.
- * @param parent the Composite parent.
- * @param message the error message.
- */
- private void addError(Composite parent, String message) {
- if (mError == null) {
- mError = IconFactory.getInstance().getIcon(IMG_ERROR);
- }
-
- new Label(parent, SWT.NONE).setImage(mError);
- Label label = new Label(parent, SWT.NONE);
- label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- label.setText(message);
-
- setErrorMessage("Application cannot be exported due to the error(s) below.");
- setPageComplete(false);
- mHasMessage = true;
- }
-
- /**
- * Adds a warning label to a {@link Composite} object.
- * @param parent the Composite parent.
- * @param message the warning message.
- */
- private void addWarning(Composite parent, String message) {
- if (mWarning == null) {
- mWarning = IconFactory.getInstance().getIcon(IMG_WARNING);
- }
-
- new Label(parent, SWT.NONE).setImage(mWarning);
- Label label = new Label(parent, SWT.NONE);
- label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- label.setText(message);
-
- mHasMessage = true;
- }
-
- /**
- * Checks the parameters for correctness, and update the error message and buttons.
- */
- private void handleProjectNameChange() {
- setPageComplete(false);
-
- if (mErrorComposite != null) {
- mErrorComposite.dispose();
- mErrorComposite = null;
- }
-
- // update the wizard with the new project
- mWizard.setProject(null);
-
- //test the project name first!
- String text = mProjectText.getText().trim();
- if (text.length() == 0) {
- setErrorMessage("Select project to export.");
- } else if (text.matches("[a-zA-Z0-9_ \\.-]+") == false) {
- setErrorMessage("Project name contains unsupported characters!");
- } else {
- IJavaProject[] projects = mProjectChooserHelper.getAndroidProjects(null);
- IProject found = null;
- for (IJavaProject javaProject : projects) {
- if (javaProject.getProject().getName().equals(text)) {
- found = javaProject.getProject();
- break;
- }
-
- }
-
- if (found != null) {
- setErrorMessage(null);
-
- // update the wizard with the new project
- mWizard.setProject(found);
-
- // now rebuild the error ui.
- buildErrorUi(found);
- } else {
- setErrorMessage(String.format("There is no android project named '%1$s'",
- text));
- }
- }
- }
-}