/* ****************************************************************************** * 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.cathy.internal; import java.io.File; import java.util.ArrayList; import java.util.List; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.ui.IWorkbench; import org.xmind.cathy.internal.jobs.OpenFilesJob; /** * @author Frank Shaka * */ public class OpenDocumentHandler implements Listener { private List<String> filesToOpen = new ArrayList<String>(1); /* * (non-Javadoc) * * @see * org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets. * Event) */ public void handleEvent(Event event) { String filepath = event.text; File file = new File(filepath); try { filepath = file.getCanonicalPath(); } catch (Exception e) { filepath = file.getAbsolutePath(); } filesToOpen.add(filepath); } public void checkAndOpenFiles(IWorkbench workbench) { if (filesToOpen.isEmpty()) return; List<String> files = new ArrayList<String>(filesToOpen); filesToOpen.clear(); OpenFilesJob job = new OpenFilesJob(workbench, WorkbenchMessages.CheckOpenFilesJob_CheckFiles_name, files); job.schedule(); } }