509684: regenerated example library editor code

Change-Id: I11de7814fe303b02fbf5ec8b5758dcf4df0ca30e
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=509684
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryActionBarContributor.java b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryActionBarContributor.java
index 1542941..ffe6027 100644
--- a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryActionBarContributor.java
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryActionBarContributor.java
@@ -64,420 +64,389 @@
 public class EXTLibraryActionBarContributor extends EditingDomainActionBarContributor implements ISelectionChangedListener
 {
   /**
-   * This keeps track of the active editor.
-   * <!-- begin-user-doc -->
+	 * This keeps track of the active editor.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected IEditorPart activeEditorPart;
 
   /**
-   * This keeps track of the current selection provider.
-   * <!-- begin-user-doc -->
+	 * This keeps track of the current selection provider.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected ISelectionProvider selectionProvider;
 
   /**
-   * This action opens the Properties view.
-   * <!-- begin-user-doc -->
+	 * This action opens the Properties view.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected IAction showPropertiesViewAction =
     new Action(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) //$NON-NLS-1$
-    {
-      @Override
-      public void run()
-      {
-        try
-        {
-          getPage().showView("org.eclipse.ui.views.PropertySheet"); //$NON-NLS-1$
-        }
-        catch (PartInitException exception)
-        {
-          EXTLibraryEditorPlugin.INSTANCE.log(exception);
-        }
-      }
-    };
+		{
+			@Override
+			public void run() {
+				try {
+					getPage().showView("org.eclipse.ui.views.PropertySheet"); //$NON-NLS-1$
+				}
+				catch (PartInitException exception) {
+					EXTLibraryEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
 
   /**
-   * This action refreshes the viewer of the current editor if the editor
-   * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
-   * <!-- begin-user-doc -->
+	 * This action refreshes the viewer of the current editor if the editor
+	 * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected IAction refreshViewerAction =
     new Action(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) //$NON-NLS-1$
-    {
-      @Override
-      public boolean isEnabled()
-      {
-        return activeEditorPart instanceof IViewerProvider;
-      }
+		{
+			@Override
+			public boolean isEnabled() {
+				return activeEditorPart instanceof IViewerProvider;
+			}
 
-      @Override
-      public void run()
-      {
-        if (activeEditorPart instanceof IViewerProvider)
-        {
-          Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
-          if (viewer != null)
-          {
-            viewer.refresh();
-          }
-        }
-      }
-    };
+			@Override
+			public void run() {
+				if (activeEditorPart instanceof IViewerProvider) {
+					Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+					if (viewer != null) {
+						viewer.refresh();
+					}
+				}
+			}
+		};
 
   /**
-   * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
-   * generated for the current selection by the item provider.
-   * <!-- begin-user-doc -->
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected Collection<IAction> createChildActions;
 
   /**
-   * This is the menu manager into which menu contribution items should be added for CreateChild actions.
-   * <!-- begin-user-doc -->
+	 * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected IMenuManager createChildMenuManager;
 
   /**
-   * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
-   * generated for the current selection by the item provider.
-   * <!-- begin-user-doc -->
+	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+	 * generated for the current selection by the item provider.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected Collection<IAction> createSiblingActions;
 
   /**
-   * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
-   * <!-- begin-user-doc -->
+	 * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected IMenuManager createSiblingMenuManager;
 
   /**
-   * This creates an instance of the contributor.
-   * <!-- begin-user-doc -->
+	 * This creates an instance of the contributor.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public EXTLibraryActionBarContributor()
   {
-    super(ADDITIONS_LAST_STYLE);
-    loadResourceAction = new LoadResourceAction();
-    validateAction = new ValidateAction();
-    controlAction = new ControlAction();
-  }
+		super(ADDITIONS_LAST_STYLE);
+		loadResourceAction = new LoadResourceAction();
+		validateAction = new ValidateAction();
+		controlAction = new ControlAction();
+	}
 
   /**
-   * This adds Separators for editor additions to the tool bar.
-   * <!-- begin-user-doc -->
+	 * This adds Separators for editor additions to the tool bar.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public void contributeToToolBar(IToolBarManager toolBarManager)
   {
-    toolBarManager.add(new Separator("extlibrary-settings")); //$NON-NLS-1$
-    toolBarManager.add(new Separator("extlibrary-additions")); //$NON-NLS-1$
-  }
+		toolBarManager.add(new Separator("extlibrary-settings")); //$NON-NLS-1$
+		toolBarManager.add(new Separator("extlibrary-additions")); //$NON-NLS-1$
+	}
 
   /**
-   * This adds to the menu bar a menu and some separators for editor additions,
-   * as well as the sub-menus for object creation items.
-   * <!-- begin-user-doc -->
+	 * This adds to the menu bar a menu and some separators for editor additions,
+	 * as well as the sub-menus for object creation items.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public void contributeToMenu(IMenuManager menuManager)
   {
-    super.contributeToMenu(menuManager);
+		super.contributeToMenu(menuManager);
 
-    IMenuManager submenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryEditor_menu"), "org.eclipse.emf.examples.extlibraryMenuID"); //$NON-NLS-1$ //$NON-NLS-2$
-    menuManager.insertAfter("additions", submenuManager); //$NON-NLS-1$
-    submenuManager.add(new Separator("settings")); //$NON-NLS-1$
-    submenuManager.add(new Separator("actions")); //$NON-NLS-1$
-    submenuManager.add(new Separator("additions")); //$NON-NLS-1$
-    submenuManager.add(new Separator("additions-end")); //$NON-NLS-1$
+		IMenuManager submenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryEditor_menu"), "org.eclipse.emf.parsley.examples.libraryMenuID"); //$NON-NLS-1$ //$NON-NLS-2$
+		menuManager.insertAfter("additions", submenuManager); //$NON-NLS-1$
+		submenuManager.add(new Separator("settings")); //$NON-NLS-1$
+		submenuManager.add(new Separator("actions")); //$NON-NLS-1$
+		submenuManager.add(new Separator("additions")); //$NON-NLS-1$
+		submenuManager.add(new Separator("additions-end")); //$NON-NLS-1$
 
-    // Prepare for CreateChild item addition or removal.
-    //
-    createChildMenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); //$NON-NLS-1$
-    submenuManager.insertBefore("additions", createChildMenuManager); //$NON-NLS-1$
+		// Prepare for CreateChild item addition or removal.
+		//
+		createChildMenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); //$NON-NLS-1$
+		submenuManager.insertBefore("additions", createChildMenuManager); //$NON-NLS-1$
 
-    // Prepare for CreateSibling item addition or removal.
-    //
-    createSiblingMenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); //$NON-NLS-1$
-    submenuManager.insertBefore("additions", createSiblingMenuManager); //$NON-NLS-1$
+		// Prepare for CreateSibling item addition or removal.
+		//
+		createSiblingMenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); //$NON-NLS-1$
+		submenuManager.insertBefore("additions", createSiblingMenuManager); //$NON-NLS-1$
 
-    // Force an update because Eclipse hides empty menus now.
-    //
-    submenuManager.addMenuListener
-      (new IMenuListener()
-       {
-         public void menuAboutToShow(IMenuManager menuManager)
-         {
-           menuManager.updateAll(true);
-         }
-       });
+		// Force an update because Eclipse hides empty menus now.
+		//
+		submenuManager.addMenuListener
+			(new IMenuListener() {
+				 public void menuAboutToShow(IMenuManager menuManager) {
+					 menuManager.updateAll(true);
+				 }
+			 });
 
-    addGlobalActions(submenuManager);
-  }
+		addGlobalActions(submenuManager);
+	}
 
   /**
-   * When the active editor changes, this remembers the change and registers with it as a selection provider.
-   * <!-- begin-user-doc -->
+	 * When the active editor changes, this remembers the change and registers with it as a selection provider.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public void setActiveEditor(IEditorPart part)
   {
-    super.setActiveEditor(part);
-    activeEditorPart = part;
+		super.setActiveEditor(part);
+		activeEditorPart = part;
 
-    // Switch to the new selection provider.
-    //
-    if (selectionProvider != null)
-    {
-      selectionProvider.removeSelectionChangedListener(this);
-    }
-    if (part == null)
-    {
-      selectionProvider = null;
-    }
-    else
-    {
-      selectionProvider = part.getSite().getSelectionProvider();
-      selectionProvider.addSelectionChangedListener(this);
+		// Switch to the new selection provider.
+		//
+		if (selectionProvider != null) {
+			selectionProvider.removeSelectionChangedListener(this);
+		}
+		if (part == null) {
+			selectionProvider = null;
+		}
+		else {
+			selectionProvider = part.getSite().getSelectionProvider();
+			selectionProvider.addSelectionChangedListener(this);
 
-      // Fake a selection changed event to update the menus.
-      //
-      if (selectionProvider.getSelection() != null)
-      {
-        selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
-      }
-    }
-  }
+			// Fake a selection changed event to update the menus.
+			//
+			if (selectionProvider.getSelection() != null) {
+				selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+			}
+		}
+	}
 
   /**
-   * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
-   * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
-   * that can be added to the selected object and updating the menus accordingly.
-   * <!-- begin-user-doc -->
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+	 * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+	 * that can be added to the selected object and updating the menus accordingly.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public void selectionChanged(SelectionChangedEvent event)
   {
-    // Remove any menu items for old selection.
-    //
-    if (createChildMenuManager != null)
-    {
-      depopulateManager(createChildMenuManager, createChildActions);
-    }
-    if (createSiblingMenuManager != null)
-    {
-      depopulateManager(createSiblingMenuManager, createSiblingActions);
-    }
+		// Remove any menu items for old selection.
+		//
+		if (createChildMenuManager != null) {
+			depopulateManager(createChildMenuManager, createChildActions);
+		}
+		if (createSiblingMenuManager != null) {
+			depopulateManager(createSiblingMenuManager, createSiblingActions);
+		}
 
-    // Query the new selection for appropriate new child/sibling descriptors
-    //
-    Collection<?> newChildDescriptors = null;
-    Collection<?> newSiblingDescriptors = null;
+		// Query the new selection for appropriate new child/sibling descriptors
+		//
+		Collection<?> newChildDescriptors = null;
+		Collection<?> newSiblingDescriptors = null;
 
-    ISelection selection = event.getSelection();
-    if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1)
-    {
-      Object object = ((IStructuredSelection)selection).getFirstElement();
+		ISelection selection = event.getSelection();
+		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+			Object object = ((IStructuredSelection)selection).getFirstElement();
 
-      EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+			EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
 
-      newChildDescriptors = domain.getNewChildDescriptors(object, null);
-      newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
-    }
+			newChildDescriptors = domain.getNewChildDescriptors(object, null);
+			newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+		}
 
-    // Generate actions for selection; populate and redraw the menus.
-    //
-    createChildActions = generateCreateChildActions(newChildDescriptors, selection);
-    createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+		// Generate actions for selection; populate and redraw the menus.
+		//
+		createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+		createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
 
-    if (createChildMenuManager != null)
-    {
-      populateManager(createChildMenuManager, createChildActions, null);
-      createChildMenuManager.update(true);
-    }
-    if (createSiblingMenuManager != null)
-    {
-      populateManager(createSiblingMenuManager, createSiblingActions, null);
-      createSiblingMenuManager.update(true);
-    }
-  }
+		if (createChildMenuManager != null) {
+			populateManager(createChildMenuManager, createChildActions, null);
+			createChildMenuManager.update(true);
+		}
+		if (createSiblingMenuManager != null) {
+			populateManager(createSiblingMenuManager, createSiblingActions, null);
+			createSiblingMenuManager.update(true);
+		}
+	}
 
   /**
-   * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
-   * and returns the collection of these actions.
-   * <!-- begin-user-doc -->
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection)
   {
-    Collection<IAction> actions = new ArrayList<IAction>();
-    if (descriptors != null)
-    {
-      for (Object descriptor : descriptors)
-      {
-        actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
-      }
-    }
-    return actions;
-  }
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
 
   /**
-   * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
-   * and returns the collection of these actions.
-   * <!-- begin-user-doc -->
+	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+	 * and returns the collection of these actions.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection)
   {
-    Collection<IAction> actions = new ArrayList<IAction>();
-    if (descriptors != null)
-    {
-      for (Object descriptor : descriptors)
-      {
-        actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
-      }
-    }
-    return actions;
-  }
+		Collection<IAction> actions = new ArrayList<IAction>();
+		if (descriptors != null) {
+			for (Object descriptor : descriptors) {
+				actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+			}
+		}
+		return actions;
+	}
 
   /**
-   * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
-   * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
-   * by inserting them before the specified contribution item <code>contributionID</code>.
-   * If <code>contributionID</code> is <code>null</code>, they are simply added.
-   * <!-- begin-user-doc -->
+	 * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+	 * by inserting them before the specified contribution item <code>contributionID</code>.
+	 * If <code>contributionID</code> is <code>null</code>, they are simply added.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID)
   {
-    if (actions != null)
-    {
-      for (IAction action : actions)
-      {
-        if (contributionID != null)
-        {
-          manager.insertBefore(contributionID, action);
-        }
-        else
-        {
-          manager.add(action);
-        }
-      }
-    }
-  }
+		if (actions != null) {
+			for (IAction action : actions) {
+				if (contributionID != null) {
+					manager.insertBefore(contributionID, action);
+				}
+				else {
+					manager.add(action);
+				}
+			}
+		}
+	}
     
   /**
-   * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
-   * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
-   * <!-- begin-user-doc -->
+	 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions)
   {
-    if (actions != null)
-    {
-      IContributionItem[] items = manager.getItems();
-      for (int i = 0; i < items.length; i++)
-      {
-        // Look into SubContributionItems
-        //
-        IContributionItem contributionItem = items[i];
-        while (contributionItem instanceof SubContributionItem)
-        {
-          contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
-        }
+		if (actions != null) {
+			IContributionItem[] items = manager.getItems();
+			for (int i = 0; i < items.length; i++) {
+				// Look into SubContributionItems
+				//
+				IContributionItem contributionItem = items[i];
+				while (contributionItem instanceof SubContributionItem) {
+					contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+				}
 
-        // Delete the ActionContributionItems with matching action.
-        //
-        if (contributionItem instanceof ActionContributionItem)
-        {
-          IAction action = ((ActionContributionItem)contributionItem).getAction();
-          if (actions.contains(action))
-          {
-            manager.remove(contributionItem);
-          }
-        }
-      }
-    }
-  }
+				// Delete the ActionContributionItems with matching action.
+				//
+				if (contributionItem instanceof ActionContributionItem) {
+					IAction action = ((ActionContributionItem)contributionItem).getAction();
+					if (actions.contains(action)) {
+						manager.remove(contributionItem);
+					}
+				}
+			}
+		}
+	}
 
   /**
-   * This populates the pop-up menu before it appears.
-   * <!-- begin-user-doc -->
+	 * This populates the pop-up menu before it appears.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public void menuAboutToShow(IMenuManager menuManager)
   {
-    super.menuAboutToShow(menuManager);
-    MenuManager submenuManager = null;
+		super.menuAboutToShow(menuManager);
+		MenuManager submenuManager = null;
 
-    submenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); //$NON-NLS-1$
-    populateManager(submenuManager, createChildActions, null);
-    menuManager.insertBefore("edit", submenuManager); //$NON-NLS-1$
+		submenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); //$NON-NLS-1$
+		populateManager(submenuManager, createChildActions, null);
+		menuManager.insertBefore("edit", submenuManager); //$NON-NLS-1$
 
-    submenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); //$NON-NLS-1$
-    populateManager(submenuManager, createSiblingActions, null);
-    menuManager.insertBefore("edit", submenuManager); //$NON-NLS-1$
-  }
+		submenuManager = new MenuManager(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); //$NON-NLS-1$
+		populateManager(submenuManager, createSiblingActions, null);
+		menuManager.insertBefore("edit", submenuManager); //$NON-NLS-1$
+	}
 
   /**
-   * This inserts global actions before the "additions-end" separator.
-   * <!-- begin-user-doc -->
+	 * This inserts global actions before the "additions-end" separator.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   protected void addGlobalActions(IMenuManager menuManager)
   {
-    menuManager.insertAfter("additions-end", new Separator("ui-actions")); //$NON-NLS-1$ //$NON-NLS-2$
-    menuManager.insertAfter("ui-actions", showPropertiesViewAction); //$NON-NLS-1$
+		menuManager.insertAfter("additions-end", new Separator("ui-actions")); //$NON-NLS-1$ //$NON-NLS-2$
+		menuManager.insertAfter("ui-actions", showPropertiesViewAction); //$NON-NLS-1$
 
-    refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		
-    menuManager.insertAfter("ui-actions", refreshViewerAction); //$NON-NLS-1$
+		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		
+		menuManager.insertAfter("ui-actions", refreshViewerAction); //$NON-NLS-1$
 
-    super.addGlobalActions(menuManager);
-  }
+		super.addGlobalActions(menuManager);
+	}
 
   /**
-   * This ensures that a delete action will clean up all references to deleted objects.
-   * <!-- begin-user-doc -->
+	 * This ensures that a delete action will clean up all references to deleted objects.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   protected boolean removeAllReferencesOnDelete()
   {
-    return true;
-  }
+		return true;
+	}
 
 }
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditor.java b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditor.java
index 67f96c8..0f42fb2 100644
--- a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditor.java
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditor.java
@@ -17,101 +17,75 @@
 package org.eclipse.emf.parsley.examples.library.presentation;
 
 
-import org.eclipse.emf.common.command.BasicCommandStack;
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.command.CommandStackListener;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.common.ui.MarkerHelper;
-import org.eclipse.emf.common.ui.ViewerPane;
-
-import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
-
-import org.eclipse.emf.common.ui.viewer.IViewerProvider;
-
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.common.util.Diagnostic;
-import org.eclipse.emf.common.util.URI;
-
-import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.domain.IEditingDomainProvider;
-
-import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
-
-import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
-
-import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
-
-import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
-
-import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
-import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
-import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
-
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-
-import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
-import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
-
-import org.eclipse.emf.edit.ui.util.EditUIUtil;
-import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EValidator;
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-import org.eclipse.emf.ecore.util.EContentAdapter;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.parsley.examples.library.provider.EXTLibraryItemProviderAdapterFactory;
-
-
 import java.io.IOException;
-
 import java.io.InputStream;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.EventObject;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
-
 import java.util.Map;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeListener;
 import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
 import org.eclipse.core.resources.IResourceDelta;
 import org.eclipse.core.resources.IResourceDeltaVisitor;
 import org.eclipse.core.resources.ResourcesPlugin;
-
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+import org.eclipse.emf.parsley.examples.library.provider.EXTLibraryItemProviderAdapterFactory;
 import org.eclipse.jface.action.IMenuListener;
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.IStatusLineManager;
 import org.eclipse.jface.action.IToolBarManager;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.action.Separator;
-
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-
+import org.eclipse.jface.util.LocalSelectionTransfer;
 import org.eclipse.jface.viewers.ColumnWeightData;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -125,60 +99,41 @@
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TreeViewer;
 import org.eclipse.jface.viewers.Viewer;
-
 import org.eclipse.swt.SWT;
-
 import org.eclipse.swt.custom.CTabFolder;
-
 import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
 import org.eclipse.swt.dnd.Transfer;
-
 import org.eclipse.swt.events.ControlAdapter;
 import org.eclipse.swt.events.ControlEvent;
-
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.layout.FillLayout;
-
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.swt.widgets.Tree;
 import org.eclipse.swt.widgets.TreeColumn;
-
 import org.eclipse.ui.IActionBars;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.IPartListener;
 import org.eclipse.ui.IWorkbenchPart;
-
 import org.eclipse.ui.PartInitException;
-
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
 import org.eclipse.ui.dialogs.SaveAsDialog;
-
 import org.eclipse.ui.ide.IGotoMarker;
-
 import org.eclipse.ui.part.FileEditorInput;
 import org.eclipse.ui.part.MultiPageEditorPart;
-
 import org.eclipse.ui.views.contentoutline.ContentOutline;
 import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
 import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-
 import org.eclipse.ui.views.properties.IPropertySheetPage;
 import org.eclipse.ui.views.properties.PropertySheet;
 import org.eclipse.ui.views.properties.PropertySheetPage;
 
 
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-
-
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-
 /**
  * This is an example of a EXTLibrary model editor.
  * <!-- begin-user-doc -->
@@ -194,203 +149,192 @@
     IGotoMarker
 {
   /**
-   * This keeps track of the editing domain that is used to track all changes to the model.
-   * <!-- begin-user-doc -->
+	 * This keeps track of the editing domain that is used to track all changes to the model.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected AdapterFactoryEditingDomain editingDomain;
 
   /**
-   * This is the one adapter factory used for providing views of the model.
-   * <!-- begin-user-doc -->
+	 * This is the one adapter factory used for providing views of the model.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected ComposedAdapterFactory adapterFactory;
 
   /**
-   * This is the content outline page.
-   * <!-- begin-user-doc -->
+	 * This is the content outline page.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected IContentOutlinePage contentOutlinePage;
 
   /**
-   * This is a kludge...
-   * <!-- begin-user-doc -->
+	 * This is a kludge...
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected IStatusLineManager contentOutlineStatusLineManager;
 
   /**
-   * This is the content outline page's viewer.
-   * <!-- begin-user-doc -->
+	 * This is the content outline page's viewer.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected TreeViewer contentOutlineViewer;
 
   /**
-   * This is the property sheet page.
-   * <!-- begin-user-doc -->
-   * <!-- end-user-doc -->
-   * @generated
-   */
-  protected PropertySheetPage propertySheetPage;
+	 * This is the property sheet page.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
 
-  /**
-   * This is the viewer that shadows the selection in the content outline.
-   * The parent relation must be correctly defined for this to work.
-   * <!-- begin-user-doc -->
+		/**
+	 * This is the viewer that shadows the selection in the content outline.
+	 * The parent relation must be correctly defined for this to work.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected TreeViewer selectionViewer;
 
   /**
-   * This inverts the roll of parent and child in the content provider and show parents as a tree.
-   * <!-- begin-user-doc -->
+	 * This inverts the roll of parent and child in the content provider and show parents as a tree.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected TreeViewer parentViewer;
 
   /**
-   * This shows how a tree view works.
-   * <!-- begin-user-doc -->
+	 * This shows how a tree view works.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected TreeViewer treeViewer;
 
   /**
-   * This shows how a list view works.
-   * A list viewer doesn't support icons.
-   * <!-- begin-user-doc -->
+	 * This shows how a list view works.
+	 * A list viewer doesn't support icons.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected ListViewer listViewer;
 
   /**
-   * This shows how a table view works.
-   * A table can be used as a list with icons.
-   * <!-- begin-user-doc -->
+	 * This shows how a table view works.
+	 * A table can be used as a list with icons.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected TableViewer tableViewer;
 
   /**
-   * This shows how a tree view with columns works.
-   * <!-- begin-user-doc -->
+	 * This shows how a tree view with columns works.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected TreeViewer treeViewerWithColumns;
 
   /**
-   * This keeps track of the active viewer pane, in the book.
-   * <!-- begin-user-doc -->
+	 * This keeps track of the active viewer pane, in the book.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected ViewerPane currentViewerPane;
 
   /**
-   * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
-   * <!-- begin-user-doc -->
+	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected Viewer currentViewer;
 
   /**
-   * This listens to which ever viewer is active.
-   * <!-- begin-user-doc -->
+	 * This listens to which ever viewer is active.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected ISelectionChangedListener selectionChangedListener;
 
   /**
-   * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
-   * <!-- begin-user-doc -->
+	 * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
 
   /**
-   * This keeps track of the selection of the editor as a whole.
-   * <!-- begin-user-doc -->
+	 * This keeps track of the selection of the editor as a whole.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected ISelection editorSelection = StructuredSelection.EMPTY;
 
   /**
-   * The MarkerHelper is responsible for creating workspace resource markers presented
-   * in Eclipse's Problems View.
-   * <!-- begin-user-doc -->
+	 * The MarkerHelper is responsible for creating workspace resource markers presented
+	 * in Eclipse's Problems View.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected MarkerHelper markerHelper = new EditUIMarkerHelper();
 
   /**
-   * This listens for when the outline becomes active
-   * <!-- begin-user-doc -->
+	 * This listens for when the outline becomes active
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected IPartListener partListener =
-    new IPartListener()
-    {
-      public void partActivated(IWorkbenchPart p)
-      {
-        if (p instanceof ContentOutline)
-        {
-          if (((ContentOutline)p).getCurrentPage() == contentOutlinePage)
-          {
-            getActionBarContributor().setActiveEditor(EXTLibraryEditor.this);
+    new IPartListener() {
+			public void partActivated(IWorkbenchPart p) {
+				if (p instanceof ContentOutline) {
+					if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+						getActionBarContributor().setActiveEditor(EXTLibraryEditor.this);
 
-            setCurrentViewer(contentOutlineViewer);
-          }
-        }
-        else if (p instanceof PropertySheet)
-        {
-          if (((PropertySheet)p).getCurrentPage() == propertySheetPage)
-          {
-            getActionBarContributor().setActiveEditor(EXTLibraryEditor.this);
-            handleActivate();
-          }
-        }
-        else if (p == EXTLibraryEditor.this)
-        {
-          handleActivate();
-        }
-      }
-      public void partBroughtToTop(IWorkbenchPart p)
-      {
-        // Ignore.
-      }
-      public void partClosed(IWorkbenchPart p)
-      {
-        // Ignore.
-      }
-      public void partDeactivated(IWorkbenchPart p)
-      {
-        // Ignore.
-      }
-      public void partOpened(IWorkbenchPart p)
-      {
-        // Ignore.
-      }
-    };
+						setCurrentViewer(contentOutlineViewer);
+					}
+				}
+				else if (p instanceof PropertySheet) {
+					if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+						getActionBarContributor().setActiveEditor(EXTLibraryEditor.this);
+						handleActivate();
+					}
+				}
+				else if (p == EXTLibraryEditor.this) {
+					handleActivate();
+				}
+			}
+			public void partBroughtToTop(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partClosed(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partDeactivated(IWorkbenchPart p) {
+				// Ignore.
+			}
+			public void partOpened(IWorkbenchPart p) {
+				// Ignore.
+			}
+		};
 
   /**
    * Resources that have been removed since last activation.
@@ -411,183 +355,159 @@
   protected Collection<Resource> savedResources = new ArrayList<Resource>();
 
   /**
-   * Map to store the diagnostic associated with a resource.
-   * <!-- begin-user-doc -->
+	 * Map to store the diagnostic associated with a resource.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
 
   /**
-   * Controls whether the problem indication should be updated.
-   * <!-- begin-user-doc -->
+	 * Controls whether the problem indication should be updated.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected boolean updateProblemIndication = true;
 
   /**
-   * Adapter used to update the problem indication when resources are demanded loaded.
-   * <!-- begin-user-doc -->
+	 * Adapter used to update the problem indication when resources are demanded loaded.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected EContentAdapter problemIndicationAdapter = 
-    new EContentAdapter()
-    {
-      @Override
-      public void notifyChanged(Notification notification)
-      {
-        if (notification.getNotifier() instanceof Resource)
-        {
-          switch (notification.getFeatureID(Resource.class))
-          {
-            case Resource.RESOURCE__IS_LOADED:
-            case Resource.RESOURCE__ERRORS:
-            case Resource.RESOURCE__WARNINGS:
-            {
-              Resource resource = (Resource)notification.getNotifier();
-              Diagnostic diagnostic = analyzeResourceProblems(resource, null);
-              if (diagnostic.getSeverity() != Diagnostic.OK)
-              {
-                resourceToDiagnosticMap.put(resource, diagnostic);
-              }
-              else
-              {
-                resourceToDiagnosticMap.remove(resource);
-              }
+    new EContentAdapter() {
+			@Override
+			public void notifyChanged(Notification notification) {
+				if (notification.getNotifier() instanceof Resource) {
+					switch (notification.getFeatureID(Resource.class)) {
+						case Resource.RESOURCE__IS_LOADED:
+						case Resource.RESOURCE__ERRORS:
+						case Resource.RESOURCE__WARNINGS: {
+							Resource resource = (Resource)notification.getNotifier();
+							Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+							if (diagnostic.getSeverity() != Diagnostic.OK) {
+								resourceToDiagnosticMap.put(resource, diagnostic);
+							}
+							else {
+								resourceToDiagnosticMap.remove(resource);
+							}
 
-              if (updateProblemIndication)
-              {
-                getSite().getShell().getDisplay().asyncExec
-                  (new Runnable()
-                   {
-                     public void run()
-                     {
-                       updateProblemIndication();
-                     }
-                   });
-              }
-              break;
-            }
-          }
-        }
-        else
-        {
-          super.notifyChanged(notification);
-        }
-      }
+							if (updateProblemIndication) {
+								getSite().getShell().getDisplay().asyncExec
+									(new Runnable() {
+										 public void run() {
+											 updateProblemIndication();
+										 }
+									 });
+							}
+							break;
+						}
+					}
+				}
+				else {
+					super.notifyChanged(notification);
+				}
+			}
 
-      @Override
-      protected void setTarget(Resource target)
-      {
-        basicSetTarget(target);
-      }
+			@Override
+			protected void setTarget(Resource target) {
+				basicSetTarget(target);
+			}
 
-      @Override
-      protected void unsetTarget(Resource target)
-      {
-        basicUnsetTarget(target);
-      }
-    };
+			@Override
+			protected void unsetTarget(Resource target) {
+				basicUnsetTarget(target);
+				resourceToDiagnosticMap.remove(target);
+				if (updateProblemIndication) {
+					getSite().getShell().getDisplay().asyncExec
+						(new Runnable() {
+							 public void run() {
+								 updateProblemIndication();
+							 }
+						 });
+				}
+			}
+		};
 
   /**
-   * This listens for workspace changes.
-   * <!-- begin-user-doc -->
+	 * This listens for workspace changes.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected IResourceChangeListener resourceChangeListener =
-    new IResourceChangeListener()
-    {
-      public void resourceChanged(IResourceChangeEvent event)
-      {
-        IResourceDelta delta = event.getDelta();
-        try
-        {
-          class ResourceDeltaVisitor implements IResourceDeltaVisitor
-          {
-            protected ResourceSet resourceSet = editingDomain.getResourceSet();
-            protected Collection<Resource> changedResources = new ArrayList<Resource>();
-            protected Collection<Resource> removedResources = new ArrayList<Resource>();
+    new IResourceChangeListener() {
+			public void resourceChanged(IResourceChangeEvent event) {
+				IResourceDelta delta = event.getDelta();
+				try {
+					class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+						protected ResourceSet resourceSet = editingDomain.getResourceSet();
+						protected Collection<Resource> changedResources = new ArrayList<Resource>();
+						protected Collection<Resource> removedResources = new ArrayList<Resource>();
 
-            public boolean visit(IResourceDelta delta)
-            {
-              if (delta.getResource().getType() == IResource.FILE)
-              {
-                if (delta.getKind() == IResourceDelta.REMOVED ||
-                    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS)
-                {
-                  Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
-                  if (resource != null)
-                  {
-                    if (delta.getKind() == IResourceDelta.REMOVED)
-                    {
-                      removedResources.add(resource);
-                    }
-                    else if (!savedResources.remove(resource))
-                    {
-                      changedResources.add(resource);
-                    }
-                  }
-                }
-              }
+						public boolean visit(IResourceDelta delta) {
+							if (delta.getResource().getType() == IResource.FILE) {
+								if (delta.getKind() == IResourceDelta.REMOVED ||
+								    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+									Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+									if (resource != null) {
+										if (delta.getKind() == IResourceDelta.REMOVED) {
+											removedResources.add(resource);
+										}
+										else if (!savedResources.remove(resource)) {
+											changedResources.add(resource);
+										}
+									}
+								}
+								return false;
+							}
 
-              return true;
-            }
+							return true;
+						}
 
-            public Collection<Resource> getChangedResources()
-            {
-              return changedResources;
-            }
+						public Collection<Resource> getChangedResources() {
+							return changedResources;
+						}
 
-            public Collection<Resource> getRemovedResources()
-            {
-              return removedResources;
-            }
-          }
+						public Collection<Resource> getRemovedResources() {
+							return removedResources;
+						}
+					}
 
-          final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
-          delta.accept(visitor);
+					final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+					delta.accept(visitor);
 
-          if (!visitor.getRemovedResources().isEmpty())
-          {
-            getSite().getShell().getDisplay().asyncExec
-              (new Runnable()
-               {
-                 public void run()
-                 {
-                   removedResources.addAll(visitor.getRemovedResources());
-                   if (!isDirty())
-                   {
-                     getSite().getPage().closeEditor(EXTLibraryEditor.this, false);
-                   }
-                 }
-               });
-          }
+					if (!visitor.getRemovedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 removedResources.addAll(visitor.getRemovedResources());
+									 if (!isDirty()) {
+										 getSite().getPage().closeEditor(EXTLibraryEditor.this, false);
+									 }
+								 }
+							 });
+					}
 
-          if (!visitor.getChangedResources().isEmpty())
-          {
-            getSite().getShell().getDisplay().asyncExec
-              (new Runnable()
-               {
-                 public void run()
-                 {
-                   changedResources.addAll(visitor.getChangedResources());
-                   if (getSite().getPage().getActiveEditor() == EXTLibraryEditor.this)
-                   {
-                     handleActivate();
-                   }
-                 }
-               });
-          }
-        }
-        catch (CoreException exception)
-        {
-          EXTLibraryEditorPlugin.INSTANCE.log(exception);
-        }
-      }
-    };
+					if (!visitor.getChangedResources().isEmpty()) {
+						getSite().getShell().getDisplay().asyncExec
+							(new Runnable() {
+								 public void run() {
+									 changedResources.addAll(visitor.getChangedResources());
+									 if (getSite().getPage().getActiveEditor() == EXTLibraryEditor.this) {
+										 handleActivate();
+									 }
+								 }
+							 });
+					}
+				}
+				catch (CoreException exception) {
+					EXTLibraryEditorPlugin.INSTANCE.log(exception);
+				}
+			}
+		};
 
   /**
    * Handles activation of the editor or it's associated views.
@@ -595,38 +515,33 @@
    */
   protected void handleActivate()
   {
-    // Recompute the read only state.
-    //
-    if (editingDomain.getResourceToReadOnlyMap() != null)
-    {
-      editingDomain.getResourceToReadOnlyMap().clear();
+		// Recompute the read only state.
+		//
+		if (editingDomain.getResourceToReadOnlyMap() != null) {
+		  editingDomain.getResourceToReadOnlyMap().clear();
 
-      // Refresh any actions that may become enabled or disabled.
-      //
-      setSelection(getSelection());
-    }
+		  // Refresh any actions that may become enabled or disabled.
+		  //
+		  setSelection(getSelection());
+		}
 
-    if (!removedResources.isEmpty())
-    {
-      if (handleDirtyConflict())
-      {
-        getSite().getPage().closeEditor(EXTLibraryEditor.this, false);
-      }
-      else
-      {
-        removedResources.clear();
-        changedResources.clear();
-        savedResources.clear();
-      }
-    }
-    else if (!changedResources.isEmpty())
-    {
-      changedResources.removeAll(savedResources);
-      handleChangedResources();
-      changedResources.clear();
-      savedResources.clear();
-    }
-  }
+		if (!removedResources.isEmpty()) {
+			if (handleDirtyConflict()) {
+				getSite().getPage().closeEditor(EXTLibraryEditor.this, false);
+			}
+			else {
+				removedResources.clear();
+				changedResources.clear();
+				savedResources.clear();
+			}
+		}
+		else if (!changedResources.isEmpty()) {
+			changedResources.removeAll(savedResources);
+			handleChangedResources();
+			changedResources.clear();
+			savedResources.clear();
+		}
+	}
 
   /**
    * Handles what to do with changed resources on activation.
@@ -634,113 +549,93 @@
    */
   protected void handleChangedResources()
   {
-    if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict()))
-    {
-      if (isDirty())
-      {
-        changedResources.addAll(editingDomain.getResourceSet().getResources());
-      }
-      editingDomain.getCommandStack().flush();
+		if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+			if (isDirty()) {
+				changedResources.addAll(editingDomain.getResourceSet().getResources());
+			}
+			editingDomain.getCommandStack().flush();
 
-      updateProblemIndication = false;
-      for (Resource resource : changedResources)
-      {
-        if (resource.isLoaded())
-        {
-          resource.unload();
-          try
-          {
-            resource.load(Collections.EMPTY_MAP);
-          }
-          catch (IOException exception)
-          {
-            if (!resourceToDiagnosticMap.containsKey(resource))
-            {
-              resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
-            }
-          }
-        }
-      }
+			updateProblemIndication = false;
+			for (Resource resource : changedResources) {
+				if (resource.isLoaded()) {
+					resource.unload();
+					try {
+						resource.load(Collections.EMPTY_MAP);
+					}
+					catch (IOException exception) {
+						if (!resourceToDiagnosticMap.containsKey(resource)) {
+							resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+						}
+					}
+				}
+			}
 
-      if (AdapterFactoryEditingDomain.isStale(editorSelection))
-      {
-        setSelection(StructuredSelection.EMPTY);
-      }
+			if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+				setSelection(StructuredSelection.EMPTY);
+			}
 
-      updateProblemIndication = true;
-      updateProblemIndication();
-    }
-  }
+			updateProblemIndication = true;
+			updateProblemIndication();
+		}
+	}
   
   /**
-   * Updates the problems indication with the information described in the specified diagnostic.
-   * <!-- begin-user-doc -->
+	 * Updates the problems indication with the information described in the specified diagnostic.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected void updateProblemIndication()
   {
-    if (updateProblemIndication)
-    {
-      BasicDiagnostic diagnostic =
-        new BasicDiagnostic
-          (Diagnostic.OK,
-           "org.eclipse.emf.parsley.examples.library.editor", //$NON-NLS-1$
-           0,
-           null,
-           new Object [] { editingDomain.getResourceSet() });
-      for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values())
-      {
-        if (childDiagnostic.getSeverity() != Diagnostic.OK)
-        {
-          diagnostic.add(childDiagnostic);
-        }
-      }
+		if (updateProblemIndication) {
+			BasicDiagnostic diagnostic =
+				new BasicDiagnostic
+					(Diagnostic.OK,
+					 "org.eclipse.emf.parsley.examples.library.editor", //$NON-NLS-1$
+					 0,
+					 null,
+					 new Object [] { editingDomain.getResourceSet() });
+			for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+				if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+					diagnostic.add(childDiagnostic);
+				}
+			}
 
-      int lastEditorPage = getPageCount() - 1;
-      if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart)
-      {
-        ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
-        if (diagnostic.getSeverity() != Diagnostic.OK)
-        {
-          setActivePage(lastEditorPage);
-        }
-      }
-      else if (diagnostic.getSeverity() != Diagnostic.OK)
-      {
-        ProblemEditorPart problemEditorPart = new ProblemEditorPart();
-        problemEditorPart.setDiagnostic(diagnostic);
-        problemEditorPart.setMarkerHelper(markerHelper);
-        try
-        {
-          addPage(++lastEditorPage, problemEditorPart, getEditorInput());
-          setPageText(lastEditorPage, problemEditorPart.getPartName());
-          setActivePage(lastEditorPage);
-          showTabs();
-        }
-        catch (PartInitException exception)
-        {
-          EXTLibraryEditorPlugin.INSTANCE.log(exception);
-        }
-      }
+			int lastEditorPage = getPageCount() - 1;
+			if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+				((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					setActivePage(lastEditorPage);
+				}
+			}
+			else if (diagnostic.getSeverity() != Diagnostic.OK) {
+				ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+				problemEditorPart.setDiagnostic(diagnostic);
+				problemEditorPart.setMarkerHelper(markerHelper);
+				try {
+					addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+					setPageText(lastEditorPage, problemEditorPart.getPartName());
+					setActivePage(lastEditorPage);
+					showTabs();
+				}
+				catch (PartInitException exception) {
+					EXTLibraryEditorPlugin.INSTANCE.log(exception);
+				}
+			}
 
-      if (markerHelper.hasMarkers(editingDomain.getResourceSet()))
-      {
-        markerHelper.deleteMarkers(editingDomain.getResourceSet());
-        if (diagnostic.getSeverity() != Diagnostic.OK)
-        {
-          try
-          {
-            markerHelper.createMarkers(diagnostic);
-          }
-          catch (CoreException exception)
-          {
-            EXTLibraryEditorPlugin.INSTANCE.log(exception);
-          }
-        }
-      }
-    }
-  }
+			if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+				markerHelper.deleteMarkers(editingDomain.getResourceSet());
+				if (diagnostic.getSeverity() != Diagnostic.OK) {
+					try {
+						markerHelper.createMarkers(diagnostic);
+					}
+					catch (CoreException exception) {
+						EXTLibraryEditorPlugin.INSTANCE.log(exception);
+					}
+				}
+			}
+		}
+	}
 
   /**
    * Shows a dialog that asks if conflicting changes should be discarded.
@@ -748,1309 +643,1196 @@
    */
   protected boolean handleDirtyConflict()
   {
-    return
-      MessageDialog.openQuestion
-        (getSite().getShell(),
-         getString("_UI_FileConflict_label"), //$NON-NLS-1$
-         getString("_WARN_FileConflict")); //$NON-NLS-1$
-  }
+		return
+			MessageDialog.openQuestion
+				(getSite().getShell(),
+				 getString("_UI_FileConflict_label"), //$NON-NLS-1$
+				 getString("_WARN_FileConflict")); //$NON-NLS-1$
+	}
 
   /**
-   * This creates a model editor.
-   * <!-- begin-user-doc -->
+	 * This creates a model editor.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public EXTLibraryEditor()
   {
-    super();
-    initializeEditingDomain();
-  }
+		super();
+		initializeEditingDomain();
+	}
 
   /**
-   * This sets up the editing domain for the model editor.
-   * <!-- begin-user-doc -->
+	 * This sets up the editing domain for the model editor.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected void initializeEditingDomain()
   {
-    // Create an adapter factory that yields item providers.
-    //
-    adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+		// Create an adapter factory that yields item providers.
+		//
+		adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
 
-    adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
-    adapterFactory.addAdapterFactory(new EXTLibraryItemProviderAdapterFactory());
-    adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new EXTLibraryItemProviderAdapterFactory());
+		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
 
-    // Create the command stack that will notify this editor as commands are executed.
-    //
-    BasicCommandStack commandStack = new BasicCommandStack();
+		// Create the command stack that will notify this editor as commands are executed.
+		//
+		BasicCommandStack commandStack = new BasicCommandStack();
 
-    // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
-    //
-    commandStack.addCommandStackListener
-      (new CommandStackListener()
-       {
-         public void commandStackChanged(final EventObject event)
-         {
-           getContainer().getDisplay().asyncExec
-             (new Runnable()
-              {
-                public void run()
-                {
-                  firePropertyChange(IEditorPart.PROP_DIRTY);
+		// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+		//
+		commandStack.addCommandStackListener
+			(new CommandStackListener() {
+				 public void commandStackChanged(final EventObject event) {
+					 getContainer().getDisplay().asyncExec
+						 (new Runnable() {
+							  public void run() {
+								  firePropertyChange(IEditorPart.PROP_DIRTY);
 
-                  // Try to select the affected objects.
-                  //
-                  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
-                  if (mostRecentCommand != null)
-                  {
-                    setSelectionToViewer(mostRecentCommand.getAffectedObjects());
-                  }
-                  if (propertySheetPage != null && !propertySheetPage.getControl().isDisposed())
-                  {
-                    propertySheetPage.refresh();
-                  }
-                }
-              });
-         }
-       });
+								  // Try to select the affected objects.
+								  //
+								  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+								  if (mostRecentCommand != null) {
+									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+								  }
+								  for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+									  PropertySheetPage propertySheetPage = i.next();
+									  if (propertySheetPage.getControl().isDisposed()) {
+										  i.remove();
+									  }
+									  else {
+										  propertySheetPage.refresh();
+									  }
+								  }
+							  }
+						  });
+				 }
+			 });
 
-    // Create the editing domain with a special command stack.
-    //
-    editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
-  }
+		// Create the editing domain with a special command stack.
+		//
+		editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+	}
 
   /**
-   * This is here for the listener to be able to call it.
-   * <!-- begin-user-doc -->
+	 * This is here for the listener to be able to call it.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   protected void firePropertyChange(int action)
   {
-    super.firePropertyChange(action);
-  }
+		super.firePropertyChange(action);
+	}
 
   /**
-   * This sets the selection into whichever viewer is active.
-   * <!-- begin-user-doc -->
+	 * This sets the selection into whichever viewer is active.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public void setSelectionToViewer(Collection<?> collection)
   {
-    final Collection<?> theSelection = collection;
-    // Make sure it's okay.
-    //
-    if (theSelection != null && !theSelection.isEmpty())
-    {
-      Runnable runnable =
-        new Runnable()
-        {
-          public void run()
-          {
-            // Try to select the items in the current content viewer of the editor.
-            //
-            if (currentViewer != null)
-            {
-              currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
-            }
-          }
-        };
-      getSite().getShell().getDisplay().asyncExec(runnable);
-    }
-  }
+		final Collection<?> theSelection = collection;
+		// Make sure it's okay.
+		//
+		if (theSelection != null && !theSelection.isEmpty()) {
+			Runnable runnable =
+				new Runnable() {
+					public void run() {
+						// Try to select the items in the current content viewer of the editor.
+						//
+						if (currentViewer != null) {
+							currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+						}
+					}
+				};
+			getSite().getShell().getDisplay().asyncExec(runnable);
+		}
+	}
 
   /**
-   * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
-   * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
-   * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
-   * <!-- begin-user-doc -->
+	 * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+	 * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+	 * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public EditingDomain getEditingDomain()
   {
-    return editingDomain;
-  }
+		return editingDomain;
+	}
 
   /**
-   * <!-- begin-user-doc -->
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider
   {
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory)
     {
-      super(adapterFactory);
-    }
+			super(adapterFactory);
+		}
 
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     @Override
     public Object [] getElements(Object object)
     {
-      Object parent = super.getParent(object);
-      return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
-    }
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
 
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     @Override
     public Object [] getChildren(Object object)
     {
-      Object parent = super.getParent(object);
-      return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
-    }
+			Object parent = super.getParent(object);
+			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+		}
 
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     @Override
     public boolean hasChildren(Object object)
     {
-      Object parent = super.getParent(object);
-      return parent != null;
-    }
+			Object parent = super.getParent(object);
+			return parent != null;
+		}
 
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     @Override
     public Object getParent(Object object)
     {
-      return null;
-    }
+			return null;
+		}
   }
 
   /**
-   * <!-- begin-user-doc -->
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public void setCurrentViewerPane(ViewerPane viewerPane)
   {
-    if (currentViewerPane != viewerPane)
-    {
-      if (currentViewerPane != null)
-      {
-        currentViewerPane.showFocus(false);
-      }
-      currentViewerPane = viewerPane;
-    }
-    setCurrentViewer(currentViewerPane.getViewer());
-  }
+		if (currentViewerPane != viewerPane) {
+			if (currentViewerPane != null) {
+				currentViewerPane.showFocus(false);
+			}
+			currentViewerPane = viewerPane;
+		}
+		setCurrentViewer(currentViewerPane.getViewer());
+	}
 
   /**
-   * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
-   * is the current one.
-   * <!-- begin-user-doc -->
+	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+	 * is the current one.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public void setCurrentViewer(Viewer viewer)
   {
-    // If it is changing...
-    //
-    if (currentViewer != viewer)
-    {
-      if (selectionChangedListener == null)
-      {
-        // Create the listener on demand.
-        //
-        selectionChangedListener =
-          new ISelectionChangedListener()
-          {
-            // This just notifies those things that are affected by the section.
-            //
-            public void selectionChanged(SelectionChangedEvent selectionChangedEvent)
-            {
-              setSelection(selectionChangedEvent.getSelection());
-            }
-          };
-      }
+		// If it is changing...
+		//
+		if (currentViewer != viewer) {
+			if (selectionChangedListener == null) {
+				// Create the listener on demand.
+				//
+				selectionChangedListener =
+					new ISelectionChangedListener() {
+						// This just notifies those things that are affected by the section.
+						//
+						public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+							setSelection(selectionChangedEvent.getSelection());
+						}
+					};
+			}
 
-      // Stop listening to the old one.
-      //
-      if (currentViewer != null)
-      {
-        currentViewer.removeSelectionChangedListener(selectionChangedListener);
-      }
+			// Stop listening to the old one.
+			//
+			if (currentViewer != null) {
+				currentViewer.removeSelectionChangedListener(selectionChangedListener);
+			}
 
-      // Start listening to the new one.
-      //
-      if (viewer != null)
-      {
-        viewer.addSelectionChangedListener(selectionChangedListener);
-      }
+			// Start listening to the new one.
+			//
+			if (viewer != null) {
+				viewer.addSelectionChangedListener(selectionChangedListener);
+			}
 
-      // Remember it.
-      //
-      currentViewer = viewer;
+			// Remember it.
+			//
+			currentViewer = viewer;
 
-      // Set the editors selection based on the current viewer's selection.
-      //
-      setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
-    }
-  }
+			// Set the editors selection based on the current viewer's selection.
+			//
+			setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+		}
+	}
 
   /**
-   * This returns the viewer as required by the {@link IViewerProvider} interface.
-   * <!-- begin-user-doc -->
+	 * This returns the viewer as required by the {@link IViewerProvider} interface.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public Viewer getViewer()
   {
-    return currentViewer;
-  }
+		return currentViewer;
+	}
 
   /**
-   * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
-   * <!-- begin-user-doc -->
+	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected void createContextMenuFor(StructuredViewer viewer)
   {
-    MenuManager contextMenu = new MenuManager("#PopUp"); //$NON-NLS-1$
-    contextMenu.add(new Separator("additions")); //$NON-NLS-1$
-    contextMenu.setRemoveAllWhenShown(true);
-    contextMenu.addMenuListener(this);
-    Menu menu= contextMenu.createContextMenu(viewer.getControl());
-    viewer.getControl().setMenu(menu);
-    getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+		MenuManager contextMenu = new MenuManager("#PopUp"); //$NON-NLS-1$
+		contextMenu.add(new Separator("additions")); //$NON-NLS-1$
+		contextMenu.setRemoveAllWhenShown(true);
+		contextMenu.addMenuListener(this);
+		Menu menu= contextMenu.createContextMenu(viewer.getControl());
+		viewer.getControl().setMenu(menu);
+		getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
 
-    int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
-    Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
-    viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
-    viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
-  }
+		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+	}
 
   /**
-   * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
-   * <!-- begin-user-doc -->
+	 * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public void createModel()
   {
-    URI resourceURI = EditUIUtil.getURI(getEditorInput());
-    Exception exception = null;
-    Resource resource = null;
-    try
-    {
-      // Load the resource through the editing domain.
-      //
-      resource = editingDomain.getResourceSet().getResource(resourceURI, true);
-    }
-    catch (Exception e)
-    {
-      exception = e;
-      resource = editingDomain.getResourceSet().getResource(resourceURI, false);
-    }
+		URI resourceURI = EditUIUtil.getURI(getEditorInput(), editingDomain.getResourceSet().getURIConverter());
+		Exception exception = null;
+		Resource resource = null;
+		try {
+			// Load the resource through the editing domain.
+			//
+			resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+		}
+		catch (Exception e) {
+			exception = e;
+			resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+		}
 
-    Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
-    if (diagnostic.getSeverity() != Diagnostic.OK)
-    {
-      resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));
-    }
-    editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
-  }
+		Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+		if (diagnostic.getSeverity() != Diagnostic.OK) {
+			resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));
+		}
+		editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+	}
 
   /**
-   * Returns a diagnostic describing the errors and warnings listed in the resource
-   * and the specified exception (if any).
-   * <!-- begin-user-doc -->
+	 * Returns a diagnostic describing the errors and warnings listed in the resource
+	 * and the specified exception (if any).
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) 
   {
-    if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty())
-    {
-      BasicDiagnostic basicDiagnostic =
-        new BasicDiagnostic
-          (Diagnostic.ERROR,
-           "org.eclipse.emf.parsley.examples.library.editor", //$NON-NLS-1$
-           0,
-           getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$
-           new Object [] { exception == null ? (Object)resource : exception });
-      basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
-      return basicDiagnostic;
-    }
-    else if (exception != null)
-    {
-      return
-        new BasicDiagnostic
-          (Diagnostic.ERROR,
-           "org.eclipse.emf.parsley.examples.library.editor", //$NON-NLS-1$
-           0,
-           getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$
-           new Object[] { exception });
-    }
-    else
-    {
-      return Diagnostic.OK_INSTANCE;
-    }
-  }
+		boolean hasErrors = !resource.getErrors().isEmpty();
+		if (hasErrors || !resource.getWarnings().isEmpty()) {
+			BasicDiagnostic basicDiagnostic =
+				new BasicDiagnostic
+					(hasErrors ? Diagnostic.ERROR : Diagnostic.WARNING,
+					 "org.eclipse.emf.parsley.examples.library.editor", //$NON-NLS-1$
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$
+					 new Object [] { exception == null ? (Object)resource : exception });
+			basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+			return basicDiagnostic;
+		}
+		else if (exception != null) {
+			return
+				new BasicDiagnostic
+					(Diagnostic.ERROR,
+					 "org.eclipse.emf.parsley.examples.library.editor", //$NON-NLS-1$
+					 0,
+					 getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$
+					 new Object[] { exception });
+		}
+		else {
+			return Diagnostic.OK_INSTANCE;
+		}
+	}
 
   /**
-   * This is the method used by the framework to install your own controls.
-   * <!-- begin-user-doc -->
+	 * This is the method used by the framework to install your own controls.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public void createPages()
   {
-    // Creates the model from the editor input
-    //
-    createModel();
+		// Creates the model from the editor input
+		//
+		createModel();
 
-    // Only creates the other pages if there is something that can be edited
-    //
-    if (!getEditingDomain().getResourceSet().getResources().isEmpty())
-    {
-      // Create a page for the selection tree view.
-      //
-      {
-        ViewerPane viewerPane =
-          new ViewerPane(getSite().getPage(), EXTLibraryEditor.this)
-          {
-            @Override
-            public Viewer createViewer(Composite composite)
-            {
-              Tree tree = new Tree(composite, SWT.MULTI);
-              TreeViewer newTreeViewer = new TreeViewer(tree);
-              return newTreeViewer;
-            }
-            @Override
-            public void requestActivation()
-            {
-              super.requestActivation();
-              setCurrentViewerPane(this);
-            }
-          };
-        viewerPane.createControl(getContainer());
+		// Only creates the other pages if there is something that can be edited
+		//
+		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+			// Create a page for the selection tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), EXTLibraryEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
 
-        selectionViewer = (TreeViewer)viewerPane.getViewer();
-        selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				selectionViewer = (TreeViewer)viewerPane.getViewer();
+				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
 
-        selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-        selectionViewer.setInput(editingDomain.getResourceSet());
-        selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
-        viewerPane.setTitle(editingDomain.getResourceSet());
+				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+				selectionViewer.setInput(editingDomain.getResourceSet());
+				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+				viewerPane.setTitle(editingDomain.getResourceSet());
 
-        new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
 
-        createContextMenuFor(selectionViewer);
-        int pageIndex = addPage(viewerPane.getControl());
-        setPageText(pageIndex, getString("_UI_SelectionPage_label")); //$NON-NLS-1$
-      }
+				createContextMenuFor(selectionViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_SelectionPage_label")); //$NON-NLS-1$
+			}
 
-      // Create a page for the parent tree view.
-      //
-      {
-        ViewerPane viewerPane =
-          new ViewerPane(getSite().getPage(), EXTLibraryEditor.this)
-          {
-            @Override
-            public Viewer createViewer(Composite composite)
-            {
-              Tree tree = new Tree(composite, SWT.MULTI);
-              TreeViewer newTreeViewer = new TreeViewer(tree);
-              return newTreeViewer;
-            }
-            @Override
-            public void requestActivation()
-            {
-              super.requestActivation();
-              setCurrentViewerPane(this);
-            }
-          };
-        viewerPane.createControl(getContainer());
+			// Create a page for the parent tree view.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), EXTLibraryEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							Tree tree = new Tree(composite, SWT.MULTI);
+							TreeViewer newTreeViewer = new TreeViewer(tree);
+							return newTreeViewer;
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
 
-        parentViewer = (TreeViewer)viewerPane.getViewer();
-        parentViewer.setAutoExpandLevel(30);
-        parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
-        parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+				parentViewer = (TreeViewer)viewerPane.getViewer();
+				parentViewer.setAutoExpandLevel(30);
+				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
 
-        createContextMenuFor(parentViewer);
-        int pageIndex = addPage(viewerPane.getControl());
-        setPageText(pageIndex, getString("_UI_ParentPage_label")); //$NON-NLS-1$
-      }
+				createContextMenuFor(parentViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ParentPage_label")); //$NON-NLS-1$
+			}
 
-      // This is the page for the list viewer
-      //
-      {
-        ViewerPane viewerPane =
-          new ViewerPane(getSite().getPage(), EXTLibraryEditor.this)
-          {
-            @Override
-            public Viewer createViewer(Composite composite)
-            {
-              return new ListViewer(composite);
-            }
-            @Override
-            public void requestActivation()
-            {
-              super.requestActivation();
-              setCurrentViewerPane(this);
-            }
-          };
-        viewerPane.createControl(getContainer());
-        listViewer = (ListViewer)viewerPane.getViewer();
-        listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-        listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+			// This is the page for the list viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), EXTLibraryEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new ListViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				listViewer = (ListViewer)viewerPane.getViewer();
+				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
 
-        createContextMenuFor(listViewer);
-        int pageIndex = addPage(viewerPane.getControl());
-        setPageText(pageIndex, getString("_UI_ListPage_label")); //$NON-NLS-1$
-      }
+				createContextMenuFor(listViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_ListPage_label")); //$NON-NLS-1$
+			}
 
-      // This is the page for the tree viewer
-      //
-      {
-        ViewerPane viewerPane =
-          new ViewerPane(getSite().getPage(), EXTLibraryEditor.this)
-          {
-            @Override
-            public Viewer createViewer(Composite composite)
-            {
-              return new TreeViewer(composite);
-            }
-            @Override
-            public void requestActivation()
-            {
-              super.requestActivation();
-              setCurrentViewerPane(this);
-            }
-          };
-        viewerPane.createControl(getContainer());
-        treeViewer = (TreeViewer)viewerPane.getViewer();
-        treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-        treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+			// This is the page for the tree viewer
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), EXTLibraryEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				treeViewer = (TreeViewer)viewerPane.getViewer();
+				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
 
-        new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
 
-        createContextMenuFor(treeViewer);
-        int pageIndex = addPage(viewerPane.getControl());
-        setPageText(pageIndex, getString("_UI_TreePage_label")); //$NON-NLS-1$
-      }
+				createContextMenuFor(treeViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreePage_label")); //$NON-NLS-1$
+			}
 
-      // This is the page for the table viewer.
-      //
-      {
-        ViewerPane viewerPane =
-          new ViewerPane(getSite().getPage(), EXTLibraryEditor.this)
-          {
-            @Override
-            public Viewer createViewer(Composite composite)
-            {
-              return new TableViewer(composite);
-            }
-            @Override
-            public void requestActivation()
-            {
-              super.requestActivation();
-              setCurrentViewerPane(this);
-            }
-          };
-        viewerPane.createControl(getContainer());
-        tableViewer = (TableViewer)viewerPane.getViewer();
+			// This is the page for the table viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), EXTLibraryEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TableViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
+				tableViewer = (TableViewer)viewerPane.getViewer();
 
-        Table table = tableViewer.getTable();
-        TableLayout layout = new TableLayout();
-        table.setLayout(layout);
-        table.setHeaderVisible(true);
-        table.setLinesVisible(true);
+				Table table = tableViewer.getTable();
+				TableLayout layout = new TableLayout();
+				table.setLayout(layout);
+				table.setHeaderVisible(true);
+				table.setLinesVisible(true);
 
-        TableColumn objectColumn = new TableColumn(table, SWT.NONE);
-        layout.addColumnData(new ColumnWeightData(3, 100, true));
-        objectColumn.setText(getString("_UI_ObjectColumn_label")); //$NON-NLS-1$
-        objectColumn.setResizable(true);
+				TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(3, 100, true));
+				objectColumn.setText(getString("_UI_ObjectColumn_label")); //$NON-NLS-1$
+				objectColumn.setResizable(true);
 
-        TableColumn selfColumn = new TableColumn(table, SWT.NONE);
-        layout.addColumnData(new ColumnWeightData(2, 100, true));
-        selfColumn.setText(getString("_UI_SelfColumn_label")); //$NON-NLS-1$
-        selfColumn.setResizable(true);
+				TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+				layout.addColumnData(new ColumnWeightData(2, 100, true));
+				selfColumn.setText(getString("_UI_SelfColumn_label")); //$NON-NLS-1$
+				selfColumn.setResizable(true);
 
-        tableViewer.setColumnProperties(new String [] {"a", "b"}); //$NON-NLS-1$ //$NON-NLS-2$
-        tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-        tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+				tableViewer.setColumnProperties(new String [] {"a", "b"}); //$NON-NLS-1$ //$NON-NLS-2$
+				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
 
-        createContextMenuFor(tableViewer);
-        int pageIndex = addPage(viewerPane.getControl());
-        setPageText(pageIndex, getString("_UI_TablePage_label")); //$NON-NLS-1$
-      }
+				createContextMenuFor(tableViewer);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TablePage_label")); //$NON-NLS-1$
+			}
 
-      // This is the page for the table tree viewer.
-      //
-      {
-        ViewerPane viewerPane =
-          new ViewerPane(getSite().getPage(), EXTLibraryEditor.this)
-          {
-            @Override
-            public Viewer createViewer(Composite composite)
-            {
-              return new TreeViewer(composite);
-            }
-            @Override
-            public void requestActivation()
-            {
-              super.requestActivation();
-              setCurrentViewerPane(this);
-            }
-          };
-        viewerPane.createControl(getContainer());
+			// This is the page for the table tree viewer.
+			//
+			{
+				ViewerPane viewerPane =
+					new ViewerPane(getSite().getPage(), EXTLibraryEditor.this) {
+						@Override
+						public Viewer createViewer(Composite composite) {
+							return new TreeViewer(composite);
+						}
+						@Override
+						public void requestActivation() {
+							super.requestActivation();
+							setCurrentViewerPane(this);
+						}
+					};
+				viewerPane.createControl(getContainer());
 
-        treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
 
-        Tree tree = treeViewerWithColumns.getTree();
-        tree.setLayoutData(new FillLayout());
-        tree.setHeaderVisible(true);
-        tree.setLinesVisible(true);
+				Tree tree = treeViewerWithColumns.getTree();
+				tree.setLayoutData(new FillLayout());
+				tree.setHeaderVisible(true);
+				tree.setLinesVisible(true);
 
-        TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
-        objectColumn.setText(getString("_UI_ObjectColumn_label")); //$NON-NLS-1$
-        objectColumn.setResizable(true);
-        objectColumn.setWidth(250);
+				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+				objectColumn.setText(getString("_UI_ObjectColumn_label")); //$NON-NLS-1$
+				objectColumn.setResizable(true);
+				objectColumn.setWidth(250);
 
-        TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
-        selfColumn.setText(getString("_UI_SelfColumn_label")); //$NON-NLS-1$
-        selfColumn.setResizable(true);
-        selfColumn.setWidth(200);
+				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+				selfColumn.setText(getString("_UI_SelfColumn_label")); //$NON-NLS-1$
+				selfColumn.setResizable(true);
+				selfColumn.setWidth(200);
 
-        treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"}); //$NON-NLS-1$ //$NON-NLS-2$
-        treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-        treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"}); //$NON-NLS-1$ //$NON-NLS-2$
+				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
 
-        createContextMenuFor(treeViewerWithColumns);
-        int pageIndex = addPage(viewerPane.getControl());
-        setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label")); //$NON-NLS-1$
-      }
+				createContextMenuFor(treeViewerWithColumns);
+				int pageIndex = addPage(viewerPane.getControl());
+				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label")); //$NON-NLS-1$
+			}
 
-      getSite().getShell().getDisplay().asyncExec
-        (new Runnable()
-         {
-           public void run()
-           {
-             setActivePage(0);
-           }
-         });
-    }
+			getSite().getShell().getDisplay().asyncExec
+				(new Runnable() {
+					 public void run() {
+						 setActivePage(0);
+					 }
+				 });
+		}
 
-    // Ensures that this editor will only display the page's tab
-    // area if there are more than one page
-    //
-    getContainer().addControlListener
-      (new ControlAdapter()
-       {
-        boolean guard = false;
-        @Override
-        public void controlResized(ControlEvent event)
-        {
-          if (!guard)
-          {
-            guard = true;
-            hideTabs();
-            guard = false;
-          }
-        }
-       });
+		// Ensures that this editor will only display the page's tab
+		// area if there are more than one page
+		//
+		getContainer().addControlListener
+			(new ControlAdapter() {
+				boolean guard = false;
+				@Override
+				public void controlResized(ControlEvent event) {
+					if (!guard) {
+						guard = true;
+						hideTabs();
+						guard = false;
+					}
+				}
+			 });
 
-    getSite().getShell().getDisplay().asyncExec
-      (new Runnable()
-       {
-         public void run()
-         {
-           updateProblemIndication();
-         }
-       });
-  }
+		getSite().getShell().getDisplay().asyncExec
+			(new Runnable() {
+				 public void run() {
+					 updateProblemIndication();
+				 }
+			 });
+	}
 
   /**
-   * If there is just one page in the multi-page editor part,
-   * this hides the single tab at the bottom.
-   * <!-- begin-user-doc -->
+	 * If there is just one page in the multi-page editor part,
+	 * this hides the single tab at the bottom.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected void hideTabs()
   {
-    if (getPageCount() <= 1)
-    {
-      setPageText(0, ""); //$NON-NLS-1$
-      if (getContainer() instanceof CTabFolder)
-      {
-        ((CTabFolder)getContainer()).setTabHeight(1);
-        Point point = getContainer().getSize();
-        getContainer().setSize(point.x, point.y + 6);
-      }
-    }
-  }
+		if (getPageCount() <= 1) {
+			setPageText(0, ""); //$NON-NLS-1$
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(1);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y + 6);
+			}
+		}
+	}
 
   /**
-   * If there is more than one page in the multi-page editor part,
-   * this shows the tabs at the bottom.
-   * <!-- begin-user-doc -->
+	 * If there is more than one page in the multi-page editor part,
+	 * this shows the tabs at the bottom.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected void showTabs()
   {
-    if (getPageCount() > 1)
-    {
-      setPageText(0, getString("_UI_SelectionPage_label")); //$NON-NLS-1$
-      if (getContainer() instanceof CTabFolder)
-      {
-        ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
-        Point point = getContainer().getSize();
-        getContainer().setSize(point.x, point.y - 6);
-      }
-    }
-  }
+		if (getPageCount() > 1) {
+			setPageText(0, getString("_UI_SelectionPage_label")); //$NON-NLS-1$
+			if (getContainer() instanceof CTabFolder) {
+				((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+				Point point = getContainer().getSize();
+				getContainer().setSize(point.x, point.y - 6);
+			}
+		}
+	}
 
   /**
-   * This is used to track the active viewer.
-   * <!-- begin-user-doc -->
+	 * This is used to track the active viewer.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   protected void pageChange(int pageIndex)
   {
-    super.pageChange(pageIndex);
+		super.pageChange(pageIndex);
 
-    if (contentOutlinePage != null)
-    {
-      handleContentOutlineSelection(contentOutlinePage.getSelection());
-    }
-  }
+		if (contentOutlinePage != null) {
+			handleContentOutlineSelection(contentOutlinePage.getSelection());
+		}
+	}
 
   /**
-   * This is how the framework determines which interfaces we implement.
-   * <!-- begin-user-doc -->
+	 * This is how the framework determines which interfaces we implement.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @SuppressWarnings("rawtypes")
   @Override
   public Object getAdapter(Class key)
   {
-    if (key.equals(IContentOutlinePage.class))
-    {
-      return showOutlineView() ? getContentOutlinePage() : null;
-    }
-    else if (key.equals(IPropertySheetPage.class))
-    {
-      return getPropertySheetPage();
-    }
-    else if (key.equals(IGotoMarker.class))
-    {
-      return this;
-    }
-    else
-    {
-      return super.getAdapter(key);
-    }
-  }
+		if (key.equals(IContentOutlinePage.class)) {
+			return showOutlineView() ? getContentOutlinePage() : null;
+		}
+		else if (key.equals(IPropertySheetPage.class)) {
+			return getPropertySheetPage();
+		}
+		else if (key.equals(IGotoMarker.class)) {
+			return this;
+		}
+		else {
+			return super.getAdapter(key);
+		}
+	}
 
   /**
-   * This accesses a cached version of the content outliner.
-   * <!-- begin-user-doc -->
+	 * This accesses a cached version of the content outliner.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public IContentOutlinePage getContentOutlinePage()
   {
-    if (contentOutlinePage == null)
-    {
-      // The content outline is just a tree.
-      //
-      class MyContentOutlinePage extends ContentOutlinePage
-      {
-        @Override
-        public void createControl(Composite parent)
-        {
-          super.createControl(parent);
-          contentOutlineViewer = getTreeViewer();
-          contentOutlineViewer.addSelectionChangedListener(this);
+		if (contentOutlinePage == null) {
+			// The content outline is just a tree.
+			//
+			class MyContentOutlinePage extends ContentOutlinePage {
+				@Override
+				public void createControl(Composite parent) {
+					super.createControl(parent);
+					contentOutlineViewer = getTreeViewer();
+					contentOutlineViewer.addSelectionChangedListener(this);
 
-          // Set up the tree viewer.
-          //
-          contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-          contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-          contentOutlineViewer.setInput(editingDomain.getResourceSet());
+					// Set up the tree viewer.
+					//
+					contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+					contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+					contentOutlineViewer.setInput(editingDomain.getResourceSet());
 
-          // Make sure our popups work.
-          //
-          createContextMenuFor(contentOutlineViewer);
+					// Make sure our popups work.
+					//
+					createContextMenuFor(contentOutlineViewer);
 
-          if (!editingDomain.getResourceSet().getResources().isEmpty())
-          {
-            // Select the root object in the view.
-            //
-            contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
-          }
-        }
+					if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+					  // Select the root object in the view.
+					  //
+					  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+					}
+				}
 
-        @Override
-        public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager)
-        {
-          super.makeContributions(menuManager, toolBarManager, statusLineManager);
-          contentOutlineStatusLineManager = statusLineManager;
-        }
+				@Override
+				public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+					super.makeContributions(menuManager, toolBarManager, statusLineManager);
+					contentOutlineStatusLineManager = statusLineManager;
+				}
 
-        @Override
-        public void setActionBars(IActionBars actionBars)
-        {
-          super.setActionBars(actionBars);
-          getActionBarContributor().shareGlobalActions(this, actionBars);
-        }
-      }
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			}
 
-      contentOutlinePage = new MyContentOutlinePage();
+			contentOutlinePage = new MyContentOutlinePage();
 
-      // Listen to selection so that we can handle it is a special way.
-      //
-      contentOutlinePage.addSelectionChangedListener
-        (new ISelectionChangedListener()
-         {
-           // This ensures that we handle selections correctly.
-           //
-           public void selectionChanged(SelectionChangedEvent event)
-           {
-             handleContentOutlineSelection(event.getSelection());
-           }
-         });
-    }
+			// Listen to selection so that we can handle it is a special way.
+			//
+			contentOutlinePage.addSelectionChangedListener
+				(new ISelectionChangedListener() {
+					 // This ensures that we handle selections correctly.
+					 //
+					 public void selectionChanged(SelectionChangedEvent event) {
+						 handleContentOutlineSelection(event.getSelection());
+					 }
+				 });
+		}
 
-    return contentOutlinePage;
-  }
+		return contentOutlinePage;
+	}
 
   /**
-   * This accesses a cached version of the property sheet.
-   * <!-- begin-user-doc -->
+	 * This accesses a cached version of the property sheet.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public IPropertySheetPage getPropertySheetPage()
   {
-    if (propertySheetPage == null)
-    {
-      propertySheetPage =
-        new ExtendedPropertySheetPage(editingDomain)
-        {
-          @Override
-          public void setSelectionToViewer(List<?> selection)
-          {
-            EXTLibraryEditor.this.setSelectionToViewer(selection);
-            EXTLibraryEditor.this.setFocus();
-          }
+		PropertySheetPage propertySheetPage =
+			new ExtendedPropertySheetPage(editingDomain) {
+				@Override
+				public void setSelectionToViewer(List<?> selection) {
+					EXTLibraryEditor.this.setSelectionToViewer(selection);
+					EXTLibraryEditor.this.setFocus();
+				}
 
-          @Override
-          public void setActionBars(IActionBars actionBars)
-          {
-            super.setActionBars(actionBars);
-            getActionBarContributor().shareGlobalActions(this, actionBars);
-          }
-        };
-      propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
-    }
+				@Override
+				public void setActionBars(IActionBars actionBars) {
+					super.setActionBars(actionBars);
+					getActionBarContributor().shareGlobalActions(this, actionBars);
+				}
+			};
+		propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+		propertySheetPages.add(propertySheetPage);
 
-    return propertySheetPage;
-  }
+		return propertySheetPage;
+	}
 
   /**
-   * This deals with how we want selection in the outliner to affect the other views.
-   * <!-- begin-user-doc -->
+	 * This deals with how we want selection in the outliner to affect the other views.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public void handleContentOutlineSelection(ISelection selection)
   {
-    if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection)
-    {
-      Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
-      if (selectedElements.hasNext())
-      {
-        // Get the first selected element.
-        //
-        Object selectedElement = selectedElements.next();
+		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+			Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+			if (selectedElements.hasNext()) {
+				// Get the first selected element.
+				//
+				Object selectedElement = selectedElements.next();
 
-        // If it's the selection viewer, then we want it to select the same selection as this selection.
-        //
-        if (currentViewerPane.getViewer() == selectionViewer)
-        {
-          ArrayList<Object> selectionList = new ArrayList<Object>();
-          selectionList.add(selectedElement);
-          while (selectedElements.hasNext())
-          {
-            selectionList.add(selectedElements.next());
-          }
+				// If it's the selection viewer, then we want it to select the same selection as this selection.
+				//
+				if (currentViewerPane.getViewer() == selectionViewer) {
+					ArrayList<Object> selectionList = new ArrayList<Object>();
+					selectionList.add(selectedElement);
+					while (selectedElements.hasNext()) {
+						selectionList.add(selectedElements.next());
+					}
 
-          // Set the selection to the widget.
-          //
-          selectionViewer.setSelection(new StructuredSelection(selectionList));
-        }
-        else
-        {
-          // Set the input to the widget.
-          //
-          if (currentViewerPane.getViewer().getInput() != selectedElement)
-          {
-            currentViewerPane.getViewer().setInput(selectedElement);
-            currentViewerPane.setTitle(selectedElement);
-          }
-        }
-      }
-    }
-  }
+					// Set the selection to the widget.
+					//
+					selectionViewer.setSelection(new StructuredSelection(selectionList));
+				}
+				else {
+					// Set the input to the widget.
+					//
+					if (currentViewerPane.getViewer().getInput() != selectedElement) {
+						currentViewerPane.getViewer().setInput(selectedElement);
+						currentViewerPane.setTitle(selectedElement);
+					}
+				}
+			}
+		}
+	}
 
   /**
-   * This is for implementing {@link IEditorPart} and simply tests the command stack.
-   * <!-- begin-user-doc -->
+	 * This is for implementing {@link IEditorPart} and simply tests the command stack.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public boolean isDirty()
   {
-    return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
-  }
+		return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+	}
 
   /**
-   * This is for implementing {@link IEditorPart} and simply saves the model file.
-   * <!-- begin-user-doc -->
+	 * This is for implementing {@link IEditorPart} and simply saves the model file.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public void doSave(IProgressMonitor progressMonitor)
   {
-    // Save only resources that have actually changed.
-    //
-    final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
-    saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		// Save only resources that have actually changed.
+		//
+		final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+		saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+		saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
 
-    // Do the work within an operation because this is a long running activity that modifies the workbench.
-    //
-    WorkspaceModifyOperation operation =
-      new WorkspaceModifyOperation()
-      {
-        // This is the method that gets invoked when the operation runs.
-        //
-        @Override
-        public void execute(IProgressMonitor monitor)
-        {
-          // Save the resources to the file system.
-          //
-          boolean first = true;
-          for (Resource resource : editingDomain.getResourceSet().getResources())
-          {
-            if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource))
-            {
-              try
-              {
-                long timeStamp = resource.getTimeStamp();
-                resource.save(saveOptions);
-                if (resource.getTimeStamp() != timeStamp)
-                {
-                  savedResources.add(resource);
-                }
-              }
-              catch (Exception exception)
-              {
-                resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
-              }
-              first = false;
-            }
-          }
-        }
-      };
+		// Do the work within an operation because this is a long running activity that modifies the workbench.
+		//
+		WorkspaceModifyOperation operation =
+			new WorkspaceModifyOperation() {
+				// This is the method that gets invoked when the operation runs.
+				//
+				@Override
+				public void execute(IProgressMonitor monitor) {
+					// Save the resources to the file system.
+					//
+					boolean first = true;
+					for (Resource resource : editingDomain.getResourceSet().getResources()) {
+						if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+							try {
+								long timeStamp = resource.getTimeStamp();
+								resource.save(saveOptions);
+								if (resource.getTimeStamp() != timeStamp) {
+									savedResources.add(resource);
+								}
+							}
+							catch (Exception exception) {
+								resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+							}
+							first = false;
+						}
+					}
+				}
+			};
 
-    updateProblemIndication = false;
-    try
-    {
-      // This runs the options, and shows progress.
-      //
-      new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+		updateProblemIndication = false;
+		try {
+			// This runs the options, and shows progress.
+			//
+			new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
 
-      // Refresh the necessary state.
-      //
-      ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
-      firePropertyChange(IEditorPart.PROP_DIRTY);
-    }
-    catch (Exception exception)
-    {
-      // Something went wrong that shouldn't.
-      //
-      EXTLibraryEditorPlugin.INSTANCE.log(exception);
-    }
-    updateProblemIndication = true;
-    updateProblemIndication();
-  }
+			// Refresh the necessary state.
+			//
+			((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+			firePropertyChange(IEditorPart.PROP_DIRTY);
+		}
+		catch (Exception exception) {
+			// Something went wrong that shouldn't.
+			//
+			EXTLibraryEditorPlugin.INSTANCE.log(exception);
+		}
+		updateProblemIndication = true;
+		updateProblemIndication();
+	}
 
   /**
-   * This returns whether something has been persisted to the URI of the specified resource.
-   * The implementation uses the URI converter from the editor's resource set to try to open an input stream. 
-   * <!-- begin-user-doc -->
+	 * This returns whether something has been persisted to the URI of the specified resource.
+	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected boolean isPersisted(Resource resource)
   {
-    boolean result = false;
-    try
-    {
-      InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
-      if (stream != null)
-      {
-        result = true;
-        stream.close();
-      }
-    }
-    catch (IOException e)
-    {
-      // Ignore
-    }
-    return result;
-  }
+		boolean result = false;
+		try {
+			InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+			if (stream != null) {
+				result = true;
+				stream.close();
+			}
+		}
+		catch (IOException e) {
+			// Ignore
+		}
+		return result;
+	}
 
   /**
-   * This always returns true because it is not currently supported.
-   * <!-- begin-user-doc -->
+	 * This always returns true because it is not currently supported.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public boolean isSaveAsAllowed()
   {
-    return true;
-  }
+		return true;
+	}
 
   /**
-   * This also changes the editor's input.
-   * <!-- begin-user-doc -->
+	 * This also changes the editor's input.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public void doSaveAs()
   {
-    SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
-    saveAsDialog.open();
-    IPath path = saveAsDialog.getResult();
-    if (path != null)
-    {
-      IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-      if (file != null)
-      {
-        doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
-      }
-    }
-  }
+		SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+		saveAsDialog.open();
+		IPath path = saveAsDialog.getResult();
+		if (path != null) {
+			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+			if (file != null) {
+				doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+			}
+		}
+	}
 
   /**
-   * <!-- begin-user-doc -->
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected void doSaveAs(URI uri, IEditorInput editorInput)
   {
-    (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
-    setInputWithNotify(editorInput);
-    setPartName(editorInput.getName());
-    IProgressMonitor progressMonitor =
-      getActionBars().getStatusLineManager() != null ?
-        getActionBars().getStatusLineManager().getProgressMonitor() :
-        new NullProgressMonitor();
-    doSave(progressMonitor);
-  }
+		(editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		IProgressMonitor progressMonitor =
+			getActionBars().getStatusLineManager() != null ?
+				getActionBars().getStatusLineManager().getProgressMonitor() :
+				new NullProgressMonitor();
+		doSave(progressMonitor);
+	}
 
   /**
-   * <!-- begin-user-doc -->
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public void gotoMarker(IMarker marker)
   {
-    try
-    {
-      if (marker.getType().equals(EValidator.MARKER))
-      {
-        String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
-        if (uriAttribute != null)
-        {
-          URI uri = URI.createURI(uriAttribute);
-          EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
-          if (eObject != null)
-          {
-            setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
-          }
-        }
-      }
-    }
-    catch (CoreException exception)
-    {
-      EXTLibraryEditorPlugin.INSTANCE.log(exception);
-    }
-  }
+		List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+		if (!targetObjects.isEmpty()) {
+			setSelectionToViewer(targetObjects);
+		}
+	}
 
   /**
-   * This is called during startup.
-   * <!-- begin-user-doc -->
+	 * This is called during startup.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public void init(IEditorSite site, IEditorInput editorInput)
   {
-    setSite(site);
-    setInputWithNotify(editorInput);
-    setPartName(editorInput.getName());
-    site.setSelectionProvider(this);
-    site.getPage().addPartListener(partListener);
-    ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
-  }
+		setSite(site);
+		setInputWithNotify(editorInput);
+		setPartName(editorInput.getName());
+		site.setSelectionProvider(this);
+		site.getPage().addPartListener(partListener);
+		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+	}
 
   /**
-   * <!-- begin-user-doc -->
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public void setFocus()
   {
-    if (currentViewerPane != null)
-    {
-      currentViewerPane.setFocus();
-    }
-    else
-    {
-      getControl(getActivePage()).setFocus();
-    }
-  }
+		if (currentViewerPane != null) {
+			currentViewerPane.setFocus();
+		}
+		else {
+			getControl(getActivePage()).setFocus();
+		}
+	}
 
   /**
-   * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
-   * <!-- begin-user-doc -->
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public void addSelectionChangedListener(ISelectionChangedListener listener)
   {
-    selectionChangedListeners.add(listener);
-  }
+		selectionChangedListeners.add(listener);
+	}
 
   /**
-   * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
-   * <!-- begin-user-doc -->
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public void removeSelectionChangedListener(ISelectionChangedListener listener)
   {
-    selectionChangedListeners.remove(listener);
-  }
+		selectionChangedListeners.remove(listener);
+	}
 
   /**
-   * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
-   * <!-- begin-user-doc -->
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public ISelection getSelection()
   {
-    return editorSelection;
-  }
+		return editorSelection;
+	}
 
   /**
-   * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
-   * Calling this result will notify the listeners.
-   * <!-- begin-user-doc -->
+	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+	 * Calling this result will notify the listeners.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public void setSelection(ISelection selection)
   {
-    editorSelection = selection;
+		editorSelection = selection;
 
-    for (ISelectionChangedListener listener : selectionChangedListeners)
-    {
-      listener.selectionChanged(new SelectionChangedEvent(this, selection));
-    }
-    setStatusLineManager(selection);
-  }
+		for (ISelectionChangedListener listener : selectionChangedListeners) {
+			listener.selectionChanged(new SelectionChangedEvent(this, selection));
+		}
+		setStatusLineManager(selection);
+	}
 
   /**
-   * <!-- begin-user-doc -->
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public void setStatusLineManager(ISelection selection)
   {
-    IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
-      contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+		IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+			contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
 
-    if (statusLineManager != null)
-    {
-      if (selection instanceof IStructuredSelection)
-      {
-        Collection<?> collection = ((IStructuredSelection)selection).toList();
-        switch (collection.size())
-        {
-          case 0:
-          {
-            statusLineManager.setMessage(getString("_UI_NoObjectSelected")); //$NON-NLS-1$
-            break;
-          }
-          case 1:
-          {
-            String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
-            statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text)); //$NON-NLS-1$
-            break;
-          }
-          default:
-          {
-            statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size()))); //$NON-NLS-1$
-            break;
-          }
-        }
-      }
-      else
-      {
-        statusLineManager.setMessage(""); //$NON-NLS-1$
-      }
-    }
-  }
+		if (statusLineManager != null) {
+			if (selection instanceof IStructuredSelection) {
+				Collection<?> collection = ((IStructuredSelection)selection).toList();
+				switch (collection.size()) {
+					case 0: {
+						statusLineManager.setMessage(getString("_UI_NoObjectSelected")); //$NON-NLS-1$
+						break;
+					}
+					case 1: {
+						String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+						statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text)); //$NON-NLS-1$
+						break;
+					}
+					default: {
+						statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size()))); //$NON-NLS-1$
+						break;
+					}
+				}
+			}
+			else {
+				statusLineManager.setMessage(""); //$NON-NLS-1$
+			}
+		}
+	}
 
   /**
-   * This looks up a string in the plugin's plugin.properties file.
-   * <!-- begin-user-doc -->
+	 * This looks up a string in the plugin's plugin.properties file.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   private static String getString(String key)
   {
-    return EXTLibraryEditorPlugin.INSTANCE.getString(key);
-  }
+		return EXTLibraryEditorPlugin.INSTANCE.getString(key);
+	}
 
   /**
-   * This looks up a string in plugin.properties, making a substitution.
-   * <!-- begin-user-doc -->
+	 * This looks up a string in plugin.properties, making a substitution.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   private static String getString(String key, Object s1)
   {
-    return EXTLibraryEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
-  }
+		return EXTLibraryEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+	}
 
   /**
-   * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
-   * <!-- begin-user-doc -->
+	 * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public void menuAboutToShow(IMenuManager menuManager)
   {
-    ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
-  }
+		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+	}
 
   /**
-   * <!-- begin-user-doc -->
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public EditingDomainActionBarContributor getActionBarContributor()
   {
-    return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
-  }
+		return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+	}
 
   /**
-   * <!-- begin-user-doc -->
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public IActionBars getActionBars()
   {
-    return getActionBarContributor().getActionBars();
-  }
+		return getActionBarContributor().getActionBars();
+	}
 
   /**
-   * <!-- begin-user-doc -->
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public AdapterFactory getAdapterFactory()
   {
-    return adapterFactory;
-  }
+		return adapterFactory;
+	}
 
   /**
-   * <!-- begin-user-doc -->
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public void dispose()
   {
-    updateProblemIndication = false;
+		updateProblemIndication = false;
 
-    ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
 
-    getSite().getPage().removePartListener(partListener);
+		getSite().getPage().removePartListener(partListener);
 
-    adapterFactory.dispose();
+		adapterFactory.dispose();
 
-    if (getActionBarContributor().getActiveEditor() == this)
-    {
-      getActionBarContributor().setActiveEditor(null);
-    }
+		if (getActionBarContributor().getActiveEditor() == this) {
+			getActionBarContributor().setActiveEditor(null);
+		}
 
-    if (propertySheetPage != null)
-    {
-      propertySheetPage.dispose();
-    }
+		for (PropertySheetPage propertySheetPage : propertySheetPages) {
+			propertySheetPage.dispose();
+		}
 
-    if (contentOutlinePage != null)
-    {
-      contentOutlinePage.dispose();
-    }
+		if (contentOutlinePage != null) {
+			contentOutlinePage.dispose();
+		}
 
-    super.dispose();
-  }
+		super.dispose();
+	}
 
   /**
-   * Returns whether the outline view should be presented to the user.
-   * <!-- begin-user-doc -->
+	 * Returns whether the outline view should be presented to the user.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected boolean showOutlineView()
   {
-    return true;
-  }
+		return true;
+	}
 }
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditorPlugin.java b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditorPlugin.java
index af86031..8f0fe66 100644
--- a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditorPlugin.java
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryEditorPlugin.java
@@ -33,82 +33,81 @@
 public final class EXTLibraryEditorPlugin extends EMFPlugin
 {
   /**
-   * Keep track of the singleton.
-   * <!-- begin-user-doc -->
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public static final EXTLibraryEditorPlugin INSTANCE = new EXTLibraryEditorPlugin();
 
   /**
-   * Keep track of the singleton.
-   * <!-- begin-user-doc -->
+	 * Keep track of the singleton.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   private static Implementation plugin;
 
   /**
-   * Create the instance.
-   * <!-- begin-user-doc -->
+	 * Create the instance.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public EXTLibraryEditorPlugin()
   {
-    super
-      (new ResourceLocator [] 
-      {
-      });
-  }
+		super
+			(new ResourceLocator [] {
+			});
+	}
 
   /**
-   * Returns the singleton instance of the Eclipse plugin.
-   * <!-- begin-user-doc -->
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @return the singleton instance.
-   * @generated
-   */
+	 * @return the singleton instance.
+	 * @generated
+	 */
   @Override
   public ResourceLocator getPluginResourceLocator()
   {
-    return plugin;
-  }
+		return plugin;
+	}
 
   /**
-   * Returns the singleton instance of the Eclipse plugin.
-   * <!-- begin-user-doc -->
+	 * Returns the singleton instance of the Eclipse plugin.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @return the singleton instance.
-   * @generated
-   */
+	 * @return the singleton instance.
+	 * @generated
+	 */
   public static Implementation getPlugin()
   {
-    return plugin;
-  }
+		return plugin;
+	}
 
   /**
-   * The actual implementation of the Eclipse <b>Plugin</b>.
-   * <!-- begin-user-doc -->
+	 * The actual implementation of the Eclipse <b>Plugin</b>.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public static class Implementation extends EclipseUIPlugin
   {
     /**
-     * Creates an instance.
-     * <!-- begin-user-doc -->
+		 * Creates an instance.
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     public Implementation()
     {
-      super();
-  
-      // Remember the static instance.
-      //
-      plugin = this;
-    }
+			super();
+	
+			// Remember the static instance.
+			//
+			plugin = this;
+		}
   }
 
 }
diff --git a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryModelWizard.java b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryModelWizard.java
index c3f471d..1654aa5 100644
--- a/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryModelWizard.java
+++ b/examples/org.eclipse.emf.parsley.examples.library.editor/src/org/eclipse/emf/parsley/examples/library/presentation/EXTLibraryModelWizard.java
@@ -90,6 +90,7 @@
 import org.eclipse.core.runtime.Path;
 
 
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 
@@ -108,595 +109,559 @@
 public class EXTLibraryModelWizard extends Wizard implements INewWizard
 {
   /**
-   * The supported extensions for created files.
-   * <!-- begin-user-doc -->
+	 * The supported extensions for created files.
+	 * <!-- begin-user-doc -->
    * @since 2.4
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public static final List<String> FILE_EXTENSIONS =
     Collections.unmodifiableList(Arrays.asList(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryEditorFilenameExtensions").split("\\s*,\\s*"))); //$NON-NLS-1$ //$NON-NLS-2$
 
   /**
-   * A formatted list of supported file extensions, suitable for display.
-   * <!-- begin-user-doc -->
+	 * A formatted list of supported file extensions, suitable for display.
+	 * <!-- begin-user-doc -->
    * @since 2.4
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public static final String FORMATTED_FILE_EXTENSIONS =
     EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
 
   /**
-   * This caches an instance of the model package.
-   * <!-- begin-user-doc -->
+	 * This caches an instance of the model package.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected EXTLibraryPackage extLibraryPackage = EXTLibraryPackage.eINSTANCE;
 
   /**
-   * This caches an instance of the model factory.
-   * <!-- begin-user-doc -->
+	 * This caches an instance of the model factory.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected EXTLibraryFactory extLibraryFactory = extLibraryPackage.getEXTLibraryFactory();
 
   /**
-   * This is the file creation page.
-   * <!-- begin-user-doc -->
+	 * This is the file creation page.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected EXTLibraryModelWizardNewFileCreationPage newFileCreationPage;
 
   /**
-   * This is the initial object creation page.
-   * <!-- begin-user-doc -->
+	 * This is the initial object creation page.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected EXTLibraryModelWizardInitialObjectCreationPage initialObjectCreationPage;
 
   /**
-   * Remember the selection during initialization for populating the default container.
-   * <!-- begin-user-doc -->
+	 * Remember the selection during initialization for populating the default container.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected IStructuredSelection selection;
 
   /**
-   * Remember the workbench during initialization.
-   * <!-- begin-user-doc -->
+	 * Remember the workbench during initialization.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected IWorkbench workbench;
 
   /**
-   * Caches the names of the types that can be created as the root object.
-   * <!-- begin-user-doc -->
+	 * Caches the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected List<String> initialObjectNames;
 
   /**
-   * This just records the information.
-   * <!-- begin-user-doc -->
+	 * This just records the information.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public void init(IWorkbench workbench, IStructuredSelection selection)
   {
-    this.workbench = workbench;
-    this.selection = selection;
-    setWindowTitle(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_Wizard_label")); //$NON-NLS-1$
-    setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(EXTLibraryEditorPlugin.INSTANCE.getImage("full/wizban/NewEXTLibrary"))); //$NON-NLS-1$
-  }
+		this.workbench = workbench;
+		this.selection = selection;
+		setWindowTitle(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_Wizard_label")); //$NON-NLS-1$
+		setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(EXTLibraryEditorPlugin.INSTANCE.getImage("full/wizban/NewEXTLibrary"))); //$NON-NLS-1$
+	}
 
   /**
-   * Returns the names of the types that can be created as the root object.
-   * <!-- begin-user-doc -->
+	 * Returns the names of the types that can be created as the root object.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected Collection<String> getInitialObjectNames()
   {
-    if (initialObjectNames == null)
-    {
-      initialObjectNames = new ArrayList<String>();
-      for (EClassifier eClassifier : extLibraryPackage.getEClassifiers())
-      {
-        if (eClassifier instanceof EClass)
-        {
-          EClass eClass = (EClass)eClassifier;
-          if (!eClass.isAbstract())
-          {
-            initialObjectNames.add(eClass.getName());
-          }
-        }
-      }
-      Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
-    }
-    return initialObjectNames;
-  }
+		if (initialObjectNames == null) {
+			initialObjectNames = new ArrayList<String>();
+			for (EClassifier eClassifier : extLibraryPackage.getEClassifiers()) {
+				if (eClassifier instanceof EClass) {
+					EClass eClass = (EClass)eClassifier;
+					if (!eClass.isAbstract()) {
+						initialObjectNames.add(eClass.getName());
+					}
+				}
+			}
+			Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+		}
+		return initialObjectNames;
+	}
 
   /**
-   * Create a new model.
-   * <!-- begin-user-doc -->
+	 * Create a new model.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   protected EObject createInitialModel()
   {
-    EClass eClass = (EClass)extLibraryPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
-    EObject rootObject = extLibraryFactory.create(eClass);
-    return rootObject;
-  }
+		EClass eClass = (EClass)extLibraryPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+		EObject rootObject = extLibraryFactory.create(eClass);
+		return rootObject;
+	}
 
   /**
-   * Do the work after everything is specified.
-   * <!-- begin-user-doc -->
+	 * Do the work after everything is specified.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public boolean performFinish()
   {
-    try
-    {
-      // Remember the file.
-      //
-      final IFile modelFile = getModelFile();
+		try {
+			// Remember the file.
+			//
+			final IFile modelFile = getModelFile();
 
-      // Do the work within an operation.
-      //
-      WorkspaceModifyOperation operation =
-        new WorkspaceModifyOperation()
-        {
-          @Override
-          protected void execute(IProgressMonitor progressMonitor)
-          {
-            try
-            {
-              // Create a resource set
-              //
-              ResourceSet resourceSet = new ResourceSetImpl();
+			// Do the work within an operation.
+			//
+			WorkspaceModifyOperation operation =
+				new WorkspaceModifyOperation() {
+					@Override
+					protected void execute(IProgressMonitor progressMonitor) {
+						try {
+							// Create a resource set
+							//
+							ResourceSet resourceSet = new ResourceSetImpl();
 
-              // Get the URI of the model file.
-              //
-              URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+							// Get the URI of the model file.
+							//
+							URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
 
-              // Create a resource for this file.
-              //
-              Resource resource = resourceSet.createResource(fileURI, EXTLibraryPackage.eCONTENT_TYPE);
+							// Create a resource for this file.
+							//
+							Resource resource = resourceSet.createResource(fileURI, EXTLibraryPackage.eCONTENT_TYPE);
 
-              // Add the initial model object to the contents.
-              //
-              EObject rootObject = createInitialModel();
-              if (rootObject != null)
-              {
-                resource.getContents().add(rootObject);
-              }
+							// Add the initial model object to the contents.
+							//
+							EObject rootObject = createInitialModel();
+							if (rootObject != null) {
+								resource.getContents().add(rootObject);
+							}
 
-              // Save the contents of the resource to the file system.
-              //
-              Map<Object, Object> options = new HashMap<Object, Object>();
-              options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
-              resource.save(options);
-            }
-            catch (Exception exception)
-            {
-              EXTLibraryEditorPlugin.INSTANCE.log(exception);
-            }
-            finally
-            {
-              progressMonitor.done();
-            }
-          }
-        };
+							// Save the contents of the resource to the file system.
+							//
+							Map<Object, Object> options = new HashMap<Object, Object>();
+							options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+							resource.save(options);
+						}
+						catch (Exception exception) {
+							EXTLibraryEditorPlugin.INSTANCE.log(exception);
+						}
+						finally {
+							progressMonitor.done();
+						}
+					}
+				};
 
-      getContainer().run(false, false, operation);
+			getContainer().run(false, false, operation);
 
-      // Select the new file resource in the current view.
-      //
-      IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-      IWorkbenchPage page = workbenchWindow.getActivePage();
-      final IWorkbenchPart activePart = page.getActivePart();
-      if (activePart instanceof ISetSelectionTarget)
-      {
-        final ISelection targetSelection = new StructuredSelection(modelFile);
-        getShell().getDisplay().asyncExec
-          (new Runnable()
-           {
-             public void run()
-             {
-               ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
-             }
-           });
-      }
+			// Select the new file resource in the current view.
+			//
+			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+			IWorkbenchPage page = workbenchWindow.getActivePage();
+			final IWorkbenchPart activePart = page.getActivePart();
+			if (activePart instanceof ISetSelectionTarget) {
+				final ISelection targetSelection = new StructuredSelection(modelFile);
+				getShell().getDisplay().asyncExec
+					(new Runnable() {
+						 public void run() {
+							 ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+						 }
+					 });
+			}
 
-      // Open an editor on the new file.
-      //
-      try
-      {
-        page.openEditor
-          (new FileEditorInput(modelFile),
-           workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());
-      }
-      catch (PartInitException exception)
-      {
-        MessageDialog.openError(workbenchWindow.getShell(), EXTLibraryEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage()); //$NON-NLS-1$
-        return false;
-      }
+			// Open an editor on the new file.
+			//
+			try {
+				page.openEditor
+					(new FileEditorInput(modelFile),
+					 workbench.getEditorRegistry().getDefaultEditor
+					 	(modelFile.getFullPath().toString(),
+					 	 Platform.getContentTypeManager().getContentType(EXTLibraryPackage.eCONTENT_TYPE)).getId());					 	 
+			}
+			catch (PartInitException exception) {
+				MessageDialog.openError(workbenchWindow.getShell(), EXTLibraryEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage()); //$NON-NLS-1$
+				return false;
+			}
 
-      return true;
-    }
-    catch (Exception exception)
-    {
-      EXTLibraryEditorPlugin.INSTANCE.log(exception);
-      return false;
-    }
-  }
+			return true;
+		}
+		catch (Exception exception) {
+			EXTLibraryEditorPlugin.INSTANCE.log(exception);
+			return false;
+		}
+	}
 
   /**
-   * This is the one page of the wizard.
-   * <!-- begin-user-doc -->
+	 * This is the one page of the wizard.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public class EXTLibraryModelWizardNewFileCreationPage extends WizardNewFileCreationPage
   {
     /**
-     * Pass in the selection.
-     * <!-- begin-user-doc -->
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     public EXTLibraryModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection)
     {
-      super(pageId, selection);
-    }
+			super(pageId, selection);
+		}
 
     /**
-     * The framework calls this to see if the file is correct.
-     * <!-- begin-user-doc -->
+		 * The framework calls this to see if the file is correct.
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     @Override
     protected boolean validatePage()
     {
-      if (super.validatePage())
-      {
-        String extension = new Path(getFileName()).getFileExtension();
-        if (extension == null || !FILE_EXTENSIONS.contains(extension))
-        {
-          String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension"; //$NON-NLS-1$ //$NON-NLS-2$
-          setErrorMessage(EXTLibraryEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
-          return false;
-        }
-        return true;
-      }
-      return false;
-    }
+			if (super.validatePage()) {
+				String extension = new Path(getFileName()).getFileExtension();
+				if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+					String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension"; //$NON-NLS-1$ //$NON-NLS-2$
+					setErrorMessage(EXTLibraryEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+					return false;
+				}
+				return true;
+			}
+			return false;
+		}
 
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     public IFile getModelFile()
     {
-      return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
-    }
+			return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+		}
   }
 
   /**
-   * This is the page where the type of object to create is selected.
-   * <!-- begin-user-doc -->
+	 * This is the page where the type of object to create is selected.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public class EXTLibraryModelWizardInitialObjectCreationPage extends WizardPage
   {
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     protected Combo initialObjectField;
 
     /**
-     * @generated
-     * <!-- begin-user-doc -->
+		 * @generated
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     */
+		 */
     protected List<String> encodings;
 
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     protected Combo encodingField;
 
     /**
-     * Pass in the selection.
-     * <!-- begin-user-doc -->
+		 * Pass in the selection.
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     public EXTLibraryModelWizardInitialObjectCreationPage(String pageId)
     {
-      super(pageId);
-    }
+			super(pageId);
+		}
 
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     public void createControl(Composite parent)
     {
-      Composite composite = new Composite(parent, SWT.NONE);
-      {
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 1;
-        layout.verticalSpacing = 12;
-        composite.setLayout(layout);
+			Composite composite = new Composite(parent, SWT.NONE); {
+				GridLayout layout = new GridLayout();
+				layout.numColumns = 1;
+				layout.verticalSpacing = 12;
+				composite.setLayout(layout);
 
-        GridData data = new GridData();
-        data.verticalAlignment = GridData.FILL;
-        data.grabExcessVerticalSpace = true;
-        data.horizontalAlignment = GridData.FILL;
-        composite.setLayoutData(data);
-      }
+				GridData data = new GridData();
+				data.verticalAlignment = GridData.FILL;
+				data.grabExcessVerticalSpace = true;
+				data.horizontalAlignment = GridData.FILL;
+				composite.setLayoutData(data);
+			}
 
-      Label containerLabel = new Label(composite, SWT.LEFT);
-      {
-        containerLabel.setText(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_ModelObject")); //$NON-NLS-1$
+			Label containerLabel = new Label(composite, SWT.LEFT);
+			{
+				containerLabel.setText(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_ModelObject")); //$NON-NLS-1$
 
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        containerLabel.setLayoutData(data);
-      }
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				containerLabel.setLayoutData(data);
+			}
 
-      initialObjectField = new Combo(composite, SWT.BORDER);
-      {
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        data.grabExcessHorizontalSpace = true;
-        initialObjectField.setLayoutData(data);
-      }
+			initialObjectField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				initialObjectField.setLayoutData(data);
+			}
 
-      for (String objectName : getInitialObjectNames())
-      {
-        initialObjectField.add(getLabel(objectName));
-      }
+			for (String objectName : getInitialObjectNames()) {
+				initialObjectField.add(getLabel(objectName));
+			}
 
-      if (initialObjectField.getItemCount() == 1)
-      {
-        initialObjectField.select(0);
-      }
-      initialObjectField.addModifyListener(validator);
+			if (initialObjectField.getItemCount() == 1) {
+				initialObjectField.select(0);
+			}
+			initialObjectField.addModifyListener(validator);
 
-      Label encodingLabel = new Label(composite, SWT.LEFT);
-      {
-        encodingLabel.setText(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_XMLEncoding")); //$NON-NLS-1$
+			Label encodingLabel = new Label(composite, SWT.LEFT);
+			{
+				encodingLabel.setText(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_XMLEncoding")); //$NON-NLS-1$
 
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        encodingLabel.setLayoutData(data);
-      }
-      encodingField = new Combo(composite, SWT.BORDER);
-      {
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        data.grabExcessHorizontalSpace = true;
-        encodingField.setLayoutData(data);
-      }
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				encodingLabel.setLayoutData(data);
+			}
+			encodingField = new Combo(composite, SWT.BORDER);
+			{
+				GridData data = new GridData();
+				data.horizontalAlignment = GridData.FILL;
+				data.grabExcessHorizontalSpace = true;
+				encodingField.setLayoutData(data);
+			}
 
-      for (String encoding : getEncodings())
-      {
-        encodingField.add(encoding);
-      }
+			for (String encoding : getEncodings()) {
+				encodingField.add(encoding);
+			}
 
-      encodingField.select(0);
-      encodingField.addModifyListener(validator);
+			encodingField.select(0);
+			encodingField.addModifyListener(validator);
 
-      setPageComplete(validatePage());
-      setControl(composite);
-    }
+			setPageComplete(validatePage());
+			setControl(composite);
+		}
 
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     protected ModifyListener validator =
-      new ModifyListener()
-      {
-        public void modifyText(ModifyEvent e)
-        {
-          setPageComplete(validatePage());
-        }
-      };
+      new ModifyListener() {
+				public void modifyText(ModifyEvent e) {
+					setPageComplete(validatePage());
+				}
+			};
 
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     protected boolean validatePage()
     {
-      return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
-    }
+			return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+		}
 
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     @Override
     public void setVisible(boolean visible)
     {
-      super.setVisible(visible);
-      if (visible)
-      {
-        if (initialObjectField.getItemCount() == 1)
-        {
-          initialObjectField.clearSelection();
-          encodingField.setFocus();
-        }
-        else
-        {
-          encodingField.clearSelection();
-          initialObjectField.setFocus();
-        }
-      }
-    }
+			super.setVisible(visible);
+			if (visible) {
+				if (initialObjectField.getItemCount() == 1) {
+					initialObjectField.clearSelection();
+					encodingField.setFocus();
+				}
+				else {
+					encodingField.clearSelection();
+					initialObjectField.setFocus();
+				}
+			}
+		}
 
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     public String getInitialObjectName()
     {
-      String label = initialObjectField.getText();
+			String label = initialObjectField.getText();
 
-      for (String name : getInitialObjectNames())
-      {
-        if (getLabel(name).equals(label))
-        {
-          return name;
-        }
-      }
-      return null;
-    }
+			for (String name : getInitialObjectNames()) {
+				if (getLabel(name).equals(label)) {
+					return name;
+				}
+			}
+			return null;
+		}
 
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     public String getEncoding()
     {
-      return encodingField.getText();
-    }
+			return encodingField.getText();
+		}
 
     /**
-     * Returns the label for the specified type name.
-     * <!-- begin-user-doc -->
+		 * Returns the label for the specified type name.
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     protected String getLabel(String typeName)
     {
-      try
-      {
-        return EXTLibraryEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type"); //$NON-NLS-1$ //$NON-NLS-2$
-      }
-      catch(MissingResourceException mre)
-      {
-        EXTLibraryEditorPlugin.INSTANCE.log(mre);
-      }
-      return typeName;
-    }
+			try {
+				return EXTLibraryEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type"); //$NON-NLS-1$ //$NON-NLS-2$
+			}
+			catch(MissingResourceException mre) {
+				EXTLibraryEditorPlugin.INSTANCE.log(mre);
+			}
+			return typeName;
+		}
 
     /**
-     * <!-- begin-user-doc -->
+		 * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
-     * @generated
-     */
+		 * @generated
+		 */
     protected Collection<String> getEncodings()
     {
-      if (encodings == null)
-      {
-        encodings = new ArrayList<String>();
-        for (StringTokenizer stringTokenizer = new StringTokenizer(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) //$NON-NLS-1$
-        {
-          encodings.add(stringTokenizer.nextToken());
-        }
-      }
-      return encodings;
-    }
+			if (encodings == null) {
+				encodings = new ArrayList<String>();
+				for (StringTokenizer stringTokenizer = new StringTokenizer(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) //$NON-NLS-1$
+				{
+					encodings.add(stringTokenizer.nextToken());
+				}
+			}
+			return encodings;
+		}
   }
 
   /**
-   * The framework calls this to create the contents of the wizard.
-   * <!-- begin-user-doc -->
+	 * The framework calls this to create the contents of the wizard.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   @Override
   public void addPages()
   {
-    // Create a page, set the title, and the initial model file name.
-    //
-    newFileCreationPage = new EXTLibraryModelWizardNewFileCreationPage("Whatever", selection); //$NON-NLS-1$
-    newFileCreationPage.setTitle(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryModelWizard_label")); //$NON-NLS-1$
-    newFileCreationPage.setDescription(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryModelWizard_description")); //$NON-NLS-1$
-    newFileCreationPage.setFileName(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0)); //$NON-NLS-1$ //$NON-NLS-2$
-    addPage(newFileCreationPage);
+		// Create a page, set the title, and the initial model file name.
+		//
+		newFileCreationPage = new EXTLibraryModelWizardNewFileCreationPage("Whatever", selection); //$NON-NLS-1$
+		newFileCreationPage.setTitle(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryModelWizard_label")); //$NON-NLS-1$
+		newFileCreationPage.setDescription(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryModelWizard_description")); //$NON-NLS-1$
+		newFileCreationPage.setFileName(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0)); //$NON-NLS-1$ //$NON-NLS-2$
+		addPage(newFileCreationPage);
 
-    // Try and get the resource selection to determine a current directory for the file dialog.
-    //
-    if (selection != null && !selection.isEmpty())
-    {
-      // Get the resource...
-      //
-      Object selectedElement = selection.iterator().next();
-      if (selectedElement instanceof IResource)
-      {
-        // Get the resource parent, if its a file.
-        //
-        IResource selectedResource = (IResource)selectedElement;
-        if (selectedResource.getType() == IResource.FILE)
-        {
-          selectedResource = selectedResource.getParent();
-        }
+		// Try and get the resource selection to determine a current directory for the file dialog.
+		//
+		if (selection != null && !selection.isEmpty()) {
+			// Get the resource...
+			//
+			Object selectedElement = selection.iterator().next();
+			if (selectedElement instanceof IResource) {
+				// Get the resource parent, if its a file.
+				//
+				IResource selectedResource = (IResource)selectedElement;
+				if (selectedResource.getType() == IResource.FILE) {
+					selectedResource = selectedResource.getParent();
+				}
 
-        // This gives us a directory...
-        //
-        if (selectedResource instanceof IFolder || selectedResource instanceof IProject)
-        {
-          // Set this for the container.
-          //
-          newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+				// This gives us a directory...
+				//
+				if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+					// Set this for the container.
+					//
+					newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
 
-          // Make up a unique new name here.
-          //
-          String defaultModelBaseFilename = EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryEditorFilenameDefaultBase"); //$NON-NLS-1$
-          String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
-          String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension; //$NON-NLS-1$
-          for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i)
-          {
-            modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension; //$NON-NLS-1$
-          }
-          newFileCreationPage.setFileName(modelFilename);
-        }
-      }
-    }
-    initialObjectCreationPage = new EXTLibraryModelWizardInitialObjectCreationPage("Whatever2"); //$NON-NLS-1$
-    initialObjectCreationPage.setTitle(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryModelWizard_label")); //$NON-NLS-1$
-    initialObjectCreationPage.setDescription(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description")); //$NON-NLS-1$
-    addPage(initialObjectCreationPage);
-  }
+					// Make up a unique new name here.
+					//
+					String defaultModelBaseFilename = EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryEditorFilenameDefaultBase"); //$NON-NLS-1$
+					String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+					String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension; //$NON-NLS-1$
+					for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+						modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension; //$NON-NLS-1$
+					}
+					newFileCreationPage.setFileName(modelFilename);
+				}
+			}
+		}
+		initialObjectCreationPage = new EXTLibraryModelWizardInitialObjectCreationPage("Whatever2"); //$NON-NLS-1$
+		initialObjectCreationPage.setTitle(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_EXTLibraryModelWizard_label")); //$NON-NLS-1$
+		initialObjectCreationPage.setDescription(EXTLibraryEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description")); //$NON-NLS-1$
+		addPage(initialObjectCreationPage);
+	}
 
   /**
-   * Get the file from the page.
-   * <!-- begin-user-doc -->
+	 * Get the file from the page.
+	 * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
-   */
+	 * @generated
+	 */
   public IFile getModelFile()
   {
-    return newFileCreationPage.getModelFile();
-  }
+		return newFileCreationPage.getModelFile();
+	}
 
 }