diff options
| author | Paul Buetow <paul@buetow.org> | 2009-03-11 20:46:28 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2009-03-11 20:46:28 +0000 |
| commit | bdeae5b95a6fbcb14e76f135c975a00d1fe5b5ca (patch) | |
| tree | 196c85f233cf3a922e1c6c50f13240f04e1a4099 | |
| parent | d70cecf8fdf115d41667f74beeba4d03470723fa (diff) | |
| -rw-r--r-- | sources/client/JCalendarDatePicker.java | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/sources/client/JCalendarDatePicker.java b/sources/client/JCalendarDatePicker.java new file mode 100644 index 0000000..c1113c7 --- /dev/null +++ b/sources/client/JCalendarDatePicker.java @@ -0,0 +1,104 @@ + +/* NetCalendar 2006, 2009 (c) Dipl.-Inform. (FH) Paul C. Buetow + * http://netcalendar.buetow.org - netcalendar@dev.buetow.org + */ + +/** + */ + +package client; + +import shared.*; +import shared.remotecall.*; + +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.border.*; +import java.util.Calendar; +import java.util.Locale; +import org.freixas.jcalendar.*; + +/** + * This is the class for the date picker + * @author Paul C. Buetow + */ +public class JCalendarDatePicker extends SubWindow { + private JCalendar jcalendar; + private Calendar calendar; + private CalendarEvent calendarEvent; + + /** + * Creates a date picker. It can be used to pick a date. + * @param netCalendarClient The NetCalendarClient object + */ + public JCalendarDatePicker(NetCalendarClient netCalendarClient) { + super("Calendar", netCalendarClient); + + initComponents(); + setResizable(false); + pack(); + setVisible(true); + } + + /** + * Creates a date picker. It can be used to pick a date. + * @param netCalendarClient The NetCalendarClient object + */ + public JCalendarDatePicker(NetCalendarClient netCalendarClient, + CalendarEvent calendarEvent) { + super("Set date for event #" + calendarEvent.getEventID() + + ": " + calendarEvent.getDescription(), netCalendarClient); + this.calendarEvent = calendarEvent; + + initComponents(); + setResizable(false); + pack(); + setVisible(true); + } + + /** + * Inits the component + */ + protected void initComponents() { + JPanel contentPane = (JPanel) getContentPane(); + contentPane.setBackground(Color.BLACK); + JCalendarDateListener listener = new JCalendarDateListener(); + + jcalendar = new JCalendar(JCalendar.DISPLAY_DATE, false); + if (calendarEvent != null) + jcalendar.setDate(calendarEvent.getDate()); + jcalendar.addDateListener(listener); + contentPane.add(jcalendar); + } + + /** + * Gets the current selected date of the date picker + * @return Current selected date + */ + public Calendar getSelectedDate() { + synchronized (jcalendar) { + return calendar; + } + } + + /** + * Helper class for the DateListener of the JCalendar object + */ + private class JCalendarDateListener implements DateListener { + public void dateChanged(DateEvent dateEvent) { + synchronized (jcalendar) { + calendar = dateEvent.getSelectedDate(); + if (calendarEvent != null) { + calendarEvent.setDate(calendar.getTime()); + ClientRequest clientRequest = new ClientRequest(ClientRequest.MODIFY_EVENT); + clientRequest.setEvent(calendarEvent); + + ServerRequester.sendClientRequest(clientRequest); + netCalendarClient.updateLast(); + } + } + } + + } +} |
