|
Hi and thanks for providing a sample.
Currently the generator retrieves all tables (and their fields) from the repository and when the number of tables and fields grows showing them all inside a symbol is not likely to scale.
Without knowing other details of the language, my first proposal is allow user to simply select among all tables and field available. To implement this approach, I would add a collection property (e.g. Data) that can refer to the fields to be selected (or to tables to be selected, or to both. Referring both can be achieved by having a common and abstract supertype so the Data collection property contains the supertype (so tables or fields)).
If user chooses just Table we can expect that all its values are selected. Alternatively user can select just fields individually. The actual selection is made with Selection tool allowing the person to use different filters to select, like show all fields, show all tables, navigate into fields by table, etc (see http://www.metacase.com/support/51/manuals/meplus/Mp-3_3_2.html#Heading693" rel="nofollow - Selection tool and its functionality ).
If you prefer that user still sees selected elements in the diagram as in your sample, MERL script can show table and field information accordingly – depending on what means if only table is selected without fields, if just field is selected, or perhaps you expect that table should be selected if any fields of it are selected. As an example, in the screenshot below PeopleSoft2 is grey as user has not selected the table but just a fieldB (and PeopleSoft1 table and Field1). Similarly other visualizations are possible, like if just Table is selected we could then expect that all its fields are selected too.

Also other selection approaches are possible. For example, if you want to describe in addition to selection how the table or field is used (e.g. create, read, update, delete), there can be a relationship from the individual field or table to another element indicating also more than selection but also the operation (like read or delete). Implementation for this would follow the same idea as you have done for templates in http://www.metacase.com/forums/forum_posts.asp?TID=813&PID=2014&title=port-navigation#2014" rel="nofollow - earlier post .
I hope this helps.
|