package com.jsonde.gui.action;
import com.jsonde.client.Client;
import com.jsonde.gui.ApplicationUserInterface;
import com.jsonde.gui.Main;
import com.jsonde.gui.configuration.SessionConfiguration;
import com.jsonde.gui.configuration.SessionConfigurationException;
import com.jsonde.gui.sdedit.SdEditUIAdapter;
import net.sf.sdedit.icons.Icons;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import java.awt.event.ActionEvent;
import java.io.File;
public class OpenProjectAction extends AbstractAction {
private ApplicationUserInterface applicationUserInterface;
public OpenProjectAction(SdEditUIAdapter sdEditUIAdapter) {
this.applicationUserInterface = sdEditUIAdapter;
}
{
putValue(Action.SMALL_ICON,
new ImageIcon(
Icons.class.getResource("open.png")
));
putValue(Action.NAME, "Open Project");
putValue(Action.SHORT_DESCRIPTION, "Open existing jSonde Project");
}
public void actionPerformed(ActionEvent e) {
JFileChooser openDialog = new JFileChooser(
System.getProperty("user.home") +
System.getProperty("file.separator") +
"jSondeProjects");
openDialog.addChoosableFileFilter(new FileFilter() {
@Override
public boolean accept(File f) {
return f.getName().endsWith(".jss");
}
@Override
public String getDescription() {
return "jSonde Session Files";
}
});
if (JFileChooser.APPROVE_OPTION == openDialog.showOpenDialog(applicationUserInterface.getFrame())) {
try {
SessionConfiguration sessionConfiguration = SessionConfiguration.loadSessionConfiguration(openDialog.getSelectedFile());
Client client = new Client(sessionConfiguration.getDatabaseFileName());
applicationUserInterface.setClient(client);
client.loadMethodCalls();
} catch (SessionConfigurationException e1) {
Main.getInstance().processException(e1);
}
}
/*String projectName = JOptionPane.showInputDialog("Enter project name");
Client client = new Client(FileUtils.USER_HOME + FileUtils.FILE_SEPARATOR + "jSondeProjects" + FileUtils.FILE_SEPARATOR + projectName);
applicationUserInterface.setClient(client);
client.loadMethodCalls();*/
}
}