This task is a large one that included all the work needed to move to a more robust and extensible system.
New File Format
[x] Implement Diagram Element Tree
[x] Implement new referencing system. Prefer relative references instead of absolute.
[x] Save and Load it into new format
[x] When user tries to load a Graphiti diagram.
Prompt to convert.
Give option to convert some or all files.
Explain need.
Open in read-only mode if not converted.
Rename file. Suggest name based on diagram title unless diagram file is not UUID.
[x] Change file extension for AADL Diagrams? If not, update navigator extension to handle non UUID names.
[x] Allow creating diagrams which do not have a root business object.
[x] Allow creating a diagram with a selected root business object. Even if one already exists. Only support classifiers, packages, and component instances?
Renaming Support
[x] Update all diagrams after an element is renamed. Use stream to avoid loading entire from memory.
[x] Allow Renaming Package from Diagram
[x] As time allows, investigate updating diagrams after refactoring from the text side.
Diagram Configuration
[x] Design and Implement Diagram Configuration System. Flexible system to allow specifying exactly what should be displayed in the diagram but also allowing simple rule based configuration for simpler use cases. Migrate GetChildren uses to new system.
Should allow predefined sets of rules/providers.
[x] Implement User Interface to configure diagram. Set title too.
[x] There should be an indicator for elements when its children aren't being completely shown. For example: (P) for partial. (C) for collapsed(in case of feature groups). Should be toggle-able as part of config?
Properties
[x] References. Example: bindings
[x] Simple text annotation. Example: Connection Pattern
[x] Providers should be supported for all property sets which are within scope of the project.
Cleanup and Wrapup
[x] Add annotation when a classifier extends an element which is not in the diagram. Toggleable? This provide the user with more information and is especially needed if classifiers in other packages are not shown in package diagrams.
[x] Ensure coloring service works with new system.
[x] Remove specialized binding pattern.
[x] Remove interface for filtering connection bindings. No longer needed after diagram configuration is implemented.
This task is a large one that included all the work needed to move to a more robust and extensible system.
New File Format
Renaming Support
Diagram Configuration
Properties
Cleanup and Wrapup