/* * YearMonthPane.java * * Created on 26 ���� 2006 �., 21:00 * */ package datechooser.view; import datechooser.model.AbstractDateChooseModel; import datechooser.model.DateChoose; import datechooser.view.pic.ViewPictures; import java.awt.*; import java.awt.event.*; import java.beans.PropertyChangeEvent; import java.text.DateFormat; import java.text.DateFormatSymbols; import java.util.Calendar; import java.util.Locale; import javax.swing.*; import javax.swing.event.ChangeEvent; /** * Combo Navigation panel.<br> * ������������� ������ � ����������� ������� ��� ������ ������ � ����� ��� ������ ����. * @author Androsov Vadim * @since 1.0 * @see datechooser.view.AbstractNavigatePane */ public class ComboNavigatePane extends AbstractNavigatePane { private static int YEAR_SHIFT = 10000; private JComboBox months; private JSpinner year; private Calendar curDate; private SpinnerNumberModel yearModel; private JButton nullButton; public ComboNavigatePane() { // super(); months = new JComboBox(); yearModel = new SpinnerNumberModel(); year = new JSpinner(yearModel); nullButton = createNullButton(); yearModel.setStepSize(1); setLayout(new BorderLayout()); JPanel mainPane = new JPanel(new GridLayout(1,2)); mainPane.add(months); mainPane.add(year); add(mainPane, BorderLayout.CENTER); add(nullButton, BorderLayout.WEST); editedManually = false; initMonthList(); OnShowChange listener = new OnShowChange(); months.addActionListener(listener); year.addChangeListener(listener); months.setEditable(false); } private JButton createNullButton() { JButton newNullButton = new JButton(new ImageIcon( ViewPictures.class.getResource("nothing.gif"))); newNullButton.setFocusable(false); newNullButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { getModel().selectNothing(); } }); return newNullButton; } public int getMonth() { return months.getSelectedIndex(); } public int getYear() { return (Integer)yearModel.getValue(); } public void setMonth(int aMonth) { months.setSelectedIndex(aMonth); } public void setYear(int aYear) { yearModel.setValue(aYear); } public void setEnabled(boolean enabled) { super.setEnabled(enabled); months.setEnabled(enabled); year.setEnabled(enabled); nullButton.setEnabled(isNothingSelectEnabled() ? enabled : false); } public Font getFont() { if ((year == null) || (months == null) || (nullButton == null)) return null; return months.getFont(); } public void setFont(Font font) { if ((year == null) || (months == null)) return; try { ((JSpinner.DefaultEditor) (year.getEditor())).getTextField().setFont(font); } catch (ClassCastException ex) { year.setFont(font); } months.setFont(font); nullButton.setFont(font); } public void updateMonthControl() { if (months == null) return; int selected = months.getSelectedIndex(); months.removeAllItems(); for (int i = 0; i < 12; i++) { months.addItem(monthsList[i]); } months.validate(); months.setSelectedIndex(selected); } public void applyNothingSelectEnabled(boolean enabled) { // boolean wasEnabled = nullButton.isEnabled(); nullButton.setEnabled(enabled); // firePropertyChange("enabled", wasEnabled, enabled); } }