Made the layout of the application.
The architecture will be like the following:
- the main application contains a Shell and a menu,
- the View Layout module that contains on the Left an IconTabbedWorkspace (containing the tree view) and on Right a DeckWorkspace with the UserControl that can split in 4 views. Different user operations like Drawing a Part, Making an Assembly, Make a Drawing will use a view with this Layout on which they load their custom tabs,
- each set of functionality (like model manipulation or selections) will be packed into a module that registers at loading a toolbar with the functionality that it provides and the menu entries; the main application has access to the UIExtension sites and can show/hide any of the registered toolbars,
- each use case, like Drawing a Part, will start by launching an child ControlledWorkItem that has access to the Application Model (the OCAF tree), at the application context and active view,
- the View will generate loosely coupled events that will be listened by the running child WorkItem or internally by the tree view.
Studied the Tree views that similar applications have. Actually in the tree view they represent the model through the sketches and the features applied to them. Looked how the features are attached to sketches and what happens if a sketch or a feature is deleted.
Will continue with implementing this concept and porting existing code on it.