semorg.gui
Class CompanyInternalPresentationWindow

java.lang.Object
  extended by semorg.gui.CompanyInternalPresentationWindow

public class CompanyInternalPresentationWindow
extends Object

The window for editing new or existing company internal presentation records.


Nested Class Summary
(package private)  class CompanyInternalPresentationWindow.InputChangedListener
          Inner class which provides a listener reacting on changes of the input in the CompanyInternalPresentationWindow.
 
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 CompanyInternalPresentation and CompanyBooking.
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.Button certificateButton
          The button to create the certificates (not implemented).
private  org.eclipse.swt.widgets.Text cityText
           
private  org.eclipse.swt.widgets.Combo countryCombo
           
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  CompanyInternalPresentation input
          Holds the data of the actual displayed CompanyBookingWindow 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  CompanyInternalPresentationWindow.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 maxEntrantsText
           
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
           
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.Text packagePriceText
           
private  org.eclipse.swt.widgets.Button prevButton
           
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 CompanyInternalPresentationWindow(org.eclipse.swt.widgets.Shell parent)
          Creates a CompanyInternalPresentationWindow instance with the given shell as the parent shell.
  CompanyInternalPresentationWindow(org.eclipse.swt.widgets.Shell parent, CompanyInternalPresentation input, AssociationTabControl caller)
          Creates an instance of this class, sets the input and finally opens it.
  CompanyInternalPresentationWindow(org.eclipse.swt.widgets.Shell parent, CompanyInternalPresentation 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 of a CompanyInternalPresentation record are entered into the window form and if the entered fees are correct float numbers.
protected  void commitInputToDB()
          Reads the data from the window form elements, sets the values to a CompanyInternalPresentation 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(CompanyInternalPresentation presentation)
          Loads a given CompanyInternalPresentation 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 CompanyInternalPresentation input
Holds the data of the actual displayed CompanyBookingWindow 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 CompanyInternalPresentationWindow.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.


packagePriceText

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

minSemTypeEntrantsText

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

maxSemTypeEntrantsText

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

maxEntrantsText

private org.eclipse.swt.widgets.Text maxEntrantsText

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 CompanyInternalPresentation and CompanyBooking.


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

nextButton

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

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

CompanyInternalPresentationWindow

private CompanyInternalPresentationWindow(org.eclipse.swt.widgets.Shell parent)
Creates a CompanyInternalPresentationWindow 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 CompanyInternalPresentationWindow

CompanyInternalPresentationWindow

public CompanyInternalPresentationWindow(org.eclipse.swt.widgets.Shell parent,
                                         CompanyInternalPresentation 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.

CompanyInternalPresentationWindow

public CompanyInternalPresentationWindow(org.eclipse.swt.widgets.Shell parent,
                                         CompanyInternalPresentation 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(CompanyInternalPresentation presentation)
Loads a given CompanyInternalPresentation record into the window form of initialize the elements of the form the empty string/null if no data is given.

Parameters:
presentation - CompanyInternalPresentation 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.

Parameters:
caller - AssociationTabControl instance which called the constructor which itself calls this method.

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.

Parameters:
caller - ForeignKeyConstraintSelector instance which called the constructor which itself calls this method.

checkInput

protected boolean checkInput()
Checks if all obligatory attributes of a CompanyInternalPresentation record are entered into the window form and if the entered fees are correct float numbers.

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

commitInputToDB

protected void commitInputToDB()
Reads the data from the window form elements, sets the values to a CompanyInternalPresentation 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 handles 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(CompanyInternalPresentation).

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