/* * Copyright (c) 2006-2012 XMind Ltd. and others. * * This file is a part of XMind 3. XMind releases 3 and above are dual-licensed * under the Eclipse Public License (EPL), which is available at * http://www.eclipse.org/legal/epl-v10.html and the GNU Lesser General Public * License (LGPL), which is available at http://www.gnu.org/licenses/lgpl.html * See http://www.xmind.net/license.html for details. * * Contributors: XMind Ltd. - initial API and implementation */ package org.xmind.ui.internal.wizards; 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.dialogs.IDialogConstants; import org.xmind.ui.internal.MindMapMessages; import org.xmind.ui.internal.MindMapUIPlugin; import org.xmind.ui.mindmap.MindMapUI; import org.xmind.ui.wizards.AbstractMindMapImportPage; import org.xmind.ui.wizards.AbstractMindMapImportWizard; import org.xmind.ui.wizards.MindMapImporter; /** * @deprecated * @author Frank Shaka */ public class WorkbookImportWizard extends AbstractMindMapImportWizard { private static final String SETTINGS_ID = "org.xmind.ui.imports.workbook"; //$NON-NLS-1$ private static final String PAGE_ID = "importWorkbook"; //$NON-NLS-1$ private class WorkbookImportPage extends AbstractMindMapImportPage { protected WorkbookImportPage() { super(PAGE_ID, MindMapMessages.WorkbookImportWizard_ImportXmindMap_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(); if (getCastedWizard().hasTargetWorkbook()) { parent.getDisplay().asyncExec(new Runnable() { public void run() { openBrowseDialog(); } }); } else { disableControls(fileGroup); setMessage( MindMapMessages.WorkbookImportWizard_NoTargetWorkbookMessage, WARNING); } } private void disableControls(Control control) { control.setEnabled(false); if (control instanceof Composite) { Control[] controls = ((Composite) control).getChildren(); for (int i = 0; i < controls.length; i++) { disableControls(controls[i]); } } } protected FileDialog createBrowseDialog() { FileDialog dialog = super.createBrowseDialog(); dialog.setFilterExtensions(new String[] { "*" //$NON-NLS-1$ + MindMapUI.FILE_EXT_XMIND }); dialog.setFilterNames(new String[] { NLS.bind("{0} (*{1})", //$NON-NLS-1$ IDialogConstants.FILE_DIALOG_FILTER_WORKBOOK, MindMapUI.FILE_EXT_XMIND) }); return dialog; } @Override protected boolean isPageCompletable() { return super.isPageCompletable() && getCastedWizard().hasTargetWorkbook(); } } private WorkbookImportPage page; public WorkbookImportWizard() { IDialogSettings settings = MindMapUIPlugin.getDefault() .getDialogSettings().getSection(SETTINGS_ID); if (settings == null) { settings = MindMapUIPlugin.getDefault().getDialogSettings() .addNewSection(SETTINGS_ID); } setDialogSettings(settings); setWindowTitle( MindMapMessages.WorkbookImportWizard_ImportWorkbook_Title); } public void addPages() { addPage(page = new WorkbookImportPage()); } protected MindMapImporter createImporter(String sourcePath, IWorkbook targetWorkbook) { return new WorkbookImporter(sourcePath, targetWorkbook); } protected String getApplicationId() { return "XMind Workbook"; //$NON-NLS-1$ } protected void handleExportException(Throwable e) { super.handleExportException(e); page.setErrorMessage(e.getLocalizedMessage()); } @Override public boolean isToNewWorkbook() { return false; } }