diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/InstallDependencyPage.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/InstallDependencyPage.java | 298 |
1 files changed, 0 insertions, 298 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/InstallDependencyPage.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/InstallDependencyPage.java deleted file mode 100644 index d806e7970..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/templates/InstallDependencyPage.java +++ /dev/null @@ -1,298 +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 com.android.ide.eclipse.adt.AdtPlugin; -import com.android.ide.eclipse.adt.internal.actions.AddSupportJarAction; -import com.android.utils.Pair; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jface.dialogs.IMessageProvider; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.wizard.IWizard; -import org.eclipse.jface.wizard.IWizardPage; -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.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.Link; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.browser.IWebBrowser; - -import java.io.File; -import java.net.URL; -import java.util.List; - -class InstallDependencyPage extends WizardPage implements SelectionListener { - /** - * The compatibility library. This is the only library the templates - * currently support. The appearance of any other dependency in this - * template will be flagged as a validation error (and the user encouraged - * to upgrade to a newer ADT - */ - static final String SUPPORT_LIBRARY_NAME = "android-support-v4"; //$NON-NLS-1$ - - /** URL containing more info */ - private static final String URL = - "http://developer.android.com/tools/extras/support-library.html"; //$NON-NLS-1$ - - private Button mCheckButton; - private Button mInstallButton; - private Link mLink; - private TemplateMetadata mTemplate; - - InstallDependencyPage() { - super("dependency"); //$NON-NLS-1$ - setTitle("Install Dependencies"); - } - - void setTemplate(TemplateMetadata template) { - if (template != mTemplate) { - mTemplate = template; - if (getControl() != null) { - validatePage(); - } - } - } - - @Override - public void setVisible(boolean visible) { - super.setVisible(visible); - if (visible) { - updateVersionLabels(); - validatePage(); - } - } - - @Override - public void createControl(Composite parent) { - Composite container = new Composite(parent, SWT.NULL); - setControl(container); - container.setLayout(new GridLayout(2, false)); - // Remaining contents are created lazily, since this page is always added to - // the page list, but typically not shown - - Label dependLabel = new Label(container, SWT.WRAP); - GridData gd_dependLabel = new GridData(SWT.LEFT, SWT.TOP, true, false, 2, 1); - gd_dependLabel.widthHint = NewTemplatePage.WIZARD_PAGE_WIDTH - 50; - dependLabel.setLayoutData(gd_dependLabel); - dependLabel.setText("This template depends on the Android Support library, which is " + - "either not installed, or the template depends on a more recent version than " + - "the one you have installed."); - - mLink = new Link(container, SWT.NONE); - mLink.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 2, 1)); - mLink.setText("<a href=\"" + URL + "\">" + URL + "</a>"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - mLink.addSelectionListener(this); - - Label lblNewLabel_1 = new Label(container, SWT.NONE); - lblNewLabel_1.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1)); - - requiredLabel = new Label(container, SWT.NONE); - requiredLabel.setText("Required version:"); - - mRequiredVersion = new Label(container, SWT.NONE); - mRequiredVersion.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); - - installedLabel = new Label(container, SWT.NONE); - installedLabel.setText("Installed version:"); - - mInstalledVersion = new Label(container, SWT.NONE); - mInstalledVersion.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); - - Label lblNewLabel = new Label(container, SWT.NONE); - lblNewLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1)); - - Label descLabel = new Label(container, SWT.WRAP); - GridData gd_descLabel = new GridData(SWT.LEFT, SWT.TOP, true, false, 2, 1); - gd_descLabel.widthHint = 550; - descLabel.setLayoutData(gd_descLabel); - descLabel.setText( - "You can install or upgrade it by clicking the Install button below, or " + - "alternatively, you can install it outside of Eclipse with the SDK Manager, " + - "then click on \"Check Again\" to proceed."); - - mInstallButton = new Button(container, SWT.NONE); - mInstallButton.setText("Install/Upgrade"); - mInstallButton.addSelectionListener(this); - - mCheckButton = new Button(container, SWT.NONE); - mCheckButton.setText("Check Again"); - mCheckButton.addSelectionListener(this); - - mInstallButton.setFocus(); - } - - private void showNextPage() { - validatePage(); - if (isPageComplete()) { - // Finish button will be enabled now - mInstallButton.setEnabled(false); - mCheckButton.setEnabled(false); - - IWizard wizard = getWizard(); - IWizardPage next = wizard.getNextPage(this); - if (next != null) { - wizard.getContainer().showPage(next); - } - } - } - - @Override - public boolean isPageComplete() { - if (mTemplate == null) { - return true; - } - - return super.isPageComplete() && isInstalled(); - } - - private boolean isInstalled() { - return isInstalled(mTemplate.getDependencies()); - } - - static String sCachedName; - static int sCachedVersion; - private Label requiredLabel; - private Label installedLabel; - private Label mRequiredVersion; - private Label mInstalledVersion; - - public static boolean isInstalled(List<Pair<String, Integer>> dependencies) { - for (Pair<String, Integer> dependency : dependencies) { - String name = dependency.getFirst(); - int required = dependency.getSecond(); - - int installed = -1; - if (SUPPORT_LIBRARY_NAME.equals(name)) { - installed = getInstalledSupportLibVersion(); - } - - if (installed == -1) { - return false; - } - if (required > installed) { - return false; - } - } - - return true; - } - - private static int getInstalledSupportLibVersion() { - if (SUPPORT_LIBRARY_NAME.equals(sCachedName)) { - return sCachedVersion; - } else { - int version = AddSupportJarAction.getInstalledRevision(); - sCachedName = SUPPORT_LIBRARY_NAME; - sCachedVersion = version; - return version; - } - } - - private void updateVersionLabels() { - int version = getInstalledSupportLibVersion(); - if (version == -1) { - mInstalledVersion.setText("Not installed"); - } else { - mInstalledVersion.setText(Integer.toString(version)); - } - - if (mTemplate != null) { - for (Pair<String, Integer> dependency : mTemplate.getDependencies()) { - String name = dependency.getFirst(); - if (name.equals(SUPPORT_LIBRARY_NAME)) { - int required = dependency.getSecond(); - mRequiredVersion.setText(Integer.toString(required)); - break; - } - } - } - } - - private void validatePage() { - if (mTemplate == null) { - return; - } - - IStatus status = null; - - List<Pair<String, Integer>> dependencies = mTemplate.getDependencies(); - if (dependencies.size() > 1 || dependencies.size() == 1 - && !dependencies.get(0).getFirst().equals(SUPPORT_LIBRARY_NAME)) { - status = new Status(IStatus.WARNING, AdtPlugin.PLUGIN_ID, - "Unsupported template dependency: Upgrade your Android Eclipse plugin"); - } - - 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); - } - } - - // ---- Implements SelectionListener ---- - - @Override - public void widgetSelected(SelectionEvent e) { - Object source = e.getSource(); - if (source == mCheckButton) { - sCachedName = null; - if (isInstalled()) { - showNextPage(); - } - updateVersionLabels(); - } else if (source == mInstallButton) { - sCachedName = null; - for (Pair<String, Integer> dependency : mTemplate.getDependencies()) { - String name = dependency.getFirst(); - if (SUPPORT_LIBRARY_NAME.equals(name)) { - int version = dependency.getSecond(); - File installed = AddSupportJarAction.installSupport(version); - if (installed != null) { - showNextPage(); - } - updateVersionLabels(); - } - } - } else if (source == mLink) { - try { - IWorkbench workbench = PlatformUI.getWorkbench(); - IWebBrowser browser = workbench.getBrowserSupport().getExternalBrowser(); - browser.openURL(new URL(URL)); - } catch (Exception ex) { - String message = String.format("Could not open browser. Vist\n%1$s\ninstead.", - URL); - MessageDialog.openError(getShell(), "Browser Error", message); - } - } - } - - @Override - public void widgetDefaultSelected(SelectionEvent e) { - } -} |