Dynamic Browsing and Instantiation Capabilites in EMF
EMF provides a reflective editor, which can view and edit any EMF model file, using only the model meta-data. It provides similar function to the default generated editor, but it can't be easily customized.
In this short write up I have tried to pen down the steps involved for using this reflective editor which is quiet a hidden feature in EMF.
Using the Reflective Editor – an Example
Step 1. Create an Empty EMF Project.
Step 2. Create an Ecore using the Example EMF Model Creation Wizards > Ecore Model
The Ecore editor would open with the package as null. Double Click on the package:null to update the Name and NsURI Property. NsURI should be assigned the resource path where the ecore is found. For e.g. /resource/<Plugin Name>/<Folder Name>/<Ecore Name>.ecore
Step 3. Update the Ecore to represent your model.Step 4. Once the ecore is updated, Right Click on the RootObject of your model that you would want to instantiate and select Create Dynamic Instance... available after Validate