/*
* Freeplane - mind map editor
* Copyright (C) 2010 Joerg Mueller, Daniel Polansky, Christian Foltin, Dimitry Polivaev
*
* This file is created by Dimitry Polivaev in 2010.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.freeplane.core.ui.components.calendar;
import java.awt.Dimension;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Calendar;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
public class JTimeChooser extends Box{
/**
*
*/
private static final long serialVersionUID = 1L;
public static final String YEAR_PROPERTY = "year";
final private JSpinField hourChooser;
final private JSpinField minuteChooser;
private Calendar calendar;
Calendar getCalendar() {
return calendar;
}
void setCalendar(Calendar calendar) {
this.calendar = calendar;
hourChooser.setValue(calendar.get(Calendar.HOUR_OF_DAY));
minuteChooser.setValue(calendar.get(Calendar.MINUTE));
}
/**
* Default JCalendar constructor.
*/
public JTimeChooser() {
super(BoxLayout.X_AXIS);
setName("JTimeChooser");
hourChooser = new JSpinField(0, 59);
hourChooser.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent e) {
if(e.getPropertyName().equals("value") && calendar != null){
calendar.set(Calendar.HOUR_OF_DAY, (Integer) hourChooser.getValue());
}
}
});
hourChooser.adjustWidthToMaximumValue();
minuteChooser = new JSpinField(0, 59);
minuteChooser.setMinWidth(2);
minuteChooser.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent e) {
if(e.getPropertyName().equals("value") && calendar != null){
calendar.set(Calendar.MINUTE, (Integer) minuteChooser.getValue());
}
}
});
minuteChooser.adjustWidthToMaximumValue();
final Dimension preferredSize = minuteChooser.getPreferredSize();
minuteChooser.setPreferredSize(preferredSize);
minuteChooser.setMaximumSize(preferredSize);
hourChooser.setPreferredSize(preferredSize);
hourChooser.setMaximumSize(preferredSize);
setCalendar(Calendar.getInstance());
add(Box.createHorizontalGlue());
add(hourChooser);
add(new JLabel(":"));
add(minuteChooser);
add(Box.createHorizontalGlue());
}
public int getHour() {
return (Integer) hourChooser.getValue();
}
public int getMinute() {
return (Integer) minuteChooser.getValue();
}
}