/*
* RasiNakshathraChooser.java
*
* Created on November 2, 2005, 8:27 PM
*
* @author E. Rajasekar.
*/
package app.astrosoft.ui.comp;
import app.astrosoft.consts.DisplayConsts;
import app.astrosoft.consts.DisplayFormat;
import app.astrosoft.consts.DisplayStrings;
import app.astrosoft.consts.Language;
import app.astrosoft.consts.Nakshathra;
import app.astrosoft.consts.Rasi;
import app.astrosoft.ui.AstroSoft;
import app.astrosoft.ui.util.CallBack;
import app.astrosoft.ui.util.LocationGenerator;
import app.astrosoft.ui.util.UIConsts;
import app.astrosoft.ui.util.UIUtil;
import app.astrosoft.util.Internalization;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Set;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import org.netbeans.lib.awtextra.AbsoluteConstraints;
import org.netbeans.lib.awtextra.AbsoluteLayout;
public class RasiNakshathraChooser extends JPanel {
// Defaults overriden by constructor
private Dimension compSize;
private String title;
private Point origin;
private Dimension labelSize;
private Dimension comboSize;
private int hgap;
private int vgap;
private JComboBox rasiCombo;
private JComboBox nakCombo;
private Font font = UIUtil.getFont(Font.BOLD, 10);
public RasiNakshathraChooser() {
this(null, new Dimension(300,100));
}
public RasiNakshathraChooser(String title){
this(title, new Dimension(300,100));
}
public RasiNakshathraChooser(Dimension compSize){
this(null, compSize);
}
public RasiNakshathraChooser(String title, Dimension compSize){
this.title = title;
this.compSize = compSize;
initComponents();
setPreferredSize(compSize);
}
public void initComponents() {
setLayout(new AbsoluteLayout());
rasiCombo = new JComboBox(Rasi.values());
nakCombo = new JComboBox();
populateNakCombo(Rasi.Mesha);
rasiCombo.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
populateNakCombo((Rasi)rasiCombo.getSelectedItem());
}
});
rasiCombo.setFont(font);
nakCombo.setFont(font);
showPanel();
}
private void showPanel(){
origin = new Point((compSize.width * 10)/100, (compSize.height * 20)/100);
hgap = 0;
vgap = ((compSize.height * 60)/100) - 40;
labelSize = new Dimension((compSize.width * 80 * 40)/10000, 20);
comboSize = new Dimension((compSize.width * 80 * 60)/10000, 20);
LocationGenerator locGen = new LocationGenerator(origin, labelSize.width + hgap,labelSize.height + vgap);
JLabel lRasiStr = new JLabel(DisplayStrings.RASI_STR.toString(Language.ENGLISH));
JLabel lNakStr = new JLabel(DisplayStrings.NAK_STR.toString(Language.ENGLISH));
//lRasiStr.setFont(font);
//lNakStr.setFont(font);
add(lRasiStr, new AbsoluteConstraints(locGen.getNextRow(), labelSize));
add(rasiCombo, new AbsoluteConstraints(locGen.getNextColumn(), comboSize));
add(lNakStr, new AbsoluteConstraints(locGen.getNextRow(), labelSize));
add(nakCombo, new AbsoluteConstraints(locGen.getNextColumn(),comboSize));
if (title != null){
setBorder(UIConsts.getTitleBorder(title));
}
setVisible(true);
}
private void populateNakCombo(Rasi rasi){
nakCombo.removeAllItems();
Set<Nakshathra> naks = Nakshathra.ofRasi(rasi);
for(Nakshathra nak : naks){
nakCombo.addItem(nak);
}
}
public Rasi getSelectedRasi(){
return (Rasi)rasiCombo.getSelectedItem();
}
public Nakshathra getSelectedNakshathra(){
return (Nakshathra)nakCombo.getSelectedItem();
}
public void setSelectedRasiNakshthra(Rasi rasi, Nakshathra nak){
rasiCombo.setSelectedItem(rasi);
nakCombo.setSelectedItem(nak);
}
}