package hirondelle.stocks.file;
import java.awt.event.*;
import javax.swing.*;
import java.util.logging.*;
import hirondelle.stocks.portfolio.CurrentPortfolio;
import hirondelle.stocks.portfolio.PortfolioDAO;
import hirondelle.stocks.util.Args;
import hirondelle.stocks.util.ui.UiUtil;
import hirondelle.stocks.portfolio.EditSaver;
import hirondelle.stocks.util.Util;
public final class FileExitAction extends AbstractAction {
public FileExitAction(CurrentPortfolio aCurrentPortfolio, EditSaver aEditSaver) {
super("Exit", UiUtil.getEmptyIcon());
Args.checkForNull(aCurrentPortfolio);
Args.checkForNull(aEditSaver);
fEditSaver = aEditSaver;
fCurrentPortfolio = aCurrentPortfolio;
putValue(SHORT_DESCRIPTION, "Close the application");
putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_X) );
}
@Override public void actionPerformed(ActionEvent event) {
fLogger.info("Exiting the application.");
fEditSaver.save(fCurrentPortfolio, event);
PortfolioDAO dao = new PortfolioDAO();
dao.saveAsDefault( fCurrentPortfolio.getPortfolio() );
System.exit(0);
}
private CurrentPortfolio fCurrentPortfolio;
private EditSaver fEditSaver;
private static final Logger fLogger = Util.getLogger(FileExitAction.class);
}