Issue: Since most of the screens are going to be Dialogs, and the Dialogs I'll use are all modal (they block input from their parent window), they will have to be created each time they are called. The way around this is to create a Panel with the necessary components, keep a copy of it, then when a Dialog is needed, create the Dialog and place the existing panel onto the Dialog. Then just pack and show the Dialog. There are going to be several types of Panels. There will be picker or selection panels, sub panels, edit panels, and even some custom panels. Here are those types explained more throughly with lists of where they will be used.
Discussion: The most common type will be the edit panel.
Most of the various Ticable classes has
an edit panel of some sort. Essentially, on an edit panel, there are
input components which accept or display information about each Tic in the
Ticable. These panels are top level, that is they are placed on the
Dialog, along with the header panel and the ButtonCommands panel. There
are several Ticable edit panels which are not top level. That is they
occur inside another panel or Dialog. These are:
- Handicap - appears in the League edit panel.
- Address - appear in the Bowler edit panel. The entry of a new Address is in a separate Dialog.
- Postal Code - appears in the Address edit panel. The entry of a new Postal Code is in a separate Dialog.
Another panel type is the sub panel. This panel is an edit panel which
is an input component on another edit panel. That's why I call it a
sub panel. All but three are read only. Here are the sub panels
needed:
- Handicap - part of the League edit panel.
- Address - part of the Bowler edit panel. (read only)
- Postal Code - part of the Address edit panel. (read only)
- Bowler Name - part of the Member edit panel. (read only)
- Team - part of the Member edit panel. (read only)
- Award Title - part of the Award Earned edit panel (read only)
- Contest - part of the Award Earned edit panel. (read only)
- Team - part of the Award Earned edit panel. (read only)
- Lanes - part of the Award Earned edit panel. (read only)
- Team Name - part of the Team panel.
- Contest - part of the Treasury edit panel. (read only)
- Treasury Entry - part of the Treasury panel.
- League - select a League to be the current League.
- Bowler - select a Bowler when creating a new Member.
- Criteria - select the criteria for an Award Earned.
- Contest - select the Contest for an Award Earned.
- Team Positions - select a position in order to select a Member.
- Member - select a Member in the Award Earned and Team panels.
The picker panel is where a ListSelectionListener is needed because each
time a new item is selected, another panel, and possibly other elements,
must react by displaying
information related to the item selected. Here are the picker
panels needed:
- Contest - used in the Treasury, and Schedule panels.
- Lane Assignment - used in the Schedule panel.
- Team - used on the Team panel. Displays the team members in a separate list.
- Member - used in the Treasury panel.
There are also a few custom Dialogs, and therefore custom panels to be created. &mnsp;The first is the Season selection panel. Since there is no season Ticable, only a list of folder names, this must be custom. The various Address Dialogs may need custom panels because of the complexity and interaction with the PostalCode Dialog. The select Award Earned screen has several sort criteria options on it, so it will probably be custom. Another is the Add Contest(s) Dialog used to allow the user to quickly fill in a list of contest dates. It is complex with radio buttons and checkboxes.