caltool.schedule_ui
Class ScheduleMeetingDialog

java.lang.Object
  extended by mvp.View
      extended by caltool.caltool_ui.CalendarToolWindow
          extended by caltool.schedule_ui.ScheduleAppointmentDialog
              extended by caltool.schedule_ui.ScheduleMeetingDialog
All Implemented Interfaces:
java.io.Serializable, java.util.Observer
Direct Known Subclasses:
MeetingEditor

public class ScheduleMeetingDialog
extends ScheduleAppointmentDialog

Class ScheduleMeetingDialog provides a view of Meeting as an input to the meeting-scheduling methods listMeetingTimes, setMeetingOptions, and confirmMeeting. ScheduleMeetingDialog extends ScheduleAppointmentDialog, since the two dialogs have much in common. (This is to be expected given that the Meeting model class is an extension of the Appointment model class.) The differences between the meeting and appointment dialogs are as follows:

The companion model for ScheduleAppointmentDialog is the Schedule class, since Schedule has the methods that are invoked from the action listeners attached to the `List Times' and `Options' buttons. See ListMeetingTimesButtonListener and MeetingOptionsButtonListener for details of how the appropriate Schedule methods are invoked.

The additional design comments in the definition of ScheduleAppointmentDialog are also relevant here.

See Also:
Serialized Form

Field Summary
protected  javax.swing.JTextArea attendeesTextArea
          The attendees text area
protected  javax.swing.JLabel latestEndDateLabel
          The latest possible end date label
protected  javax.swing.JTextField latestEndDateTextField
          The latest possible end text field
protected  javax.swing.JLabel latestStartDateLabel
          The latest possible (start) date label
protected  javax.swing.JTextField latestStartDateTextField
          The latest possible (start) date text field
protected  javax.swing.JTextField latestStartTimeTextField
          The latest possible start time text field
protected  javax.swing.JTextField minutesTextField
          The minutes text field
 
Fields inherited from class caltool.schedule_ui.ScheduleAppointmentDialog
categoryComboBox, detailsTextArea, durationTextField, endDateLabel, endDateTextField, locationComboBox, maxComponentHeight, maxComponentWidth, panel, priorityComboBox, recurringInfo, remindInfo, securityComboBox, startDateLabel, startDateTextField, startTimeTextField, titleTextField
 
Fields inherited from class caltool.caltool_ui.CalendarToolWindow
calToolUI
 
Fields inherited from class mvp.View
closeAdapter, editable, model, screen, shown, widget, window
 
Constructor Summary
ScheduleMeetingDialog(mvp.Screen screen, Schedule schedule, CalendarToolUI calToolUI)
           
 
Method Summary
protected  void clear()
          Clear each of the text fields of this to empty.
 java.awt.Component compose()
          Compose this in six parts: (1) a top part consisting of the title, possible (start) dates, end dates, start times, and duration components; (2) a part consisting of recurring info components; (3) a middle part with category, location, security, and priority; (4) reminder info components; (5) a bottom part with attendees, details, and minutes components; (6) the button row consisting of the 'OK', 'Clear', and 'Cancel' buttons.
protected  javax.swing.Box composeAttendees()
          Compose the attendees area as a labeled, scrolling text area.
 javax.swing.Box composeBottomPart()
          Compose the bottom part consisting of attendees, details, and minutes fields.
protected  javax.swing.Box composeButtonRow()
          Compose the buttons row with four JButtons.
protected  javax.swing.Box composeDateRow(java.lang.String s)
          Compose a date row, with s = "Earliest" or "Latest", and the other args eqal to the earliert or latest data fields, resp.
protected  javax.swing.Box composeEarliestEndDateRow()
          Compose the row containing the earliest end date and duration.
protected  javax.swing.Box composeEarliestStartDateRow()
          Compose the row containing the earliest possible (start) date and time.
protected  javax.swing.Box composeLatestEndDateRow()
          Compose the row containing the latest end date.
protected  javax.swing.Box composeLatestStartDateRow()
          Compose the row containing the latest possible (start) date and time.
protected  javax.swing.Box composeMinutes()
          Compose the minutes row as a JLabel/JTextField pair.
protected  void composeRows()
          Compose each of the rows and add to the vertically laid out panel.
protected  javax.swing.Box composeTopPart()
          Compose the top part of the dialog, consisting of the title, possible (start) dates, start times, end date, and duration.
 
Methods inherited from class caltool.schedule_ui.ScheduleAppointmentDialog
composeCategorySecurityRow, composeDetails, composeEndDateRow, composeLocationPriorityRow, composeMiddlePart, composeRecurringInfo, composeRemindInfo, composeStartDateRow, composeTitleRow
 
Methods inherited from class caltool.caltool_ui.CalendarToolWindow
show
 
Methods inherited from class mvp.View
getModel, getWidget, getWindow, hide, isEditable, isShown, run, setEditable, setExitOnClose, setModel, show, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

latestStartDateLabel

protected javax.swing.JLabel latestStartDateLabel
The latest possible (start) date label


latestStartDateTextField

protected javax.swing.JTextField latestStartDateTextField
The latest possible (start) date text field


latestStartTimeTextField

protected javax.swing.JTextField latestStartTimeTextField
The latest possible start time text field


latestEndDateLabel

protected javax.swing.JLabel latestEndDateLabel
The latest possible end date label


latestEndDateTextField

protected javax.swing.JTextField latestEndDateTextField
The latest possible end text field


attendeesTextArea

protected javax.swing.JTextArea attendeesTextArea
The attendees text area


minutesTextField

protected javax.swing.JTextField minutesTextField
The minutes text field

Constructor Detail

ScheduleMeetingDialog

public ScheduleMeetingDialog(mvp.Screen screen,
                             Schedule schedule,
                             CalendarToolUI calToolUI)
Method Detail

compose

public java.awt.Component compose()
Compose this in six parts: (1) a top part consisting of the title, possible (start) dates, end dates, start times, and duration components; (2) a part consisting of recurring info components; (3) a middle part with category, location, security, and priority; (4) reminder info components; (5) a bottom part with attendees, details, and minutes components; (6) the button row consisting of the 'OK', 'Clear', and 'Cancel' buttons.

Overrides:
compose in class ScheduleAppointmentDialog

composeRows

protected void composeRows()
Compose each of the rows and add to the vertically laid out panel. Put some around spacing between each row, in the form of a vertical strut.

Overrides:
composeRows in class ScheduleAppointmentDialog

composeTopPart

protected javax.swing.Box composeTopPart()
Compose the top part of the dialog, consisting of the title, possible (start) dates, start times, end date, and duration. The components are laid out in a five-row vertical box. The title row is on top; it is composed as a horizontal box containing a JLabel and JTextField. The second and third rows of top-part components is are horizontal boxes, composed in turn of two horizontal boxes containing JLabel/JTextField pairs for the possible dates and start times. The fourth row consists of a JLabel/JTextField pair for the end date and the duration. The duration is in turn a horizontal box consisting of a JLabel, and two vertical box JLabel/JTextField pairs for the hour and minute components of the duration. The fifth row is a single MultLineLabel/JTextfield pair for the lates end date.

Overrides:
composeTopPart in class ScheduleAppointmentDialog

composeEarliestStartDateRow

protected javax.swing.Box composeEarliestStartDateRow()
Compose the row containing the earliest possible (start) date and time.


composeLatestStartDateRow

protected javax.swing.Box composeLatestStartDateRow()
Compose the row containing the latest possible (start) date and time.


composeDateRow

protected javax.swing.Box composeDateRow(java.lang.String s)
Compose a date row, with s = "Earliest" or "Latest", and the other args eqal to the earliert or latest data fields, resp.


composeEarliestEndDateRow

protected javax.swing.Box composeEarliestEndDateRow()
Compose the row containing the earliest end date and duration.


composeLatestEndDateRow

protected javax.swing.Box composeLatestEndDateRow()
Compose the row containing the latest end date.


composeBottomPart

public javax.swing.Box composeBottomPart()
Compose the bottom part consisting of attendees, details, and minutes fields.


composeAttendees

protected javax.swing.Box composeAttendees()
Compose the attendees area as a labeled, scrolling text area. The label and the text area are in a left-aligned vbox. The vbox is in a hbox with horizontal spacing on each side


composeMinutes

protected javax.swing.Box composeMinutes()
Compose the minutes row as a JLabel/JTextField pair.


composeButtonRow

protected javax.swing.Box composeButtonRow()
Compose the buttons row with four JButtons. The action listeners for Clear and Cancel buttons are straightforward. The action listener for the `List Times' and `Options' buttons communicate with the Schedule model. See the descriptions of ListMeetingTimesButtonListener and MeetingOptinsButtonListener for explanatory details.

Overrides:
composeButtonRow in class ScheduleAppointmentDialog

clear

protected void clear()
Clear each of the text fields of this to empty. Reset the combo boxes to no selection. NOTE: This method needs to be refined to use default values for clearing, once options and defaults functionality is implemented. It also needs to be refined to clear the recurring and remind check boxes and associated components.

Overrides:
clear in class ScheduleAppointmentDialog