In the current design we have the following:
- View Configurations are stored in an Attribute Resource
- Task Specifications are to be stored within a Project
- A Task can have a set of “Styles” associated with it.
- Styles can refer to Views
The problem is that Tasks live outside of any Attribute Resource so storing Views solely within an Attribute Resource is now potentially problematic.
In this approach, if a style refers to a View, then search all of the Attribute Resources found in the task for the View. This is the simplest approach though maybe not the most conceptually clean design. It would allow Attribute SMTK/SBT files to loaded into ModelBuilder without the need of loading in Projects.
The View Manager currently stored all View generating factory functions and could be extended to also hold the View Configuration information as well. The problem in this case is View name collision. Two different Attribute Resources or Projects, could have View Configurations with the same name. This approach could result in one Attribute Resource / Project redefining the View Configuration of another unless care is taken to scope the names in some way.
Might be the cleanest approach conceptually, but the complication would be we would still need to support the current approach of have Attribute Resources also storing the View Configuration information as well.