/**
* AstrosoftAction.java
*
* Created on August 6, 2005, 6:04 PM
*
* @author Rajasekar.
*/
package app.astrosoft.ui;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import javax.swing.KeyStroke;
import app.astrosoft.consts.Command;
import app.astrosoft.consts.Ayanamsa;
import app.astrosoft.consts.Varga;
import app.astrosoft.service.NumeroNameService;
import app.astrosoft.test.NumeroNameTest;
import app.astrosoft.ui.view.ViewManager.View;
import app.astrosoft.consts.Language;
import app.astrosoft.pref.AstrosoftPref.Preference;
import app.astrosoft.ui.util.UIUtil;
import app.astrosoft.util.AstrosoftFileFilter;
import app.astrosoft.util.FileOps;
import app.astrosoft.util.FileOps.FileDialogMode;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.util.logging.Logger;
public class AstrosoftAction extends AbstractAction {
private static final Logger log = Logger.getLogger(AstrosoftAction.class.getName());
AstrosoftActionHandler handler;
public AstrosoftAction(Command name,AstrosoftActionHandler handler) {
super(name.action(), UIUtil.createImageIcon(name.action()));
this.handler = handler;
putValue(SHORT_DESCRIPTION, name.action());
putValue(ACTION_COMMAND_KEY, name.name());
if (name.mnemonic() != -1) {
putValue(MNEMONIC_KEY, name.mnemonic());
}
if (name.key() != null){
putValue(ACCELERATOR_KEY, name.key());
}
}
public void actionPerformed(ActionEvent e) {
Command cmd = Command.valueOf(e.getActionCommand());
if (cmd.equals(Command.NEW)) {
handler.newHoroscope();
} else if (cmd.equals(Command.OPEN)) {
handler.openHoroscope();
}
else if (cmd.equals(Command.OPEN_COMPACTIBILITY)) {
handler.openCompactibility();
}
else if (cmd.equals(Command.SAVE)) {
handler.saveHoroscope();
}
else if (cmd.equals(Command.SAVE_COMPACTIBILITY)) {
handler.saveCompactibility();
} else if (cmd.equals(Command.PRINT)) {
handler.printHoroscope();
} else if (cmd.equals(Command.EXIT)) {
System.exit(0);
} else if (cmd.equals(Command.EDIT_CHART)) {
handler.editHoroscope();
} else if (cmd.equals(Command.EDIT_COMPACTIBILITY)) {
handler.editCompactibility();
}else if (View.commands().contains(cmd)){
handler.viewChanged(View.valueOf(cmd.name()));
}
else if (cmd.equals(Command.AY_KM)) {
handler.optionChanged(Preference.Ayanamsa, Ayanamsa.KRISHNAMURTHI);
} else if (cmd.equals(Command.AY_LAH)) {
handler.optionChanged(Preference.Ayanamsa, Ayanamsa.LAHARI);
} else if (cmd.equals(Command.AY_RAM)) {
handler.optionChanged(Preference.Ayanamsa, Ayanamsa.RAMAN);
} else if (cmd.equals(Command.LANG_EN)) {
handler.optionChanged(Preference.Language, Language.ENGLISH);
} else if (cmd.equals(Command.LANG_TA)) {
handler.optionChanged(Preference.Language, Language.TAMIL);
} else if (Command.optionMenuItems().contains(cmd)) {
handler.optionChanged(Preference.valueOf(cmd.name()));
} else if (cmd.equals(Command.COMPUTE_NUMBER)){
log.fine("COMPUTE_NUMBER menu clicked");
handler.computeNumeroNumber();
} else if(cmd.equals(Command.EXPORT_NAME_DB)){
log.fine("EXPORT_NAME_DB");
String selectedFile = FileOps.openFileDialog(null,FileDialogMode.SAVE, AstrosoftFileFilter.ALL_FILES);
if (selectedFile != null){
handler.setWaitCursor();
NumeroNameService.exportNames(selectedFile);
handler.setDefaultCursor();
}
else{
log.warning("No file selected");
}
}else if(cmd.equals(Command.IMPORT_NAME_DB)){
log.fine("IMPORT_NAME_DB");
String selectedFile = FileOps.openFileDialog(null,FileDialogMode.OPEN, AstrosoftFileFilter.ALL_FILES);
if (selectedFile != null) {
handler.setWaitCursor();
NumeroNameService.importNamesFromCSV(selectedFile);
handler.setDefaultCursor();
}
else{
log.warning("No file selected");
}
}else if(cmd.equals(Command.IMPORT_NAME)){
log.fine("IMPORT_NAME");
String selectedFile = FileOps.openFileDialog(null,FileDialogMode.OPEN, AstrosoftFileFilter.ALL_FILES);
if (selectedFile != null) {
handler.setWaitCursor();
NumeroNameService.importNamesFromList(selectedFile);
handler.setDefaultCursor();
}
else{
log.warning("No file selected");
}
}else if(cmd.equals(Command.EXPORT_HOROSCOPE_TO_PDF)){
log.fine("EXPORT_HOROSCOPE_TO_PDF menu clicked");
handler.exportHoroscope2Pdf();
}else if(cmd.equals(Command.EXPORT_COMPACTIBILITY_TO_PDF)){
log.fine("EXPORT_COMPACTIBILITY_TO_PDF menu clicked");
handler.exportCompactibility2Pdf();
}
}
}