/**
* NumeroNamePanel.java
* Created On 2007, May 15, 2007 1:28:02 PM
* @author E. Rajasekar
*/
package app.astrosoft.ui.comp;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SpringLayout;
import app.astrosoft.consts.DisplayStrings;
import app.astrosoft.ui.util.SpringUtilities;
import app.astrosoft.ui.util.UIConsts;
import app.astrosoft.util.AstroUtil;
public abstract class NumeroNamePanel extends JPanel {
private static final Color numColor = Color.RED;
protected static final Dimension textSize = new Dimension(50,17);
protected static final Dimension numSize = new Dimension(20,17);
protected JLabel l_blank = new JLabel(" ");
protected JLabel l_name = new JLabel(DisplayStrings.NAME_STR.toString());// + " ");
protected JLabel l_numeroVal = new JLabel(DisplayStrings.NUMERO_VALUE_STR.toString());
protected JLabel l_numeroNum = new JLabel(DisplayStrings.NUMERO_NUMBER_STR.toString());
protected JTextField name = new JTextField();
protected JTextField numeroVal = new JTextField();
protected JTextField numeroNum = new JTextField();
protected JButton button;
protected KeyListener keyListener = new KeyAdapter(){
@Override
public void keyReleased(KeyEvent e) {
int val = AstroUtil.computeNumeroVal(name.getText());
numeroVal.setText(val == 0 ? "" : String.valueOf(val));
int num = AstroUtil.toNumeroNum(val);
numeroNum.setText(val == 0 ? "" : String.valueOf(num));
}
};
public NumeroNamePanel(final ActionListener l){
setSizes();
numeroNum.setForeground(numColor);
numeroVal.setForeground(numColor);
String title = getTitle();
if(title != null){
button = new JButton(title);
if (l != null) {
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
l.actionPerformed(e);
}
});
}
}
}
protected void setSizes(){
l_name.setPreferredSize(textSize);
name.setPreferredSize(textSize);
l_numeroVal.setPreferredSize(numSize);
l_numeroNum.setPreferredSize(numSize);
numeroVal.setPreferredSize(numSize);
numeroNum.setPreferredSize(numSize);
}
protected void addComponents() {
setLayout(new SpringLayout());
add(SpringUtilities.makeCompactGrid(2, 1, 0,0,4,4, l_name, name));
addOperatorPanel1();
add(SpringUtilities.makeCompactGrid(2, 1, 0,0,4,4, l_numeroVal, numeroVal));
addOperatorPanel2();
add(SpringUtilities.makeCompactGrid(2, 1, 0,0,4,4, l_numeroNum, numeroNum));
add(SpringUtilities.makeCompactGrid(2, 1, 0,0,4,4, l_blank, button));
SpringUtilities.makeCompactGrid(this, 1, getPanelCount(), 5,5,10,10);
setBorder(BorderFactory.createEtchedBorder());
//setBorder(UIConsts.getTitleBorder(""));
}
protected void addOperatorPanel1() {
}
protected void addOperatorPanel2() {
}
public int getPanelCount() {
return 4;
}
protected abstract String getTitle();
public String getName(){
return name.getText();
}
public String getNumeroValue(){
return numeroVal.getText();
}
public String getNumeroNumber(){
return numeroNum.getText();
}
public void resetValues(){
name.setText("");
numeroVal.setText("");
numeroNum.setText("");
}
public void setValues(String n, int v, int num){
name.setText(n);
numeroVal.setText(String.valueOf(v));
numeroNum.setText(String.valueOf(num));
}
}