/**
* MonthChooser.java
* Created On 2006, Apr 10, 2006 4:47:04 PM
* @author E. Rajasekar
*/
package app.astrosoft.ui.comp;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.util.Calendar;
import java.util.Date;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.SpinnerDateModel;
import javax.swing.SpinnerModel;
import javax.swing.SpringLayout;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import app.astrosoft.ui.AstroSoft;
import app.astrosoft.ui.util.SpringUtilities;
public class CalendarSpinner extends CalendarChooser {
public static final String FMT_MONTH_YEAR = "MMM yyyy";
public static final String FMT_DATE = "dd MMM yyyy";
public static final String FMT_YEAR = "yyyy";
public static final String FMT_MONTH = "MMM";
public static final String FMT_TIME = "hh : mm : ss a";
private static final Dimension spinnerSize = new Dimension(80, 20);
private JSpinner spinner;
private JSpinner.DateEditor editor;
private String dateFormat;
private JPanel chooserPanel;
public CalendarSpinner(String dateFormat){
super();
this.dateFormat = dateFormat;
}
public JPanel getChooser(){
createSpinner();
chooserPanel = new JPanel(new BorderLayout());
chooserPanel.add(spinner, BorderLayout.CENTER);
return chooserPanel;
}
public JPanel getChooser(String label){
createSpinner();
chooserPanel = new JPanel(new SpringLayout());
JLabel l = new JLabel(label);
chooserPanel.add(l);
chooserPanel.add(spinner);
SpringUtilities.makeCompactGrid(chooserPanel, 1, 2, 5,5,10,10);
return chooserPanel;
}
private void createSpinner(){
SpinnerModel model = new SpinnerDateModel();
spinner = new JSpinner(model);
spinner.setPreferredSize(spinnerSize);
editor = new JSpinner.DateEditor(spinner, dateFormat);
spinner.setEditor(editor);
spinner.addChangeListener(new ChangeListener(){
public void stateChanged(ChangeEvent e) {
selectionChanged(e);
}
});
}
@Override
public void setSelectedDate(Date date){
spinner.setValue(date);
}
public void setForeground(Color fgClr){
editor.getTextField().setForeground(fgClr);
}
public void setBackground(Color bgClr){
editor.getTextField().setBackground(bgClr);
chooserPanel.setBackground(bgClr);
}
public void setDateFormat(String format){
Color bgClr = editor.getTextField().getBackground();
Color fgClr = editor.getTextField().getForeground();
dateFormat = format;
editor = new JSpinner.DateEditor(spinner, dateFormat);
editor.getTextField().setForeground(fgClr);
editor.getTextField().setBackground(bgClr);
spinner.setEditor(editor);
}
@Override
public Date getSelectedDate() {
return (Date) spinner.getValue();
}
}