package org.xmind.ui.internal.imports.novamind;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.FileDialog;
import org.xmind.core.IWorkbook;
import org.xmind.ui.internal.imports.ImportMessages;
import org.xmind.ui.internal.imports.ImportPlugin;
import org.xmind.ui.wizards.AbstractMindMapImportPage;
import org.xmind.ui.wizards.AbstractMindMapImportWizard;
import org.xmind.ui.wizards.MindMapImporter;
/**
* @author lyn
*/
public class NovaMindImportWizard extends AbstractMindMapImportWizard {
private static final String SETTINGS_ID = "org.xmind.ui.imports.NovaMind"; //$NON-NLS-1$
private static final String PAGE_ID = "importNovaMind"; //$NON-NLS-1$
private static final String EXT = "*" + NMConstants.FILE_EXTENSION; //$NON-NLS-1$
private class NovaMindImportPage extends AbstractMindMapImportPage {
protected NovaMindImportPage() {
super(PAGE_ID, ImportMessages.NovaMindImportPage_title);
}
public void createControl(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
layout.verticalSpacing = 15;
composite.setLayout(layout);
setControl(composite);
Control fileGroup = createFileControls(composite);
fileGroup.setLayoutData(
new GridData(SWT.FILL, SWT.FILL, true, false));
Control destinationControl = createDestinationControl(composite);
destinationControl.setLayoutData(
new GridData(SWT.FILL, SWT.FILL, true, true));
updateStatus();
parent.getDisplay().asyncExec(new Runnable() {
public void run() {
openBrowseDialog();
}
});
}
protected FileDialog createBrowseDialog() {
FileDialog dialog = super.createBrowseDialog();
dialog.setFilterExtensions(new String[] { EXT });
dialog.setFilterNames(new String[] { NLS.bind(
ImportMessages.NovaMindImportPage_FileDialog_Filter_name,
EXT) });
return dialog;
}
}
private NovaMindImportPage page;
public NovaMindImportWizard() {
IDialogSettings settings = ImportPlugin.getDefault().getDialogSettings()
.getSection(SETTINGS_ID);
if (settings == null) {
settings = ImportPlugin.getDefault().getDialogSettings()
.addNewSection(SETTINGS_ID);
}
setDialogSettings(settings);
setWindowTitle(ImportMessages.NovaMindImportWizard_windowTitle);
}
public void addPages() {
addPage(page = new NovaMindImportPage());
}
protected MindMapImporter createImporter(String sourcePath,
IWorkbook targetWorkbook) {
return new NovaMindImporter(sourcePath, targetWorkbook);
}
protected String getApplicationId() {
return "NovaMind"; //$NON-NLS-1$
}
protected void handleExportException(Throwable e) {
super.handleExportException(e);
page.setErrorMessage(e.getLocalizedMessage());
}
}