/**
*
*/
package de.hannesniederhausen.storynotes.ui.internal.handler;
import javax.inject.Inject;
import javax.inject.Named;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.IPreferencesService;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.services.IServiceConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Shell;
import org.osgi.service.prefs.Preferences;
import de.hannesniederhausen.storynotes.model.service.IModelProviderService;
/**
* @author Hannes Niederhausen
*
*/
public class OpenHandler {
@Inject
private IModelProviderService modelProviderService;
@Inject
@Named(IServiceConstants.ACTIVE_SHELL)
private Shell shell;
@Inject
IPreferencesService preferencesService;
@Execute
public void execute() {
FileDialog dlg = new FileDialog(shell, SWT.OPEN);
dlg.setFilterExtensions(new String[] { "*.stn" });
dlg.setText("Open File...");
IEclipsePreferences root = preferencesService.getRootNode();
Preferences storynotesprefs = root.node("/storynotes");
String lastPath = storynotesprefs.get("lastpath", "./.");
dlg.setFilterPath(lastPath);
String filename = dlg.open();
if (filename != null) {
modelProviderService.loadFile(filename);
storynotesprefs.put("lastpath", filename.substring(0, filename.lastIndexOf(java.io.File.separator))+"/.");
}
}
}