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 ClientBookingWindow

    java.lang.Object
      semorg.gui.ClientBookingWindow

    public class ClientBookingWindow

extends Object

The window for editing new or existing clientbooking records.

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

Field Summary
`private org.eclipse.swt.widgets.Button` | `abortButton`
`private org.eclipse.swt.widgets.Button` | `applyButton`
`private org.eclipse.swt.widgets.Button` | `billButton` The button to create the bill.
`private CalendarControl` | `billedCalendar`
`private ForeignKeyConstraintSelector` | `clientSelector`
`private CalendarControl` | `confirmedCalendar`
`private ForeignKeyConstraintSelector` | `debitorSelector`
`private CalendarControl` | `enrolledCalendar`
`private ClientBooking` | `input` Holds the data of the actual displayed data 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 ClientBookingWindow.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 org.eclipse.swt.widgets.Button` | `messageButton` The button to create a message.
`private CalendarControl` | `messagedCalendar`
`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` | `paymentBehaviorButton` The button to check the payment behavior.
`private ForeignKeyConstraintSelector` | `presentationSelector`
`private org.eclipse.swt.widgets.Button` | `prevButton` The triangle-button with the apex to the left.
`private org.eclipse.swt.widgets.Button` | `repaymentButton` The button to handle repayments.
`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 CalendarControl` | `signedOffCalendar`
`private ForeignKeyConstraintSelector` | `substituteSelector`
`private int` | `titleBarHeight` The height of the title bar.

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

Method Summary
`protected boolean` | `checkInput()` Checks if all obligatory attributes of a data record are entered into the window form.
`protected void` | `commitInputToDB()` Reads the data from the window form elements, sets the values to a `ClientBooking` 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(org.eclipse.swt.widgets.Composite buttons, AssociationTabControl 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(ClientBooking booking)` Loads a given data 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 ClientBooking input

  Holds the data of the actual displayed data 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 ClientBookingWindow.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

### enrolledCalendar

    private final CalendarControl enrolledCalendar

### confirmedCalendar

    private final CalendarControl confirmedCalendar

### billedCalendar

    private final CalendarControl billedCalendar

### signedOffCalendar

    private final CalendarControl signedOffCalendar

### messagedCalendar

    private final CalendarControl messagedCalendar

### clientSelector

    private final ForeignKeyConstraintSelector clientSelector

### debitorSelector

    private final ForeignKeyConstraintSelector debitorSelector

### presentationSelector

    private final ForeignKeyConstraintSelector presentationSelector

### substituteSelector

    private final ForeignKeyConstraintSelector substituteSelector

### 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.

### messageButton

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

  The button to create a message.

### billButton

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

  The button to create the bill.

### repaymentButton

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

  The button to handle repayments.

### paymentBehaviorButton

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

  The button to check the payment behavior.

Constructor Detail

### ClientBookingWindow

    private ClientBookingWindow(org.eclipse.swt.widgets.Shell parent,
                                AssociationTabControl caller)

  Creates a `ClientBookingWindow` 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 window.
    `caller` - `AssociationTabControl` instance which called the editing window. If editing window is called by a menu this parameter is `null`.

### ClientBookingWindow

    public ClientBookingWindow(org.eclipse.swt.widgets.Shell parent,
                               ClientBooking 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
  See Also:
    `ClientBookingWindow(Shell, AssociationTabControl)`

Method Detail

### setInput

    private void setInput(ClientBooking booking)

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

  Parameters:
    `booking` - `ClientBooking` 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(org.eclipse.swt.widgets.Composite buttons,
                                      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`.

### checkInput

    protected boolean checkInput()

  Checks if all obligatory attributes of a data record are entered into the window form.

  Returns:
    `true` if all mandatory fields are set and the fee values are valid float numbers (if entered), otherwise `false`.

### commitInputToDB

    protected void commitInputToDB()

  Reads the data from the window form elements, sets the values to a `ClientBooking` 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(ClientBooking)`.

  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