| /* |
| * 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 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; |
| |
| class UpdateToolsPage extends WizardPage implements SelectionListener { |
| private Button mInstallButton; |
| UpdateToolsPage() { |
| super("update"); |
| setTitle("Update Tools"); |
| validatePage(); |
| } |
| |
| @Override |
| public void createControl(Composite parent) { |
| Composite container = new Composite(parent, SWT.NULL); |
| setControl(container); |
| container.setLayout(new GridLayout(1, false)); |
| |
| Label label = new Label(container, SWT.WRAP); |
| GridData layoutData = new GridData(SWT.LEFT, SWT.TOP, true, true, 1, 1); |
| layoutData.widthHint = NewTemplatePage.WIZARD_PAGE_WIDTH - 50; |
| label.setLayoutData(layoutData); |
| label.setText( |
| "Your tools installation appears to be out of date (or not yet installed).\n" + |
| "\n" + |
| "This wizard depends on templates distributed with the Android SDK Tools.\n" + |
| "\n" + |
| "Please update the tools first (via Window > Android SDK Manager, or by " + |
| "using the \"android\" command in a terminal window). Note that on Windows " + |
| "you may need to restart the IDE, since there are some known problems where " + |
| "Windows locks the files held open by the running IDE, so the updater is " + |
| "unable to delete them in order to upgrade them."); |
| |
| mInstallButton = new Button(container, SWT.NONE); |
| mInstallButton.setText("Check Again"); |
| mInstallButton.addSelectionListener(this); |
| } |
| |
| @Override |
| public boolean isPageComplete() { |
| return isUpToDate(); |
| } |
| |
| static boolean isUpToDate() { |
| return TemplateManager.getTemplateRootFolder() != null; |
| } |
| |
| private void validatePage() { |
| boolean ok = isUpToDate(); |
| setPageComplete(ok); |
| if (ok) { |
| setErrorMessage(null); |
| setMessage(null); |
| } else { |
| setErrorMessage("The tools need to be updated via the SDK Manager"); |
| } |
| } |
| |
| // ---- Implements SelectionListener ---- |
| |
| @Override |
| public void widgetSelected(SelectionEvent e) { |
| if (e.getSource() == mInstallButton) { |
| validatePage(); |
| } |
| } |
| |
| @Override |
| public void widgetDefaultSelected(SelectionEvent e) { |
| } |
| } |