I am about to complete my SCJD assignment, but doubts are creeping up.
In addition to finding and booking, I have implemented a number of maintenance functionality (adding new records, modifying, deleting). In addition I have taken some effort to have popup dialog to keep users from accidentally loosing data (the sort of "Are you really sure you do not want to save this" windows).
Can anybody help me to find out whether I am overdoing or whether the thing is fair? Any comment is welcome!!!
I have implemented a number of maintenance functionality (adding new records, modifying, deleting).
Those operations are not requirements of the assignment. As a real world developer it's always a mistake to add use cases that the customer does not ask for for several reasons the greatest of which is it puts unnecessary pressure on the schedule. I'm not sure if it will cost you or not but would lean towards probably not.
In addition I have taken some effort to have popup dialog to keep users from accidentally loosing data (the sort of "Are you really sure you do not want to save this" windows).
I'm pretty paranoid about users with IQ's below 90 myself due to years of experience. I don't really see anything wrong with it if the user can really screw things up by the operation. Just don't get carried away.
Hope this helps,
I feel that you understand me! I went about the whole thing as if it were a real world program. Meanwhile I have re-read the instructions and decided to remove everything except (initial) loading, finding, and booking.
For each operation I have an AbstractAction object extended, and a Command object defined. It's really child's play to add (or remove) operations.
I'd be really glad to know how many functions, buttons and menu items you implemented. As far as I know your GUI score was very good. Did you provide GUI functions to add / delete / modify records?
[ September 04, 2002: Message edited by: Mag Hoehme ]
I had a Menu which had File, Action and Help main menus. The File menu had Close Connection and Exit submenus; The Action menu had Book Flight and Search Database submenus. The Help menu had Help Topics and About submenus. All submenus had accelerators. I had a progress monitor at startup while opening the database connection, reading all the data, sizing the table and frame, etc that popped up before the GUI was shown. Just below the menu was the table. Below that was the Booking Panel which contained a label that followed the selected row in the table and showed the pertinent data, a text field for entering the number of seats that only accepted valid values (1-available seats), and a Book button. At the bottom was my Search Panel which had three combo boxes for Carrier, Origin and Destination whose items were sorted sets (TreeSet) and a Search button. And that's it.
There was no coupling between any of my GUI componets. I used a beans approach to dispatch pseudo property changes. Whenever a user selected Book Flight from the menu it dispatched a propery named "proxyBook" which the Booking Panel was registered to listen for. So whenver it received a "proxyBook" notification it took the same action as pressing the Book button.