Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## semorg.gui
Class PublicPresentationWindow

    java.lang.Object
      semorg.gui.PublicPresentationWindow

    public class PublicPresentationWindow

extends Object

The window for editing new or existing public presentation records.

Nested Class Summary
`(package private) class` | `PublicPresentationWindow.InputChangedListener` Inner class which provides a listener reacting on changes of the input in the `PublicPresentationWindow`.

Field Summary
`private org.eclipse.swt.widgets.Button` | `abortButton`
`private org.eclipse.swt.widgets.Combo` | `annexCombo`
`private org.eclipse.swt.widgets.Button` | `applyButton`
`private CalendarControl` | `beginningDayCalendar`
`private AssociationTabControl` | `bookingControl` The control widget to manage the association between `PublicPresentation` and `ClientBooking` .
`private org.eclipse.swt.widgets.Button` | `cancelationButton` The button to cancel a presentation (not implemented).
`private org.eclipse.swt.widgets.Button` | `cancelChecker`
`private org.eclipse.swt.widgets.Text` | `cancelFeeText`
`private org.eclipse.swt.widgets.Button` | `certificateButton` The button to create the certificates (not implemented).
`private org.eclipse.swt.widgets.Text` | `cityText`
`private org.eclipse.swt.widgets.Text` | `coopPartnerText`
`private org.eclipse.swt.widgets.Combo` | `countryCombo`
`private org.eclipse.swt.widgets.Text` | `currentEntrantsText`
`private org.eclipse.swt.widgets.Text` | `durationText`
`private CalendarControl` | `endingDayCalendar`
`private TimeControl` | `endingTimeSpinner`
`private org.eclipse.swt.widgets.Button` | `feeMessageButton` The button to create fee messages (not implemented).
`private TimeControl` | `firstStartingTimeSpinner`
`private PublicPresentation` | `input` Holds the data of the actual displayed public presentation record.
`private boolean` | `inputChanged` Is set to `true` if the input has been changed and not committed yet, otherwise it is set to `false`.
`private PublicPresentationWindow.InputChangedListener` | `inputChangedListener` Listener instance added to the most elements of the window.
`private boolean` | `inputEditingEnabled` `true` if the editing of the input (i.e. the elements of the form) has been enabled, otherwise it is `false`.
`private AssociationTabControl` | `instructorControl` The control widget to manage the association instructor.
`private TimeControl` | `lastEndingTimeSpinner`
`private org.eclipse.swt.widgets.Button` | `listOfParticipantsButton` The button for getting the the list of participants (not implemented).
`private org.eclipse.swt.widgets.Text` | `locationText`
`private org.eclipse.swt.widgets.Text` | `maxSemTypeEntrantsText`
`private org.eclipse.swt.widgets.Text` | `minSemTypeEntrantsText`
`private org.eclipse.swt.widgets.Button` | `newButton`
`private org.eclipse.swt.widgets.Button` | `nextButton` The triangle-button with the apex to the right.
`private org.eclipse.swt.widgets.Label` | `numberLabel`
`private org.eclipse.swt.widgets.Text` | `numberText`
`private org.eclipse.swt.widgets.Button` | `okButton`
`private org.eclipse.swt.widgets.Button` | `prevButton` The triangle-button with the apex to the left.
`private ForeignKeyConstraintSelector` | `semTypeSelector` The control widget to manage the mandatory association between presentation and seminartype.
`private boolean` | `settingInput` Is set to `true` if the data from the database (or corresponding from `input`) is to be set into the window form, otherwise `false`.
`private org.eclipse.swt.widgets.Shell` | `shell` The editing window.
`private TimeControl` | `startingTimeSpinner`
`private org.eclipse.swt.widgets.Text` | `streetText`
`private AssociationTabControl` | `supervisorControl` The control widget to manage the association supervisor.
`private int` | `titleBarHeight` The height of the title bar.
`private org.eclipse.swt.widgets.Text` | `zipCodeText`

Constructor Summary
`private` | `PublicPresentationWindow(org.eclipse.swt.widgets.Shell parent)` Creates a `PublicPresentationWindow` instance with the given shell as the parent shell.
`` | `PublicPresentationWindow(org.eclipse.swt.widgets.Shell parent, PublicPresentation input, AssociationTabControl caller)` Creates an instance of this class, sets the input and finally opens it.
`` | `PublicPresentationWindow(org.eclipse.swt.widgets.Shell parent, PublicPresentation input, ForeignKeyConstraintSelector caller)` Creates an instance of this class, sets the input and finally opens it.

Method Summary
`protected boolean` | `checkInput()` Checks if all obligatory attributes (seminartype) of a public presentation record are entered into the window form and if the entered durations and fees are correct integer/float numbers.
`protected void` | `commitInputToDB()` Reads the data from the window form elements, sets the values to a Lecturer instance and commits the changes / the new record into the database.
`private boolean` | `confirmClose()` Creates a message dialog if the data in the window form has been changed (or was entered newly) and these changes haven't been confirmed (e.g. by clicking the ok button) or discarded so far.
`private void` | `createButtonListener(AssociationTabControl caller)` Adds a listener to several buttons of the window form.
`private void` | `createButtonListener(ForeignKeyConstraintSelector caller)` Adds a listener to several buttons of the window form.
`private boolean` | `onSave()` Checks whether the input has been changed (i.e. inputChanged equals `true`) or not.
`private void` | `setInput(PublicPresentation presentation)` Loads a given public presentation record into the window form of initialize the elements of the form the empty string/null if no data is given.
`private void` | `setInputComponentsEnabled(boolean enabled)` According to the value of the given parameter (`true`/`false`) this method enables / disables the widgets of the window form.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### input

    private PublicPresentation input

  Holds the data of the actual displayed public presentation record. If a new record is entered it is set to `null` until the changes have been committed.

### settingInput

    private boolean settingInput

  Is set to `true` if the data from the database (or corresponding from `input`) is to be set into the window form, otherwise `false`.
  That is needed to prevent the ModifyListener from firing when the data is load into the window form by using the .setText() methods of the gui elements.

### inputChanged

    private boolean inputChanged

  Is set to `true` if the input has been changed and not committed yet, otherwise it is set to `false`.

### inputEditingEnabled

    private boolean inputEditingEnabled

  `true` if the editing of the input (i.e. the elements of the form) has been enabled, otherwise it is `false`.
  This flag indicates whether the actual displayed record has been locked by the actual editing window or not. This avoids the releasing of records which are locked by other editing windows.

### inputChangedListener

    private PublicPresentationWindow.InputChangedListener inputChangedListener

  Listener instance added to the most elements of the window.

### shell

    private org.eclipse.swt.widgets.Shell shell

  The editing window.

### titleBarHeight

    private int titleBarHeight

  The height of the title bar.

### numberLabel

    private final org.eclipse.swt.widgets.Label numberLabel

### numberText

    private final org.eclipse.swt.widgets.Text numberText

### durationText

    private final org.eclipse.swt.widgets.Text durationText

### beginningDayCalendar

    private final CalendarControl beginningDayCalendar

### endingDayCalendar

    private final CalendarControl endingDayCalendar

### startingTimeSpinner

    private final TimeControl startingTimeSpinner

### endingTimeSpinner

    private final TimeControl endingTimeSpinner

### firstStartingTimeSpinner

    private final TimeControl firstStartingTimeSpinner

### lastEndingTimeSpinner

    private final TimeControl lastEndingTimeSpinner

### locationText

    private final org.eclipse.swt.widgets.Text locationText

### streetText

    private final org.eclipse.swt.widgets.Text streetText

### zipCodeText

    private final org.eclipse.swt.widgets.Text zipCodeText

### cityText

    private final org.eclipse.swt.widgets.Text cityText

### countryCombo

    private final org.eclipse.swt.widgets.Combo countryCombo

### annexCombo

    private final org.eclipse.swt.widgets.Combo annexCombo

### cancelChecker

    private final org.eclipse.swt.widgets.Button cancelChecker

### semTypeSelector

    private final ForeignKeyConstraintSelector semTypeSelector

  The control widget to manage the mandatory association between presentation and seminartype.

### coopPartnerText

    private final org.eclipse.swt.widgets.Text coopPartnerText

### cancelFeeText

    private final org.eclipse.swt.widgets.Text cancelFeeText

### currentEntrantsText

    private final org.eclipse.swt.widgets.Text currentEntrantsText

### minSemTypeEntrantsText

    private final org.eclipse.swt.widgets.Text minSemTypeEntrantsText

### maxSemTypeEntrantsText

    private final org.eclipse.swt.widgets.Text maxSemTypeEntrantsText

### supervisorControl

    private AssociationTabControl supervisorControl

  The control widget to manage the association supervisor.

### instructorControl

    private AssociationTabControl instructorControl

  The control widget to manage the association instructor.

### bookingControl

    private AssociationTabControl bookingControl

  The control widget to manage the association between `PublicPresentation` and `ClientBooking` .

### okButton

    private final org.eclipse.swt.widgets.Button okButton

### applyButton

    private final org.eclipse.swt.widgets.Button applyButton

### newButton

    private final org.eclipse.swt.widgets.Button newButton

### abortButton

    private final org.eclipse.swt.widgets.Button abortButton

### prevButton

    private final org.eclipse.swt.widgets.Button prevButton

  The triangle-button with the apex to the left.

### nextButton

    private final org.eclipse.swt.widgets.Button nextButton

  The triangle-button with the apex to the right.

### listOfParticipantsButton

    private final org.eclipse.swt.widgets.Button listOfParticipantsButton

  The button for getting the the list of participants (not implemented).

### certificateButton

    private final org.eclipse.swt.widgets.Button certificateButton

  The button to create the certificates (not implemented).

### feeMessageButton

    private final org.eclipse.swt.widgets.Button feeMessageButton

  The button to create fee messages (not implemented).

### cancelationButton

    private final org.eclipse.swt.widgets.Button cancelationButton

  The button to cancel a presentation (not implemented).

Constructor Detail

### PublicPresentationWindow

    private PublicPresentationWindow(org.eclipse.swt.widgets.Shell parent)

  Creates a `PublicPresentationWindow` instance with the given shell as the parent shell.
  It also adds a listener which reacts on closing events. It checks if changes have been made and if so it opens a dialog which informs the user and asks for a decision (confirm/discard). Finally it releases the locked record (if one is displayed and it is locked by this editing window).

  Parameters:
    `parent` - Shell instance used the as parent shell of the `PublicPresentationWindow`

### PublicPresentationWindow

    public PublicPresentationWindow(org.eclipse.swt.widgets.Shell parent,
                                    PublicPresentation input,
                                    AssociationTabControl caller)

  Creates an instance of this class, sets the input and finally opens it.

  Parameters:
    `parent` - the parent shell to which this window belongs
    `input` - the data object to be displayed in the window
    `caller` - the `AssociationTabControl` instance which calls the constructor.

### PublicPresentationWindow

    public PublicPresentationWindow(org.eclipse.swt.widgets.Shell parent,
                                    PublicPresentation input,
                                    ForeignKeyConstraintSelector caller)

  Creates an instance of this class, sets the input and finally opens it.

  Parameters:
    `parent` - the parent shell to which this window belongs
    `input` - the data object to be displayed in the window
    `caller` - the `ForeignKeyConstraintSelector` instance which calls the constructor.

Method Detail

### setInput

    private void setInput(PublicPresentation presentation)

  Loads a given public presentation record into the window form of initialize the elements of the form the empty string/null if no data is given.

  Parameters:
    `presentation` - `PublicPresentation` instance which contains the data to be displayed or `null` if a completely new record is to be edited.

### setInputComponentsEnabled

    private void setInputComponentsEnabled(boolean enabled)

  According to the value of the given parameter (`true`/`false`) this method enables / disables the widgets of the window form.
  Note: It also sets the member `inputEditingEnabled` to the value of the parameter to signal that editing of the input has been enabled or not.

  Parameters:
    `enabled` - if equals `true` the widgets are enabled otherwise the widgets get disabled.

### createButtonListener

    private void createButtonListener(AssociationTabControl caller)

  Adds a listener to several buttons of the window form.
  This involves at the moment the buttons `okButton`, `abortButton`, `applyButton`, `newButton`, `prevButton`, `nextButton`.

### createButtonListener

    private void createButtonListener(ForeignKeyConstraintSelector caller)

  Adds a listener to several buttons of the window form.
  This involves at the moment the buttons `okButton`, `abortButton`, `applyButton`, `newButton`, `prevButton`, `nextButton`.

### checkInput

    protected boolean checkInput()

  Checks if all obligatory attributes (seminartype) of a public presentation record are entered into the window form and if the entered durations and fees are correct integer/float numbers.

  Returns:
    `true` if all mandatory fields are set and the fee values are valid integer/float numbers (if entered), otherwise `false`.
  See Also:
    `Utility.isCorrectFloat(String)`

### commitInputToDB

    protected void commitInputToDB()

  Reads the data from the window form elements, sets the values to a Lecturer instance and commits the changes / the new record into the database. Furthermore the member `input` is set to the new values.

### confirmClose

    private boolean confirmClose()

  Creates a message dialog if the data in the window form has been changed (or was entered newly) and these changes haven't been confirmed (e.g. by clicking the ok button) or discarded so far. It also receives the decision of the user (confirm/discard changes or abort the window closing) and handels it. In the positive case (confirmation of the changes) it invokes the method `onSave()`.

  Returns:
    `true` if the shell can be closed and `false` otherwise.

### onSave

    private boolean onSave()

  Checks whether the input has been changed (i.e. inputChanged equals `true`) or not. If changes have been done, it firstly checks if the changes are valid (`checkInput()`), secondly invokes the method `commitInputToDB()` to commit the changes and thirdly updates the GUI by invoking the method `setInput(PublicPresentation)`.

  Returns:
    `true` if nothing has changed or the commit of the changes to the database was successful, `false` otherwise.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD