aspose file tools*
The moose likes OO, Patterns, UML and Refactoring and the fly likes Discussion on the various classes needed for an Application --- Anyone? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "Discussion on the various classes needed for an Application --- Anyone?" Watch "Discussion on the various classes needed for an Application --- Anyone?" New topic
Author

Discussion on the various classes needed for an Application --- Anyone?

zulfiqar raza
Ranch Hand

Joined: Oct 18, 2000
Posts: 81
Hello all,
Anyone willing to discuss the Objects and classes for the following JFC Swing front end, Database Server backend application.
Objective: Design an Application that you can use to Administer the Menu System of an intranet application. This can be done through manipulating the tables in the backend database server.
DATABASE:
1. The back end database will have four tables related to menu system. MENU_GROUPS, MENUS, MENU_ITEMS, USERS
MENU_GROUPS: This table has the names of the various menu groups, for example, HR group, Sales group
MENUS: This table has the names of various menus and their parent menus. Also the menu group this menu is part of. So the information in this table lends itself to a JTree structure.
MENU_ITEMS: This is the table which hold the different Items which and link them to the various Menus. This table lends itself to a JTable structure on the user interface.
USERS: This table just holds the username and password, required to execute this Menu Administration System (MAS) Application.
2. These tables can reside in different DBMS, starting with mySQL, MS-SQL 7.0 and Oracle 8x.
USER INTERFACE:
1. One login dialog screen, which will just verify a username and password the USERS table.
2. One main user screen which will have 3 panels. The first panel will have a JTree component which will show:
* at the root a list of Menu Groups from the Menu Group table.
* Expanded each of these groups will list the Menus and Sub
Menus.
* Each of the Menus and Sub Menus may hold the various Menu
Items as leaf items of the JTree.
One should be able to add Menu Groups, Add Menus to groups, Add Items to Menus from the 2nd panel and clone entire Menu groups.
The second panel will hold in a JTable the list of Menu Items. These menu items may be dragged to the JTree in the first panel to add them the various Menus and Sub Menus.
The third and final panel will just receive system messages, including database error messages.
If anyone can discuss the general classes needed to have a robust object oriented design??
For example it seems to me that each the tables will have class that will implement the TableModel or TreeModel. However should I make interfaces for a generic table first?
Given this system will need to access various backend databases, should I make a DataSource interface first. A class what would implement the various common methods and then subclass this class specific to the different dbms, forexample a mySQLDataSource, OracleDataSource etc?
I will try to put my final design here, if I can finish it.
thanks all
zulfiqar

daniel schulken
Ranch Hand

Joined: Sep 23, 2000
Posts: 34
i thank you should have a different topic. perhaps design challange?
looks like a good list of requirements though.
i get working on this, this weekend.
Laojar Chuger
Ranch Hand

Joined: Dec 20, 2000
Posts: 111
I am not very clear about the objecttive of the application. Do you want to show the entitled items in a tree for each user?
zulfiqar raza
Ranch Hand

Joined: Oct 18, 2000
Posts: 81
Hi, thank you for reply. The first panel would have a JTree. The root of the Tree will list all the available Menu Groups from the Menu_groups table. For example HR Group, Sales Group.
If you expand the root of the JTree, you will get all the Menus associated with a Menu_Group, from the Menus table. The Menu table links each Menu to a Menu Group. Since Menus can have sub menus, this table also links each Menu to a parent menu (if it has a parent menu).
Each Menu will have a list of Menu Items from the Menu_Items table.
The database Schema is the following:
Table: Menu_Groups
Fields: Menu_Group_Name
Table: Menus
Fields: Menu_Name, Parent_Menu, Menu_Group_Name
Table: Menu_Items
Fields: Menu_Items_Name, Menu_Name, Menu_Group_Name
Table: Users
Fields: UserName, Password
The application Interface might look the like the following:

In the above ASCII sketch .. I have the standard Swing JMenu on top. We dont have to worry about this one.
The first panel has the expandable JTree
The 2nd Panel has the JTable.
The 3rd Panel just shows system messages.
I hope this makes it more clear.

[This message has been edited by zulfiqar raza (edited March 01, 2001).]
Laojar Chuger
Ranch Hand

Joined: Dec 20, 2000
Posts: 111
Basically, this may a navigation system if I was not wrong. If you are going to use swing, JTree classes should be used as a basic framework. Of course you will need a lot of support classes.
IMHO, these of following should be considered:

User
Permission
Authenticator
ConnectionManager
Item
Menu
Since you request to give user the ability to modify the tree, I think this may indicate you could have user to modify the data table. In this case, objects should be considered to match the each table role.

 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
 
subject: Discussion on the various classes needed for an Application --- Anyone?