public class InformationFormView;...... public InformationFormView() { //Constructor // Load/access EMF model ModelResource.getInstance(); // Instantiate and, if necessary, initialize singleton // Can be useful;-) Set reference to EMF/Ecore model this.model = ModelResource.getInstance().eModel(); // Set editingDomain this.editingDomain = ModelResource.getInstance().getEditingDomain(); } ---------- public class ModelResource;.... public ModelResource(String filpath) { //Constructor if (instantiated != true) { File f = new File(filepath); String p = f.getAbsolutePath(); URI fileURI = URI.createFileURI(p); createEditingDomain(); resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put( Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl()); resource = resourceSet.getResource(fileURI, true); instantiated = true; } else { ModelResource.getInstance(); } } public EObject eModel() { // rtr reference to Ecore model return (EObject) resource.getContents().get(0); } public EditingDomain getEditingDomain() { return this.editingDomain; } private void createEditingDomain() { adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE); resourceSet = new ResourceSetImpl(); commandStack = new BasicCommandStack(); commandStack.addCommandStackListener( new CommandStackListener() { public void commandStackChanged(EventObject event) { for (Listener l : listeners) { l.commandStackChanged(); } setModified(true); if (changes > -1 && !skipEvent) changes++; } }); editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, resourceSet); }