blob: 5bbf449d4dcc122049ec1423503bae9f9f3f7a64 [file] [log] [blame]
/*
* 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) {
}
}