/* ****************************************************************************** * 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.editor; public class LoadWorkbookJob { // extends Job implements IEncryptionHandler { // // private String inputName; // // private WorkbookRef workbookRef; // // private IDialogPaneContainer dialogContainer; // // private Display display; // // private String password = null; // // private boolean firstTry = true; // // private IProgressMonitor progress; // // public LoadWorkbookJob(String inputName, WorkbookRef workbookRef, // IDialogPaneContainer dialogContainer, Display display) { // super(NLS.bind(MindMapMessages.LoadWorkbookJob_text, inputName)); // this.inputName = inputName; // this.workbookRef = workbookRef; // this.dialogContainer = dialogContainer; // this.display = display; // } // // @Override // protected IStatus run(IProgressMonitor monitor) { // this.progress = monitor; // monitor.beginTask(null, 100); // // if (workbookRef == null) // return Status.CANCEL_STATUS; // // IStorage storage = WorkbookRef.createStorage(); // boolean wrongPassword; // Throwable error = null; // do { // wrongPassword = false; // password = null; // storage.clear(); // // if (workbookRef == null) // return Status.CANCEL_STATUS; // // try { // workbookRef.loadWorkbook(storage, this, monitor); // } catch (Throwable e) { // CoreException coreEx = getCoreException(e); // if (coreEx != null) { // int errType = coreEx.getType(); // if (errType == Core.ERROR_CANCELLATION) { // return Status.CANCEL_STATUS; // } // if (errType == Core.ERROR_WRONG_PASSWORD) { // wrongPassword = true; // } // } // if (!wrongPassword) { // error = e; // Logger.log(e); // } // } // firstTry = false; // } while (wrongPassword); // // if (workbookRef.getWorkbook() == null) { // if (error == null) { // try { // throw new FileNotFoundException(inputName); // } catch (Throwable e) { // error = e; // } // } // return new Status(IStatus.WARNING, MindMapUI.PLUGIN_ID, // IStatus.ERROR, // MindMapMessages.LoadWorkbookJob_errorDialog_title, error); // } // // return Status.OK_STATUS; // } // // private CoreException getCoreException(Throwable e) { // if (e == null) // return null; // if (e instanceof CoreException) // return (CoreException) e; // return getCoreException(e.getCause()); // } // // public String retrievePassword() throws CoreException { // if (password == null) { // boolean canceled = !doRetrievePassword(); // if (canceled) { // throw new CoreException(Core.ERROR_CANCELLATION); // } // } // return password; // } // // @Override // protected void canceling() { // super.canceling(); // display.asyncExec(new Runnable() { // public void run() { // dialogContainer.close(IDialogPane.CANCEL); // } // }); // } // // private boolean doRetrievePassword() { // final boolean[] ret = new boolean[1]; // display.syncExec(new Runnable() { // public void run() { // if (progress != null) { // progress.worked(10); // progress.subTask(MindMapMessages.LoadWorkbookJob_retrive_password_message); // } // // String message; // if (firstTry) { // message = MindMapMessages.LoadWorkbookJob_firstTry_message; // } else { // message = MindMapMessages.LoadWorkbookJob_moreTry_message; // } // DecryptionDialogPane dialog = new DecryptionDialogPane(); // dialog.setContent(message, !firstTry); // int code = dialogContainer.open(dialog); // if (code == DecryptionDialogPane.OK) { // password = dialog.getPassword(); // ret[0] = true; // } else { // cancel(); // ret[0] = false; // } // } // }); // return ret[0]; // } }