package de.sebastianbenz.task.app.actions;
import java.io.File;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
public class OpenFileAction extends Action implements IWorkbenchWindowActionDelegate {
private IWorkbenchWindow fWindow;
public OpenFileAction() {
setEnabled(true);
}
public void dispose() {
fWindow= null;
}
public void init(IWorkbenchWindow window) {
fWindow= window;
}
public void run(IAction action) {
run();
}
public void selectionChanged(IAction action, ISelection selection) {
}
private File queryFile() {
FileDialog dialog= new FileDialog(fWindow.getShell(), SWT.OPEN);
dialog.setText("Open File"); //$NON-NLS-1$
dialog.setFilterExtensions(new String[]{"*.todo;*.taskpaper"});
String path= dialog.open();
if (path != null && path.length() > 0)
return new File(path);
return null;
}
/*
* @see org.eclipse.jface.action.Action#run()
*/
public void run() {
File file= queryFile();
if (file != null) {
EditorOpener.open(fWindow, file.toString());
}
}
}