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.
Possible Solutions
Maintain View Configuration Storage in the Attribute Resource
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.
Move the View Configurations into the View Manager
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.
Move View Configurations into the Project
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.