blob: bbfadf85557ad1826266d0cac09135193b0ea87f [file] [log] [blame]
/*
* Copyright (C) 2013 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.exportgradle;
import com.android.ide.eclipse.adt.internal.wizards.exportgradle.ExportStatus.FileStatus;
import com.google.common.collect.Multimap;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import java.io.File;
import java.util.Collection;
/**
* Final page to review the result of the export.
*/
public class FinalPage extends WizardPage {
private final ProjectSetupBuilder mBuilder;
private ExportStatus mStatus;
private Text mText;
public FinalPage(ProjectSetupBuilder builder) {
super("FinalPage"); //$NON-NLS-1$
mBuilder = builder;
setPageComplete(true);
setTitle(ExportMessages.PageTitle);
setDescription(ExportMessages.PageDescription);
}
@Override
public void createControl(Composite parent) {
initializeDialogUnits(parent);
mText = new Text(parent, SWT.MULTI | SWT.READ_ONLY);
mText.setLayoutData(new GridData(GridData.FILL_BOTH
| GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
setControl(mText);
Dialog.applyDialogFont(parent);
}
@Override
public void setVisible(boolean visible) {
super.setVisible(visible);
if (visible) {
mStatus = mBuilder.getStatus();
mBuilder.setCanFinish(!mStatus.hasError());
mBuilder.setCanGenerate(false);
StringBuilder sb = new StringBuilder();
if (mStatus.hasError()) {
sb.append("There was an error!").append("\n\n");
String errorMsg = mStatus.getErrorMessage();
if (errorMsg != null) {
sb.append(errorMsg);
}
Multimap<FileStatus, File> fileStatusMap = mStatus.getFileStatus();
Collection<File> files = fileStatusMap.values();
if (files != null) {
sb.append("\n\n").append("Error on files:").append('\n');
for (File file : files) {
sb.append("\n").append(file.getAbsolutePath());
}
}
} else {
sb.append("Export successful.\n\n");
int count = mBuilder.getModuleCount();
if (count > 1) {
sb.append(String.format("Exported %s modules", count)).append('\n');
sb.append(String.format(
"Root folder: %s", mBuilder.getCommonRoot().toOSString()));
} else {
sb.append("Exported project: ").append(mBuilder.getCommonRoot().toOSString());
}
sb.append("\n\n").append("Choose 'Import Non-Android Studio project' in Android Studio").append('\n');
sb.append("and select the following file:").append("\n\t");
File bGradle = new File(
mBuilder.getCommonRoot().toFile(), BuildFileCreator.BUILD_FILE);
sb.append(bGradle.getAbsolutePath());
sb.append("\n\n").append("Do NOT import the Eclipse project itself!");
}
mText.setText(sb.toString());
}
}
}