* Extension point for metamodel extension authorization - extension would identify metamodel URI as a metamodel that can have extension properties defined - ExtensionPlugin should load these - ExtensionPlugin should have accessor method for these * Create model extension definition registry view - Shows what the MED registry looks like - Since there is an editor for MEDs this view does not need to show the complete MED. Maybe all that is needed is a table with the namespace prefix, namespace URI, metamodel URI, version, and description is all that is needed. - Add MED Action -- always enabled -- choice to either (1) start new model extension definition wizard (see below), (2) add existing workspace MXD file, or (3) add non-workspace file (adds to workspace and to registry) - Delete MED Action (Refactor) -- enabled by single selection -- deletes MED from registry but NOT from workspace (could offer choice to delete file also) -- warn user of implications and gives user choice of removing MED from models and from model object properties - Edit/Open MED Action (Refactor) -- enabled by single selection -- opens MXD editor for selected MED -- also double-click on MED should open MXD editor -- give user choice of changing MED in models and removing/changing model object properties if necessary - Importer Action (not needed) -- use Eclipse file importer or the Add action - Exporter Action (not needed) -- just use the Eclipse file exporter - Action to find MED References -- enabled on single selection of MED -- is there an issue with opening each and every model in the workspace -- references should be shown in search results view (reuse the model object search results) - Only 1 version of MED allowed in registry * New model extension definition wizard - Page 1: workspace path (project path and name), namespace prefix (unique to registry), namespace URI (unique to registry) - Finish: open MXD editor * MXD Eclipse editor - tied to a resource (*.mxd file) - check readonly flag - maybe a tabbed editor (Info, Properties, and Source) - inform user of implications of changing MED - outline view support (tree) - should saving the new MXD editor add to the registry or should there be "Add to registry" button? - Issue: internationalization * Model MED management - model resource context menu action - ability to apply/store applicable MEDs in model or remove MEDs from model - option in dialog to extract model MED to registry (just need path from user) - or dialog saying there are no MEDs saved in the model and none that can be applied based on the metamodel URI - tell user removing a MED will also remove all associated model object extension properties - indicate if MEDs stored in model are not registered or if the versions are different * Validation - Warning: MED in model is not registered. Quick Fix: Add MED to registry. Quick Fix: Remove MED from model. - Warning: MED in model is registered but is a different version. Quick Fix: Update registry to model MED version. Quick Fix: Update model to registry MED version. - Warning: Model object property does not have a registered MED. Quick Fix: Remove property from model object. - Warning: Model object property does not exist in registered MED. Quick Fix: Remove property from model object. - Error: MED namespace prefix already exists - Error: MED namespace prefix is empty or has illegal characters - Error: MED namespace URI already exists - Error: MED namespace URI is empty or has illegal characters - Error: MED no metamodel extended - Error: MED no metaclasses extended - Error: MED no properties for extended metaclass - Error: MED property ID already exists - Error: MED property ID is empty or has illegal characters - Error: MED extended metamodel URI is not allowed to be extended - probably lots more errors. but might be able to just parse the MXD file and if exception use that as the error message. * Question: Should we show model's MEDs in explorer tree? * Task: Update Wiki article on model extension framework * Task: Include JIRA mockups