/**
* Command.java
*
* Created on August 04, 2005, 7:16 PM
*
* @author E. Rajasekar
*/
package app.astrosoft.consts;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.util.EnumSet;
import javax.swing.KeyStroke;
import app.astrosoft.ui.view.ViewManager.View;
public enum Command {
NEW ("New",KeyEvent.VK_N, KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK)),
OPEN ("Open",KeyEvent.VK_O, KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK )),
OPEN_COMPACTIBILITY ("Open Compactibility", KeyStroke.getKeyStroke(KeyEvent.VK_O, ActionEvent.CTRL_MASK + ActionEvent.SHIFT_MASK)),
SAVE ("Save",KeyEvent.VK_S,KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK)),
SAVE_COMPACTIBILITY("Save Compactibility", KeyEvent.VK_C,KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK + ActionEvent.SHIFT_MASK)),
PRINT ("Print",KeyEvent.VK_P,KeyStroke.getKeyStroke(KeyEvent.VK_P, ActionEvent.CTRL_MASK)),
EXIT ("Exit",KeyEvent.VK_X,KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK)),
EDIT_CHART ("Chart Data",KeyEvent.VK_C),
EDIT_COMPACTIBILITY ("Compactibility",KeyEvent.VK_M),
CHART_VIEW (View.CHART_VIEW.displayVal(),KeyEvent.VK_C),
DASAS_VIEW (View.DASAS_VIEW.displayVal(),KeyEvent.VK_D),
PLANET_POS_VIEW (View.PLANET_POS_VIEW.displayVal(),KeyEvent.VK_P),
BHAVA_POS_VIEW (View.BHAVA_POS_VIEW.displayVal(),KeyEvent.VK_B),
DIV_CHART_VIEW (View.DIV_CHART_VIEW.displayVal(),KeyEvent.VK_I),
ASHTAVARGA_VIEW (View.ASHTAVARGA_VIEW.displayVal(),KeyEvent.VK_A),
SHADBALA_VIEW (View.SHADBALA_VIEW.displayVal(),KeyEvent.VK_S),
YOGA_COMBINATIONS_VIEW (View.YOGA_COMBINATIONS_VIEW.displayVal(),KeyEvent.VK_Y),
EPHEMERIS_VIEW (View.EPHEMERIS_VIEW.displayVal(),KeyEvent.VK_E),
PANCHANG_VIEW (View.PANCHANG_VIEW.displayVal(),KeyEvent.VK_G),
COMPACTIBILITY_VIEW (View.COMPACTIBILITY_VIEW.displayVal(),KeyEvent.VK_M),
MUHURTHA_VIEW (View.MUHURTHA_VIEW.displayVal()),
//
//CMP_COMP ("Marriage Compactibility",KeyEvent.VK_M),
//CMP_MUHURTHA ("Muhurtha"),
AY_LAH (Ayanamsa.LAHARI.ayaName()),
AY_RAM (Ayanamsa.RAMAN.ayaName()),
AY_KM (Ayanamsa.KRISHNAMURTHI.ayaName()),
LANG_EN (Language.ENGLISH.name()),
LANG_TA (Language.TAMIL.name()),
Place (DisplayStrings.DEF_LOC_STR),
EphCalcTime(DisplayStrings.EPH_TIME_STR),
PanCalcTime(DisplayStrings.PAN_TIME_STR),
//Numerlogy Commands
FIND_NAME_VIEW(View.FIND_NAME_VIEW.displayVal()),
COMPUTE_NUMBER(DisplayStrings.COMPUTE_NUMBER_STR),
EXPORT_NAME_DB(DisplayStrings.EXPORT_NAME_DB_STR),
IMPORT_NAME_DB(DisplayStrings.IMPORT_NAME_DB_STR),
IMPORT_NAME(DisplayStrings.IMPORT_NAME_STR),
EXPORT_HOROSCOPE_TO_PDF(DisplayStrings.EXPORT_HOROSCOPE_TO_PDF_STR),
EXPORT_COMPACTIBILITY_TO_PDF(DisplayStrings.EXPORT_COMPACTIBILITY_TO_PDF_STR)
;
private String action;
private int mnemonic = -1;
private KeyStroke key = null;
private Command(Enum action){
this(action.toString());
}
private Command(String action) {
this.action = action;
}
private Command(String action, int mnemonic) {
this.action = action;
this.mnemonic = mnemonic;
}
private Command(String action, int mnemonic, KeyStroke key) {
this.action = action;
this.mnemonic = mnemonic;
this.key = key;
}
private Command(String action, KeyStroke key) {
this.action = action;
this.key = key;
}
public String action(){
return action;
}
public int mnemonic(){
return mnemonic;
}
public KeyStroke key(){
return key;
}
public static EnumSet<Command> ayanamsaOptions(){
return EnumSet.range(AY_LAH, AY_KM);
}
public static EnumSet<Command> langOptions(){
return EnumSet.range(LANG_EN, LANG_TA);
}
public static EnumSet<Command> fileMenuItems(){
return EnumSet.range(NEW, EXIT);
}
public static EnumSet<Command> editMenuItems(){
return EnumSet.range(EDIT_CHART, EDIT_COMPACTIBILITY);
}
public static EnumSet<Command> viewMenuItems(){
return EnumSet.range(CHART_VIEW, PANCHANG_VIEW);
}
public static EnumSet<Command> computeMenuItems(){
return EnumSet.range(COMPACTIBILITY_VIEW, MUHURTHA_VIEW);
}
public static EnumSet<Command> optionMenuItems(){
return EnumSet.range(Place, PanCalcTime);
}
public static EnumSet<Command> numeroMenuItems(){
return EnumSet.range(FIND_NAME_VIEW, IMPORT_NAME);
}
public static EnumSet<Command> exportMenuItems(){
return EnumSet.range(EXPORT_HOROSCOPE_TO_PDF, EXPORT_COMPACTIBILITY_TO_PDF);
}
public static EnumSet<Command> toolBarItems(){
return EnumSet.of(Command.NEW ,
Command.OPEN ,
Command.SAVE ,
Command.PRINT ,
Command.DIV_CHART_VIEW ,
Command.PLANET_POS_VIEW ,
Command.BHAVA_POS_VIEW ,
Command.DASAS_VIEW,
Command.CHART_VIEW ,
Command.ASHTAVARGA_VIEW ,
Command.SHADBALA_VIEW ,
Command.EPHEMERIS_VIEW ,
Command.PANCHANG_VIEW ,
Command.COMPACTIBILITY_VIEW);
}
}