commit 860316c85796120e3c72dbef3a6b44c98bf1f07f
Author: Patrick Plitzner <p.plitzner@bgbm.org>
Date:   Mon Sep 4 19:55:03 2017 +0200

    ref #6595 removed e3 name editor classes (unstable navigator plugin)

diff --git a/eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/ChecklistPerspective.java b/eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/ChecklistPerspective.java
index 752a45a4f..60c61f1d4 100644
--- a/eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/ChecklistPerspective.java
+++ b/eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/ChecklistPerspective.java
@@ -1,8 +1,8 @@
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -13,12 +13,10 @@ import org.eclipse.ui.IFolderLayout;
 import org.eclipse.ui.IPageLayout;
 
 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
-import eu.etaxonomy.taxeditor.editor.view.media.MediaViewPart;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
 import eu.etaxonomy.taxeditor.navigation.search.SearchResultView;
 import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart;
 import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
-import eu.etaxonomy.taxeditor.editor.view.concept.ConceptViewPart;
 
 /**
  * @author a.oppermann
@@ -29,7 +27,7 @@ public class ChecklistPerspective extends Default {
 
 	/*
 	 * (non-Javadoc)
-	 * 
+	 *
 	 * @see
 	 * org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui
 	 * .IPageLayout)
@@ -46,7 +44,6 @@ public class ChecklistPerspective extends Default {
 		IFolderLayout folder = layout.createFolder("Folder", IPageLayout.BOTTOM, 0.6f, layout.getEditorArea());
 		folder.addView(DescriptiveViewPart.ID);
 		folder.addView(DetailsViewPart.ID);
-		folder.addView(ConceptViewPart.ID);
 //		folder.addView(MediaViewPart.ID);
 
 //		createAdditionalFolder(layout, layout.getEditorArea());
diff --git a/eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/Taxonomic.java b/eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/Taxonomic.java
index f16a8164b..488498c12 100644
--- a/eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/Taxonomic.java
+++ b/eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/perspective/Taxonomic.java
@@ -1,8 +1,8 @@
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -13,7 +13,6 @@ import org.eclipse.ui.IFolderLayout;
 import org.eclipse.ui.IPageLayout;
 
 import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
-import eu.etaxonomy.taxeditor.editor.view.media.MediaViewPart;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
 import eu.etaxonomy.taxeditor.navigation.search.SearchResultView;
 import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
@@ -32,16 +31,15 @@ public class Taxonomic extends Default {
 	@Override
 	public void createInitialLayout(IPageLayout layout) {
 		IFolderLayout navigationFolder = layout.createFolder("navigation", IPageLayout.LEFT, 0.25f, layout.getEditorArea());
-		
+
 		navigationFolder.addView(TaxonNavigator.ID);
 		navigationFolder.addPlaceholder(SearchResultView.ID + ":*");
-		
+
 		layout.addView(DetailsViewPart.ID, IPageLayout.RIGHT, 0.25f, layout.getEditorArea());
 		layout.addView(SupplementalDataViewPart.ID, IPageLayout.BOTTOM, 0.25f, DetailsViewPart.ID);
-		
+
 		layout.addView(DescriptiveViewPart.ID, IPageLayout.BOTTOM, 0.25f, layout.getEditorArea());
-		layout.addView(MediaViewPart.ID, IPageLayout.RIGHT, 0.25f, DescriptiveViewPart.ID);
-		
+
 		createAdditionalFolder(layout, layout.getEditorArea());
 	}
 }
diff --git a/eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF b/eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF
index 49f263c1f..f63d6b2e9 100644
--- a/eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF
+++ b/eu.etaxonomy.taxeditor.editor/META-INF/MANIFEST.MF
@@ -12,7 +12,6 @@ Export-Package: eu.etaxonomy.taxeditor.editor,
  eu.etaxonomy.taxeditor.editor.handler.defaultHandler,
  eu.etaxonomy.taxeditor.editor.internal,
  eu.etaxonomy.taxeditor.editor.key.polytomous,
- eu.etaxonomy.taxeditor.editor.name,
  eu.etaxonomy.taxeditor.editor.name.handler,
  eu.etaxonomy.taxeditor.editor.name.operation,
  eu.etaxonomy.taxeditor.editor.view.concept,
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorStateManager.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorStateManager.java
deleted file mode 100644
index 4535d8a8c..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorStateManager.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.UUID;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistable;
-import org.eclipse.ui.PartInitException;
-
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.view.concept.ConceptViewPart;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
-import eu.etaxonomy.taxeditor.editor.view.media.MediaViewPart;
-import eu.etaxonomy.taxeditor.model.ContextListenerAdapter;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
-
-/**
- * <p>EditorStateManager class.</p>
- *
- * @author n.hoffmann
- * @created Sep 30, 2010
- * @version 1.0
- */
-public class EditorStateManager extends ContextListenerAdapter {
-
-	private static final String EDITORS = "editors"; //$NON-NLS-1$
-
-	private static final String EDITOR = "editor"; //$NON-NLS-1$
-
-	private TaxonEditorInputFactory inputFactory;
-
-	/**
-	 * <p>Constructor for EditorStateManager.</p>
-	 */
-	public EditorStateManager() {
-		inputFactory = new TaxonEditorInputFactory();
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.model.IContextListener#contextAboutToStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	/** {@inheritDoc} */
-	@Override
-	public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
-		saveEditorState(memento);
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#contextStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	/** {@inheritDoc} */
-	@Override
-	public void contextStop(IMemento memento, IProgressMonitor monitor) {
-		EditorUtil.closeAll();
-		resetConstantViews();
-	}
-
-	/**
-	 *
-	 */
-	private void resetConstantViews() {
-		AbstractCdmEditorViewPart descriptiveView = (AbstractCdmEditorViewPart) EditorUtil.getView(DescriptiveViewPart.ID, false);
-		AbstractCdmEditorViewPart mediaView = (AbstractCdmEditorViewPart) EditorUtil.getView(MediaViewPart.ID, false);
-		AbstractCdmEditorViewPart conceptView = (AbstractCdmEditorViewPart) EditorUtil.getView(ConceptViewPart.ID, false);
-
-		if(descriptiveView != null){
-			descriptiveView.showEmptyPage();
-		}
-		if(mediaView != null){
-			mediaView.showEmptyPage();
-		}
-		if(conceptView != null){
-			conceptView.showEmptyPage();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.model.IContextListener#contextStart(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	/** {@inheritDoc} */
-	@Override
-	public void contextStart(IMemento memento, IProgressMonitor monitor) {
-		restoreEditors(memento, monitor);
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#contextRefresh(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	@Override
-	public void contextRefresh(IProgressMonitor monitor) {
-		refreshEditors(monitor);
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.model.ContextListenerAdapter#workbenchShutdown(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	/** {@inheritDoc} */
-	@Override
-	public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
-		saveEditorState(memento);
-	}
-
-	/**
-	 * Reads taxon node UUIDs from the given memento and tries to open an editor
-	 * for each of the found UUIDs.
-	 *
-	 * @param memento
-	 */
-	private void restoreEditors(final IMemento memento, IProgressMonitor monitor){
-		if(memento == null){
-			return;
-		}
-
-		IProgressMonitor subProgressMonitor = EditorUtil.getSubProgressMonitor(monitor, 1);
-
-		IMemento editorMementos = memento.getChild(EDITORS);
-		IMemento[] editorInputs = editorMementos.getChildren(EDITOR);
-
-		String taskName = Messages.EditorStateManager_RESTORE_EDITORS;
-        subProgressMonitor.beginTask(taskName, 1 + editorInputs.length * 2);
-		subProgressMonitor.subTask(taskName);
-		subProgressMonitor.worked(1);
-
-		for(IMemento editorInput : editorInputs){
-			TaxonEditorInput input = (TaxonEditorInput) inputFactory.createElement(editorInput);
-			subProgressMonitor.worked(1);
-			if(!subProgressMonitor.isCanceled() && input != null){
-				try {
-					EditorUtil.open(input);
-				} catch (PartInitException e) {
-					MessagingUtils.error(getClass(), Messages.EditorStateManager_ERROR_OPEN_WINDOW, e);
-				}
-			}
-			subProgressMonitor.worked(1);
-		}
-		subProgressMonitor.done();
-	}
-
-	/**
-	 * @param monitor
-	 */
-	private void refreshEditors(IProgressMonitor monitor) {
-		IProgressMonitor subProgressMonitor = EditorUtil.getSubProgressMonitor(monitor, 1);
-
-		Set<IEditorPart> openEditors = EditorUtil.getOpenEditors();
-
-
-		subProgressMonitor.beginTask(Messages.EditorStateManager_REFRESH_EDITOR, openEditors.size() * 2);
-
-		Set<UUID> uuids = new HashSet<UUID>();
-
-		for(IEditorPart editor : openEditors){
-			if(editor instanceof MultiPageTaxonEditor){
-				try {
-					uuids.add(((TaxonEditorInput) editor.getEditorInput()).getTaxonNode().getUuid());
-
-//					((MultiPageTaxonEditor) editor).close(false);
-					EditorUtil.close((MultiPageTaxonEditor)editor);
-					subProgressMonitor.worked(1);
-				} catch (Exception e) {
-					// TODO Auto-generated catch block
-					e.printStackTrace();
-				}
-			}
-		}
-
-		for(UUID uuid : uuids){
-			try {
-				EditorUtil.openTaxonNodeE4(uuid);
-			} catch (Exception e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-			subProgressMonitor.worked(1);
-		}
-
-		subProgressMonitor.done();
-	}
-
-	/**
-	 * Saves the UUIDs
-	 *
-	 * @param memento
-	 */
-	private void saveEditorState(IMemento memento){
-		if(memento == null){
-			return;
-		}
-
-		Set<IEditorPart> editors = EditorUtil.getOpenEditors();
-
-		IMemento editorMementos = memento.createChild(EDITORS);
-
-		for(IEditorPart editor : editors){
-			IEditorInput input = editor.getEditorInput();
-			if(input instanceof IPersistable){
-				IMemento editorMemento = editorMementos.createChild(EDITOR);
-				((IPersistable) input).saveState(editorMemento);
-			}
-		}
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
index ca2634e76..c7f6c413a 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/EditorUtil.java
@@ -9,8 +9,6 @@
 
 package eu.etaxonomy.taxeditor.editor;
 
-import java.util.HashSet;
-import java.util.Set;
 import java.util.UUID;
 
 import org.eclipse.core.commands.ExecutionEvent;
@@ -85,19 +83,6 @@ public class EditorUtil extends AbstractUtility {
 		return editor;
 	}
 
-	/**
-	 * Opens a new editor window with the given TaxonEditorInput
-	 *
-	 * @param input
-	 *            a {@link eu.etaxonomy.taxeditor.editor.TaxonEditorInput}
-	 *            object.
-	 * @throws org.eclipse.ui.PartInitException
-	 *             if any.
-	 */
-	public static void open(TaxonEditorInput input) throws PartInitException {
-		open(input, MultiPageTaxonEditor.ID);
-	}
-
 	public static void open(PolytomousKeyEditorInput input)
 			throws PartInitException {
 		open(input, KeyEditor.ID);
@@ -235,86 +220,6 @@ public class EditorUtil extends AbstractUtility {
 		return isSaving;
 	}
 
-	/**
-	 * Returns a set of all currently open <code>MultiPageTaxonEditor</code>s.
-	 *
-	 * @return a {@link java.util.Set} object.
-	 */
-	public static Set<IEditorPart> getOpenEditors() {
-		Set<IEditorPart> taxonEditors = new HashSet<IEditorPart>();
-
-		if (getActivePage() != null) {
-			for (IEditorReference reference : getActivePage()
-					.getEditorReferences()) {
-				IEditorPart editor = reference.getEditor(false);
-				if (editor instanceof MultiPageTaxonEditor) {
-					taxonEditors.add(editor);
-				}
-			}
-		}
-
-		return taxonEditors;
-	}
-
-	/**
-	 * Returns the currently active taxon editor
-	 *
-	 * @return the taxon editor that has focus
-	 */
-	public static MultiPageTaxonEditor getActiveMultiPageTaxonEditor() {
-		Object editorPart = getActiveE4Editor();
-		if (editorPart != null && editorPart instanceof MultiPageTaxonEditor) {
-			MultiPageTaxonEditor editor = (MultiPageTaxonEditor) editorPart;
-			editor.getConversationHolder().bind();
-			return editor;
-		}
-		return null;
-	}
-
-	/**
-	 * <p>
-	 * getActiveEditorPage
-	 * </p>
-	 *
-	 * @param page
-	 *            a {@link eu.etaxonomy.taxeditor.editor.Page} object.
-	 * @return a {@link org.eclipse.ui.IEditorPart} object.
-	 */
-	public static IEditorPart getActiveEditorPage(Page page) {
-		MultiPageTaxonEditor editor = getActiveMultiPageTaxonEditor();
-
-		return editor != null ? editor.getPage(page) : null;
-	}
-
-	/**
-	 * Returns the selection of the currently active taxon editor
-	 *
-	 * @return a {@link org.eclipse.jface.viewers.ISelection} object.
-	 */
-	public static ISelection getCurrentSelection() {
-		if (getActiveMultiPageTaxonEditor() == null) {
-			return null;
-		} else {
-			return getActiveMultiPageTaxonEditor().getSite()
-					.getSelectionProvider().getSelection();
-		}
-	}
-
-	/**
-	 * <p>
-	 * getUndoContext
-	 * </p>
-	 *
-	 * @param editor
-	 *            a {@link eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor}
-	 *            object.
-	 * @return a {@link org.eclipse.core.commands.operations.IUndoContext}
-	 *         object.
-	 */
-	public static IUndoContext getUndoContext(MultiPageTaxonEditor editor) {
-		return editor.getUndoContext();
-	}
-
 	/**
 	 * <p>
 	 * getUndoContext
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/IDropTargetable.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/IDropTargetable.java
deleted file mode 100644
index fbec6c63a..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/IDropTargetable.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * 
- */
-package eu.etaxonomy.taxeditor.editor;
-
-import org.eclipse.swt.widgets.Composite;
-
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-
-/**
- * <p>IDropTargetable interface.</p>
- *
- * @author n.hoffmann
- * @version $Id: $
- */
-public interface IDropTargetable extends IPostOperationEnabled {
-
-	/**
-	 * <p>getControl</p>
-	 *
-	 * @return a {@link org.eclipse.swt.widgets.Composite} object.
-	 */
-	public Composite getControl();
-	
-	/**
-	 * <p>getNameEditor</p>
-	 *
-	 * @return a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
-	 */
-	public TaxonNameEditor getEditor();
-
-	/**
-	 * <p>dragEntered</p>
-	 */
-	public void dragEntered();
-
-	/**
-	 * <p>dragLeft</p>
-	 */
-	public void dragLeft();
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/IMultiPageTaxonEditorPage.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/IMultiPageTaxonEditorPage.java
deleted file mode 100644
index ce938453d..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/IMultiPageTaxonEditorPage.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor;
-
-import org.eclipse.ui.IEditorPart;
-
-/**
- * <p>IMultiPageTaxonEditorPage interface.</p>
- *
- * @author n.hoffmann
- * @created Jan 5, 2010
- * @version 1.0
- */
-public interface IMultiPageTaxonEditorPage extends IEditorPart {
-
-	/**
-	 * Redraws this editor
-	 * return true on success
-	 *
-	 * @return a boolean.
-	 */
-	public boolean redraw();
-	
-	/**
-	 * Redraws the editor controls
-	 *
-	 * @param focus if set to true the focus is set on the editor
-	 * @return true on success
-	 */
-	public boolean redraw(boolean focus);
-	
-	/**
-	 * Whether the editor page is currently redrawing
-	 *
-	 * @return a boolean.
-	 */
-	public boolean isRedrawing();
-
-	/**
-	 * Sets the editor page into enabled or disabled state depending on the 
-	 * value of the supplied parameter <code>enabled</code>.
-	 * 
-	 * @param enabled
-	 */
-	public void setEnabled(boolean enabled);
-
-	/**
-	 * Sets the editor page into disabled state and changes the 
-	 * appearance accordingly. 
-	 */
-	void setDisabled();
-	
-	/**
-	 * Sets the editor page into disabled state and changes the 
-	 * appearance in order to indicate that an error has occurred.  
-	 */
-	public void setOnError();
-	
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
deleted file mode 100644
index 35fa77af2..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
+++ /dev/null
@@ -1,596 +0,0 @@
-/**
- * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy
- * http://www.e-taxonomy.eu
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * See LICENSE.TXT at the top of this package for the full license terms.
- */
-
-package eu.etaxonomy.taxeditor.editor;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.commands.operations.UndoContext;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.forms.editor.FormEditor;
-
-import eu.etaxonomy.cdm.api.application.CdmApplicationState;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.container.AbstractGroupedContainer;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.DataChangeBridge;
-import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
-import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
-import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
-import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
-import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-
-/**
- *
- * Generates the tabbed editor with <code>TaxonNameEditor</code> on top and tabs
- * for "Descriptions", "Concepts", "Geography", etc.
- *
- * @author p.ciardelli
- * @author n.hoffmann
- * @created 15.05.2008
- * @version 1.0
- */
-public class MultiPageTaxonEditor extends FormEditor
-        implements IPartContentHasFactualData, IConversationEnabled, IPostOperationEnabled, IDirtyMarkable,
-        IPartContentHasDetails, IPartContentHasSupplementalData, ISecuredEditor, IPartContentHasMedia, ITaxonEditor {
-
-    /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.taxon"{trunked}</code> */
-    public static final String ID = "eu.etaxonomy.taxeditor.editor.taxon"; //$NON-NLS-1$
-
-    private boolean dirty;
-
-    private ConversationHolder conversation;
-    private IDataChangeBehavior dataChangeBehavior;
-    private IUndoContext undoContext;
-
-    private TaxonEditorInput input;
-
-    /**
-     * <p>
-     * Constructor for MultiPageTaxonEditor.
-     * </p>
-     */
-    public MultiPageTaxonEditor() {
-        super();
-        undoContext = new UndoContext();
-
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void dispose() {
-        input.dispose();
-        conversation.unregisterForDataStoreChanges(this);
-        conversation.close();
-        super.dispose();
-    }
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
-     */
-    /** {@inheritDoc} */
-    @Override
-    protected void addPages() {
-        input = (TaxonEditorInput) getEditorInput();
-        conversation = input.getConversationHolder();
-        conversation.registerForDataStoreChanges(this);
-
-        try {
-            addPage(Page.NAME.getIndex(), new TaxonNameEditor(this),
-                    getEditorInput());
-            // setPageText(Page.NAME.getIndex(), Page.NAME.getTitle());
-
-            // TODO lazy create
-            // addPage(Page.DESCRIPTIVE.getIndex(), new
-            // TaxonDescriptionTreeEditor(this), getEditorInput());
-            // setPageText(Page.DESCRIPTIVE.getIndex(),
-            // Page.DESCRIPTIVE.getTitle());
-
-            // EditorUtil.showPropertySheet();
-
-        } catch (PartInitException e) {
-            MessagingUtils.error(getClass(), e);
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected void pageChange(int newPageIndex) {
-        if(getCurrentPage()==-1){
-            return;
-        }
-        super.pageChange(newPageIndex);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void doSave(IProgressMonitor monitor) {
-        monitor.beginTask(Messages.MultiPageTaxonEditor_SAVING_EDITOR, 4);
-        try {
-            if (!conversation.isBound()) {
-                conversation.bind();
-            }
-            monitor.worked(1);
-
-            for (IEditorPart editorPage : getPages()) {
-                if (editorPage instanceof TaxonNameEditor) {
-                    if (((TaxonNameEditor) editorPage).checkForEmptyNames()) {
-                        MessageDialog.openWarning(AbstractUtility.getShell(), Messages.MultiPageTaxonEditor_NO_NAME_SPECIFIED,
-                                Messages.MultiPageTaxonEditor_NO_NAME_SPECIFIED_MESSAGE);
-                        return;
-                    }
-                }
-
-                editorPage.doSave(monitor);
-                monitor.worked(1);
-            }
-
-            // commit the conversation and start a new transaction immediately
-
-            input.merge();
-
-            conversation.commit(true);
-            CdmApplicationState.getCurrentDataChangeService()
-            .fireChangeEvent(new CdmChangeEvent(Action.Update, input.getTaxonNode() , MultiPageTaxonEditor.class), true);
-            monitor.worked(1);
-
-            this.setDirty(false);
-            monitor.worked(1);
-        } catch (Exception e) {
-            setFocus();
-            MessagingUtils.operationDialog(this, e, TaxeditorEditorPlugin.PLUGIN_ID,Messages.MultiPageTaxonEditor_SAVING_TAXON, Messages.MultiPageTaxonEditor_SAVING_TAXON_MESSAGE);
-            disableEditor(true);
-        } finally {
-            monitor.done();
-        }
-    }
-
-    private void disableEditor(boolean isOnError) {
-        for (IMultiPageTaxonEditorPage editorPage : getPages()) {
-            if(isOnError){
-                editorPage.setOnError();
-            }else {
-                editorPage.setDisabled();
-            }
-        }
-
-        conversation.unregisterForDataStoreChanges(this);
-        conversation.close();
-        setDirty(false);
-    }
-
-    private void setDirty(boolean dirty) {
-        this.dirty = dirty;
-        firePropertyChange(PROP_DIRTY);
-    }
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.eclipse.ui.part.MultiPageEditorPart#isDirty()
-     */
-    /**
-     * <p>
-     * isDirty
-     * </p>
-     *
-     * @return a boolean.
-     */
-    @Override
-    public boolean isDirty() {
-        return dirty;
-    }
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.eclipse.ui.forms.editor.FormEditor#editorDirtyStateChanged()
-     */
-    /** {@inheritDoc} */
-    @Override
-    public void editorDirtyStateChanged() {
-        dirty = true;
-        super.editorDirtyStateChanged();
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Checks whether nested editors are calling
-     * <code>firePropertyChange(PROP_DIRTY)</code> to signal an edit has taken
-     * place before passing property change along to
-     * <code>super.handlePropertyChange(int propertyId)</code>.
-     */
-    /*
-     * (non-Javadoc)
-     *
-     * @see org.eclipse.ui.part.MultiPageEditorPart#handlePropertyChange(int)
-     */
-    @Override
-    protected void handlePropertyChange(int propertyId) {
-        if (propertyId == PROP_DIRTY) {
-            setDirty(true);
-        }
-        super.handlePropertyChange(propertyId);
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void doSaveAs() {
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public boolean isSaveAsAllowed() {
-        return false;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-
-        if (!(input instanceof TaxonEditorInput)) {
-            throw new PartInitException(
-                    Messages.MultiPageTaxonEditor_INVALID_INPUT);
-        }
-
-        this.input = (TaxonEditorInput) input;
-
-
-        // try {
-        // // Listen for name changes,
-        // // change tab for this taxon editor accordingly
-        // getTaxon().addPropertyChangeListener("name",
-        // new PropertyChangeListener() {
-        // public void propertyChange(PropertyChangeEvent e) {
-        // setPartName();
-        // }
-        // });
-        // } catch (NullPointerException e) {
-        // EditorUtil.warn(getClass(),
-        // "Caught an NPE while initing an editor. This is most " +
-        // "likely due to the unsuccesful attempt to restore the former " +
-        // "state of the application. We ignore this because the workbench " +
-        // "will simply be reset.");
-        // }
-        setPartName();
-
-        super.init(site, input);
-    }
-
-    /**
-     * Calls <code>MultiPageEditorPart.setPartName(String partName)</code> with
-     * text appropriate to the state of the taxon: any taxon that has been saved
-     * will by necessity have a name to display; a new taxon should display
-     * "New taxon" in the editor tab.
-     */
-    protected void setPartName() {
-
-        String partName = null;
-        TaxonName name = getTaxon().getName();
-
-        if (name != null) {
-            partName = name.getTitleCache();
-        }
-
-        if (partName == null || partName.equals("")) { //$NON-NLS-1$
-            partName = (Messages.MultiPageTaxonEditor_NEW_TAXON);
-        }
-
-        setPartName(partName);
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Editor pages call this in their postOperation to notify the
-     * MultiPageTaxonEditor of unsaved changes
-     */
-    @Override
-    public void changed(Object element) {
-        // setDirty(true);
-        // if the attribute is null then do not set the dirty flag -> hotfix for the problem that for tasks done in service methods the changes are saved automatically
-        if (element != null){
-            dirty = true;
-            super.editorDirtyStateChanged();
-        }
-
-        if (element instanceof TaxonBase) {
-            TaxonNameEditor page = (TaxonNameEditor) getPage(Page.NAME);
-            AbstractGroupedContainer container = page.getContainer((TaxonBase) element);
-            if (container != null) {
-                container.refresh();
-            }
-        }
-        if (element instanceof TaxonRelationship) {
-            TaxonNameEditor page = (TaxonNameEditor) getPage(Page.NAME);
-            AbstractGroupedContainer container = page.getContainer(((TaxonRelationship) element).getFromTaxon());
-            if (container != null) {
-                container.refresh();
-            }
-        }
-        //refresh part title
-        //TODO: refresh taxon node in taxon navigator
-        setPartName();
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.model.IDirtyMarkableSelectionProvider#forceDirty()
-     */
-    @Override
-    public void forceDirty() {
-        changed(null);
-    }
-
-    /**
-     * The accepted taxon that is the input for this editor
-     *
-     * @return the accepted taxon
-     */
-    @Override
-    public Taxon getTaxon() {
-        return input.getTaxon();
-    }
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder
-     * ()
-     */
-    /**
-     * <p>
-     * getConversationHolder
-     * </p>
-     *
-     * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-     *         object.
-     */
-    @Override
-    public ConversationHolder getConversationHolder() {
-        return conversation;
-    }
-
-    /**
-     * <p>
-     * setConversationHolder
-     * </p>
-     *
-     * @param conversation
-     *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-     *            object.
-     */
-    public void setConversationHolder(ConversationHolder conversation) {
-        this.conversation = conversation;
-    }
-
-    /**
-     * <p>
-     * Getter for the field <code>undoContext</code>.
-     * </p>
-     *
-     * @return a {@link org.eclipse.core.commands.operations.IUndoContext}
-     *         object.
-     */
-    public IUndoContext getUndoContext() {
-        return undoContext;
-    }
-
-    /**
-     * <p>
-     * Setter for the field <code>undoContext</code>.
-     * </p>
-     *
-     * @param undoContext
-     *            a {@link org.eclipse.core.commands.operations.IUndoContext}
-     *            object.
-     */
-    public void setUndoContext(IUndoContext undoContext) {
-        this.undoContext = undoContext;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setFocus() {
-        // logger.warn("Setting focus to editor");
-        // bind the conversation
-        getConversationHolder().bind();
-        input.bind();
-        // pass focus to the active editor page
-        getActiveEditor().setFocus();
-    }
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.cdm.persistence.hibernate.ICdmPostCrudObserver#update(eu
-     * .etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
-     */
-    /** {@inheritDoc} */
-    @Override
-    public void update(CdmDataChangeMap events) {
-        if (dataChangeBehavior == null) {
-            dataChangeBehavior = new MultiPageTaxonEditorDataChangeBehaviour(this);
-        }
-
-        DataChangeBridge.handleDataChange(events, dataChangeBehavior);
-    }
-
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.store.operations.IPostOperationEnabled#postOperation
-     * ()
-     */
-    /** {@inheritDoc} */
-    @Override
-    public boolean postOperation(CdmBase objectAffectedByOperation) {
-    		setDirty(true);
-
-        for (IEditorPart editor : this.getPages()) {
-            if (editor instanceof IPostOperationEnabled) {
-                ((IPostOperationEnabled) editor).postOperation(objectAffectedByOperation);
-            } else {
-                MessagingUtils.warn(getClass(), Messages.MultiPageTaxonEditor_POST_OP_NOT_ENABLED + editor);
-            }
-        }
-        MessagingUtils.warn(getClass(), Messages.MultiPageTaxonEditor_POST_OP_CALLED);
-
-        return false;
-    }
-
-    /**
-     * Returns an <code>IEditorPart</code> implementation by type
-     *
-     * @param page
-     *            the page type
-     * @return a {@link eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage}
-     *         object.
-     */
-    public IMultiPageTaxonEditorPage getPage(Page page) {
-        for (IEditorPart editor : this.getPages()) {
-            if (editor.getClass().equals(page.getClazz())) {
-                return (IMultiPageTaxonEditorPage) editor;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Return a list of <code>AbstractTaxonEditor</code>s registered with this
-     * <code>MultiPageTaxonEditor</code>.
-     *
-     * @return a {@link java.util.List} object.
-     */
-    public List<IMultiPageTaxonEditorPage> getPages() {
-        ArrayList<IMultiPageTaxonEditorPage> editors = new ArrayList<IMultiPageTaxonEditorPage>();
-        for (int i = 0; i < this.getPageCount(); i++) {
-
-            editors.add((IMultiPageTaxonEditorPage) this.getEditor(i));
-        }
-        return editors;
-    }
-
-    /**
-     * Refreshes a certain page of the MultipageTaxonEditor
-     *
-     * @param page
-     *            a {@link eu.etaxonomy.taxeditor.editor.Page} object.
-     * @return a boolean.
-     */
-    public boolean redraw(Page page) {
-        return redraw(page, true);
-    }
-
-    /**
-     * Refreshes a certain page of the MultipageTaxonEditor and sets focus to
-     * that page
-     *
-     * @param page
-     *            a {@link eu.etaxonomy.taxeditor.editor.Page} object.
-     * @param focus
-     *            a boolean.
-     * @return a boolean.
-     */
-    public boolean redraw(Page page, boolean focus) {
-        IMultiPageTaxonEditorPage editorPage = getPage(page);
-        return editorPage != null && editorPage.redraw(focus);
-    }
-
-    /**
-     * <p>
-     * onComplete
-     * </p>
-     *
-     * @return a boolean.
-     */
-    @Override
-    public boolean onComplete() {
-        return false;
-    }
-
-    /**
-     * Reloads the data for this
-     */
-    public void reload() {
-        if (isDirty()) {
-            MessagingUtils.warningDialog(Messages.MultiPageTaxonEditor_UNSAVED_DATA, getClass(), Messages.MultiPageTaxonEditor_UNSAVED_DATA_MESSAGE);
-        } else {
-            TaxonEditorInput input = (TaxonEditorInput) getEditorInput();
-
-            UUID uuid = input.getTaxonNode().getUuid();
-
-            conversation.clear();
-
-            try {
-                TaxonEditorInput newInput = TaxonEditorInput.NewInstance(uuid);
-                setInput(newInput);
-                for (IMultiPageTaxonEditorPage editorPart : getPages()) {
-                    editorPart.redraw();
-                }
-            } catch (Exception e) {
-                MessagingUtils.messageDialog(Messages.MultiPageTaxonEditor_REFRESH_ERROR, getClass(), Messages.MultiPageTaxonEditor_REFRESH_ERROR_MESSAGE, e);
-            }
-        }
-    }
-
-    @Override
-    public String toString() {
-        return String.format("%s[%s]", this.getClass().getSimpleName(), getEditorInput()); //$NON-NLS-1$
-    }
-
-    @Override
-    public boolean permissionsSatisfied() {
-        IEditorPart activeEditor = getActiveEditor();
-        if(activeEditor != null && ISecuredEditor.class.isAssignableFrom(activeEditor.getClass())){
-            return ((ISecuredEditor)activeEditor).permissionsSatisfied();
-        }
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.model.IPartContentHasMedia#canAttachMedia()
-     */
-    @Override
-    public boolean canAttachMedia() {
-        return true;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditorAdapterFactory.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditorAdapterFactory.java
deleted file mode 100644
index 1caeb1719..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditorAdapterFactory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * 
- */
-package eu.etaxonomy.taxeditor.editor;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-
-/**
- * TODO remove this class
- *
- * @author n.hoffmann
- * @version $Id: $
- */
-public class MultiPageTaxonEditorAdapterFactory implements IAdapterFactory {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
-	 */
-	/** {@inheritDoc} */
-	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		
-//		if((adaptableObject instanceof MultiPageTaxonEditor)  && adapterType.equals(DuplicateArbitrator.class)){
-//			return null;// new DuplicateArbitrator((MultiPageTaxonEditor) adaptableObject);
-//		}
-		
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
-	 */
-	/**
-	 * <p>getAdapterList</p>
-	 *
-	 * @return an array of {@link java.lang.Class} objects.
-	 */
-	public Class[] getAdapterList() {
-		return new Class[]{
-//				DuplicateArbitrator.class
-		};
-	}
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditorDataChangeBehaviour.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditorDataChangeBehaviour.java
deleted file mode 100644
index d14036d0c..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditorDataChangeBehaviour.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor;
-
-import java.util.Vector;
-
-import org.apache.log4j.Logger;
-
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.model.AbstractDataChangeBehaviour;
-import eu.etaxonomy.taxeditor.model.IDataChangeBehavior;
-
-/**
- * Implementation if {@link eu.etaxonomy.taxeditor.store.model.IDataChangeBehaviour}
- * for the {@link eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor}.
- *
- * TODO make this class a bean and thus configurable by Spring
- *
- * @author n.hoffmann
- * @created 01.04.2009
- * @version 1.0
- */
-public class MultiPageTaxonEditorDataChangeBehaviour extends AbstractDataChangeBehaviour implements
-		IDataChangeBehavior {
-	private static final Logger logger = Logger
-			.getLogger(MultiPageTaxonEditorDataChangeBehaviour.class);
-
-	private MultiPageTaxonEditor source;
-
-	private TaxonEditorInput input;
-	
-	/**
-	 * <p>Constructor for MultiPageTaxonEditorDataChangeBehaviour.</p>
-	 *
-	 * @param multiPageTaxonEditor a {@link eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor} object.
-	 */
-	public MultiPageTaxonEditorDataChangeBehaviour(
-			MultiPageTaxonEditor multiPageTaxonEditor) {
-		source = multiPageTaxonEditor;
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.store.model.IDataChangeBehavior#reactOnDataChange()
-	 */
-	/** {@inheritDoc} */
-	public void reactOnDataChange(CdmDataChangeMap changeEvents) {
-		input = (TaxonEditorInput) source.getEditorInput();
-		
-		// I don't know when this happens but ...
-		if(input.getTaxon() == null)
-			return;
-		
-		if(changeEvents.sizeByEventType(EventType.UPDATE) > 0){
-			reactOnUpdate(changeEvents.getEvents(EventType.UPDATE));
-		}
-		if(changeEvents.sizeByEventType(EventType.INSERT) > 0){
-			reactOnInsert(changeEvents.getEvents(EventType.INSERT));
-		}
-		if(changeEvents.sizeByEventType(EventType.DELETE) > 0){
-			reactOnDelete(changeEvents.getEvents(EventType.DELETE));
-		}
-	}
-	
-	
-	/** {@inheritDoc} */
-	//we do not really need this anymore as closing the editors is 
-	//now run before the delete operation in DeleteHandler
-	@Override
-	public void reactOnDelete(Vector<CdmDataChangeEvent> events){
-		for(CdmDataChangeEvent event : events){
-			// close open editors
-			if((event.getEntity() instanceof TaxonNode) 
-					&& input.getTaxonNode().equals(event.getEntity())){
-				//EditorUtil.close(source);
-				logger.debug("Closing open editor for deleted taxon."); //$NON-NLS-1$
-			}
-		}
-	}
-	
-	/** {@inheritDoc} */
-	@Override
-	public void reactOnUpdate(Vector<CdmDataChangeEvent> events){
-
-		for(CdmDataChangeEvent event : events){
-			
-			// update editor title
-			if(event.getEntity() instanceof TaxonName){
-				if(input.getTaxon().getName().equals(event.getEntity())){
-					// set the name of the editor window
-					source.setPartName();
-					logger.debug("Updating title of taxons editor."); //$NON-NLS-1$
-				}
-			}
-			// TODO other stuff to happen
-			
-		}
-	}
-	
-	/** {@inheritDoc} */
-	@Override
-	public void reactOnInsert(Vector<CdmDataChangeEvent> events){
-		boolean doRedraw = false;
-		for(CdmDataChangeEvent event : events){
-			// refresh on synonym changes
-			if(input.getTaxon().hasSynonyms() && event.getEntity() instanceof Synonym){
-				Synonym synonym = (Synonym) event.getEntity();
-				
-				if(synonym.isSynonymOf(input.getTaxon())){
-					doRedraw = true;
-					break;
-				}
-			}
-		}
-//		if(doRedraw)
-//			source.redraw(Page.NAME);
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/Page.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/Page.java
deleted file mode 100644
index ae645c436..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/Page.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor;
-
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-
-/**
- * <p>Page class.</p>
- *
- * @author n.hoffmann
- * @created 30.04.2009
- * @version 1.0
- */
-public enum Page {
-	NAME ("Name", TaxonNameEditor.class, 0); //$NON-NLS-1$
-	
-	private String title;
-	private Class<?> clazz;
-	private int index;
-	
-	Page(String title, Class<?> clazz, int index){
-		this.title = title;
-		this.clazz = clazz;
-		this.index = index;
-	}
-	
-	/**
-	 * <p>Getter for the field <code>title</code>.</p>
-	 *
-	 * @return a {@link java.lang.String} object.
-	 */
-	public String getTitle(){
-		return this.title;
-	}
-	
-	/**
-	 * <p>Getter for the field <code>clazz</code>.</p>
-	 *
-	 * @return a {@link java.lang.Class} object.
-	 */
-	public Class<?> getClazz(){
-		return this.clazz;
-	}
-	
-	/**
-	 * <p>Getter for the field <code>index</code>.</p>
-	 *
-	 * @return a int.
-	 */
-	public int getIndex(){
-		return this.index;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveAllHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveAllHandler.java
deleted file mode 100644
index fd9c52f53..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveAllHandler.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.ui.IEditorPart;
-
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-
-/**
- * <p>SaveAllHandler class.</p>
- *
- * @author n.hoffmann
- * @created 06.02.2009
- * @version 1.0
- */
-public class SaveAllHandler extends AbstractHandler implements IHandler {
-	private static final Logger logger = Logger.getLogger(SaveAllHandler.class);
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	/** {@inheritDoc} */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		logger.debug("Handler called: " + this.getClass().getCanonicalName()); //$NON-NLS-1$
-		
-		// TODO what is this for?
-		EditorUtil.setSaving(true);
-		
-		for (IEditorPart editor : EditorUtil.getOpenEditors()) {
-			if (editor.isDirty()) {
-				editor.doSave(EditorUtil.getMonitor());
-			}
-		}
-		
-		EditorUtil.setSaving(false);
-		// TODO: delete undoHistory
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveTaxonHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveTaxonHandler.java
deleted file mode 100644
index f35bf967e..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/handler/SaveTaxonHandler.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-
-/**
- * <p>SaveTaxonHandler class.</p>
- *
- * @author n.hoffmann
- * @created 23.03.2009
- * @version 1.0
- */
-public class SaveTaxonHandler extends AbstractHandler {
-	private static final Logger logger = Logger
-			.getLogger(SaveTaxonHandler.class);
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	/** {@inheritDoc} */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-
-		MultiPageTaxonEditor editor = EditorUtil.getActiveMultiPageTaxonEditor();
-		
-		return EditorUtil.getActivePage().saveEditor(editor, false);
-		
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/internal/TaxeditorEditorPlugin.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/internal/TaxeditorEditorPlugin.java
index 0eaba0acc..9836d8d6e 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/internal/TaxeditorEditorPlugin.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/internal/TaxeditorEditorPlugin.java
@@ -4,7 +4,6 @@ import org.apache.log4j.Logger;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
 
-import eu.etaxonomy.taxeditor.editor.EditorStateManager;
 import eu.etaxonomy.taxeditor.editor.UseObjectManager;
 import eu.etaxonomy.taxeditor.editor.validation.ValidationContextListener;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -19,14 +18,14 @@ public class TaxeditorEditorPlugin extends AbstractUIPlugin {
 
 	/** Constant <code>logger</code> */
 	public static final Logger logger = Logger.getLogger(TaxeditorEditorPlugin.class);
-	
+
 	// The plug-in ID
 	/** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.editor"</code> */
 	public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.editor"; //$NON-NLS-1$
 
 	// The shared instance
 	private static TaxeditorEditorPlugin plugin;
-	
+
 	/**
 	 * The constructor
 	 */
@@ -34,25 +33,24 @@ public class TaxeditorEditorPlugin extends AbstractUIPlugin {
 	}
 
 	/** {@inheritDoc} */
-	public void start(BundleContext context) throws Exception {
+	@Override
+    public void start(BundleContext context) throws Exception {
 		super.start(context);
-		
-		EditorStateManager stateManager = new EditorStateManager();
-		CdmStore.getContextManager().addContextListener(stateManager);
-		
-		UseObjectManager useManager = new UseObjectManager();  	 	 
+
+		UseObjectManager useManager = new UseObjectManager();
 		CdmStore.getContextManager().addContextListener(useManager);
-		
+
 		ValidationContextListener vcl = new ValidationContextListener();
 //		CdmStore.getContextManager().addContextListener(vcl);
-		
+
 		plugin = this;
 		logger.trace("Plugin started: " + this.getBundle().getSymbolicName()); //$NON-NLS-1$
 	}
 
 
 	/** {@inheritDoc} */
-	public void stop(BundleContext context) throws Exception {
+	@Override
+    public void stop(BundleContext context) throws Exception {
 		plugin = null;
 		super.stop(context);
 		logger.trace("Plugin stopped"); //$NON-NLS-1$
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
deleted file mode 100644
index da9d5fe98..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
+++ /dev/null
@@ -1,955 +0,0 @@
-/**
- * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy
- * http://www.e-taxonomy.eu
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * See LICENSE.TXT at the top of this package for the full license terms.
- */
-
-package eu.etaxonomy.taxeditor.editor.name;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.commons.lang.StringUtils;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.ManagedForm;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.eclipse.ui.part.EditorPart;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
-import eu.etaxonomy.taxeditor.editor.IDropTargetable;
-import eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage;
-import eu.etaxonomy.taxeditor.editor.ISecuredEditor;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.SimpleSelectionProvider;
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.container.AbstractGroup;
-import eu.etaxonomy.taxeditor.editor.name.container.AbstractGroupedContainer;
-import eu.etaxonomy.taxeditor.editor.name.container.AcceptedGroup;
-import eu.etaxonomy.taxeditor.editor.name.container.AcceptedNameContainer;
-import eu.etaxonomy.taxeditor.editor.name.container.ContainerFactory;
-import eu.etaxonomy.taxeditor.editor.name.container.HomotypicalSynonymGroup;
-import eu.etaxonomy.taxeditor.editor.name.container.MisappliedGroup;
-import eu.etaxonomy.taxeditor.editor.name.dnd.NameEditorDropTargetListener;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.IPartChangeListener;
-import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
-import eu.etaxonomy.taxeditor.model.TaxeditorPartService;
-import eu.etaxonomy.taxeditor.preference.Resources;
-import eu.etaxonomy.taxeditor.security.RequiredPermissions;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * <p>
- * TaxonNameEditor class.
- * </p>
- *
- * @author p.ciardelli
- * @author n.hoffmann
- * @created 15.05.2008
- * @version 1.0
- */
-public class TaxonNameEditor extends EditorPart implements
-		IMultiPageTaxonEditorPage, IConversationEnabled,
-		IPartContentHasDetails, IPartChangeListener,
-		ISelectionListener, IDropTargetable, ISecuredEditor {
-
-	/** Constant <code>ID="eu.etaxonomy.taxeditor.editor.taxon.name"</code> */
-	public static final String ID = "eu.etaxonomy.taxeditor.editor.taxon.name"; //$NON-NLS-1$
-
-	private Taxon taxon;
-
-	private ManagedForm managedForm;
-	private ScrolledForm scrolledForm;
-	private Composite parent;
-	private ISelectionProvider simpleSelectionProvider;
-
-	private final MultiPageTaxonEditor editor;
-
-	private TaxonBase selection;
-
-	private final ConversationHolder conversation;
-
-	private MenuManager menuManager;
-	private Menu menu;
-
-	private AcceptedGroup acceptedGroup;
-	private List<HomotypicalSynonymGroup> heterotypicSynonymGroups = new ArrayList<HomotypicalSynonymGroup>();
-	private MisappliedGroup misappliedGroup;
-
-	private DropTarget target;
-
-	private ISelectionService selectionService;
-
-	private TaxonBase objectAffectedByLastOperation;
-
-	private ICdmEntitySession cdmEntitySession;
-
-	/**
-	 * <p>
-	 * Constructor for TaxonNameEditor.
-	 * </p>
-	 *
-	 * @param editor
-	 *            a {@link eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor}
-	 *            object.
-	 */
-	public TaxonNameEditor(MultiPageTaxonEditor editor) {
-		this.editor = editor;
-		conversation = editor.getConversationHolder();
-	}
-
-	/**
-	 * <p>
-	 * getUndoContext
-	 * </p>
-	 *
-	 * @return a {@link org.eclipse.core.commands.operations.IUndoContext}
-	 *         object.
-	 */
-	public IUndoContext getUndoContext() {
-		return editor.getUndoContext();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see
-	 * org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets
-	 * .Composite)
-	 */
-	/** {@inheritDoc} */
-	@Override
-	public void createPartControl(Composite composite) {
-		selectionService = getSite().getWorkbenchWindow().getSelectionService();
-		selectionService.addSelectionListener(this);
-
-		createManagedForm(composite);
-
-		TaxeditorPartService.getInstance().addListener(
-				TaxeditorPartService.PART_ACTIVATED, this);
-	}
-
-	/**
-	 * <p>
-	 * createManagedForm
-	 * </p>
-	 *
-	 * @param composite
-	 *            a {@link org.eclipse.swt.widgets.Composite} object.
-	 */
-	protected void createManagedForm(Composite composite) {
-
-		managedForm = new ManagedForm(composite) {
-
-			@Override
-			public void dirtyStateChanged() {
-				firePropertyChange(PROP_DIRTY);
-			}
-
-			@Override
-			public boolean setInput(Object input) {
-				if (input instanceof AbstractGroupedContainer) {
-					selection = ((AbstractGroupedContainer) input).getData();
-					getSite().getSelectionProvider().setSelection(new StructuredSelection(selection));
-				}else if(input == null){
-					selection = null;
-					getSite().getSelectionProvider().setSelection(new StructuredSelection());
-				}
-
-
-				return super.setInput(input);
-			}
-		};
-
-		scrolledForm = managedForm.getForm();
-		parent = scrolledForm.getBody();
-
-		// register the context menu
-		menuManager = new MenuManager();
-		ISelectionProvider selectionProvider = getSite().getSelectionProvider();
-		getSite().registerContextMenu(TaxonNameEditor.ID, menuManager,
-				selectionProvider);
-		menuManager.setRemoveAllWhenShown(true);
-
-		parent.setData(taxon);
-
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.leftMargin = 0;
-		layout.rightMargin = 0;
-		layout.topMargin = 0;
-		layout.bottomMargin = 0;
-
-		layout.verticalSpacing = 0;
-		layout.horizontalSpacing = 0;
-
-		parent.setLayout(layout);
-		parent.setBackground(AbstractUtility
-				.getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
-
-		createOrUpdateNameComposites();
-
-		createDragSupport();
-
-		setFocus();
-	}
-
-	/**
-	 * <p>
-	 * createNameComposites
-	 * </p>
-	 */
-	public void createOrUpdateNameComposites() {
-//		this.taxon = (Taxon)CdmStore.getService(ITaxonService.class).load(this.getTaxon().getUuid());
-		ContainerFactory.createOrUpdateAcceptedTaxonsHomotypicGroup(this);
-		ContainerFactory.createOrUpdateHeterotypicSynonymyGroups(this);
-		ContainerFactory.createOrUpdateMisapplicationsGroup(this);
-
-
-		// Redraw composite
-		managedForm.reflow(true);
-	}
-
-	/**
-	 * <p>
-	 * Getter for the field <code>taxon</code>.
-	 * </p>
-	 *
-	 * @return a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-	 */
-	public Taxon getTaxon() {
-		return HibernateProxyHelper.deproxy(taxon);
-	}
-
-	/**
-	 * <p>
-	 * setDirty
-	 * </p>
-	 */
-	public void setDirty() {
-		managedForm.dirtyStateChanged();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	/** {@inheritDoc} */
-	@Override
-	public void setFocus() {
-	    PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setFocus();
-		if (getSelectedContainer() == null) {
-			throw new IllegalStateException(
-					Messages.TaxonNameEditor_THERE_SHOULD_ALWAYS_BE);
-		}
-		getSelectedContainer().setSelected();
-
-		// check permissions
-		boolean doEnable = permissionsSatisfied();
-		setEnabled(doEnable);
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.ISecuredEditorPart#permissionsSatisfied()
-	 */
-	@Override
-	public boolean permissionsSatisfied() {
-		TaxonNode taxonNode = ((TaxonEditorInput)getEditorInput()).getTaxonNode();
-		boolean doEnable = CdmStore.currentAuthentiationHasPermission(taxonNode, RequiredPermissions.TAXONNODE_EDIT);
-		return doEnable;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public void setInput(IEditorInput input) {
-		this.setInputWithNotify(input);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see
-	 * eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder
-	 * ()
-	 */
-	/**
-	 * <p>
-	 * getConversationHolder
-	 * </p>
-	 *
-	 * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
-	 *         object.
-	 */
-	@Override
-    public ConversationHolder getConversationHolder() {
-		return conversation;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see
-	 * eu.etaxonomy.cdm.persistence.hibernate.ICdmPostCrudObserver#update(eu
-	 * .etaxonomy.cdm.persistence.hibernate.CdmCrudEvent)
-	 */
-	/** {@inheritDoc} */
-	@Override
-    public void update(CdmDataChangeMap events) {
-		// redraw();
-	}
-
-	/**
-	 * Redraws this editor return true on success
-	 *
-	 * @return a boolean.
-	 */
-	@Override
-    public boolean redraw() {
-		return redraw(true);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 *
-	 * Redraws the editor controls
-	 */
-	@Override
-    public boolean redraw(boolean focus) {
-
-		createOrUpdateNameComposites();
-
-		if (focus) {
-			setFocus();
-		}
-
-		return true;
-	}
-
-	/**
-	 * <p>
-	 * getMultiPageTaxonEditor
-	 * </p>
-	 *
-	 * @return a {@link eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor}
-	 *         object.
-	 */
-	public MultiPageTaxonEditor getMultiPageTaxonEditor() {
-		return editor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see
-	 * eu.etaxonomy.taxeditor.store.operations.IPostOperationEnabled#postOperation
-	 * ()
-	 */
-	/** {@inheritDoc} */
-	@Override
-    public boolean postOperation(CdmBase objectAffectedByOperation) {
-
-		editor.changed(objectAffectedByOperation);
-
-		redraw(false);
-
-		if (objectAffectedByOperation instanceof TaxonBase) {
-			objectAffectedByLastOperation = (TaxonBase) objectAffectedByOperation;
-		}
-
-		return true;
-	}
-
-	/**
-	 * <p>
-	 * Getter for the field <code>managedForm</code>.
-	 * </p>
-	 *
-	 * @return the managedForm
-	 */
-	public ManagedForm getManagedForm() {
-		return managedForm;
-	}
-
-	/**
-	 * <p>
-	 * getControl
-	 * </p>
-	 *
-	 * @return a {@link org.eclipse.swt.widgets.Composite} object.
-	 */
-	@Override
-    public Composite getControl() {
-		return this.getManagedForm().getForm().getBody();
-	}
-
-	/**
-	 * <p>
-	 * Getter for the field <code>menu</code>.
-	 * </p>
-	 *
-	 * @return the menu
-	 */
-	public Menu getMenu() {
-		if (menu == null || menu.isDisposed()) {
-			// Creating the menu because it was either not initialised or
-			// disposed while refreshing the editor
-			menu = menuManager.createContextMenu(parent);
-		}
-		return menu;
-	}
-
-	/**
-	 * <p>
-	 * checkForEmptyNames
-	 * </p>
-	 *
-	 * @return true if there are empty names
-	 */
-	public boolean checkForEmptyNames() {
-		for (AbstractGroupedContainer container : getGroupedContainers()) {
-			if (container.getName() == null
-					|| StringUtils.isEmpty(container.getName().getTitleCache())) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public Set<AbstractGroupedContainer> getEmptyContainers() {
-		Set<AbstractGroupedContainer> containersWithEmptyNames = new HashSet<AbstractGroupedContainer>();
-
-		for (AbstractGroupedContainer container : getGroupedContainers()) {
-			if (container.getName() == null
-					|| StringUtils.isEmpty(container.getName().getTitleCache())) {
-				containersWithEmptyNames.add(container);
-			}
-		}
-
-		return containersWithEmptyNames;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public void doSave(IProgressMonitor monitor) {
-
-		monitor.beginTask(Messages.TaxonNameEditor_SAVING_NAMES, getGroupedContainers().size());
-
-		try {
-			// check for empty names
-			for (AbstractGroupedContainer container : getGroupedContainers()) {
-
-				monitor.subTask(Messages.TaxonNameEditor_SAVING_COMPOSITES
-						+ container.getTaxonBase().getTitleCache());
-				container.persistName();
-
-				// In case the progress monitor was canceled throw an exception.
-				if (monitor.isCanceled()) {
-					throw new OperationCanceledException();
-				}
-
-				// Otherwise declare this step as done.
-				monitor.worked(1);
-			}
-		} finally {
-
-			// Stop the progress monitor.
-			monitor.done();
-		}
-
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public void doSaveAs() {
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-
-		if (!(input != null)) {
-            throw new PartInitException(Messages.TaxonNameEditor_INVALID_INPUT);
-        }
-
-		if (input.getAdapter(Taxon.class) != null) {
-			taxon = CdmBase.deproxy(input.getAdapter(Taxon.class), Taxon.class);
-		} else {
-			throw new PartInitException(Messages.TaxonNameEditor_INVALID_INPUT_TAXON_NULL);
-		}
-
-		setSite(site);
-		setInput(input);
-
-		simpleSelectionProvider = new SimpleSelectionProvider();
-		getSite().setSelectionProvider(simpleSelectionProvider);
-	}
-
-
-	/**
-	 *
-	 */
-	private void createDragSupport() {
-		// Listen for names being dragged outside of existing homotypic groups -
-		// user wants to create a new group
-		Transfer[] types = new Transfer[] { CdmDataTransfer.getInstance() };
-		int operations = DND.DROP_MOVE;
-		if (target == null) {
-			target = new DropTarget(parent, operations);
-			target.setTransfer(types);
-			target.addDropListener(new NameEditorDropTargetListener(this));
-		}
-	}
-
-	/**
-	 * <p>
-	 * Getter for the field <code>acceptedNameContainer</code>.
-	 * </p>
-	 *
-	 * @return a
-	 *         {@link eu.etaxonomy.taxeditor.editor.name.container.AcceptedNameContainer}
-	 *         object.
-	 */
-	public AcceptedNameContainer getAcceptedNameContainer() {
-		return getAcceptedGroup().getAcceptedNameContainer();
-	}
-
-	/**
-	 * <p>
-	 * getSynonymGroup
-	 * </p>
-	 *
-	 * @param homotypicalGroup
-	 *            a {@link eu.etaxonomy.cdm.model.name.HomotypicalGroup} object.
-	 * @return a
-	 *         {@link eu.etaxonomy.taxeditor.editor.name.container.HomotypicalSynonymGroup}
-	 *         object.
-	 */
-	public HomotypicalSynonymGroup getHomotypicalGroupContainer(
-			HomotypicalGroup homotypicalGroup) {
-		for (HomotypicalSynonymGroup group : getHeterotypicSynonymGroups()) {
-			if (group.getGroup().equals(homotypicalGroup)) {
-				return group;
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * <p>
-	 * getDirtyNames
-	 * </p>
-	 *
-	 * @return a Set containing all composites that have been edited
-	 */
-	public Set<AbstractGroupedContainer> getDirtyNames() {
-		Set<AbstractGroupedContainer> dirtyNames = new HashSet<AbstractGroupedContainer>();
-
-		for (AbstractGroupedContainer composite : getGroupedContainers()) {
-			if (composite.isDirty()) {
-				dirtyNames.add(composite);
-			}
-		}
-
-		return dirtyNames;
-	}
-
-	/**
-	 * <p>
-	 * getGroupedContainers
-	 * </p>
-	 *
-	 * @return a {@link java.util.List} object.
-	 */
-	public List<AbstractGroupedContainer> getGroupedContainers() {
-		List<AbstractGroupedContainer> groupedComposites = new ArrayList<AbstractGroupedContainer>();
-
-		for (AbstractGroup group : getAllGroups()) {
-			groupedComposites.addAll(group.getGroupedContainers());
-		}
-
-		return groupedComposites;
-	}
-
-	/**
-	 * <p>
-	 * getAllGroups
-	 * </p>
-	 *
-	 * @return a {@link java.util.List} object.
-	 */
-	public List<AbstractGroup> getAllGroups() {
-		List<AbstractGroup> allGroups = new ArrayList<AbstractGroup>();
-
-		allGroups.add(getAcceptedGroup());
-
-//		List<HomotypicalSynonymGroup> grps = getHeterotypicSynonymGroups(); // UNUSED => remove
-
-		heterotypicSynonymGroups = getHeterotypicSynonymGroups();
-
-		if (heterotypicSynonymGroups != null) {
-			allGroups.addAll(heterotypicSynonymGroups);
-		}
-
-		if (misappliedGroup != null) {
-			allGroups.add(misappliedGroup);
-		}
-
-		return allGroups;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.ui.part.EditorPart#isDirty()
-	 */
-	/** {@inheritDoc} */
-	@Override
-	public boolean isDirty() {
-		return editor.isDirty();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.ui.part.WorkbenchPart#dispose()
-	 */
-	/** {@inheritDoc} */
-	@Override
-	public void dispose() {
-		conversation.unregisterForDataStoreChanges(this);
-		super.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
-	 */
-	/** {@inheritDoc} */
-	@Override
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.
-	 * IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	 */
-	/** {@inheritDoc} */
-	@Override
-    public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-
-	}
-
-	/**
-	 * <p>
-	 * getNameEditor
-	 * </p>
-	 *
-	 * @return a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor}
-	 *         object.
-	 */
-	@Override
-    public TaxonNameEditor getEditor() {
-		return this;
-	}
-
-	/**
-	 * <p>
-	 * Getter for the field <code>selectedObject</code>.
-	 * </p>
-	 *
-	 * @return a
-	 *         {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroupedContainer}
-	 *         object.
-	 */
-	public AbstractGroupedContainer getSelectedContainer() {
-
-		TaxonBase selectedTaxonBase = null;
-
-		TaxonEditorInput input = (TaxonEditorInput) editor.getEditorInput();
-		if (input.getInitiallySelectedTaxonBase() != null) {
-			selectedTaxonBase = input.getInitiallySelectedTaxonBase();
-		} else {
-			if (selection != null) {
-				selectedTaxonBase = selection;
-			}
-		}
-
-		return (selectedTaxonBase != null) ? getContainer(selectedTaxonBase)
-				: getAcceptedNameContainer();
-	}
-
-	/**
-	 * <p>
-	 * dragEntered
-	 * </p>
-	 */
-	@Override
-    public void dragEntered() {
-		// TODO change this
-		getControl().setBackground(
-				AbstractUtility.getColor(Resources.COLOR_DRAG_ENTER));
-	}
-
-	/**
-	 * <p>
-	 * dragLeft
-	 * </p>
-	 */
-	@Override
-    public void dragLeft() {
-		getControl().setBackground(
-				AbstractUtility.getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
-	}
-
-
-	/**
-	 * <p>
-	 * setMisapplicationsGroup
-	 * </p>
-	 *
-	 * @param misappliedGroup
-	 *            a
-	 *            {@link eu.etaxonomy.taxeditor.editor.name.container.MisappliedGroup}
-	 *            object.
-	 */
-	public void setMisapplicationsGroup(MisappliedGroup misappliedGroup) {
-		this.misappliedGroup = misappliedGroup;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see
-	 * eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage#isRedrawing()
-	 */
-	/**
-	 * <p>
-	 * isRedrawing
-	 * </p>
-	 *
-	 * @return a boolean.
-	 */
-	@Override
-    public boolean isRedrawing() {
-		return false;
-	}
-
-	/**
-	 * <p>
-	 * getToolkit
-	 * </p>
-	 *
-	 * @return a {@link org.eclipse.ui.forms.widgets.FormToolkit} object.
-	 */
-	public FormToolkit getToolkit() {
-		return managedForm.getToolkit();
-	}
-
-	/**
-	 * <p>
-	 * getHeterotypicSynonymGroups
-	 * </p>
-	 *
-	 * @return a {@link java.util.List} object.
-	 */
-	public List<HomotypicalSynonymGroup> getHeterotypicSynonymGroups() {
-		return heterotypicSynonymGroups;
-	}
-
-	/**
-	 * <p>
-	 * addHeterotypicSynonymGroup
-	 * </p>
-	 *
-	 * @param group
-	 *            a
-	 *            {@link eu.etaxonomy.taxeditor.editor.name.container.HomotypicalSynonymGroup}
-	 *            object.
-	 */
-	public void addHeterotypicSynonymGroup(HomotypicalSynonymGroup group) {
-		heterotypicSynonymGroups.add(group);
-	}
-
-	/**
-	 * <p>
-	 * getHomotypicSynonymGroup
-	 * </p>
-	 *
-	 * @return a
-	 *         {@link eu.etaxonomy.taxeditor.editor.name.container.HomotypicalSynonymGroup}
-	 *         object.
-	 */
-	public AcceptedGroup getAcceptedGroup() {
-		return acceptedGroup;
-	}
-
-	/**
-	 *
-	 * @param acceptedGroup
-	 */
-	public void setAcceptedGroup(AcceptedGroup acceptedGroup) {
-		this.acceptedGroup = acceptedGroup;
-	}
-
-	/**
-	 * <p>
-	 * Getter for the field <code>misappliedGroup</code>.
-	 * </p>
-	 *
-	 * @return a
-	 *         {@link eu.etaxonomy.taxeditor.editor.name.container.MisappliedGroup}
-	 *         object.
-	 */
-	public MisappliedGroup getMisappliedGroup() {
-		return misappliedGroup;
-	}
-
-	// TODO not very useful at the moment
-	/**
-	 * <p>
-	 * isActive
-	 * </p>
-	 *
-	 * @return a boolean.
-	 */
-	public boolean isActive() {
-		return editor.equals(AbstractUtility.getActiveE4Part());
-	}
-
-	/**
-	 * <p>
-	 * onComplete
-	 * </p>
-	 *
-	 * @return a boolean.
-	 */
-	@Override
-    public boolean onComplete() {
-		getContainer(objectAffectedByLastOperation).setSelected();
-		return true;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-    public void partChanged(Integer eventType, IWorkbenchPartReference partRef) {
-		if (!partRef.getPart(false).equals(editor)) {
-			// getSelectedObject().colorSelected(AbstractGroupedContainer.SELECTED_NO_FOCUS);
-		}
-	}
-
-	/**
-	 * @param retainedGroup
-	 */
-	public void removeGroup(AbstractGroup group) {
-		if (group != null) {
-			group.dispose();
-
-			//if (heterotypicSynonymGroups != null) {
-			heterotypicSynonymGroups.remove(group);
-			//}
-		}
-	}
-
-	/**
-	 * @param element
-	 * @return
-	 */
-	public AbstractGroupedContainer getContainer(TaxonBase taxonBase) {
-		List<AbstractGroupedContainer> groupedContainers = getGroupedContainers();
-		for (AbstractGroupedContainer container : groupedContainers) {
-			if (container.getData().equals(taxonBase)
-					&& container.getNameViewer().getTextWidget() != null) {
-				return container;
-			}
-		}
-		return getAcceptedNameContainer();
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage#setOnError()
-	 */
-	@Override
-    public void setOnError() {
-		Color disabledColor =  AbstractUtility.getColor(Resources.COLOR_EDITOR_ERROR);
-		setEnabled(false, disabledColor);
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.IMultiPageTaxonEditorPage#setDisabled()
-	 */
-	@Override
-	public void setDisabled(){
-		Color disabledColor =  AbstractUtility.getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND);
-		setEnabled(false);
-	}
-
-	protected void setEnabled(boolean enabled, Color background) {
-
-		for(AbstractGroupedContainer groupedContainer : getGroupedContainers()){
-			groupedContainer.setEnabled(enabled);
-		}
-
-		// send an empty selection to the current provider - TODO only on error ???
-		if (!enabled) {
-			getManagedForm().setInput(null);
-
-			for (AbstractGroupedContainer groupedContainer : getGroupedContainers()) {
-				groupedContainer.setBackground(background);
-			}
-		}
-		getControl().setBackground(background);
-	}
-
-	@Override
-	public void setEnabled(boolean enabled) {
-		Color background =  AbstractUtility.getColor(enabled ? Resources.COLOR_COMPOSITE_BACKGROUND : Resources.COLOR_TEXT_DISABLED_BACKGROUND);
-		setEnabled(enabled, background);
-	}
-
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractGroup.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractGroup.java
deleted file mode 100644
index 75fe68431..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractGroup.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.container;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.IDropTargetable;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.dnd.NameEditorDropTargetEffect;
-import eu.etaxonomy.taxeditor.editor.name.dnd.NameEditorDropTargetListener;
-import eu.etaxonomy.taxeditor.preference.Resources;
-
-/**
- * <p>Abstract AbstractGroup class.</p>
- *
- * @author p.ciardelli
- * @author n.hoffmann
- * @created 25.06.2008
- * @version 1.0
- */
-public abstract class AbstractGroup implements IDropTargetable{
-
-	private Composite control;
-
-	private final List<AbstractGroupedContainer> groupedContainers = new ArrayList<AbstractGroupedContainer>();
-
-	protected TaxonNameEditor editor;
-
-	private DropTarget target;
-	private DropTargetListener dropListener;
-
-	/**
-	 * <p>Constructor for AbstractGroup.</p>
-	 *
-	 * @param editor a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
-	 * @param <T> a T object.
-	 */
-	public AbstractGroup(TaxonNameEditor editor){
-		this.editor = editor;
-	}
-
-	protected void createContent(){
-		createControl();
-
-		createContainers();
-
-		// Drop functionality
-		this.setDroppable(true);
-
-		editor.getManagedForm().reflow(true);
-	}
-
-	/**
-	 * <p>createControl</p>
-	 */
-	protected void createControl() {
-		control = editor.getToolkit().createComposite(editor.getControl());
-
-		control.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		TableWrapLayout layout = new TableWrapLayout();
-
-		layout.topMargin = 0;
-		layout.rightMargin = 0;
-		layout.bottomMargin = 1;
-		layout.leftMargin = 0;
-
-		layout.verticalSpacing = 0;
-		layout.horizontalSpacing = 0;
-		control.setLayout(layout);
-
-		control.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_GRAY));
-	}
-
-	/**
-	 * <p>add</p>
-	 *
-	 * @param groupedContainer a {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroupedContainer} object.
-	 */
-	public void add(AbstractGroupedContainer groupedContainer){
-		groupedContainers.add(groupedContainer);
-		groupedContainer.setGroup(this);
-	}
-
-	/**
-	 * <p>remove</p>
-	 *
-	 * @param groupedContainer a {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroupedContainer} object.
-	 */
-	public void remove(AbstractGroupedContainer groupedContainer){
-		groupedContainer.dispose();
-		groupedContainers.remove(groupedContainer);
-
-		if(!(this instanceof AcceptedGroup) && groupedContainers.isEmpty()){
-			getEditor().removeGroup(this);
-		}
-	}
-
-	/**
-	 * <p>Getter for the field <code>groupedContainers</code>.</p>
-	 *
-	 * @return a {@link java.util.List} object.
-	 */
-	public List<AbstractGroupedContainer> getGroupedContainers(){
-		return groupedContainers;
-	}
-
-
-	/**
-	 * <p>setDroppable</p>
-	 *
-	 * @param droppable a boolean.
-	 */
-	public void setDroppable(boolean droppable) {
-		if (droppable) {
-			Transfer[] types = new Transfer[] {CdmDataTransfer.getInstance()};
-			int operations = DND.DROP_MOVE;
-			target = new DropTarget(control, operations);
-			target.setTransfer(types);
-			dropListener = new NameEditorDropTargetListener(this);
-			target.addDropListener(dropListener);
-
-			target.setDropTargetEffect(new NameEditorDropTargetEffect(control));
-
-		} else {
-			if (dropListener != null) {
-				target.removeDropListener(dropListener);
-			}
-		}
-	}
-
-	/**
-	 * <p>getNameEditor</p>
-	 *
-	 * @return a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
-	 */
-	@Override
-    public TaxonNameEditor getEditor() {
-		return editor;
-	}
-
-	/**
-	 * <p>dragEntered</p>
-	 */
-	@Override
-    public void dragEntered() {
-		Color color = EditorUtil.getColor(Resources.COLOR_DRAG_ENTER);
-
-		for(AbstractGroupedContainer container : groupedContainers){
-			container.setBackground(color);
-		}
-	}
-
-	/**
-	 * <p>dragLeft</p>
-	 */
-	@Override
-    public void dragLeft() {
-		for(AbstractGroupedContainer container : groupedContainers){
-			container.restoreColor();
-		}
-	}
-
-	/** {@inheritDoc} */
-	@Override
-    public boolean postOperation(CdmBase objectAffectedByOperation) {
-		editor.getMultiPageTaxonEditor().changed(objectAffectedByOperation);
-		redraw();
-		return true;
-	}
-
-	/**
-	 * <p>redraw</p>
-	 */
-	public void redraw(){
-		emptyGroup();
-		createContainers();
-	}
-
-	protected abstract void createContainers();
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.IDropTargetable#getControl()
-	 */
-	@Override
-	public Composite getControl() {
-		return control;
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.operation.IPostOperationEnabled#onComplete()
-	 */
-	@Override
-	public boolean onComplete() {
-		return true;
-	}
-
-	public void dispose(){
-		if(getControl() != null){
-			for(AbstractGroupedContainer container : getGroupedContainers()){
-				container.dispose();
-			}
-			getControl().setMenu(null);
-			getControl().dispose();
-		}
-	}
-
-	/**
-	 * @param object
-	 */
-	public void setMenu(Menu menu) {
-		getControl().setMenu(menu);
-		for(AbstractGroupedContainer container : getGroupedContainers()){
-			container.setMenu(menu);
-		}
-
-	}
-
-	protected void emptyGroup(){
-		for(AbstractGroupedContainer container : groupedContainers){
-			container.dispose();
-		}
-		groupedContainers.clear();
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractGroupedContainer.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractGroupedContainer.java
deleted file mode 100755
index 843ab21d6..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractGroupedContainer.java
+++ /dev/null
@@ -1,1297 +0,0 @@
-/**
- * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy
- * http://www.e-taxonomy.eu
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * See LICENSE.TXT at the top of this package for the full license terms.
- */
-
-package eu.etaxonomy.taxeditor.editor.name.container;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.commons.lang.StringUtils;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.window.DefaultToolTip;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.forms.IFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-import eu.etaxonomy.cdm.common.CdmUtils;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.name.INonViralName;
-import eu.etaxonomy.cdm.model.name.NameRelationship;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
-import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.container.EditorAnnotation.EditorAnnotationType;
-import eu.etaxonomy.taxeditor.editor.name.dnd.NameEditorDragListener;
-import eu.etaxonomy.taxeditor.editor.name.dnd.NameEditorDragSourceEffect;
-import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation;
-import eu.etaxonomy.taxeditor.labels.ILabelImageStrategy;
-import eu.etaxonomy.taxeditor.labels.LabelImageProvider;
-import eu.etaxonomy.taxeditor.model.IElementHasDetails;
-import eu.etaxonomy.taxeditor.model.NameHelper;
-import eu.etaxonomy.taxeditor.model.TextHelper;
-import eu.etaxonomy.taxeditor.parser.ParseHandler;
-import eu.etaxonomy.taxeditor.preference.Resources;
-
-/**
- * Formats <code>GroupedComposite</code> with cosmetic and layout properties
- * specific to the Editor. This should be used to maintain a consistent look and
- * feel for all Editor freetext area components, such as
- * DescriptionElementComposite.
- * <p>
- * Requires an <code>IManagedForm</code>, whose <code>input</code> is set to the
- * contents of {@link #getData()} when the <code>GroupedComposite</code> gets
- * focus, i.e. to populate the property sheet with the data.
- * </p>
- * <p>
- * The <code>IManagedForm</code> is also required to have a <code>Taxon</code>
- * in its own <code>getData()</code>.
- * </p>
- * <p>
- * The <code>IManagedForm</code> can also used for drawing borders by calling
- * the method <code>createBorderSupport()</code>.
- * </p>
- *
- * @author p.ciardelli
- * @author n.hoffmann
- * @created 02.06.2008
- */
-abstract public class AbstractGroupedContainer<T extends TaxonBase> implements
-		IFormPart, IContainerConstants, IElementHasDetails {
-
-	protected ParseHandler parseHandler;
-
-	private FocusListener nameCompositeFocusListener;
-	private ModifyListener nameCompositeModifyListener;
-
-	protected NameViewer nameViewer;
-
-	private AbstractGroup group;
-
-	private Label nonEditableInfoLabel;
-	private DefaultToolTip nonEditableInfoHover;
-
-	private static AbstractGroupedContainer selection;
-
-	private FocusListener focusListener;
-	private LineBreakListener lineBreakListener;
-
-	private int cursorPosition;
-
-	protected Composite control;
-
-	private Color backgroundColor;
-	private boolean isDirty;
-
-	/**
-	 * <p>
-	 * Constructor for AbstractGroupedContainer.
-	 * </p>
-	 *
-	 * @param editor
-	 *            a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor}
-	 *            object.
-	 * @param group
-	 *            a
-	 *            {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroup}
-	 *            object.
-	 * @param taxonBase
-	 *            a T object.
-	 * @param <T>
-	 *            a T object.
-	 */
-	public AbstractGroupedContainer(T taxonBase) {
-		setData(taxonBase);
-		parseHandler = ParseHandler.NewInstance(taxonBase.getName());
-	}
-
-	public void createContent() {
-		createControl();
-
-		createTextViewer();
-		createLineWrapSupport();
-		createLineBreakListener();
-
-		setMenu(getEditor().getMenu());
-
-		setDraggableControl(new Control[] { getControl(),
-				getNameViewer().getRulerControl() });
-
-		createEmptyViewerPrompt(EMPTY_NAME_PROMPT);
-
-		initializeComposite();
-
-		createListener();
-
-		enableFreeText();
-	}
-
-	/**
-	 * <p>
-	 * createListener
-	 * </p>
-	 */
-	protected void createListener() {
-		nameCompositeModifyListener = new ModifyListener() {
-
-			@Override
-            public void modifyText(ModifyEvent e) {
-				// mark the composite dirty
-				setDirty(true);
-				// parse the text
-				String text = nameViewer.getTextWidget().getText();
-
-				TaxonName name = (TaxonName)parseHandler.parse(text);
-				getTaxonBase().setName(name);
-				getTaxonBase().setTitleCache((getTaxonBase().generateTitle()));
-
-				// show errors resulting from parsing
-				calculateAnnotations();
-				// store the position of the cursor
-				storeCursor();
-				// notify selection listener
-				setDelayedSelection();
-			}
-		};
-		nameCompositeFocusListener = new FocusAdapter() {
-
-			/*
-			 * (non-Javadoc)
-			 *
-			 * @see
-			 * org.eclipse.swt.events.FocusAdapter#focusLost(org.eclipse.swt
-			 * .events.FocusEvent)
-			 */
-			@Override
-			public void focusLost(FocusEvent e) {
-				super.focusLost(e);
-
-				persistName();
-			}
-		};
-
-		addListener();
-	}
-
-	protected void addListener() {
-		getNameViewer().getTextWidget().addModifyListener(
-				nameCompositeModifyListener);
-		getNameViewer().getTextWidget().addFocusListener(
-				nameCompositeFocusListener);
-	}
-
-	protected void removeListener() {
-		getNameViewer().getTextWidget().removeModifyListener(
-				nameCompositeModifyListener);
-		getNameViewer().getTextWidget().removeFocusListener(
-				nameCompositeFocusListener);
-	}
-
-	/**
-	 * Initialize the composite specific code
-	 */
-	protected abstract void initializeComposite();
-
-	/**
-	 * <p>
-	 * getEmptyTextPrompt
-	 * </p>
-	 *
-	 * @return a {@link java.lang.String} object.
-	 */
-	protected String getEmptyTextPrompt() {
-		return EMPTY_NAME_PROMPT;
-	}
-
-	/**
-	 *
-	 */
-	private void showNameRelations() {
-		TaxonName name = getName();
-		if (name == null) {
-			return;
-		}
-
-		ILabelImageStrategy strategy = LabelImageProvider
-				.getLabelStrategy(name);
-		LabelImageProvider labelProvider = new LabelImageProvider(strategy);
-
-		Set<NameRelationship> nameRelations = name.getNameRelations();
-		if (nameRelations.size() == 0) {
-			return;
-		}
-		// for (NameRelationship nameRelation : nameRelations) {
-		// String typeLabel = null;
-		// TaxonName relatedName = null;
-		//
-		// if (name.equals(nameRelation.getFromName())) {
-		// typeLabel = labelProvider.getNameRelationTypeLabel(
-		// nameRelation.getType());
-		// relatedName = nameRelation.getToName();
-		// } else {
-		// typeLabel = labelProvider.getNameRelationTypeInverseLabel(
-		// nameRelation.getType());
-		// relatedName = nameRelation.getFromName();
-		// }
-		//
-		// setNonEditableInfo(typeLabel + " " +
-		// NameHelper.getDisplayName(relatedName));
-		// }
-	}
-
-	/**
-	 * <p>
-	 * initTextViewer
-	 * </p>
-	 */
-	protected void initTextViewer() {
-
-		// showNameRelations();
-
-		updateIndent();
-
-		updateIcon();
-
-		String text = NameHelper.getDisplayNameWithRef(getData());
-
-		if (text.length() == 0) {
-			initEmptyText();
-		} else {
-			getNameViewer().setText(text);
-			placeCursor();
-		}
-		calculateAnnotations();
-	}
-
-	/**
-	 * <p>
-	 * calculateErrors
-	 * </p>
-	 */
-	synchronized protected void calculateAnnotations() {
-		getNameViewer().clearAnnotations();
-		showAnnotations();
-	}
-
-	/**
-	 *
-	 */
-	public void showAnnotations() {
-
-		if (getName() != null && getName().hasProblem()) {
-			showParsingProblems();
-		}
-
-		if (!isNameParsable()) {
-			getNameViewer()
-					.addAnnotation(
-							new EditorAnnotation(EditorAnnotationType.WARNING,
-									0,
-									Messages.AbstractGroupedContainer_EDIT_IN_DETAILS_VIEW));
-		}
-
-		if (isNameUsedMultipleTimes()) {
-			getNameViewer().addAnnotation(
-					new EditorAnnotation(EditorAnnotationType.WARNING, 0,
-							Messages.AbstractGroupedContainer_MULTIPLE_USE));
-		}
-
-	}
-
-	/**
-	 *
-	 */
-	private void showParsingProblems() {
-		String text = getNameViewer().getTextWidget().getText();
-
-		TaxonName name = getName();
-		if (name == null){
-			return;
-		}
-
-		List<ParserProblem> parsingProblems = name.getParsingProblems();
-
-		for (ParserProblem problem : parsingProblems) {
-			getNameViewer().addAnnotation(new EditorAnnotation(problem),
-					getParsingProblemPosition());
-		}
-	}
-
-	private Position getParsingProblemPosition() {
-		String text = getNameViewer().getTextWidget().getText();
-
-		if (getName() != null && getName().hasProblem() && text.length() > 0) {
-			int start = getName().getProblemStarts();
-			int length = getName().getProblemEnds() - start;
-
-			if (start == -1 || getName().getProblemEnds() == -1) {
-				return null;
-			}
-
-			// Don't let squigglies try to draw beyond the end of the text
-			if (text.length() < start + length) {
-				length = text.length() - start;
-			}
-			if (length<0){
-				return null;
-			}
-			return new Position(start, length);
-		}
-		return null;
-	}
-
-	/**
-	 * <p>
-	 * handleSplitText
-	 * </p>
-	 *
-	 * @param text
-	 *            a {@link java.lang.String} object.
-	 */
-	protected void handleSplitText(String text) {
-		// Create a synonym in a new homotypic group using text as name
-		TaxonName synonymName = TaxonName.castAndDeproxy(
-				ParseHandler.parseReferencedName(text, null));
-
-		EditorUtil.executeOperation(new CreateSynonymInNewGroupOperation(
-				Messages.AbstractGroupedContainer_NEW_HETERO_SYNONYM, getEditor().getUndoContext(),
-				getEditor().getTaxon(), synonymName, getEditor()));
-	}
-
-	/**
-	 * Refreshes the display with latest data from the model.
-	 *
-	 * Note: Will not parse the text and not calculate errors!
-	 */
-	@Override
-    public void refresh() {
-		// showNameRelations();
-
-		String text = NameHelper.getDisplayNameWithRef(getTaxonBase());
-
-		if (getNameViewer().getTextWidget() == null) {
-			// we might get here via dnd. Look slike it can be ignored
-			return;
-		}
-
-		if (text.length() == 0) {
-			initEmptyText();
-		} else if (!getNameViewer().getTextWidget().getText().equals(text)) {
-			removeListener();
-			getNameViewer().getTextWidget().setText(text);
-			addListener();
-		}
-
-		updateNonEditableInfo();
-
-		updateIcon();
-		// placeCursor();
-		updateIndent();
-
-		enableFreeText();
-	}
-
-	/**
-	 *
-	 */
-	protected abstract void updateIcon();
-
-	protected abstract void updateIndent();
-
-	/**
-	 * <p>
-	 * updateNonEditableInfo
-	 * </p>
-	 */
-	protected abstract void updateNonEditableInfo();
-
-	/**
-	 *
-	 */
-	protected void enableFreeText() {
-		setEnabled(isFreetextEditingAllowed());
-	}
-
-	/**
-	 * Checks whether the freetext should be editable based on specific empty
-	 * fields.
-	 *
-	 * @return
-	 */
-	private boolean isFreetextEditingAllowed() {
-		boolean enableFreetext = true;
-
-		enableFreetext |= isNameUsedMultipleTimes();
-		enableFreetext &= isNameParsable();
-
-		return enableFreetext;
-	}
-
-	/**
-	 * Checks whether there are more than one, non-orphaned taxon bases
-	 * attached to the taxon name
-	 *
-	 * @return
-	 */
-	private boolean isNameUsedMultipleTimes() {
-
-		TaxonName name = getName();
-		if (name != null){
-			Set<TaxonBase> taxonBases = name.getTaxonBases();
-			Iterator<TaxonBase> tbItr = taxonBases.iterator();
-			int nonOrphanedTaxonBaseCount = taxonBases.size();
-	
-			while(tbItr.hasNext()) {
-				TaxonBase<?> tb = tbItr.next();
-				if(tb.isOrphaned()) {
-					nonOrphanedTaxonBaseCount--;
-				}
-			}
-			if(nonOrphanedTaxonBaseCount > 1) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	private boolean isNameParsable() {
-		TaxonName name = getName();
-		if (name == null){
-			return false;
-		}
-
-		boolean isParsable = true;
-		isParsable &= StringUtils.isBlank(name.getAppendedPhrase()); // taxonFieldsEmpty();
-
-		isParsable &= !name.isProtectedAuthorshipCache();
-		isParsable &= !name.isProtectedNameCache();
-
-		return isParsable;
-	}
-
-	/**
-	 * Parse the text and calculate errors
-	 */
-	public void parseAndCalculateAnnotations() {
-		removeListener();
-		String unparsedNameString = getNameViewer().getTextWidget().getText();
-		parseHandler.parse(unparsedNameString);
-		addListener();
-		calculateAnnotations();
-	}
-
-	/**
-	 * <p>
-	 * getTaxonBase
-	 * </p>
-	 *
-	 * @return the taxonBase
-	 */
-	public T getTaxonBase() {
-		return getData();
-	}
-
-	/**
-	 * <p>
-	 * getName
-	 * </p>
-	 *
-	 * @return a {@link eu.etaxonomy.cdm.model.name.TaxonNameBase} object.
-	 */
-	public TaxonName getName() {
-		return CdmBase.deproxy(getTaxonBase().getName());
-	}
-
-	/**
-	 * <p>
-	 * persistName
-	 * </p>
-	 */
-	public void persistName() {
-		if (isDirty()) {
-			getNameViewer().getTextWidget().setEnabled(false);
-			final String unparsedNameString = getNameViewer().getTextWidget()
-					.getText();
-			// Job job = new Job("Persisting Name"){
-			//
-			// @Override
-			// protected IStatus run(IProgressMonitor monitor) {
-			//
-			final TaxonName name = (TaxonName)parseHandler
-					.parseAndResolveDuplicates(unparsedNameString);
-			//
-			// Display.getDefault().asyncExec(new Runnable(){
-			// public void run() {
-			getTaxonBase().setName(name);
-			getTaxonBase().setTitleCache((getTaxonBase().generateTitle()));
-			setDirty(false);
-			getNameViewer().getTextWidget().setEnabled(true);
-			// };
-			// });
-			//
-			//
-			// return Status.OK_STATUS;
-			// }
-			//
-			// };
-			//
-			// job.setPriority(Job.DECORATE);
-			// job.schedule();
-		}
-	}
-
-	/**
-	 * <p>
-	 * Getter for the field <code>group</code>.
-	 * </p>
-	 *
-	 * @return a
-	 *         {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroup}
-	 *         object.
-	 */
-	public AbstractGroup getGroup() {
-		if (group == null) {
-			throw new IllegalStateException("Group shall not be null."); //$NON-NLS-1$
-		}
-		return group;
-	}
-
-	/**
-	 * <p>
-	 * remove
-	 * </p>
-	 */
-	public void remove() {
-		getGroup().remove(this);
-	}
-
-	/**
-	 * <p>
-	 * createControl
-	 * </p>
-	 */
-	protected void createControl() {
-		control = getEditor().getToolkit().createComposite(
-				getGroup().getControl());
-
-		control.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.leftMargin = 0;
-		layout.rightMargin = 0;
-		layout.topMargin = 5;
-		layout.bottomMargin = 5;
-
-		layout.verticalSpacing = 0;
-		layout.horizontalSpacing = 0;
-
-		control.setLayout(layout);
-
-	}
-
-	/**
-	 * @return
-	 */
-	protected TaxonNameEditor getEditor() {
-		return getGroup().getEditor();
-	}
-
-	/**
-	 * <p>
-	 * Getter for the field <code>control</code>.
-	 * </p>
-	 *
-	 * @return a {@link org.eclipse.swt.widgets.Composite} object.
-	 */
-	public Composite getControl() {
-		return control;
-	}
-
-	/**
-	 * <p>
-	 * createLineWrapSupport
-	 * </p>
-	 */
-	protected void createLineWrapSupport() {
-		new LineWrapSupport(getNameViewer(), getEditor().getManagedForm());
-	}
-
-	/**
-	 * <p>
-	 * createTextViewer
-	 * </p>
-	 */
-	protected void createTextViewer() {
-		nameViewer = new NameViewer(control);
-
-		focusListener = new FocusAdapter() {
-			@Override
-			public void focusGained(FocusEvent e) {
-				if(!enabled){
-					return;
-				}
-				for (AbstractGroupedContainer container : getEditor()
-						.getGroupedContainers()) {
-					container.colorSelected(NOT_SELECTED);
-				}
-				getEditor().getManagedForm().setInput(
-						AbstractGroupedContainer.this);
-				placeCursor();
-				colorSelected(SELECTED_FOCUS);
-			}
-		};
-		nameViewer.getTextWidget().addFocusListener(focusListener);
-
-		//
-		MouseAdapter mouseListener = new MouseAdapter() {
-			@Override
-			public void mouseDown(MouseEvent e) {
-				storeCursor();
-			}
-		};
-		control.addMouseListener(mouseListener);
-		nameViewer.getRulerControl().addMouseListener(mouseListener);
-		nameViewer.getTextWidget().addMouseListener(mouseListener);
-	}
-
-	/**
-	 * <p>
-	 * setIcon
-	 * </p>
-	 *
-	 * @param icon
-	 *            a {@link org.eclipse.swt.graphics.Image} object.
-	 */
-	public void setIcon(Image icon) {
-		getNameViewer().setIcon(icon);
-	}
-
-	/**
-	 * <p>
-	 * setIndent
-	 * </p>
-	 *
-	 * @param indent
-	 *            a int.
-	 */
-	public void setIndent(int indent) {
-		if (control.getLayout() instanceof TableWrapLayout) {
-			TableWrapLayout layout = ((TableWrapLayout) control.getLayout());
-			layout.leftMargin = indent;
-			layout.rightMargin = ACCEPTED_INDENT;
-			control.setLayout(layout);
-			control.layout();
-		} else {
-			new RuntimeException(
-					"Couldn't indent - composite's layout must be TableWrapLayout."); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * <p>
-	 * setSelected
-	 * </p>
-	 */
-	public void setSelected() {
-		getNameViewer().getTextWidget().setFocus();
-	}
-
-	/**
-	 * <p>
-	 * isSelected
-	 * </p>
-	 *
-	 * @return a boolean.
-	 */
-	public boolean isSelected() {
-		return getEditor().getSelectedContainer() == this;
-	}
-
-	/**
-	 * <p>
-	 * colorSelected
-	 * </p>
-	 *
-	 * @param mode
-	 *            a int.
-	 */
-	public void colorSelected(int mode) {
-		if (!control.isDisposed()) {
-			String colorString = null;
-
-			switch (mode) {
-			case SELECTED_FOCUS:
-				colorString = Resources.COLOR_CONTROL_SELECTED_FOCUS;
-				break;
-			case SELECTED_NO_FOCUS:
-				colorString = Resources.COLOR_CONTROL_SELECTED;
-				break;
-			default:
-				colorString = Resources.COLOR_COMPOSITE_BACKGROUND;
-			}
-
-			backgroundColor = EditorUtil.getColor(colorString);
-
-			setBackground(backgroundColor);
-		}
-	}
-
-	/**
-	 * <p>
-	 * setDelayedSelection
-	 * </p>
-	 */
-	protected void setDelayedSelection() {
-		// TODO this might be done better
-		// this is the quickest solution i could come up with and it improves
-		// performance
-		// please reimplement if you know better.
-		selection = this;
-
-		// start timer
-		Display display = Display.getCurrent();
-		Runnable runnable = new Runnable() {
-
-			@Override
-            public void run() {
-				getEditor().getManagedForm().setInput(selection);
-			}
-		};
-		display.timerExec(1000, runnable);
-
-	}
-
-	/**
-	 * <p>
-	 * setBackground
-	 * </p>
-	 *
-	 * @param color
-	 *            a {@link org.eclipse.swt.graphics.Color} object.
-	 */
-	public void setBackground(Color color) {
-		control.setBackground(color);
-
-		for (Control child : control.getChildren()) {
-			child.setBackground(color);
-		}
-
-		getNameViewer().setBackground(color);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see
-	 * org.eclipse.swt.widgets.Control#setFont(org.eclipse.swt.graphics.Font)
-	 */
-	/**
-	 * <p>
-	 * setFont
-	 * </p>
-	 *
-	 * @param font
-	 *            a {@link org.eclipse.swt.graphics.Font} object.
-	 */
-	public void setFont(Font font) {
-		getNameViewer().getTextWidget().setFont(font);
-	}
-
-	/**
-	 * <p>
-	 * Getter for the field <code>nameViewer</code>.
-	 * </p>
-	 *
-	 * @return a {@link eu.etaxonomy.taxeditor.editor.name.container.NameViewer}
-	 *         object.
-	 */
-	public NameViewer getNameViewer() {
-		if (nameViewer == null) {
-			throw new RuntimeException(
-					"The Name Viewer is corrupt for Name Container: " //$NON-NLS-1$
-							+ getTaxonBase().getName().getTitleCache());
-		}
-		return nameViewer;
-	}
-
-	/**
-	 * If <code>textViewer</code> has already been set, it will show a
-	 * <code>prompt</code> along the lines of
-	 * "Click here to start entering data" when empty.
-	 *
-	 * @param prompt
-	 *            a {@link java.lang.String} object.
-	 */
-	public void createEmptyViewerPrompt(final String prompt) {
-
-		Assert.isNotNull(getNameViewer());
-
-		final StyledText textControl = getNameViewer().getTextWidget();
-		final IDocument document = getNameViewer().getDocument();
-
-		setFocusListener(new FocusListener() {
-
-			@Override
-            public void focusGained(FocusEvent e) {
-				if (document.get().equals(prompt)) {
-					textControl.setFont(getViewerFont());
-					document.set(""); //$NON-NLS-1$
-				}
-			}
-
-			@Override
-            public void focusLost(FocusEvent e) {
-				if (document.getLength() == 0) {
-					initEmptyText();
-				}
-			}
-
-		});
-		textControl.addFocusListener(getFocusListener());
-
-		if (document.getLength() == 0) {
-			textControl.setFont(EditorUtil
-					.getFont(Resources.FONT_DEFAULT_PROMPT));
-			document.set(prompt);
-		}
-	}
-
-	/**
-	 * <p>
-	 * getViewerFont
-	 * </p>
-	 *
-	 * @return a {@link org.eclipse.swt.graphics.Font} object.
-	 */
-	abstract protected Font getViewerFont();
-
-	/**
-	 * <p>
-	 * initEmptyText
-	 * </p>
-	 */
-	protected void initEmptyText() {
-		Font defaultFont = EditorUtil.getFont(Resources.FONT_DEFAULT_PROMPT);
-		getNameViewer().getTextWidget().setFont(defaultFont);
-
-		getNameViewer().getDocument().set(getEmptyTextPrompt());
-		placeCursor();
-	}
-
-	/**
-	 * <p>
-	 * Setter for the field <code>focusListener</code>.
-	 * </p>
-	 *
-	 * @param focusListener
-	 *            a {@link org.eclipse.swt.events.FocusListener} object.
-	 */
-	protected void setFocusListener(FocusListener focusListener) {
-		this.focusListener = focusListener;
-	}
-
-	private FocusListener getFocusListener() {
-		return focusListener;
-	}
-
-	/**
-	 * <p>
-	 * setDirty
-	 * </p>
-	 *
-	 * @param isDirty
-	 *            a boolean.
-	 */
-	public void setDirty(boolean isDirty) {
-		if (isDirty) {
-			getEditor().getManagedForm().dirtyStateChanged();
-		}
-		this.isDirty = isDirty;
-	}
-
-	/**
-	 * <p>
-	 * isDirty
-	 * </p>
-	 *
-	 * @return a boolean.
-	 */
-	@Override
-    public boolean isDirty() {
-		return isDirty;
-	}
-
-	/**
-	 * <p>
-	 * setMenu
-	 * </p>
-	 *
-	 * @param menu
-	 *            a {@link org.eclipse.swt.widgets.Menu} object.
-	 */
-	public void setMenu(Menu menu) {
-		control.setMenu(menu);
-
-		getNameViewer().setMenu(menu);
-	}
-
-	private Control[] draggableControls;
-
-	/**
-	 * <p>
-	 * setDraggableControl
-	 * </p>
-	 *
-	 * @param controls
-	 *            an array of {@link org.eclipse.swt.widgets.Control} objects.
-	 */
-	protected void setDraggableControl(Control[] controls) {
-		draggableControls = controls;
-	}
-
-	/**
-	 * <p>
-	 * setIsDraggable
-	 * </p>
-	 *
-	 * @param draggable
-	 *            a boolean.
-	 */
-	public void setIsDraggable(boolean draggable) {
-
-		if (draggable) {
-
-			if (draggableControls == null) {
-				throw new NullPointerException(
-						"Draggable controls must be set to add draggability"); //$NON-NLS-1$
-			}
-
-			Transfer[] types = new Transfer[] { CdmDataTransfer.getInstance() };
-			int operations = DND.DROP_MOVE;
-
-			for (Control draggableControl : draggableControls) {
-				DragSource dragSource = new DragSource(draggableControl,
-						operations);
-				dragSource.setTransfer(types);
-
-				dragSource.addDragListener(new NameEditorDragListener(this));
-				dragSource.setDragSourceEffect(new NameEditorDragSourceEffect(
-						control));
-			}
-		}
-	}
-
-	private String nonEditableText;
-
-	ControlListener nonEditableResizeListener = new ControlAdapter() {
-
-		int width = 0;
-
-		@Override
-		public void controlResized(ControlEvent e) {
-			if (nonEditableInfoLabel.getBounds().width == width) {
-				return;
-			}
-			width = nonEditableInfoLabel.getBounds().width;
-			if (nonEditableInfoLabel.getBounds().width > 0) {
-				nonEditableInfoLabel.setText(Dialog.shortenText(
-						nonEditableText.toUpperCase(), nonEditableInfoLabel));
-			}
-		}
-	};
-
-	private String nonEditableHoverText;
-
-	private LabelEllipsisListener nonEditableLabelEllipsisListener;
-
-	private T data;
-
-	private boolean enabled;
-
-	/**
-	 * nonEditableInfo is a label displayed underneath a GroupedComposite's
-	 * input field. For instance, NameComposites display things like name
-	 * relations, sec. references, etc. here.
-	 *
-	 * @param info
-	 *            the text to display in the label
-	 * @param append
-	 *            whether the string should be appended to text that is already
-	 *            shown in the label
-	 */
-	public void setNonEditableInfo(String info, boolean append) {
-		// TODO non editable info should only be drawn once, when everything
-		// else is drawn
-		info = info.toUpperCase();
-
-		if (append) {
-			nonEditableText += ", " + info; //$NON-NLS-1$
-			nonEditableHoverText += "\n" + info; //$NON-NLS-1$
-		} else {
-			nonEditableText = info;
-			nonEditableHoverText = info;
-		}
-
-		if (nonEditableInfoLabel == null) {
-			nonEditableInfoLabel = getEditor().getToolkit().createLabel(
-					control, ""); //$NON-NLS-1$
-			TableWrapData layoutData = new TableWrapData(
-					TableWrapData.FILL_GRAB, TableWrapData.TOP);
-			// Set indent to viewer ruler's width
-			if (getNameViewer().getRulerControl() != null) {
-				// TODO right justify
-				layoutData.indent = NameViewer.RULER_WIDTH;
-			}
-			nonEditableInfoLabel.setLayoutData(layoutData);
-
-			nonEditableLabelEllipsisListener = new LabelEllipsisListener(
-					nonEditableInfoLabel) {
-				@Override
-				public String getLabelText() {
-					return nonEditableText.toUpperCase();
-				}
-			};
-			nonEditableInfoLabel
-					.addControlListener(nonEditableLabelEllipsisListener);
-
-			nonEditableInfoHover = new DefaultToolTip(nonEditableInfoLabel);
-			nonEditableInfoHover.setRespectDisplayBounds(true);
-
-		}
-		nonEditableInfoHover.setText(nonEditableHoverText);
-		nonEditableInfoLabel.setText(nonEditableText);
-
-		calculateAnnotations();
-	}
-
-	/**
-	 * <p>
-	 * Getter for the field <code>data</code>.
-	 * </p>
-	 *
-	 * @return a T object.
-	 */
-	@Override
-    public T getData() {
-		return data;
-	}
-
-	/**
-	 * <p>
-	 * Setter for the field <code>data</code>.
-	 * </p>
-	 *
-	 * @param data
-	 *            a T object.
-	 */
-	public void setData(T data) {
-		this.data = HibernateProxyHelper.deproxy(data);
-	}
-
-	/**
-	 * If the user hitting carriage return should cause something to happen -
-	 * i.e. the creation of a new composite - call this method and override the
-	 * method handleSplitText().
-	 */
-	protected void createLineBreakListener() {
-		lineBreakListener = new LineBreakListener() {
-			@Override
-			public void handleSplitText(String text) {
-				AbstractGroupedContainer.this.handleSplitText(text);
-			}
-
-		};
-
-		getNameViewer().getTextWidget().addVerifyListener(lineBreakListener);
-
-	}
-
-	abstract class LabelEllipsisListener extends ControlAdapter {
-
-		private final Label label;
-		int width = 0;
-
-		LabelEllipsisListener(Label label) {
-			this.label = label;
-		}
-
-		abstract public String getLabelText();
-
-		@Override
-		public void controlResized(ControlEvent e) {
-			if (label.getBounds().width == width) {
-				return;
-			}
-			width = label.getBounds().width;
-			if (label.getBounds().width > 0) {
-				label.setText(TextHelper.shortenText(getLabelText(), label));
-			}
-		}
-	}
-
-	/**
-	 * <p>
-	 * storeCursor
-	 * </p>
-	 */
-	public void storeCursor() {
-		this.cursorPosition = getNameViewer().getCursorPosition();
-	}
-
-	/**
-	 * Puts the cursor to the position it was last seen on or to the end of line
-	 * if no former position is known.
-	 */
-	public void placeCursor() {
-		if (cursorPosition == 0) {
-			getNameViewer().setCursorToEOL();
-		} else {
-			getNameViewer().setCursorPosition(cursorPosition);
-		}
-	}
-
-	/**
-	 * <p>
-	 * Setter for the field <code>group</code>.
-	 * </p>
-	 *
-	 * @param group
-	 *            a
-	 *            {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroup}
-	 *            object.
-	 */
-	public void setGroup(AbstractGroup group) {
-		this.group = group;
-	}
-
-	/**
-	 * <p>
-	 * restoreColor
-	 * </p>
-	 */
-	public void restoreColor() {
-		setBackground(backgroundColor);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see
-	 * org.eclipse.ui.forms.IFormPart#initialize(org.eclipse.ui.forms.IManagedForm
-	 * )
-	 */
-	@Override
-	public void initialize(IManagedForm form) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.ui.forms.IFormPart#dispose()
-	 */
-	@Override
-	public void dispose() {
-		if (getControl() != null) {
-			setMenu(null);
-			getControl().dispose();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.ui.forms.IFormPart#commit(boolean)
-	 */
-	@Override
-	public void commit(boolean onSave) {
-		if (isDirty()) {
-			persistName();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.ui.forms.IFormPart#setFormInput(java.lang.Object)
-	 */
-	@Override
-	public boolean setFormInput(Object input) {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.ui.forms.IFormPart#setFocus()
-	 */
-	@Override
-	public void setFocus() {
-		getNameViewer().getControl().setFocus();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.ui.forms.IFormPart#isStale()
-	 */
-	@Override
-	public boolean isStale() {
-		return false;
-	}
-
-	public void setDisabled(boolean disabled) {
-		this.enabled = !disabled;
-		setEnabled(enabled);
-	}
-
-	public void setEnabled(boolean enabled) {
-		this.enabled = enabled;
-		Color color = enabled ? control.getForeground() : EditorUtil.getColor(Resources.COLOR_DISABLED_EDITOR);
-
-		getNameViewer().getTextWidget().setEditable(enabled);
-		getNameViewer().getTextWidget().setEnabled(enabled);
-		getNameViewer().getTextWidget().setForeground(color);
-	}
-
-	public boolean isEnabled(){
-		return enabled;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractHomotypicalGroupContainer.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractHomotypicalGroupContainer.java
deleted file mode 100644
index dc6d5fa37..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AbstractHomotypicalGroupContainer.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.container;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-
-/**
- * @author n.hoffmann
- * @created Jan 21, 2011
- * @version 1.0
- */
-public abstract class AbstractHomotypicalGroupContainer extends AbstractGroup {
-
-	private HomotypicalGroup group;
-	
-	/**
-	 * @param editor
-	 */
-	public AbstractHomotypicalGroupContainer(TaxonNameEditor editor, HomotypicalGroup group) {
-		super(editor);
-		this.group = group;
-
-		createContent();
-	}
-
-	protected abstract void createSynonymContainer();
-	
-	protected List<Synonym> getSynonyms(){
-		Taxon taxon = getEditor().getTaxon();
-		return taxon.getSynonymsInGroup(getGroup());
-	}
-	
-	/**
-	 * @param group the group to set
-	 */
-	public void setGroup(HomotypicalGroup group) {
-		this.group = group;
-	}
-
-	public void redraw(HomotypicalGroup homotypicalGroup){
-		if(redrawNeeded(homotypicalGroup)){
-			setGroup(homotypicalGroup);
-			redraw();
-		}
-	}
-
-	/**
-	 * 
-	 * @param homotypicalGroup
-	 * @return
-	 */
-	protected boolean redrawNeeded(HomotypicalGroup homotypicalGroup) {
-		Taxon taxon = getEditor().getTaxon();
-		homotypicalGroup = HibernateProxyHelper.deproxy(homotypicalGroup, HomotypicalGroup.class);
-		List<Synonym> synonyms = taxon.getSynonymsInGroup(homotypicalGroup);
-		
-		List<Synonym> presentSynonyms = new ArrayList<Synonym>();
-		
-		for(AbstractGroupedContainer container : getGroupedContainers()){
-			if(container.getData() instanceof Synonym){
-				presentSynonyms.add((Synonym) container.getData());
-			}
-		}
-				
-		boolean result = ! (presentSynonyms.containsAll(synonyms) && synonyms.containsAll(presentSynonyms));
-		
-		return result;
-	}
-	
-	/**
-	 * @return the group
-	 */
-	public HomotypicalGroup getGroup() {
-		return group;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AcceptedGroup.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AcceptedGroup.java
deleted file mode 100644
index c968b3b18..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AcceptedGroup.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.container;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.graphics.Color;
-
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.preference.Resources;
-
-/**
- * @author n.hoffmann
- * @created Jan 20, 2011
- * @version 1.0
- */
-public class AcceptedGroup extends AbstractHomotypicalGroupContainer {
-
-	private AcceptedNameContainer acceptedContainer;
-
-	/**
-	 * @param editor
-	 * @param group
-	 */
-	public AcceptedGroup(TaxonNameEditor editor, HomotypicalGroup group) {
-		super(editor, group);
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.AbstractGroup#dragEntered()
-	 */
-	@Override
-	public void dragEntered() {
-		Color color = EditorUtil.getColor(Resources.COLOR_DRAG_ENTER);
-		acceptedContainer.setBackground(color);
-		super.dragEntered();
-	}
-	
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.AbstractGroup#dragLeft()
-	 */
-	@Override
-	public void dragLeft() {
-		acceptedContainer.restoreColor();
-		super.dragLeft();
-	}
-	
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.container.AbstractGroup#getGroupedContainers()
-	 */
-	@Override
-	public List<AbstractGroupedContainer> getGroupedContainers() {
-		List<AbstractGroupedContainer> containers = new ArrayList<AbstractGroupedContainer>();
-		containers.add(getAcceptedNameContainer());
-		containers.addAll(super.getGroupedContainers());
-		return containers;
-	}
-	
-	/**
-	 * 
-	 */
-	protected void createContainers() {
-		this.acceptedContainer = new AcceptedNameContainer(getEditor().getTaxon());
-		acceptedContainer.setGroup(this);
-		
-		acceptedContainer.createContent();
-		
-		createSynonymContainer();
-	}
-	
-	protected void createSynonymContainer(){
-		for(Synonym synonym : getSynonyms()){
-			SynonymContainer container = new SynonymContainer(this, synonym);
-			this.add(container);
-			container.createContent();
-		}
-	}
-
-	/**
-	 * @param acceptedNameContainer
-	 */
-	public void setAcceptedNameContainer(AcceptedNameContainer acceptedNameContainer) {
-		this.acceptedContainer = acceptedNameContainer;
-		acceptedContainer.setGroup(this);
-	}
-	
-	public AcceptedNameContainer getAcceptedNameContainer(){
-		return acceptedContainer;
-	}
-	
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.AbstractGroup#emptyGroup()
-	 */
-	@Override
-	protected void emptyGroup() {
-		acceptedContainer.dispose();
-		acceptedContainer = null;
-		super.emptyGroup();
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.AbstractHomotypicalGroupContainer#redrawNeeded(eu.etaxonomy.cdm.model.name.HomotypicalGroup)
-	 */
-	@Override
-	protected boolean redrawNeeded(HomotypicalGroup homotypicalGroup) {
-		if(! acceptedContainer.getData().equals(getEditor().getTaxon())){
-			return true;
-		}
-		return super.redrawNeeded(homotypicalGroup);
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AcceptedNameContainer.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AcceptedNameContainer.java
deleted file mode 100644
index 4771ca313..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/AcceptedNameContainer.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.editor.name.container;
-
-import org.eclipse.swt.graphics.Font;
-
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.preference.Resources;
-
-/**
- * <p>AcceptedNameContainer class.</p>
- *
- * @author p.ciardelli
- * @created 13.01.2009
- * @version 1.0
- */
-public class AcceptedNameContainer extends AbstractGroupedContainer<Taxon> {
-	
-	private AcceptedGroup acceptedGroup;
-
-
-	/**
-	 * <p>Constructor for AcceptedNameContainer.</p>
-	 *
-	 * @param editor a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
-	 * @param group a {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroup} object.
-	 */
-	public AcceptedNameContainer(Taxon taxon) {
-		super(taxon);
-	}
-
-
-	/**
-	 * <p>initializeComposite</p>
-	 */
-	public void initializeComposite(){
-		setFont(getViewerFont());
-		
-		initTextViewer();
-	}
-	
-	/** {@inheritDoc} */
-	@Override
-	protected Font getViewerFont() {
-		return EditorUtil.getFont(Resources.ACCEPTED_TAXON_FONT);
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.AbstractGroupedContainer#setGroup(eu.etaxonomy.taxeditor.editor.name.AbstractGroup)
-	 */
-	public void setGroup(AcceptedGroup group) {
-		this.acceptedGroup = group;
-	}
-	
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.AbstractGroupedContainer#getGroup()
-	 */
-	@Override
-	public AbstractGroup getGroup() {
-		return acceptedGroup;
-	}
-	
-	/** {@inheritDoc} */
-	@Override
-	protected void updateNonEditableInfo() {
-		// not needed
-	}
-	
-
-	@Override
-	protected void updateIcon() {
-		setIcon(ACCEPTED_ICON);		
-	}
-
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.AbstractGroupedContainer#updateIndent()
-	 */
-	@Override
-	protected void updateIndent() {
-		setIndent(ACCEPTED_INDENT);
-	}
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/ConceptContainer.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/ConceptContainer.java
deleted file mode 100644
index e1fccf3e7..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/ConceptContainer.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.container;
-
-import org.eclipse.swt.graphics.Font;
-
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.preference.Resources;
-
-/**
- * <p>ConceptContainer class.</p>
- *
- * @author p.ciardelli
- * @created 26.01.2009
- * @version 1.0
- */
-public class ConceptContainer extends AbstractGroupedContainer<Taxon> {
-	
-	private final TaxonRelationshipType relationshipType;
-	
-		
-	private ConceptContainer(TaxonNameEditor editor, AbstractGroup group,
-			Taxon relatedTaxon, TaxonRelationshipType relationshipType, 
-			boolean acceptedTaxonIsFromTaxon) {
-		super(relatedTaxon);
-
-		// FIXME the acceptedTaxonIsFromTaxon is never used and 
-		// I can't remember what is was used for in the first place
-		
-		this.relationshipType = relationshipType;
-		showRelationshipType();
-	}
-	
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.NameComposite#initializeComposite()
-	 */
-	/** {@inheritDoc} */
-	@Override
-	protected void initializeComposite() {
-		
-		setIsDraggable(true);
-		setFont(getViewerFont());
-		
-		showSec();
-				
-		initTextViewer();
-	}
-	
-	@Override
-	protected void updateIcon() {
-		setIcon(CONCEPT_ICON);
-	}
-	
-	private void showRelationshipType() {
-		setNonEditableInfo(relationshipType.getLabel(), true);
-	}
-
-	private void showSec() {
-		if (getTaxonBase() == null) {
-			return;
-		}
-		
-		if (getTaxonBase().getSec() == null) {
-			setNonEditableInfo("sec. ???", false); //$NON-NLS-1$
-		} else {
-			setNonEditableInfo("sec. " + getTaxonBase().getSec().getTitleCache(), false); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * <p>getNewInstance</p>
-	 *
-	 * @param editor a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
-	 * @param group a {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroup} object.
-	 * @param relationship a {@link eu.etaxonomy.cdm.model.taxon.TaxonRelationship} object.
-	 * @return a {@link eu.etaxonomy.taxeditor.editor.name.container.ConceptContainer} object.
-	 */
-	public static ConceptContainer getNewInstance(TaxonNameEditor editor, AbstractGroup group, TaxonRelationship relationship){
-
-		TaxonRelationshipType relationshipType = relationship.getType();
-		
-		if (relationship.getToTaxon().equals(editor.getTaxon())) {
-			return new ConceptContainer (editor, group, 
-					relationship.getFromTaxon(), relationshipType, false);
-		} else {
-			return new ConceptContainer (editor, group, 
-					relationship.getToTaxon(), relationshipType, true);
-		} 
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.GroupedComposite#getViewerFont()
-	 */
-	/** {@inheritDoc} */
-	@Override
-	protected Font getViewerFont() {
-		return EditorUtil.getFont(Resources.CONCEPT_FONT);
-	}
-
-	/**
-	 * <p>getRelatedTaxon</p>
-	 *
-	 * @return a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-	 */
-	public Taxon getRelatedTaxon() {
-		return getTaxonBase();
-	}
-	
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.container.AbstractGroupedContainer#showAnnotations()
-	 */
-	@Override
-	public void showAnnotations() {
-		if(getData().getSec() == null){
-			getNameViewer().addAnnotation(
-					new EditorAnnotation(0, Messages.ConceptContainer_SEC_REQUIRED));
-		}
-		super.showAnnotations();
-	}
-	
-	/** {@inheritDoc} */
-	@Override
-	protected void updateNonEditableInfo() {
-		showSec();
-		showRelationshipType();
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.AbstractGroupedContainer#updateIndent()
-	 */
-	@Override
-	protected void updateIndent() {
-		setIndent(CONCEPT_INDENT);
-	}
-}
-
-
-
-
-
-
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/ConceptGroup.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/ConceptGroup.java
deleted file mode 100644
index dab86a426..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/ConceptGroup.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.container;
-
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-
-/**
- * <p>ConceptGroup class.</p>
- *
- * @author p.ciardelli
- * @created 21.01.2009
- * @version 1.0
- */
-public class ConceptGroup extends AbstractGroup {
-
-	/**
-	 * <p>Constructor for ConceptGroup.</p>
-	 *
-	 * @param editor a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
-	 */
-	public ConceptGroup(TaxonNameEditor editor) {
-		super(editor);
-	}
-	
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.AbstractGroup#createContents()
-	 */
-	@Override
-	protected void createContainers() {
-		// TODO Auto-generated method stub
-		
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/ContainerFactory.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/ContainerFactory.java
deleted file mode 100644
index 66c0f5147..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/ContainerFactory.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
- * 
- */
-package eu.etaxonomy.taxeditor.editor.name.container;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-
-/**
- * <p>ContainerFactory class.</p>
- *
- * @author n.hoffmann
- * @version $Id: $
- */
-public class ContainerFactory {
-		
-	/**
-	 * @param taxonNameEditor
-	 */
-	public static void createOrUpdateAcceptedTaxonsHomotypicGroup(
-			TaxonNameEditor taxonNameEditor) {
-
-		if(taxonNameEditor.getAcceptedGroup() == null){
-			taxonNameEditor.setAcceptedGroup(new AcceptedGroup(taxonNameEditor, taxonNameEditor.getTaxon().getHomotypicGroup()));
-		}
-		else{
-			taxonNameEditor.getAcceptedGroup().redraw(taxonNameEditor.getTaxon().getHomotypicGroup());
-		}
-		
-	}
-
-	/**
-	 * @param taxonNameEditor
-	 */
-	public static void createOrUpdateHeterotypicSynonymyGroups(
-			TaxonNameEditor taxonNameEditor) {
-		List<HomotypicalSynonymGroup> retainedGroups = new ArrayList<HomotypicalSynonymGroup>();
-		
-		List<HomotypicalSynonymGroup> heterotypicSynonymGroups = taxonNameEditor.getHeterotypicSynonymGroups();
-		
-		if (heterotypicSynonymGroups != null) {
-		
-			for(HomotypicalSynonymGroup group : heterotypicSynonymGroups){
-				retainedGroups.add(group);
-			}
-		}
-		
-		for(HomotypicalGroup homotypicalGroup : taxonNameEditor.getTaxon().getHeterotypicSynonymyGroups()){
-			HomotypicalSynonymGroup group = createOrUpdateHeterotypicSynonymyGroup(taxonNameEditor, homotypicalGroup);
-			
-			retainedGroups.remove(group);
-		}
-		
-		for(HomotypicalSynonymGroup retainedGroup : retainedGroups){
-			taxonNameEditor.removeGroup(retainedGroup);
-		}
-	}
-
-
-	public static HomotypicalSynonymGroup createOrUpdateHeterotypicSynonymyGroup(
-			TaxonNameEditor taxonNameEditor, HomotypicalGroup homotypicalGroup){
-		HomotypicalSynonymGroup group = null;
-		if(taxonNameEditor.getHomotypicalGroupContainer(homotypicalGroup) == null){
-			group = new HomotypicalSynonymGroup(taxonNameEditor, homotypicalGroup);
-			taxonNameEditor.addHeterotypicSynonymGroup(group);
-			if(taxonNameEditor.getMisappliedGroup() != null){
-				group.getControl().moveAbove(taxonNameEditor.getMisappliedGroup().getControl());
-			}
-		}
-		else{
-			group = taxonNameEditor.getHomotypicalGroupContainer(homotypicalGroup);
-			group.redraw(homotypicalGroup);
-		}
-		
-		return group;
-	}
-
-	/**
-	 * @param taxonNameEditor
-	 */
-	public static void createOrUpdateMisapplicationsGroup(
-			TaxonNameEditor taxonNameEditor) {
-		MisappliedGroup group = taxonNameEditor.getMisappliedGroup();
-		Taxon taxon = HibernateProxyHelper.deproxy(taxonNameEditor.getTaxon(), Taxon.class);
-		if(taxon.getMisappliedNames().isEmpty()){
-			taxonNameEditor.removeGroup(group);		
-			taxonNameEditor.setMisapplicationsGroup(null);
-		}else{
-			if(group == null){
-				taxonNameEditor.setMisapplicationsGroup(new MisappliedGroup(taxonNameEditor));
-			}else{
-				group.redraw();
-			}
-		}
-		
-	}
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/HomotypicalSynonymGroup.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/HomotypicalSynonymGroup.java
deleted file mode 100644
index 85c9c7286..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/HomotypicalSynonymGroup.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.container;
-
-import org.eclipse.swt.graphics.Image;
-
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-
-/**
- * <p>HomotypicalSynonymGroup class.</p>
- *
- * @author p.ciardelli
- * @created 13.01.2009
- * @version 1.0
- */
-public class HomotypicalSynonymGroup extends AbstractHomotypicalGroupContainer {
-
-	/**
-	 * <p>Constructor for HomotypicalSynonymGroup.</p>
-	 *
-	 * @param editor a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
-	 * @param group a {@link eu.etaxonomy.cdm.model.name.HomotypicalGroup} object.
-	 */
-	public HomotypicalSynonymGroup(TaxonNameEditor editor, HomotypicalGroup group) {
-		super(editor, group);
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.AbstractGroup#createContents()
-	 */
-	@Override
-	protected void createContainers() {
-		createSynonymContainer();
-	}	
-	
-	protected void createSynonymContainer(){
-		int i = 0;
-		int indent = IContainerConstants.SYNONYM_INDENT;
-		Image icon = IContainerConstants.HETEROTYPIC_SYNONYM_ICON;
-		for(Synonym synonym : getSynonyms()){
-			if(i > 0){
-				indent = IContainerConstants.HOMOTYPIC_SYNONYM_IN_HETEROTYPIC_GROUP_INDENT;
-				icon = IContainerConstants.HOMOTYPIC_SYNONYM_IN_HETEROTYPIC_GROUP_ICON;
-			}
-			SynonymContainer container = new SynonymContainer(this, synonym, indent, icon);
-			this.add(container);
-			container.createContent();
-			i++;
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.AbstractHomotypicalGroupContainer#redrawNeeded(eu.etaxonomy.cdm.model.name.HomotypicalGroup)
-	 */
-	@Override
-	protected boolean redrawNeeded(HomotypicalGroup homotypicalGroup) {
-		return super.redrawNeeded(homotypicalGroup);
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/MisapplicationContainer.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/MisapplicationContainer.java
deleted file mode 100644
index d505635d6..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/MisapplicationContainer.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.container;
-
-import org.apache.commons.lang.StringUtils;
-import org.eclipse.swt.graphics.Font;
-
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.model.NameHelper;
-import eu.etaxonomy.taxeditor.preference.Resources;
-
-/**
- * <p>MisapplicationContainer class.</p>
- *
- * @author p.ciardelli
- * @created 13.01.2009
- */
-public class MisapplicationContainer extends AbstractGroupedContainer<Taxon> {
-	TaxonRelationship misapplication;
-
-	/**
-	 * <p>Constructor for MisapplicationContainer.</p>
-	 *
-	 * @param editor a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
-	 * @param group a {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroup} object.
-	 * @param misappliedName a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-	 */
-	public MisapplicationContainer(AbstractGroup group, Taxon misappliedName) {
-		super(misappliedName);
-		
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void initializeComposite() {
-		setIsDraggable(true);
-		setFont(getViewerFont());
-		TaxonNameEditor editor = getEditor();
-		Taxon taxon = editor.getTaxon();
-		for (TaxonRelationship rel: taxon.getTaxonRelations(getMisappliedName())){
-			if (rel.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR())){
-				misapplication = rel;
-				break;
-			}
-		}
-		showSec();
-
-		initTextViewer();
-	}
-
-	@Override
-	protected void updateIcon() {
-		setIcon(MISAPPLIEDNAME_ICON);
-	}
-
-	private void showSec() {
-		if (getMisappliedName() == null) {
-			return;
-		}
-		String title = "";
-		String author = "";
-		TaxonName misappliedNameName = HibernateProxyHelper.deproxy(getMisappliedName().getName());
-		if (StringUtils.isNotBlank(misappliedNameName.getAuthorshipCache())){
-			author = ", non " + misappliedNameName.getAuthorshipCache();
-		}
-		if (getMisappliedName().getSec() == null) {
-		    if (getMisappliedName().getAppendedPhrase() != null ){
-		        title = getMisappliedName().getAppendedPhrase();
-		    }else{
-		        title = "auct.";
-		        
-		    }
-		  
-		} else {
-			String sec = " sensu ";
-			if (getMisappliedName().getAppendedPhrase() != null ){
-			    sec = getMisappliedName().getAppendedPhrase() + " " + sec;
-			}
-			title += sec + getMisappliedName().getSec().getTitleCache();
-		}
-		title += author;
-		title = title.replace("&", "&&");
-		setNonEditableInfo(title, false);
-	}
-
-	/**
-	 * <p>getMisappliedName</p>
-	 *
-	 * @return a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-	 */
-	public Taxon getMisappliedName() {
-		return getTaxonBase();
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected Font getViewerFont() {
-		return EditorUtil.getFont(Resources.MISAPPLIEDNAME_FONT);
-	}
-
-	@Override
-	public void showAnnotations() {
-		if(getData().getSec() == null){
-			getNameViewer().addAnnotation(
-					new EditorAnnotation(0, Messages.MisapplicationContainer_SEC_REF_REQUIRED));
-		}
-		super.showAnnotations();
-	}
-
-
-	/** {@inheritDoc} */
-	@Override
-	protected void updateNonEditableInfo() {
-		showSec();
-	}
-
-	@Override
-	protected void updateIndent() {
-		setIndent(MISAPPLIEDNAME_INDENT);
-	}
-	
-	/**
-	 * <p>
-	 * initTextViewer
-	 * </p>
-	 */
-	@Override
-	protected void initTextViewer() {
-
-		// showNameRelations();
-
-		updateIndent();
-
-		updateIcon();
-
-		String text = NameHelper.getDisplayNameCache(getData());
-
-		if (text.length() == 0) {
-			initEmptyText();
-		} else {
-			getNameViewer().setText(text);
-			placeCursor();
-		}
-		calculateAnnotations();
-	}
-	
-	@Override
-    public void refresh() {
-		// showNameRelations();
-
-		String text = NameHelper.getDisplayNameCache(getData());
-
-		if (getNameViewer().getTextWidget() == null) {
-			// we might get here via dnd. Look slike it can be ignored
-			return;
-		}
-
-		if (text.length() == 0) {
-			initEmptyText();
-		} else if (!getNameViewer().getTextWidget().getText().equals(text)) {
-			removeListener();
-			getNameViewer().getTextWidget().setText(text);
-			addListener();
-		}
-
-		updateNonEditableInfo();
-
-		updateIcon();
-		// placeCursor();
-		updateIndent();
-
-		enableFreeText();
-	}
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/MisappliedGroup.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/MisappliedGroup.java
deleted file mode 100644
index 0f3e9ae21..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/MisappliedGroup.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.container;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-
-/**
- * <p>MisappliedGroup class.</p>
- *
- * @author p.ciardelli
- * @created 13.01.2009
- * @version 1.0
- */
-public class MisappliedGroup extends AbstractGroup{
-
-	/**
-	 * <p>Constructor for MisappliedGroup.</p>
-	 *
-	 * @param editor a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
-	 */
-	public MisappliedGroup(TaxonNameEditor editor) {
-		super(editor);
-		
-		createContent();
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.AbstractGroup#createContents()
-	 */
-	@Override
-	protected void createContainers() {
-		for(Taxon misapplication : getEditor().getTaxon().getMisappliedNames()){
-			MisapplicationContainer container = new MisapplicationContainer(this, misapplication);
-			this.add(container);
-			container.createContent();
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.container.AbstractGroup#redraw()
-	 */
-	@Override
-	public void redraw() {
-		if(redrawNeeded()){
-			super.redraw();
-		}
-	}
-
-	/**
-	 * @return
-	 */
-	private boolean redrawNeeded() {
-		Set<Taxon> misapplications = getEditor().getTaxon().getMisappliedNames();
-				
-		Set<Taxon> presentMisapplication = new HashSet<Taxon>(); 
-		
-		for (AbstractGroupedContainer<Taxon> container  : getGroupedContainers()){
-			presentMisapplication.add(container.getData());
-		}
-		return ! (presentMisapplication.containsAll(misapplications) && misapplications.containsAll(presentMisapplication));
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/SynonymContainer.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/SynonymContainer.java
deleted file mode 100644
index 121867da1..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/container/SynonymContainer.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.container;
-
-import java.util.Set;
-
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
-import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.preference.Resources;
-
-/**
- * <p>SynonymContainer class.</p>
- *
- * @author p.ciardelli
- * @created 13.01.2009
- * @version 1.0
- */
-public class SynonymContainer extends AbstractGroupedContainer<Synonym> {
-
-	private int indent = SYNONYM_INDENT;
-	private Image icon = HETEROTYPIC_SYNONYM_ICON;
-
-	/**
-	 * <p>Constructor for SynonymContainer.</p>
-	 *
-	 * @param editor a {@link eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor} object.
-	 * @param group a {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroup} object.
-	 * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
-	 */
-	public SynonymContainer(AbstractHomotypicalGroupContainer group, Synonym synonym) {
-		super(synonym);
-	}
-	
-	public SynonymContainer(AbstractHomotypicalGroupContainer group, Synonym synonym, int indent, Image icon){
-		super(synonym);
-		this.indent = indent;
-		this.icon = icon;
-	}
-	
-	/** {@inheritDoc} */
-	@Override
-	protected void initializeComposite() {
-		setIsDraggable(true);
-		setFont(getViewerFont());
-		
-		if(getName() == null){
-			MessagingUtils.warn(getClass(), Messages.SynonymContainer_SYNONYM_NULL_NAME);
-		}
-		
-		initTextViewer();
-	}
-	
-	protected void updateIcon(){
-		TaxonName name = getName();
-		
-		
-		if(! name.getStatus().isEmpty()){
-			
-			Set<NomenclaturalStatus> allStatus = name.getStatus();
-			
-			for (NomenclaturalStatus status : allStatus){
-				if(status.getType() != null && (status.getType().isInvalidType())){
-					setIcon(INVALID_OR_NUDUM_NAME_ICON);
-					return;
-				}
-			}
-		}
-		
-		if (isHomotypic()) {
-			if(name.isGroupsBasionym()){
-				setIcon(HOMOTYPIC_SYNONYM_ORIGINAL_COMBINATION_ICON);
-			}else{
-				setIcon(HOMOTYPIC_SYNONYM_ICON);
-			}
-			
-			return;
-		} else{
-			if(name.isGroupsBasionym()){
-				setIcon(HETEROTYPIC_SYNONYM_ORIGINAL_COMBINATION_ICON);
-				return;
-			}
-		}	
-				
-		setIcon(icon);
-		
-	}
-	
-	private boolean isHomotypic() {
-		HomotypicalGroup group = getSynonym().getHomotypicGroup();
-		return group.equals(getEditor().getTaxon().getHomotypicGroup()); 
-	}
-	
-	/**
-	 * <p>getSynonym</p>
-	 *
-	 * @return a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
-	 */
-	public Synonym getSynonym() {
-		return getTaxonBase();
-	}
-		
-
-	/**
-	 * <p>getViewerFont</p>
-	 *
-	 * @return a {@link org.eclipse.swt.graphics.Font} object.
-	 */
-	protected Font getViewerFont() {
-		return EditorUtil.getFont(Resources.SYNONYM_FONT);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected void updateNonEditableInfo() {
-		// not needed
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.name.AbstractGroupedContainer#updateIndent()
-	 */
-	@Override
-	protected void updateIndent() {		
-		setIndent(this.indent );
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/dnd/NameEditorDragListener.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/dnd/NameEditorDragListener.java
deleted file mode 100644
index 75aa6c30e..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/dnd/NameEditorDragListener.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * 
- */
-package eu.etaxonomy.taxeditor.editor.name.dnd;
-
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSourceAdapter;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.ui.forms.ManagedForm;
-
-import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
-import eu.etaxonomy.taxeditor.editor.name.container.AbstractGroupedContainer;
-
-/**
- * <p>NameEditorDragListener class.</p>
- *
- * @author n.hoffmann
- * @version $Id: $
- */
-public class NameEditorDragListener extends DragSourceAdapter {
-	
-	private AbstractGroupedContainer container;
-		
-	/**
-	 * <p>Constructor for NameEditorDragListener.</p>
-	 *
-	 * @param container a {@link eu.etaxonomy.taxeditor.editor.name.container.AbstractGroupedContainer} object.
-	 */
-	public NameEditorDragListener(AbstractGroupedContainer container){
-		this.container = container;
-	}
-	
-	/** {@inheritDoc} */
-	public void dragFinished(DragSourceEvent event) {
-		if(!event.doit)
-			return;
-		if(event.detail == DND.DROP_MOVE){
-			ManagedForm managedForm = container.getGroup().getEditor().getManagedForm();
-			container.getGroup().remove(container);
-			managedForm.reflow(true);
-		}
-		
-	};
-	
-	/** {@inheritDoc} */
-	@Override
-	public void dragSetData(DragSourceEvent event) {
-		ICdmBase[] cdmBaseObjects = new ICdmBase[]{(ICdmBase) container.getData()};
-		if(CdmDataTransfer.getInstance().isSupportedType(event.dataType)){
-			event.data = cdmBaseObjects;
-		}
-	}
-	
-	/** {@inheritDoc} */
-	@Override
-	public void dragStart(DragSourceEvent event) {
-		event.doit = container.getData() != null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/dnd/NameEditorDragSourceEffect.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/dnd/NameEditorDragSourceEffect.java
deleted file mode 100644
index 2c24b9004..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/dnd/NameEditorDragSourceEffect.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * 
- */
-package eu.etaxonomy.taxeditor.editor.name.dnd;
-
-import org.eclipse.swt.dnd.DragSourceEffect;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * <p>NameEditorDragSourceEffect class.</p>
- *
- * @author n.hoffmann
- * @version $Id: $
- */
-public class NameEditorDragSourceEffect extends DragSourceEffect {
-
-	/**
-	 * <p>Constructor for NameEditorDragSourceEffect.</p>
-	 *
-	 * @param control a {@link org.eclipse.swt.widgets.Control} object.
-	 */
-	public NameEditorDragSourceEffect(Control control) {
-		super(control);
-	}
-	
-	/** {@inheritDoc} */
-	@Override
-	public void dragStart(DragSourceEvent event) {
-		// TODO Auto-generated method stub
-		super.dragStart(event);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public void dragFinished(DragSourceEvent event) {
-		// TODO Auto-generated method stub
-		super.dragFinished(event);
-	}
-	
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/dnd/NameEditorDropTargetEffect.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/dnd/NameEditorDropTargetEffect.java
deleted file mode 100644
index 56d6a9651..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/dnd/NameEditorDropTargetEffect.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * 
- */
-package eu.etaxonomy.taxeditor.editor.name.dnd;
-
-import org.eclipse.swt.dnd.DropTargetEffect;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.widgets.Control;
-
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.IDropTargetable;
-import eu.etaxonomy.taxeditor.preference.Resources;
-
-/**
- * <p>NameEditorDropTargetEffect class.</p>
- *
- * @author n.hoffmann
- * @version $Id: $
- */
-public class NameEditorDropTargetEffect extends DropTargetEffect {
-
-	/**
-	 * <p>Constructor for NameEditorDropTargetEffect.</p>
-	 *
-	 * @param control a {@link org.eclipse.swt.widgets.Control} object.
-	 */
-	public NameEditorDropTargetEffect(Control control) {
-		super(control);
-	}
-	
-	/** {@inheritDoc} */
-	public void dragEnter(DropTargetEvent dropTargetEvent) {
-		
-		
-		
-		if(dropTargetEvent.widget instanceof IDropTargetable){
-			((IDropTargetable) dropTargetEvent.widget).dragEntered();
-		}
-		
-//		if(! EditorUtil.getActiveMultiPageTaxonEditor().equals(editor.getMultiPageTaxonEditor())){
-//			editor.getMultiPageTaxonEditor().setFocus();
-//		}
-	}
-	
-	/** {@inheritDoc} */
-	public void dragLeave(DropTargetEvent dropTargetEvent) {
-		
-		
-		
-		if(dropTargetEvent.widget instanceof Control){
-			((Control) dropTargetEvent.widget).setBackground(EditorUtil.getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
-		}
-	}
-	
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/dnd/NameEditorDropTargetListener.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/dnd/NameEditorDropTargetListener.java
deleted file mode 100644
index 926782adc..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/dnd/NameEditorDropTargetListener.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/**
- *
- */
-package eu.etaxonomy.taxeditor.editor.name.dnd;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetAdapter;
-import org.eclipse.swt.dnd.DropTargetEvent;
-
-import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.IDropTargetable;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.container.AbstractHomotypicalGroupContainer;
-import eu.etaxonomy.taxeditor.editor.name.container.MisappliedGroup;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation;
-import eu.etaxonomy.taxeditor.editor.name.operation.MoveSynonymToAnotherAcceptedTaxonOperation;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-
-/**
- * <p>NameEditorDropTargetListener class.</p>
- *
- * @author n.hoffmann
- * @version $Id: $
- */
-public class NameEditorDropTargetListener extends DropTargetAdapter {
-
-	private IDropTargetable target;
-
-
-	/**
-	 * <p>Constructor for NameEditorDropTargetListener.</p>
-	 *
-	 * @param target a {@link eu.etaxonomy.taxeditor.editor.IDropTargetable} object.
-	 */
-	public NameEditorDropTargetListener(IDropTargetable target){
-		this.target = target;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-    public void dragEnter(DropTargetEvent dropTargetEvent) {
-		target.dragEntered();
-
-//		if(! EditorUtil.getActiveMultiPageTaxonEditor().equals(editor.getMultiPageTaxonEditor())){
-//			editor.getMultiPageTaxonEditor().setFocus();
-//		}
-	}
-
-	/** {@inheritDoc} */
-	@Override
-    public void dragLeave(DropTargetEvent dropTargetEvent) {
-		target.dragLeft();
-	}
-
-	/** {@inheritDoc} */
-	@Override
-    public void drop(DropTargetEvent dropTargetEvent) {
-
-		TaxonBase taxonBase = getDroppedTaxonBase(dropTargetEvent);
-
-		Assert.isNotNull(taxonBase);
-
-		if(taxonBase.getHomotypicGroup().equals(getHomotypicalGroup())){
-			// do nothing when dragged to the same group
-			dropTargetEvent.detail = DND.DROP_NONE;
-			return;
-		}
-
-		// Execute operations at end of drag event
-		AbstractPostOperation operation = createOperation(taxonBase);
-
-		// Execute operation if it has been initiated
-		if (operation == null) {
-			MessagingUtils.warn(getClass(), String.format(Messages.NameEditorDropTargetListener_UNSUCCESSFULL_DROP, taxonBase.getClass(), target));
-			dropTargetEvent.detail = DND.DROP_NONE;
-		} else {
-			EditorUtil.executeOperation(operation);
-		}
-		target.getEditor().getConversationHolder().commit();
-		if (!target.equals(EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor())){
-			((TaxonNameEditor)EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor()).redraw();
-			((TaxonNameEditor)EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor()).getConversationHolder().commit();
-
-		}
-		target.getEditor().redraw();
-
-	}
-
-	private AbstractPostOperation createOperation(TaxonBase taxonBase) {
-
-		if(taxonBase instanceof Synonym){
-			Synonym synonym = (Synonym) taxonBase;
-
-			if(target instanceof AbstractHomotypicalGroupContainer){
-				HomotypicalGroup homotypicalGroup = ((AbstractHomotypicalGroupContainer) target).getGroup();
-
-				return new ChangeHomotypicGroupOperation(Messages.NameEditorDropTargetListener_CHANGE_HOMOTYPICAL_GROUP, getEditor().getUndoContext(),
-						getEditor().getTaxon(), synonym, homotypicalGroup, target);
-			}
-			else if(target instanceof MisappliedGroup){
-				return new ChangeSynonymToMisapplicationOperation(Messages.NameEditorDropTargetListener_CHANGE_SYNONYM_TO_MISAPP, getEditor().getUndoContext(),
-						getEditor().getTaxon(), synonym, target);
-			}
-			else if(target instanceof TaxonNameEditor){
-				if (target.equals(getEditor())){
-					return new ChangeHomotypicGroupOperation(Messages.NameEditorDropTargetListener_CHANGE_HOMOTYPICAL_GROUP, getEditor().getUndoContext(),
-						getEditor().getTaxon(), synonym, null, target);
-				} else{
-					getEditor().getConversationHolder().commit();
-					((TaxonNameEditor) target).getConversationHolder().commit();
-
-					return new MoveSynonymToAnotherAcceptedTaxonOperation(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), getEditor().getTaxon().getUuid(), synonym.getUuid(), ((TaxonNameEditor) target).getTaxon(), null );
-
-				}
-			}
-
-		}else if(taxonBase instanceof Taxon){
-			Taxon concept = (Taxon) taxonBase;
-
-			if(target instanceof AbstractHomotypicalGroupContainer){
-				HomotypicalGroup homotypicalGroup = ((AbstractHomotypicalGroupContainer) target).getGroup();
-
-				return new ChangeConceptToSynonymOperation(Messages.NameEditorDropTargetListener_CHANGE_SYNONYM, getEditor().getUndoContext(),
-						getEditor().getTaxon(), concept, homotypicalGroup, target);
-			}
-			else if(target instanceof MisappliedGroup ){
-				return new ChangeConceptRelationshipTypeOperation(Messages.NameEditorDropTargetListener_CHANGE, getEditor().getUndoContext(),
-						getEditor().getTaxon(), concept, TaxonRelationshipType.MISAPPLIED_NAME_FOR(), target);
-			}
-		}
-
-
-		return null;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public void dropAccept(DropTargetEvent event) {
-		// pass
-	}
-
-
-	private HomotypicalGroup getHomotypicalGroup() {
-		if(target instanceof AbstractHomotypicalGroupContainer){
-			return ((AbstractHomotypicalGroupContainer) target).getGroup();
-		}
-		return null;
-	}
-
-	private TaxonBase getDroppedTaxonBase(DropTargetEvent dropTargetEvent){
-		if(dropTargetEvent.data instanceof ICdmBase[]){
-
-			ICdmBase[] cdmBaseObjects = (ICdmBase[]) dropTargetEvent.data;
-
-			if(cdmBaseObjects[0] instanceof TaxonBase){
-				return (TaxonBase) cdmBaseObjects[0];
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * @return
-	 *
-	 */
-	private TaxonNameEditor getEditor() {
-		return (TaxonNameEditor) EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor();
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroupE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroupE4.java
index 962e60375..c86eb9ab3 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroupE4.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroupE4.java
@@ -25,9 +25,9 @@ import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
-import eu.etaxonomy.taxeditor.editor.name.dnd.NameEditorDropTargetEffect;
 import eu.etaxonomy.taxeditor.editor.name.e4.IDropTargetableE4;
 import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.dnd.NameEditorDropTargetEffect;
 import eu.etaxonomy.taxeditor.editor.name.e4.dnd.NameEditorDropTargetListenerE4;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.preference.Resources;
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroupedContainerE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroupedContainerE4.java
index a896155d1..5afe1eb93 100755
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroupedContainerE4.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/container/AbstractGroupedContainerE4.java
@@ -59,9 +59,9 @@ import eu.etaxonomy.taxeditor.editor.name.container.IContainerConstants;
 import eu.etaxonomy.taxeditor.editor.name.container.LineBreakListener;
 import eu.etaxonomy.taxeditor.editor.name.container.LineWrapSupport;
 import eu.etaxonomy.taxeditor.editor.name.container.NameViewer;
-import eu.etaxonomy.taxeditor.editor.name.dnd.NameEditorDragSourceEffect;
 import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
 import eu.etaxonomy.taxeditor.editor.name.e4.dnd.NameEditorDragListenerE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.dnd.NameEditorDragSourceEffect;
 import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.IElementHasDetails;
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDragSourceEffect.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDragSourceEffect.java
new file mode 100644
index 000000000..ade85e166
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDragSourceEffect.java
@@ -0,0 +1,32 @@
+/**
+ *
+ */
+package eu.etaxonomy.taxeditor.editor.name.e4.dnd;
+
+import org.eclipse.swt.dnd.DragSourceEffect;
+import org.eclipse.swt.dnd.DragSourceEvent;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * @author n.hoffmann
+ * @version $Id: $
+ */
+public class NameEditorDragSourceEffect extends DragSourceEffect {
+
+	public NameEditorDragSourceEffect(Control control) {
+		super(control);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void dragStart(DragSourceEvent event) {
+		super.dragStart(event);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void dragFinished(DragSourceEvent event) {
+		super.dragFinished(event);
+	}
+
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDropTargetEffect.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDropTargetEffect.java
new file mode 100644
index 000000000..be41b3a19
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDropTargetEffect.java
@@ -0,0 +1,40 @@
+/**
+ *
+ */
+package eu.etaxonomy.taxeditor.editor.name.e4.dnd;
+
+import org.eclipse.swt.dnd.DropTargetEffect;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.name.e4.IDropTargetableE4;
+import eu.etaxonomy.taxeditor.preference.Resources;
+
+/**
+ *
+ * @author n.hoffmann
+ * @version $Id: $
+ */
+public class NameEditorDropTargetEffect extends DropTargetEffect {
+
+	public NameEditorDropTargetEffect(Control control) {
+		super(control);
+	}
+
+	/** {@inheritDoc} */
+	@Override
+    public void dragEnter(DropTargetEvent dropTargetEvent) {
+		if(dropTargetEvent.widget instanceof IDropTargetableE4){
+			((IDropTargetableE4) dropTargetEvent.widget).dragEntered();
+		}
+	}
+
+	/** {@inheritDoc} */
+	@Override
+    public void dragLeave(DropTargetEvent dropTargetEvent) {
+		if(dropTargetEvent.widget instanceof Control){
+			((Control) dropTargetEvent.widget).setBackground(EditorUtil.getColor(Resources.COLOR_COMPOSITE_BACKGROUND));
+		}
+	}
+}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDropTargetListenerE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDropTargetListenerE4.java
index d131550db..1bd6cbfc1 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDropTargetListenerE4.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDropTargetListenerE4.java
@@ -19,11 +19,11 @@ import eu.etaxonomy.taxeditor.editor.name.e4.IDropTargetableE4;
 import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
 import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractHomotypicalGroupContainerE4;
 import eu.etaxonomy.taxeditor.editor.name.e4.container.MisappliedGroupE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.operation.MoveSynonymToAnotherAcceptedTaxonOperationE4;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicGroupOperation;
 import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation;
-import eu.etaxonomy.taxeditor.editor.name.operation.MoveSynonymToAnotherAcceptedTaxonOperation;
 import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -112,7 +112,7 @@ public class NameEditorDropTargetListenerE4 extends DropTargetAdapter {
 					getEditor().getConversationHolder().commit();
 					((TaxonNameEditorE4) target).getConversationHolder().commit();
 
-					return new MoveSynonymToAnotherAcceptedTaxonOperation(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), getEditor().getTaxon().getUuid(), synonym.getUuid(), ((TaxonNameEditorE4) target).getTaxon(), null );
+					return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonNameEditorE4) target).getTaxon(), (TaxonNameEditorE4) target, (TaxonNameEditorE4) target);
 
 				}
 			}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeSynonymToAcceptedTaxonHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeSynonymToAcceptedTaxonHandler.java
deleted file mode 100644
index 09f2598d2..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeSynonymToAcceptedTaxonHandler.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-import java.util.UUID;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToAcceptedTaxonOperation;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
-
-/**
- * <p>ChangeSynonymToAcceptedTaxonHandler class.</p>
- *
- * @author n.hoffmann
- * @created 21.04.2009
- */
-public class ChangeSynonymToAcceptedTaxonHandler extends AbstractHandler implements IPostOperationEnabled {
-	private static final Logger logger = Logger
-			.getLogger(ChangeSynonymToAcceptedTaxonHandler.class);
-	private MultiPageTaxonEditor editor;
-
-	/** {@inheritDoc} */
-	@Override
-    public Object execute(ExecutionEvent event) throws ExecutionException {
-		editor =  (MultiPageTaxonEditor) HandlerUtil.getActiveEditor(event);
-		Shell shell = HandlerUtil.getActiveShell(event);
-		IEditorInput input = editor.getEditorInput();
-
-		if (!(input instanceof TaxonEditorInput)) {
-			logger.error("Editor input is not TaxonEditorInput"); //$NON-NLS-1$
-			return null;
-		}
-
-		// Get synonym from selection
-		StructuredSelection selection = (StructuredSelection) HandlerUtil.getCurrentSelection(event);
-		if (!(selection.getFirstElement() instanceof Synonym)) {
-			logger.error("Selection does not contain a Synonym"); //$NON-NLS-1$
-			return null;
-		}
-
-		Synonym synonym = (Synonym) selection.getFirstElement();
-
-		// Force user to save taxon - not really necessary though, is it?
-		if (!EditorUtil.forceUserSave(editor, shell)) {
-			return null;
-		}
-
-		// Get taxon
-		Taxon taxon = ((TaxonEditorInput) input).getTaxon();
-
-		TaxonNode parentNode = HibernateProxyHelper.deproxy(((TaxonEditorInput) input).getTaxonNode().getParent());
-
-		List<UUID> excludeTaxa = new ArrayList<>();
-		//excludeTaxa.add(taxon.getUuid());//there are some cases where the accepted taxon should be the parent of the new created accepted taxon
-
-		TaxonNode newParentNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), editor.getConversationHolder(), Messages.ChangeSynonymToAcceptedTaxonHandler_SELECT_PARENT, null, null, ((TaxonEditorInput) input).getTaxonNode().getClassification());
-
-
-		if(newParentNode != null){
-
-			// TODO get synonyms from homotypical group and add them as homotypic synonyms to new accepted taxon
-			// apply confirmation dialog
-			HomotypicalGroup group = synonym.getHomotypicGroup();
-			Set<TaxonName> namesInGroup = group.getTypifiedNames();
-			// FIXME with this implementation we can not create a taxonNode that is a direct child of the classification node
-			AbstractPostOperation operation = new ChangeSynonymToAcceptedTaxonOperation(Messages.ChangeSynonymToAcceptedTaxonHandler_CHANGE_SYN_TO_ACC_TAXON, EditorUtil.getUndoContext(),
-					taxon, newParentNode, synonym, namesInGroup, this, editor, (ICdmEntitySessionEnabled)editor.getEditorInput()); //$NON-NLS-1$
-
-			EditorUtil.executeOperation(operation);
-		}
-
-		return null;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-    public boolean postOperation(CdmBase objectAffectedByOperation) {
-
-		// Redraw existing editor
-		((IPostOperationEnabled) editor).postOperation(null);
-
-		editor.doSave(EditorUtil.getMonitor());
-
-		if (objectAffectedByOperation instanceof TaxonNode) {
-
-			// Open new unsaved editor with existing taxon's parent as temporary parent
-			TaxonNode newNode = (TaxonNode) objectAffectedByOperation;
-//			TaxonNode newNode = parentNode.addChild(newTaxon);
-
-			try {
-				// TODO
-				/*
-				 * This doesn't work b/c newNode hasn't been committed yet, and therefore
-				 *  CdmStore.getTaxonService().getTaxonNodeByUuid(taxonNodeUuid);
-				 *  doesn't work yet.
-				 */
-				EditorUtil.openTaxonBaseE4(newNode.getUuid());
-
-			} catch (PartInitException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			} catch (Exception e) {
-				MessagingUtils.warningDialog(Messages.ChangeSynonymToAcceptedTaxonHandler_CREATE_FAILURE, this, e.getMessage());
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * <p>onComplete</p>
-	 *
-	 * @return a boolean.
-	 */
-	@Override
-    public boolean onComplete() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeToConceptRelationHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeToConceptRelationHandler.java
deleted file mode 100644
index f6621a346..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeToConceptRelationHandler.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.swt.widgets.Event;
-
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToConceptOperation;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-
-/**
- * <p>ChangeToConceptRelationHandler class.</p>
- *
- * @author n.hoffmann
- * @created 22.04.2009
- * @version 1.0
- */
-public class ChangeToConceptRelationHandler extends AbstractHandler implements
-		IHandler {
-	private static final Logger logger = Logger
-			.getLogger(ChangeToConceptRelationHandler.class);
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	/** {@inheritDoc} */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
-				Page.NAME);
-
-		TaxonBase taxonBase = (TaxonBase) EditorUtil.getSelection(event).getFirstElement();
-		
-		TaxonRelationshipType type = (TaxonRelationshipType) ((Event)event.getTrigger()).data;
-		
-		AbstractPostOperation operation;
-		try {
-			if(taxonBase instanceof Synonym){
-				Synonym synonym = (Synonym) taxonBase;
-				operation = new ChangeSynonymToConceptOperation(event.getCommand().getName(), 
-						editor.getUndoContext(), editor.getTaxon(), synonym, type, editor);
-				EditorUtil.executeOperation(operation);
-			}
-			if(taxonBase instanceof Taxon){
-				Taxon misapplication = (Taxon) taxonBase;
-				operation = new ChangeConceptRelationshipTypeOperation(event.getCommand().getName(), 
-						editor.getUndoContext(), editor.getTaxon(), misapplication, type, editor);
-				EditorUtil.executeOperation(operation);
-			}
-		} catch (NotDefinedException e) {
-			logger.warn("Command name not set"); //$NON-NLS-1$
-		}
-		
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeToMisapplicationHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeToMisapplicationHandler.java
deleted file mode 100644
index f0d38a66d..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeToMisapplicationHandler.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeSynonymToMisapplicationOperation;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-
-/**
- * <p>ChangeToMisapplicationHandler class.</p>
- *
- * @author n.hoffmann
- * @created 21.04.2009
- * @version 1.0
- */
-public class ChangeToMisapplicationHandler extends AbstractHandler implements
-		IHandler {
-	private static final Logger logger = Logger
-			.getLogger(ChangeToMisapplicationHandler.class);
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	/** {@inheritDoc} */
-	@Override
-    public Object execute(ExecutionEvent event) throws ExecutionException {
-		TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
-				Page.NAME);
-		Shell shell = HandlerUtil.getActiveShell(event);
-		MultiPageTaxonEditor multiPageTaxonEditor = EditorUtil.getActiveMultiPageTaxonEditor();
-		if (!EditorUtil.forceUserSave(multiPageTaxonEditor, shell)) {
-            return null;
-        }
-		Object selectedElement = EditorUtil.getSelection(event).getFirstElement();
-
-		AbstractPostOperation operation = null;
-		try {
-			if(selectedElement instanceof Taxon){
-				operation = new ChangeConceptRelationshipTypeOperation(event.getCommand().getName(),
-										editor.getUndoContext(), editor.getTaxon(), (Taxon) selectedElement, TaxonRelationshipType.MISAPPLIED_NAME_FOR(), editor);
-			}
-			if(selectedElement instanceof Synonym){
-				operation = new ChangeSynonymToMisapplicationOperation(event.getCommand().getName(),
-						editor.getUndoContext(), editor.getTaxon(), (Synonym) selectedElement, editor);
-			}
-
-
-			EditorUtil.executeOperation(operation);
-
-		} catch (NotDefinedException e) {
-			logger.warn("Command name not set"); //$NON-NLS-1$
-		}
-
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeToSynonymHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeToSynonymHandler.java
deleted file mode 100644
index c2ab8c996..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeToSynonymHandler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.common.NotDefinedException;
-
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-
-/**
- * <p>ChangeToSynonymHandler class.</p>
- *
- * @author n.hoffmann
- * @created 21.04.2009
- * @version 1.0
- */
-public class ChangeToSynonymHandler extends AbstractHandler implements
-		IHandler {
-	private static final Logger logger = Logger
-			.getLogger(ChangeToSynonymHandler.class);
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	/** {@inheritDoc} */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
-				Page.NAME);
-
-		Taxon concept  = (Taxon) EditorUtil.getSelection(event).getFirstElement();
-		
-		AbstractPostOperation operation;
-		try {
-			operation = new ChangeConceptToSynonymOperation(event.getCommand().getName(), 
-					editor.getUndoContext(), editor.getTaxon(), concept, null, editor);
-			
-			EditorUtil.executeOperation(operation);
-		} catch (NotDefinedException e) {
-			logger.warn("Command name not set"); //$NON-NLS-1$
-		}
-		
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateHeterotypicSynonymHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateHeterotypicSynonymHandler.java
deleted file mode 100644
index 162eaa7be..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateHeterotypicSynonymHandler.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.common.NotDefinedException;
-
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInNewGroupOperation;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.parser.ParseHandler;
-
-/**
- * <p>CreateHeterotypicSynonymHandler class.</p>
- *
- * @author n.hoffmann
- * @created 06.02.2009
- */
-public class CreateHeterotypicSynonymHandler extends AbstractHandler implements
-		IHandler {
-	private static final Logger logger = Logger
-			.getLogger(CreateHeterotypicSynonymHandler.class);
-
-	/** {@inheritDoc} */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
-				Page.NAME);
-		
-		TaxonName newSynonymName = ParseHandler.createEmptyName();
-		
-		AbstractPostOperation<?> operation;
-		try {
-			operation = new CreateSynonymInNewGroupOperation(event.getCommand().getName(), 
-					editor.getUndoContext(), editor.getTaxon(), newSynonymName, editor);
-			EditorUtil.executeOperation(operation);
-		} catch (NotDefinedException e) {
-			logger.warn("Command name not set"); //$NON-NLS-1$
-		}
-				
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateHomotypicSynonymHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateHomotypicSynonymHandler.java
deleted file mode 100644
index 2992d1c2e..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateHomotypicSynonymHandler.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.common.NotDefinedException;
-
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.parser.ParseHandler;
-
-/**
- * <p>CreateHomotypicSynonymHandler class.</p>
- *
- * @author n.hoffmann
- * @created 06.02.2009
- */
-public class CreateHomotypicSynonymHandler extends AbstractHandler implements
-		IHandler {
-
-	/** {@inheritDoc} */
-	@Override
-    public Object execute(ExecutionEvent event) throws ExecutionException {
-		TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
-				Page.NAME);
-		Taxon taxon = editor.getTaxon();
-		HomotypicalGroup group = taxon.getHomotypicGroup();
-		TaxonName newSynonymName = ParseHandler.createEmptyName();
-
-		AbstractPostOperation<?> operation;
-		try {
-			operation = new CreateSynonymInExistingHomotypicalGroupOperation(event.getCommand().getName(),
-					editor.getUndoContext(), taxon, group, newSynonymName, editor);
-			EditorUtil.executeOperation(operation);
-		} catch (NotDefinedException e) {
-			MessagingUtils.error(getClass(), e);
-		}
-
-
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateMisapplicationHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateMisapplicationHandler.java
deleted file mode 100644
index 9208a7484..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateMisapplicationHandler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.common.NotDefinedException;
-
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.view.concept.operation.CreateConceptRelationOperation;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.parser.ParseHandler;
-
-/**
- * <p>CreateMisapplicationHandler class.</p>
- *
- * @author n.hoffmann
- * @created 16.04.2009
- */
-public class CreateMisapplicationHandler extends AbstractHandler {
-	private static final Logger logger = Logger
-			.getLogger(CreateMisapplicationHandler.class);
-
-	/** {@inheritDoc} */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
-				Page.NAME);
-		
-
-		TaxonName conceptName = ParseHandler.createEmptyName();
-		Taxon concept = Taxon.NewInstance(conceptName, null);
-		
-		TaxonRelationshipType type = TaxonRelationshipType.MISAPPLIED_NAME_FOR();
-		
-		AbstractPostOperation<?> operation;
-		try {
-			operation = new CreateConceptRelationOperation(event.getCommand().getName(), 
-					editor.getUndoContext(), editor.getTaxon(), concept, type, editor);
-			EditorUtil.executeOperation(operation);
-		} catch (NotDefinedException e) {
-			logger.warn("Command name not set"); //$NON-NLS-1$
-		}
-				
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateSynonymInHomotypicalGroupHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateSynonymInHomotypicalGroupHandler.java
deleted file mode 100644
index f91179377..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/CreateSynonymInHomotypicalGroupHandler.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.operation.CreateSynonymInExistingHomotypicalGroupOperation;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.parser.ParseHandler;
-
-/**
- * <p>CreateSynonymInHomotypicalGroupHandler class.</p>
- *
- * @author n.hoffmann
- * @created 21.04.2009
- * @version 1.0
- */
-public class CreateSynonymInHomotypicalGroupHandler extends AbstractHandler
-		implements IHandler {
-	private static final Logger logger = Logger
-			.getLogger(CreateSynonymInHomotypicalGroupHandler.class);
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	/** {@inheritDoc} */
-	@Override
-    public Object execute(ExecutionEvent event) throws ExecutionException {
-		TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
-				Page.NAME);
-		ISelection menuSelection = HandlerUtil.getCurrentSelection(event);
-
-		Object selecteObject = ((StructuredSelection) menuSelection).getFirstElement();
-
-		if(! (selecteObject instanceof Synonym)){
-			return null;
-		}
-
-
-		Synonym synonym = (Synonym) selecteObject;
-
-		HomotypicalGroup group = synonym.getHomotypicGroup();
-
-		TaxonName newSynonymName = ParseHandler.createEmptyName();
-
-		AbstractPostOperation<?> operation;
-
-		try {
-			operation = new CreateSynonymInExistingHomotypicalGroupOperation(event.getCommand().getName(), editor.getUndoContext(),
-								editor.getTaxon(), group, newSynonymName, editor);
-			EditorUtil.executeOperation(operation);
-		} catch (NotDefinedException e) {
-			logger.warn("Command name not set"); //$NON-NLS-1$
-		}
-
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/DeleteAllEmptyNamesHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/DeleteAllEmptyNamesHandler.java
deleted file mode 100644
index 2f487963b..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/DeleteAllEmptyNamesHandler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.container.AbstractGroupedContainer;
-
-/**
- * @author n.hoffmann
- * @created Jan 28, 2011
- * @version 1.0
- */
-public class DeleteAllEmptyNamesHandler extends DeleteTaxonBaseHandler {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	@Override
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(Page.NAME);
-
-		for(AbstractGroupedContainer<TaxonBase> containerWithEmptyName : editor.getEmptyContainers()){
-		    editor.removeGroup(containerWithEmptyName.getGroup());
-			doExecute(event, editor, containerWithEmptyName.getData());
-		}
-
-		return null;
-	}
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/DeleteTaxonBaseHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/DeleteTaxonBaseHandler.java
deleted file mode 100644
index 9878bd93b..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/DeleteTaxonBaseHandler.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.handler;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.api.service.DeleteResult;
-import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;
-import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.operation.DeleteMisapplicationOperation;
-import eu.etaxonomy.taxeditor.editor.name.operation.DeleteSynonymOperation;
-import eu.etaxonomy.taxeditor.editor.name.operation.DeleteTaxonBaseOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.DeleteResultMessagingUtils;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
-import eu.etaxonomy.taxeditor.ui.dialog.configurator.deleteConfigurator.DeleteConfiguratorDialog;
-
-/**
- * @author n.hoffmann
- * @created 21.04.2009
- * @version 1.0
- */
-public class DeleteTaxonBaseHandler extends AbstractHandler implements IHandler, IPostOperationEnabled {
-
-	TaxonNameEditor editor;
-	/** {@inheritDoc} */
-	@Override
-    public Object execute(ExecutionEvent event) throws ExecutionException {
-		editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(Page.NAME);
-
-		Object selectedElement = EditorUtil.getSelection(event).getFirstElement();
-
-		doExecute(event, editor, selectedElement);
-
-		return null;
-	}
-
-	protected void doExecute(ExecutionEvent event, TaxonNameEditor editor, Object selectedElement) {
-		AbstractPostOperation operation = null;
-		String commandName = null;
-
-		try {
-			commandName = event.getCommand().getName();
-		} catch (NotDefinedException e) {
-			MessagingUtils.error(getClass(), e);
-		}
-		if (selectedElement instanceof TaxonBase){
-		    if (((TaxonBase)selectedElement).getId() == 0){
-		        if (selectedElement instanceof Taxon && ((Taxon) selectedElement).isMisapplication()) {
-                    editor.getTaxon().removeTaxon((Taxon)selectedElement, TaxonRelationshipType.MISAPPLIED_NAME_FOR());
-
-                } else if (selectedElement instanceof Synonym){
-                    editor.getTaxon().removeSynonym((Synonym)selectedElement);
-                }
-		        editor.redraw();
-		        return;
-
-	        }
-
-		}
-
-		// synonym
-		if(selectedElement instanceof Synonym){
-		    SynonymDeletionConfigurator deleteConfig = new SynonymDeletionConfigurator();
-		    if(! DeleteConfiguratorDialog.openConfirmWithConfigurator(deleteConfig, HandlerUtil.getActiveShell(event), Messages.DeleteTaxonBaseHandler_CONFIRM_DELETION,  Messages.DeleteTaxonBaseHandler_REALLY_DELETE_SYNONYM)){
-		           return ;
-            }
-			operation = new DeleteSynonymOperation(commandName, editor.getUndoContext(), deleteConfig, editor.getTaxon(), (Synonym) selectedElement,this, editor, (ICdmEntitySessionEnabled)editor.getEditorInput());
-
-		}
-		// misapplication
-		else if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isMisapplication()){
-		    TaxonDeletionConfigurator deleteConfig = new TaxonDeletionConfigurator();
-		    if(! DeleteConfiguratorDialog.openConfirmWithConfigurator(deleteConfig, HandlerUtil.getActiveShell(event), Messages.DeleteTaxonBaseHandler_CONFIRM_DELETION,  Messages.DeleteTaxonBaseHandler_REALLY_DELETE_MISAPPLICATION)){
-		        return ;
-		    }
-			operation = new DeleteMisapplicationOperation(commandName, editor.getUndoContext(),  deleteConfig, editor.getTaxon(), (Taxon) selectedElement,this, editor, (ICdmEntitySessionEnabled)editor.getEditorInput());
-		} else {
-			throw new IllegalArgumentException(Messages.DeleteTaxonBaseHandler_ELEMENT_MUST_BE_SYNONYM_MISAPP_CONCEPT);
-		}
-
-		AbstractUtility.executeOperation(operation);
-		DeleteResult result = ((DeleteTaxonBaseOperation)operation).getResult();
-		if (result != null){
-    		if (result.isError()){
-                DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteDerivateOperation_DELETE_FAILED, TaxeditorEditorPlugin.PLUGIN_ID);
-            } else if (selectedElement instanceof Synonym){
-                this.editor.redraw();
-    		    if (!result.getExceptions().isEmpty()){
-                    DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteTaxonBaseHandler_DELETE_SYNONYM_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS, TaxeditorEditorPlugin.PLUGIN_ID);
-                }
-    		} else if (selectedElement instanceof Taxon && !result.getExceptions().isEmpty()){
-    	        this.editor.redraw();
-                DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteTaxonBaseHandler_DELETE_MISAPPLIEDNAME_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS, TaxeditorEditorPlugin.PLUGIN_ID);
-    		}
-		}
-
-
-	}
-
-	@Override
-	public boolean postOperation(CdmBase objectAffectedByOperation) {
-
-		return true;
-	}
-
-	@Override
-	public boolean onComplete() {
-
-		return false;
-	}
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/MoveSynonymToAnotherAcceptedTaxonHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/MoveSynonymToAnotherAcceptedTaxonHandler.java
deleted file mode 100644
index e81437b8d..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/MoveSynonymToAnotherAcceptedTaxonHandler.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.operation.MoveSynonymToAnotherAcceptedTaxonOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
-
-public class MoveSynonymToAnotherAcceptedTaxonHandler extends AbstractHandler implements IPostOperationEnabled {
-	private static final Logger logger = Logger
-	.getLogger(MoveSynonymToAnotherAcceptedTaxonHandler.class);
-	private MultiPageTaxonEditor editor;
-
-	@Override
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		editor =  (MultiPageTaxonEditor) HandlerUtil.getActiveEditor(event);
-		Shell shell = HandlerUtil.getActiveShell(event);
-		IEditorInput input = editor.getEditorInput();
-		// Get synonym from selection before possible save dialog
-		// because the selection will be null if save dialog is shown
-		StructuredSelection selection = (StructuredSelection) HandlerUtil.getCurrentSelection(event);
-
-		if (!EditorUtil.forceUserSave(editor, shell)) {
-			return null;
-		}
-
-		if (!(input instanceof TaxonEditorInput)) {
-			logger.error("Editor input is not TaxonEditorInput"); //$NON-NLS-1$
-			return null;
-		}
-
-		if (selection==null || !(selection.getFirstElement() instanceof Synonym)) {
-		    MessagingUtils.warningDialog(Messages.MoveSynonymToAnotherAcceptedTaxonHandler_NO_SELECTION, this, Messages.MoveSynonymToAnotherAcceptedTaxonHandler_NO_SELECTION_MESSAGE);
-			logger.error("Selection does not contain a Synonym"); //$NON-NLS-1$
-			return null;
-		}
-
-		Synonym synonym = (Synonym) selection.getFirstElement();
-		Taxon oldParent = ((TaxonEditorInput)input).getTaxon();
-		List<UUID> excludeTaxa = new ArrayList<UUID>();
-		excludeTaxa.add(oldParent.getUuid());
-
-
-		TaxonNode newParentNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), editor.getConversationHolder(), Messages.MoveSynonymToAnotherAcceptedTaxonHandler_SELECT_ACC_TAXON, excludeTaxa,  ((TaxonEditorInput)input).getTaxonNode(), ((TaxonEditorInput)input).getTaxonNode().getClassification());
-
-		if(newParentNode!=null){
-		   MoveSynonymToAnotherAcceptedTaxonOperation operation = new MoveSynonymToAnotherAcceptedTaxonOperation(Messages.MoveSynonymToAnotherAcceptedTaxonHandler_CHANGE_ACC_TAXON, EditorUtil.getUndoContext(),
-		            oldParent.getUuid(), synonym.getUuid(), newParentNode.getTaxon(), editor);
-
-		    AbstractUtility.executeOperation(operation);
-
-		}
-		return null;
-	}
-
-	@Override
-	public boolean postOperation(CdmBase objectAffectedByOperation) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public boolean onComplete() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java
index 758e3ea42..bbb0fd5d3 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java
@@ -17,9 +17,8 @@ import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
 import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
+import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -136,7 +135,7 @@ public class NameEditorMenuPropertyTester extends PropertyTester {
 	 * @return
 	 */
 	public static boolean hasEmptyNames(Object receiver) {
-		TaxonNameEditorE4 editor = (TaxonNameEditorE4) EditorUtil.getActiveEditorPage(Page.NAME);
+		TaxonNameEditorE4 editor = (TaxonNameEditorE4) EventUtility.getEditor();
 		return editor == null ? false : editor.checkForEmptyNames();
 	}
 
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/RemoveBasionymHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/RemoveBasionymHandler.java
deleted file mode 100644
index 5820a1018..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/RemoveBasionymHandler.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.operation.RemoveHomotypicalGroupBasionymOperation;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-
-/**
- * <p>RemoveBasionymHandler class.</p>
- *
- * @author n.hoffmann
- * @created 21.04.2009
- * @version 1.0
- */
-public class RemoveBasionymHandler extends AbstractHandler implements IHandler {
-	private static final Logger logger = Logger
-			.getLogger(RemoveBasionymHandler.class);
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	/** {@inheritDoc} */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
-				Page.NAME);
-		
-		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
-		
-		TaxonBase selectedTaxonBase = (TaxonBase) selection.getFirstElement();
-
-		AbstractPostOperation operation;
-		
-		try {
-			operation = new RemoveHomotypicalGroupBasionymOperation(event.getCommand().getName(), editor.getUndoContext(),
-								editor.getTaxon(), selectedTaxonBase, editor);
-			EditorUtil.executeOperation(operation);
-		} catch (NotDefinedException e) {
-			logger.warn("Command name not set"); //$NON-NLS-1$
-		}
-		
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SetBasionymHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SetBasionymHandler.java
deleted file mode 100644
index 4d35fe907..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SetBasionymHandler.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeHomotypicalGroupBasionymOperation;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-
-/**
- * <p>SetBasionymHandler class.</p>
- *
- * @author n.hoffmann
- * @created 21.04.2009
- * @version 1.0
- */
-public class SetBasionymHandler extends AbstractHandler implements IHandler {
-	private static final Logger logger = Logger
-			.getLogger(SetBasionymHandler.class);
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	/** {@inheritDoc} */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
-				Page.NAME);
-		
-		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
-				
-		TaxonBase selectedTaxonBase = (TaxonBase) selection.getFirstElement();
-
-		AbstractPostOperation operation;
-		
-		try {
-			operation = new ChangeHomotypicalGroupBasionymOperation(event.getCommand().getName(), editor.getUndoContext(),
-								editor.getTaxon(), selectedTaxonBase, editor);
-			EditorUtil.executeOperation(operation);
-		} catch (NotDefinedException e) {
-			logger.warn("Command name not set"); //$NON-NLS-1$
-		}
-		
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SwapSynonymAndAcceptedHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SwapSynonymAndAcceptedHandler.java
deleted file mode 100644
index 799356d41..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/SwapSynonymAndAcceptedHandler.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.operation.SwapSynonymAndAcceptedOperation;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
-
-/**
- * <p>SwapSynonymAndAcceptedHandler class.</p>
- *
- * @author n.hoffmann
- * @created 21.04.2009
- * @version 1.0
- */
-public class SwapSynonymAndAcceptedHandler extends AbstractHandler implements
-		IHandler, IPostOperationEnabled {
-	private static final Logger logger = Logger
-			.getLogger(SwapSynonymAndAcceptedHandler.class);
-	private MultiPageTaxonEditor editor;
-	private Taxon taxon;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	/** {@inheritDoc} */
-	@Override
-    public Object execute(ExecutionEvent event) throws ExecutionException {
-		editor = EditorUtil.getActiveMultiPageTaxonEditor();
-		Shell shell = HandlerUtil.getActiveShell(event);
-		Synonym synonym = (Synonym) EditorUtil.getSelection(event).getFirstElement();
-
-
-		// Force user to save taxon - not really necessary though, is it?
-		if (!EditorUtil.forceUserSave(editor, shell)) {
-			return null;
-		}
-
-		try {
-			SwapSynonymAndAcceptedOperation operation = new SwapSynonymAndAcceptedOperation(event.getCommand().getName(),
-			        editor.getUndoContext(),
-			        editor.getTaxon(),
-			        synonym,
-			        this,
-			        (ICdmEntitySessionEnabled)editor.getEditorInput());
-
-			EditorUtil.executeOperation(operation);
-
-		} catch (NotDefinedException e) {
-			logger.warn("Command name not set"); //$NON-NLS-1$
-		}
-
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.operation.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase, boolean)
-	 */
-	@Override
-	public boolean postOperation(CdmBase objectAffectedByOperation) {
-		// Redraw existing editor
-		//((IPostOperationEnabled) editor).postOperation(null);
-
-		editor.doSave(EditorUtil.getMonitor());
-		editor.close(true);
-
-		if (objectAffectedByOperation instanceof Taxon) {
-
-			taxon = (Taxon) objectAffectedByOperation;
-
-
-		}
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.operation.IPostOperationEnabled#onComplete()
-	 */
-	@Override
-	public boolean onComplete() {
-		Display display = Display.getCurrent();
-		display.asyncExec(new Runnable() {
-			@Override
-            public void run() {
-				try {
-					EditorUtil.openTaxonBaseE4(taxon.getUuid());
-
-				} catch (Exception e) {
-					MessagingUtils.warningDialog(Messages.SwapSynonymAndAcceptedHandler_COULD_NOT_OPEN, this, e.getMessage());
-				}
-
-			}
-		});
-		return true;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateNameRelationOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateNameRelationOperation.java
deleted file mode 100644
index 083b172e5..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/CreateNameRelationOperation.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.operation;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-import eu.etaxonomy.cdm.model.name.NameRelationshipType;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-
-/**
- * <p>CreateNameRelationOperation class.</p>
- *
- * @author n.hoffmann
- * @created Mar 30, 2010
- */
-public class CreateNameRelationOperation extends AbstractPostTaxonOperation {
-
-	private TaxonBase taxonBase;
-	private TaxonName relatedName;
-	private NameRelationshipType type;
-
-	/**
-	 * <p>Constructor for CreateNameRelationOperation.</p>
-	 *
-	 * @param label a {@link java.lang.String} object.
-	 * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-	 * @param taxonBase a {@link eu.etaxonomy.cdm.model.taxon.TaxonBase} object.
-	 * @param relatedName a {@link eu.etaxonomy.cdm.model.name.TaxonNameBase} object.
-	 * @param type a {@link eu.etaxonomy.cdm.model.name.NameRelationshipType} object.
-	 * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-	 */
-	public CreateNameRelationOperation(String label, IUndoContext undoContext, TaxonBase taxonBase, TaxonName relatedName, NameRelationshipType type, IPostOperationEnabled postOperationEnabled) {
-		super(label, undoContext, postOperationEnabled);
-		this.taxonBase = taxonBase;
-		this.relatedName = relatedName;
-		this.type = type;
-	}
-	
-	/** {@inheritDoc} */
-	@Override
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		
-		TaxonName fromName = taxonBase.getName();
-		
-		fromName.addRelationshipToName(relatedName, type, null);
-		
-		return postExecute(taxonBase);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		return execute(monitor, info);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		TaxonName fromName = taxonBase.getName();
-		
-		fromName.removeRelationToTaxonName(relatedName);
-		
-		return postExecute(taxonBase);
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteNameRelationOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteNameRelationOperation.java
deleted file mode 100644
index 2a38fc56b..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteNameRelationOperation.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.operation;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-import eu.etaxonomy.cdm.model.name.NameRelationship;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-
-/**
- * <p>DeleteNameRelationOperation class.</p>
- *
- * @author n.hoffmann
- * @created Mar 30, 2010
- */
-public class DeleteNameRelationOperation extends AbstractPostTaxonOperation {
-
-	private NameRelationship nameRelationship;
-
-	/**
-	 * <p>Constructor for DeleteNameRelationOperation.</p>
-	 *
-	 * @param label a {@link java.lang.String} object.
-	 * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-	 * @param nameRelationship a {@link eu.etaxonomy.cdm.model.name.NameRelationship} object.
-	 * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-	 */
-	public DeleteNameRelationOperation(String label, IUndoContext undoContext, NameRelationship nameRelationship,
-			IPostOperationEnabled postOperationEnabled) {
-		super(label, undoContext, postOperationEnabled);
-		this.nameRelationship = nameRelationship;
-	}
-	
-	/** {@inheritDoc} */
-	@Override
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		
-		TaxonName fromName = nameRelationship.getFromName();
-		
-		fromName.removeRelationToTaxonName(nameRelationship.getToName());
-		
-		return postExecute(null);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		return execute(monitor, info);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteTaxonOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteTaxonOperation.java
deleted file mode 100644
index 92a139266..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteTaxonOperation.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package eu.etaxonomy.taxeditor.editor.name.operation;
-
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-import eu.etaxonomy.cdm.api.application.ICdmRepository;
-import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-public class DeleteTaxonOperation extends DeleteTaxonBaseOperation{
-
-    private final Classification classification;
-
-	public DeleteTaxonOperation(String label,
-	        IUndoContext undoContext,
-			Taxon taxon,
-			TaxonDeletionConfigurator configurator,
-			Classification classification,
-			IPostOperationEnabled postOperationEnabled,
-			IConversationEnabled conversationEnabled,
-            ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
-		super(label, undoContext, configurator, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
-		this.element = taxon;
-
-		Set<TaxonNode> nodes = taxon.getTaxonNodes();
-		if (nodes.size() == 1 && classification == null){
-			this.taxonNode = nodes.iterator().next();
-		} else if (classification != null){
-			Iterator<TaxonNode> iterator = nodes.iterator();
-			while (iterator.hasNext()){
-				TaxonNode node = iterator.next();
-				if (node.getClassification().equals(classification)){
-					this.taxonNode = node;
-				}
-			}
-		} else{
-			//TODO
-		}
-		this.classification = classification;
-
-	}
-
-	@Override
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-
-				monitor.worked(20);
-				bind();
-
-
-				ICdmRepository controller;
-
-				controller = CdmStore.getCurrentApplicationConfiguration();
-
-				ITaxonService service = controller.getTaxonService();
-
-				result =	service.deleteTaxon(element.getUuid(), (TaxonDeletionConfigurator)configurator, classification.getUuid());
-
-
-
-				monitor.worked(40);
-
-
-				return postExecute(null);
-	}
-
-	@Override
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/MoveSynonymToAnotherAcceptedTaxonOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/MoveSynonymToAnotherAcceptedTaxonOperation.java
deleted file mode 100644
index c3bae8071..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/MoveSynonymToAnotherAcceptedTaxonOperation.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package eu.etaxonomy.taxeditor.editor.name.operation;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.api.service.UpdateResult;
-import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-public class MoveSynonymToAnotherAcceptedTaxonOperation extends
-		AbstractPostTaxonOperation {
-
-	/**
-	 * The synonym to be moved.
-	 */
-	private final Synonym synonym;
-
-	private final Taxon oldTaxon;
-
-
-	/**
-	 * <p>Constructor for MoveSynonymToAnotherAcceptedTaxon.</p>
-	 *
-	 * @param label a {@link java.lang.String} object.
-	 * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-	 * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-	 * @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
-
-	 * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-	 */
-	public MoveSynonymToAnotherAcceptedTaxonOperation(String label, IUndoContext undoContext,
-			UUID oldTaxonUUID, UUID synonymUUID, Taxon taxon, IPostOperationEnabled postOperationEnabled) {
-
-		super(label, undoContext, taxon, postOperationEnabled);
-		List<String> propertyPaths =  new ArrayList<String>();
-		propertyPaths.add("synonymRelations"); //$NON-NLS-1$
-		this.element = (Taxon) CdmStore.getService(ITaxonService.class).load(taxon.getUuid(),propertyPaths);
-		this.oldTaxon = (Taxon) CdmStore.getService(ITaxonService.class).load(oldTaxonUUID);
-		this.synonym = (Synonym) CdmStore.getService(ITaxonService.class).load(synonymUUID);
-		if(synonym == null){
-			throw new IllegalArgumentException(
-					"A null synonym was provided."); //$NON-NLS-1$
-		}
-	}
-
-	@Override
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-
-    	// Get synonym name
-		TaxonName synonymName = synonym.getName();
-		monitor.worked(20);
-
-		// Switch groups
-
-		monitor.worked(40);
-
-		((TaxonNameEditor)EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor()).getConversationHolder().commit();
-		UpdateResult result;
-
-		try {
-			result = CdmStore.getService(ITaxonService.class).moveSynonymToAnotherTaxon(synonym,
-			        this.element.getUuid(),
-			        true,
-			        synonym.getType(),
-			        null,
-			        null,
-			        true);
-		} catch (HomotypicalGroupChangeException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		((TaxonNameEditor)EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor()).getConversationHolder().commit();
-
-		// Redraw editor if it exists
-		return postExecute(synonym);
-	}
-
-	@Override
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/RemoveHomotypicalGroupBasionymOperation.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/RemoveHomotypicalGroupBasionymOperation.java
deleted file mode 100644
index 165e05cd4..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/RemoveHomotypicalGroupBasionymOperation.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.name.operation;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-
-/**
- * <p>RemoveHomotypicalGroupBasionymOperation class.</p>
- *
- * @author p.ciardelli
- * @created 15.01.2009
- */
-public class RemoveHomotypicalGroupBasionymOperation extends
-		AbstractPostTaxonOperation {
-
-	private TaxonBase taxonBase;
-
-	/**
-	 * <p>Constructor for RemoveHomotypicalGroupBasionymOperation.</p>
-	 *
-	 * @param text a {@link java.lang.String} object.
-	 * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
-	 * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
-	 * @param taxonBase a {@link eu.etaxonomy.cdm.model.taxon.TaxonBase} object.
-	 * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
-	 */
-	public RemoveHomotypicalGroupBasionymOperation(String text,
-			IUndoContext undoContext, Taxon taxon, TaxonBase taxonBase, IPostOperationEnabled postOperationEnabled) {
-		super(text, undoContext, taxon, postOperationEnabled);
-		
-		this.taxonBase = taxonBase;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		
-		TaxonName name = taxonBase.getName();
-		monitor.worked(20);
-
-		name.removeAsGroupsBasionym();
-		monitor.worked(40);
-
-		return postExecute(taxonBase);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		return execute(monitor, info);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		taxonBase.getName().setAsGroupsBasionym();
-				
-		return postExecute(taxonBase);
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/CreateDescriptionHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/CreateDescriptionHandler.java
index a772e2b3e..12a11a82f 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/CreateDescriptionHandler.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/handler/CreateDescriptionHandler.java
@@ -22,7 +22,7 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateSpecimenDescriptionOperation;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateTaxonDescriptionOperation;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -66,8 +66,8 @@ public class CreateDescriptionHandler extends AbstractHandler {
 			}
 		}
 		// specimen description
-		else if(part instanceof DescriptiveViewPart){
-		    Object viewerInput = ((DescriptiveViewPart)part).getViewer().getInput();
+		else if(part instanceof FactualDataPartE4){
+		    Object viewerInput = ((FactualDataPartE4)part).getViewer().getInput();
 		    if(viewerInput instanceof SpecimenOrObservationBase<?>){
 		        try {
 		            operation = new CreateSpecimenDescriptionOperation(event.getCommand().getName(), EditorUtil.getUndoContext(), (SpecimenOrObservationBase<?>) viewerInput, postOperationEnabled);
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptViewPart.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptViewPart.java
deleted file mode 100644
index dddb037d4..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptViewPart.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.view.concept;
-
-import java.util.Map.Entry;
-
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
-
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.editor.key.AbstractGraphKeyEditor;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
-import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
-import eu.etaxonomy.taxeditor.model.LineSelection;
-import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
-import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
-import eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart;
-import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
-
-/**
- * @author n.hoffmann
- * @created Jan 24, 2011
- * @version 1.0
- */
-public class ConceptViewPart extends AbstractCdmEditorViewPart
-implements IPartContentHasDetails, IPartContentHasSupplementalData{
-
-	public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept"; //$NON-NLS-1$
-
-	private ConceptRelationViewer viewer;
-
-	@Override
-	protected void selectionChanged_internal(IWorkbenchPart workbenchPart, ISelection selection) {
-		if(workbenchPart == this){
-		    return;
-		}
-        Object partObject = workbenchPart;
-        Object wrappedPart = WorkbenchUtility.getE4WrappedPart(partObject);
-        if(wrappedPart!=null){
-            partObject = wrappedPart;
-        }
-		if(AbstractUtility.getActiveE4Editor() == null){
-			showEmptyPage();
-			return;
-		}
-
-        if (partObject instanceof DetailsViewPart || partObject instanceof SupplementalDataViewPart) {
-            // do not show empty page as these views are also used to edit the
-            // description selected in this view
-            return;
-        }
-        else if(partObject instanceof BulkEditor && selection instanceof LineSelection){
-			if(((LineSelection) selection).getFirstElement() instanceof Taxon){
-				showViewer(partObject, (LineSelection) selection);
-			}
-			else{
-				showEmptyPage();
-			}
-			return;
-		}
-		else if(partObject instanceof AbstractGraphKeyEditor){
-			showEmptyPage();
-			return;
-		}
-		else if(partObject instanceof MultiPageTaxonEditor){
-			if(! partObject.equals(this.part)){
-				IEditorInput input = ((IEditorPart) partObject).getEditorInput();
-				showViewer(partObject, new StructuredSelection(input));
-			}
-		}
-		else {
-		    showEmptyPage();
-		}
-
-	}
-
-	@Override
-	protected String createPartTitle(Object selectedObject) {
-		if(selectedObject instanceof TaxonEditorInput){
-			return super.createPartTitle(((TaxonEditorInput) selectedObject).getTaxon());
-		}
-		return super.createPartTitle(selectedObject);
-	}
-
-	@Override
-	public boolean onComplete() {
-		return true;
-	}
-
-	@Override
-	public Viewer getViewer() {
-		return viewer;
-	}
-
-	@Override
-	public void createViewer(Composite parent) {
-		viewer = new ConceptRelationViewer(parent);
-
-		viewer.setContentProvider(new ConceptContentProvider());
-		viewer.setLabelProvider(new ConceptLabelProvider());
-
-
-		viewer.setSorter(new ViewerSorter());
-
-		getSite().setSelectionProvider(viewer);
-
-		createMenu();
-	}
-
-	private void createMenu(){
-		MenuManager menuManager = new MenuManager();
-		menuManager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-
-		getSite().registerContextMenu(menuManager, viewer);
-
-		Control control = viewer.getControl();
-		Menu menu = menuManager.createContextMenu(control);
-		menuManager.setRemoveAllWhenShown(true);
-
-		control.setMenu(menu);
-	}
-
-	@Override
-	public void changed(Object object) {
-		getViewer().refresh();
-		super.changed(object);
-	}
-
-	private class ConceptRelationViewer extends ListViewer {
-
-		public ConceptRelationViewer(Composite parent) {
-			super(parent);
-		}
-
-		@Override
-		public ISelection getSelection() {
-			ISelection selection = super.getSelection();
-			if(selection instanceof IStructuredSelection && !selection.isEmpty()){
-				Object firstElement = ((IStructuredSelection) selection).getFirstElement();
-				TaxonRelationship taxonRelationship = ((Entry<TaxonRelationship, Taxon>)firstElement).getKey();
-				return new StructuredSelection(taxonRelationship);
-
-			}
-			return selection;
-		}
-
-		@Override
-		public void setSelection(ISelection selection) {
-			super.setSelection(selection);
-		}
-
-	}
-
-	@Override
-	protected String getViewName() {
-		return Messages.ConceptViewPart_VIEWER_NAME;
-	}
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/graph/ConceptGraphView.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/graph/ConceptGraphView.java
index d40528d94..e0f91b54f 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/graph/ConceptGraphView.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/graph/ConceptGraphView.java
@@ -4,12 +4,9 @@
 package eu.etaxonomy.taxeditor.editor.view.concept.graph;
 
 import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.zest.core.viewers.GraphViewer;
 import org.eclipse.zest.core.widgets.ZestStyles;
@@ -17,12 +14,8 @@ import org.eclipse.zest.layouts.LayoutAlgorithm;
 import org.eclipse.zest.layouts.LayoutStyles;
 import org.eclipse.zest.layouts.algorithms.TreeLayoutAlgorithm;
 
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
-import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
 
 /**
  * @author andreas
@@ -40,34 +33,34 @@ public class ConceptGraphView extends AbstractCdmEditorViewPart {
 	 */
 	@Override
 	protected void selectionChanged_internal(IWorkbenchPart workbenchPart, ISelection selection) {
-
-        Object partObject = workbenchPart;
-        Object wrappedPart = WorkbenchUtility.getE4WrappedPart(partObject);
-        if(wrappedPart!=null){
-            partObject = wrappedPart;
-        }
-//		if(part instanceof ConceptGraphView){
-//			// ConceptGraphView is maximized
+	    //FIXME E4 migrate or delete
+//        Object partObject = workbenchPart;
+//        Object wrappedPart = WorkbenchUtility.getE4WrappedPart(partObject);
+//        if(wrappedPart!=null){
+//            partObject = wrappedPart;
+//        }
+////		if(part instanceof ConceptGraphView){
+////			// ConceptGraphView is maximized
+////			return;
+////		}
+//
+//		if(EditorUtil.getActiveE4Editor() == null){
+//			showEmptyPage();
 //			return;
 //		}
-
-		if(EditorUtil.getActiveE4Editor() == null){
-			showEmptyPage();
-			return;
-		}
-
-		if(partObject instanceof BulkEditor){
-			showEmptyPage();
-			return;
-		}
-
-
-		if(partObject instanceof MultiPageTaxonEditor){
-			if(! partObject.equals(this.part)){
-				IEditorInput input = ((IEditorPart) partObject).getEditorInput();
-				showViewer(partObject, new StructuredSelection(input));
-			}
-		}
+//
+//		if(partObject instanceof BulkEditor){
+//			showEmptyPage();
+//			return;
+//		}
+//
+//
+//		if(partObject instanceof MultiPageTaxonEditor){
+//			if(! partObject.equals(this.part)){
+//				IEditorInput input = ((IEditorPart) partObject).getEditorInput();
+//				showViewer(partObject, new StructuredSelection(input));
+//			}
+//		}
 
 	}
 
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/ChangeConceptRelationshipTypeHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/ChangeConceptRelationshipTypeHandler.java
deleted file mode 100644
index d9d8d7661..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/ChangeConceptRelationshipTypeHandler.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.view.concept.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.swt.widgets.Event;
-
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-
-/**
- * <p>ChangeConceptRelationshipTypeHandler class.</p>
- *
- * @author n.hoffmann
- * @created 22.04.2009
- * @version 1.0
- */
-public class ChangeConceptRelationshipTypeHandler extends AbstractHandler
-		implements IHandler {
-	private static final Logger logger = Logger
-			.getLogger(ChangeConceptRelationshipTypeHandler.class);
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	/** {@inheritDoc} */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
-				Page.NAME);
-
-		Taxon selectedElement = (Taxon) EditorUtil.getSelection(event).getFirstElement();
-		
-		TaxonRelationshipType type = (TaxonRelationshipType) ((Event)event.getTrigger()).data;
-		
-		AbstractPostOperation operation;
-		try {
-			operation = new ChangeConceptRelationshipTypeOperation(event.getCommand().getName(), 
-										editor.getUndoContext(), editor.getTaxon(), selectedElement, type, editor);
-			EditorUtil.executeOperation(operation);
-		} catch (NotDefinedException e) {
-			logger.warn("Command name not set"); //$NON-NLS-1$
-		}
-		
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/ChangeConceptRelationshipTypeMenu.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/ChangeConceptRelationshipTypeMenu.java
deleted file mode 100644
index f1161d1e1..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/ChangeConceptRelationshipTypeMenu.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.view.concept.handler;
-
-
-
-/**
- * <p>ChangeConceptRelationshipTypeMenu class.</p>
- *
- * @author n.hoffmann
- * @created 22.04.2009
- * @version 1.0
- */
-public class ChangeConceptRelationshipTypeMenu extends
-		AbstractDynamicConceptRelationMenu {
-	
-	public String commandName = "eu.etaxonomy.taxeditor.editor.name.changeConceptRelationshipType"; //$NON-NLS-1$
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.editor.handler.AbstractDynamicConceptRelationMenu#getCommandName()
-	 */
-	/** {@inheritDoc} */
-	@Override
-	public String getCommandName() {
-		return commandName;
-	}
-	
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/CreateConceptRelationHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/CreateConceptRelationHandler.java
deleted file mode 100644
index db4522632..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/CreateConceptRelationHandler.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.view.concept.handler;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.view.concept.operation.CreateConceptRelationOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonBaseSelectionDialog;
-
-/**
- * @author n.hoffmann
- * @created 16.04.2009
- * @version 1.0
- */
-public class CreateConceptRelationHandler extends AbstractHandler {
-
-	/** {@inheritDoc} */
-	@Override
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-	    IUndoContext undoContext = null;
-	    ConversationHolder conversationHolder = null;
-	    Taxon taxon = null;
-		Object activeEditor = AbstractUtility.getActiveE4Editor();
-		if(activeEditor instanceof MultiPageTaxonEditor){
-		    MultiPageTaxonEditor taxonEditor = (MultiPageTaxonEditor)activeEditor;
-		    taxon = taxonEditor.getTaxon();
-		    conversationHolder = taxonEditor.getConversationHolder();
-		    undoContext = taxonEditor.getUndoContext();
-		}
-		else if(activeEditor instanceof BulkEditor){
-		    BulkEditor bulkEditor = (BulkEditor)activeEditor;
-            ISelection selection = bulkEditor.getSelectionProvider().getSelection();
-		    taxon = (Taxon) ((IStructuredSelection)selection).getFirstElement();
-		    conversationHolder = bulkEditor.getConversationHolder();
-		    undoContext = bulkEditor.getUndoContext();
-		}
-
-
-		/* we need to get the activePart before calling TaxonBaseSelectionDialog.selectTaxon(), otherwise the
-		 * the variable of the parent applicationContext in event are overwritten during this method call
-		 * this is Linux specific bugfix see: #2685 ([LINUX] Editing concept relationships does not work under linux)
-		 */
-		IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
-
-		Taxon relatedConcept = TaxonBaseSelectionDialog.selectTaxon(HandlerUtil.getActiveShell(event), conversationHolder, taxon);
-
-
-		if(relatedConcept == null){
-			return Status.CANCEL_STATUS;
-		}
-		TaxonRelationshipType type = (TaxonRelationshipType) ((Event)event.getTrigger()).data;
-		boolean isInverse = type.getInverseLabel().isEmpty()?false:true;
-		TaxonRelationshipTypeInverseContainer typeInverseContainer =new TaxonRelationshipTypeInverseContainer(type, isInverse) ;
-
-
-		IPostOperationEnabled postOperationEnabled = (activePart instanceof IPostOperationEnabled) ? (IPostOperationEnabled) activePart : null;
-
-		try {
-			AbstractPostOperation operation = new CreateConceptRelationOperation(event.getCommand().getName(),
-					undoContext, taxon, relatedConcept, typeInverseContainer, postOperationEnabled);
-			AbstractUtility.executeOperation(operation);
-		} catch (NotDefinedException e) {
-			MessagingUtils.warn(getClass(), "Command name not set"); //$NON-NLS-1$
-		}
-
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/DeleteConceptRelationHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/DeleteConceptRelationHandler.java
deleted file mode 100644
index 179db9fa1..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/DeleteConceptRelationHandler.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.view.concept.handler;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.view.concept.operation.DeleteConceptRelationOperation;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-
-/**
- * @author n.hoffmann
- * @created Jan 25, 2011
- * @version 1.0
- */
-public class DeleteConceptRelationHandler extends AbstractHandler {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	@Override
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
-				Page.NAME);
-		
-		ISelection selection = HandlerUtil.getActiveSite(event).getSelectionProvider().getSelection();
-		
-		Set<TaxonRelationship> relations = new HashSet<TaxonRelationship>();
-		
-		if(selection instanceof IStructuredSelection){
-			IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-			Iterator iterator = structuredSelection.iterator();
-			
-			while (iterator.hasNext()){
-				Object element = iterator.next();
-				if(element instanceof TaxonRelationship){
-					relations.add((TaxonRelationship) element);
-				}
-			}
-		}
-		
-		IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
-		IPostOperationEnabled postOperationEnabled = (activePart instanceof IPostOperationEnabled) ? (IPostOperationEnabled) activePart : null;
-		
-		try {
-			AbstractPostOperation operation = new DeleteConceptRelationOperation(event.getCommand().getName(), 
-					editor.getUndoContext(), editor.getTaxon(), relations, postOperationEnabled);
-			EditorUtil.executeOperation(operation);
-		} catch (NotDefinedException e) {
-			MessagingUtils.warn(getClass(), "Command name not set"); //$NON-NLS-1$
-		}
-		
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/OpenRelatedConceptHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/OpenRelatedConceptHandler.java
deleted file mode 100644
index 59d701d15..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/OpenRelatedConceptHandler.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.view.concept.handler;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.LineSelection;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-
-/**
- * @author n.hoffmann
- * @created Jan 25, 2011
- * @version 1.0
- */
-public class OpenRelatedConceptHandler extends AbstractHandler {
-
-	@Override
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		ISelection selection = HandlerUtil.getCurrentSelection(event);
-        TaxonBase<?> relatedTaxon = null;
-
-        if(selection instanceof IStructuredSelection){
-            IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-            Object selectedElement = structuredSelection.getFirstElement();
-
-            if(selectedElement instanceof TaxonRelationship){
-                Object activeEditor = AbstractUtility.getActiveE4Editor();
-                if(activeEditor instanceof MultiPageTaxonEditor){
-                    relatedTaxon = getRelatedTaxon((TaxonRelationship) selectedElement, ((MultiPageTaxonEditor) activeEditor).getTaxon());
-                }
-                else if(activeEditor instanceof BulkEditor){
-                    ISelection bulkSelection = ((BulkEditor)activeEditor).getSelectionProvider().getSelection();
-                    if(bulkSelection instanceof LineSelection){
-                        Object firstElement = ((LineSelection)bulkSelection).getFirstElement();
-                        if(firstElement instanceof Taxon){
-                            relatedTaxon = getRelatedTaxon((TaxonRelationship) selectedElement, (Taxon) firstElement);
-                        }
-                    }
-                }
-            }
-        }
-
-		if(relatedTaxon==null){
-		    MessagingUtils.messageDialog(Messages.OpenRelatedConceptHandler_COULD_NOT_OPEN, getClass(),
-		            String.format(Messages.OpenRelatedConceptHandler_COULD_NOT_OPEN_MESSAGE ,relatedTaxon), null);
-		}
-		else{
-		    openConcept(relatedTaxon);
-		}
-
-		return null;
-	}
-
-    /**
-     * @param relatedTaxon
-     */
-    protected void openConcept(TaxonBase<?> relatedTaxon) {
-        try {
-            EditorUtil.openTaxonBaseE4(relatedTaxon.getUuid());
-        } catch (PartInitException e) {
-            MessagingUtils.messageDialog(Messages.OpenRelatedConceptHandler_COULD_NOT_OPEN, getClass(),
-                    String.format(Messages.OpenRelatedConceptHandler_COULD_NOT_OPEN_MESSAGE ,relatedTaxon), e);
-        }
-    }
-
-	private Taxon getRelatedTaxon(TaxonRelationship relationship, Taxon taxon){
-		if (relationship.getFromTaxon().equals(taxon)){
-			return relationship.getToTaxon();
-		}
-		else if(relationship.getToTaxon().equals(taxon)){
-			return relationship.getFromTaxon();
-		}
-		else{
-			return null;
-		}
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/OpenRelatedConceptInBulkEditorHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/OpenRelatedConceptInBulkEditorHandler.java
deleted file mode 100644
index 1b3e6c1e2..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/handler/OpenRelatedConceptInBulkEditorHandler.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package eu.etaxonomy.taxeditor.editor.view.concept.handler;
-
-import org.eclipse.ui.PartInitException;
-
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-
-public class OpenRelatedConceptInBulkEditorHandler extends OpenRelatedConceptHandler{
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected void openConcept(TaxonBase<?> relatedTaxon) {
-        try {
-            BulkEditorUtil.openEditor(relatedTaxon);
-        } catch (PartInitException e) {
-            MessagingUtils.error(this.getClass(), "Bulk Editor could not be opened for "+relatedTaxon, e);
-        }
-    }
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java
index 106ac2f15..88e594591 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java
@@ -45,10 +45,10 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
+import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
 import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditor;
-import eu.etaxonomy.taxeditor.editor.view.media.MediaViewPart;
+import eu.etaxonomy.taxeditor.editor.view.media.e4.MediaViewPartE4;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainerTree;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
@@ -176,7 +176,7 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
 		}
 
         if (partObject instanceof DetailsViewPart || partObject instanceof SupplementalDataViewPart
-                || partObject instanceof MediaViewPart) {
+                || partObject instanceof MediaViewPartE4) {
             // do not show empty page as these views are also used to edit the
             // description selected in this view
             return;
@@ -194,8 +194,8 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
         }
         if(selection instanceof IStructuredSelection){
             Object firstElement = ((IStructuredSelection) selection).getFirstElement();
-            if (partObject instanceof MultiPageTaxonEditor){
-            	if (firstElement != ((MultiPageTaxonEditor)partObject).getTaxon()){
+            if (partObject instanceof TaxonNameEditorE4){
+            	if (firstElement != ((TaxonNameEditorE4)partObject).getTaxon()){
             		showEmptyPage();
             		return;
             	}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionToOtherTaxonHandlerE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionToOtherTaxonHandlerE4.java
index 60bf6a78d..f9c7a64c3 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionToOtherTaxonHandlerE4.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/e4/handler/MoveDescriptionToOtherTaxonHandlerE4.java
@@ -29,7 +29,6 @@ import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
 import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
@@ -167,7 +166,7 @@ public class MoveDescriptionToOtherTaxonHandlerE4 implements IPostOperationEnabl
         FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
 
         Object e4WrappedPart = WorkbenchUtility.getE4WrappedPart(factualDataPart.getSelectionProvidingPart());
-        if(e4WrappedPart instanceof MultiPageTaxonEditor){
+        if(e4WrappedPart instanceof TaxonNameEditorE4){
             ISelection selection = factualDataPart.getViewer().getSelection();
             if(selection instanceof IStructuredSelection){
                 Object firstElement = ((IStructuredSelection) selection).getFirstElement();
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DeleteHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DeleteHandler.java
deleted file mode 100644
index e66cecf8a..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DeleteHandler.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.view.descriptive.handler;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.api.service.config.MediaDeletionConfigurator;
-import eu.etaxonomy.cdm.model.description.DescriptionBase;
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.SpecimenDescription;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
-import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
-import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteSpecimenDescriptionOperation;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteTaxonDescriptionOperation;
-import eu.etaxonomy.taxeditor.editor.view.media.operation.DeleteMediaOperation;
-import eu.etaxonomy.taxeditor.editor.view.media.operation.RemoveImageFromDescriptionElementOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
-import eu.etaxonomy.taxeditor.ui.dialog.configurator.deleteConfigurator.DeleteConfiguratorDialog;
-
-/**
- * <p>DeleteDescriptionHandler class.</p>
- *
- * @author n.hoffmann
- * @created Jun 22, 2010
- * @version 1.0
- */
-public class DeleteHandler extends AbstractHandler {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	/** {@inheritDoc} */
-	@Override
-    public Object execute(ExecutionEvent event) throws ExecutionException {
-		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getActiveSite(event).getSelectionProvider().getSelection();
-
-		IWorkbenchPart part = HandlerUtil.getActivePart(event);
-		IPostOperationEnabled postOperationEnabled = (part instanceof IPostOperationEnabled) ? (IPostOperationEnabled) part : null;
-		ICdmEntitySessionEnabled cdmEntitySessionEnabled = (part instanceof ICdmEntitySessionEnabled) ? (ICdmEntitySessionEnabled) part : null;
-
-		try {
-			String label = event.getCommand().getName();
-
-			IUndoContext undoContext = EditorUtil.getUndoContext();
-
-			List<AbstractPostOperation<?>> operations = new ArrayList<AbstractPostOperation<?>>();
-
-			for(Object object : selection.toArray()){
-
-				// TaxonDescription
-				if(object instanceof TaxonDescription){
-					operations.add(new DeleteTaxonDescriptionOperation(label, undoContext, (TaxonDescription) object, postOperationEnabled, cdmEntitySessionEnabled));
-				}
-				else if(object instanceof SpecimenDescription){
-				    operations.add(new DeleteSpecimenDescriptionOperation(label, undoContext, (SpecimenDescription) object, postOperationEnabled, cdmEntitySessionEnabled)) ;
-				}
-				// DescriptionElementBase
-				else if(object instanceof DescriptionElementBase){
-					operations.add(new DeleteDescriptionElementOperation(label, undoContext, (DescriptionElementBase) object, postOperationEnabled, cdmEntitySessionEnabled));
-				}
-				else if(object instanceof FeatureNodeContainer){
-					List<DescriptionElementBase> descriptions = ((FeatureNodeContainer) object).getDescriptionElementsForEntireBranch();
-
-					for(DescriptionElementBase description : descriptions){
-						operations.add(new DeleteDescriptionElementOperation(label, undoContext, description, postOperationEnabled, cdmEntitySessionEnabled));
-					}
-				}
-				// Media
-				else if(object instanceof Media){
-					TreeSelection treeSelection = (TreeSelection) selection;
-
-					TreePath[] path = treeSelection.getPathsFor(object);
-
-					DescriptionBase<?> imageGallery = (DescriptionBase<?>) path[0].getFirstSegment();
-
-					// TODO use undo context specific to editor
-                    MediaDeletionConfigurator config = new MediaDeletionConfigurator();
-                    config.setDeleteFromDescription(true);
-                    config.setOnlyRemoveFromGallery(false);
-                    
-                    if (imageGallery instanceof SpecimenDescription){
-                    	config.setDeleteFrom(((SpecimenDescription)imageGallery).getDescribedSpecimenOrObservation());
-                    } else if (imageGallery instanceof TaxonDescription){
-                    	config.setDeleteFrom(((TaxonDescription)imageGallery).getTaxon());
-                    }else if (imageGallery instanceof TaxonNameDescription){
-                    	config.setDeleteFrom(((TaxonNameDescription)imageGallery).getTaxonName());
-                    }
-                    	
-
-                    if (!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), Messages.DeleteHandler_CONFIRM_DELETION,  Messages.DeleteHandler_CONFIRM_DELETION_MESSAGE)){
-                        return null;
-                    }
-
-
-
-                    if (config.isOnlyRemoveFromGallery() || ((Media)object).getId() == 0){
-                        operations.add(new RemoveImageFromDescriptionElementOperation(label, undoContext,  (Media) object, imageGallery, postOperationEnabled));
-                    }else{
-                        operations.add(new DeleteMediaOperation(label, undoContext, imageGallery, (Media) object, config, postOperationEnabled));
-                    }
-
-
-
-				}
-				else{
-					MessagingUtils.error(getClass(), Messages.DeleteHandler_INVALID_SELECTION, null);
-				}
-			}
-
-			// execute all cumulated operations
-			for(AbstractPostOperation<?> operation : operations){
-				AbstractUtility.executeOperation(operation);
-			}
-
-		} catch (NotDefinedException e) {
-			MessagingUtils.warn(getClass(), "Command name not set."); //$NON-NLS-1$
-		}
-
-
-		return null;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DescriptionsMenuPropertyTester.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DescriptionsMenuPropertyTester.java
deleted file mode 100644
index 0d1da780d..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DescriptionsMenuPropertyTester.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/**
- *
- */
-package eu.etaxonomy.taxeditor.editor.view.descriptive.handler;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-import eu.etaxonomy.cdm.model.description.DescriptionBase;
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
-import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
-
-/**
- * Property tester used by the description tree menu.
- *
- * @author p.ciardelli
- * @author n.hoffmann
- * @version $Id: $
- */
-public class DescriptionsMenuPropertyTester extends PropertyTester {
-
-	private static final String MEDIA = "isMedia"; //$NON-NLS-1$
-	private static final String FEATURE_NODE_CONTAINER = "isFeatureNodeContainer"; //$NON-NLS-1$
-	private static final String DESCRIPTION = "isDescription"; //$NON-NLS-1$
-	private static final String INDIVIDUALS_ASSOCIATION = "isIndividualsAssociation"; //$NON-NLS-1$
-	private static final String DESCRIPTION_ELEMENT = "isDescriptionElement"; //$NON-NLS-1$
-	private static final String DELETABLE = "isDeletable"; //$NON-NLS-1$
-	private static final String IMAGE_GALLERY = "isImageGallery"; //$NON-NLS-1$
-	private static final String TAXON_EDITOR = "isTaxonEditor"; //$NON-NLS-1$
-	private static final String BULK_EDITOR = "isBulkEditor"; //$NON-NLS-1$
-	private static final String DERIVATE_EDITOR = "isDerivateEditor"; //$NON-NLS-1$
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
-	 */
-	/** {@inheritDoc} */
-	@Override
-    public boolean test(Object receiver, String property, Object[] args,
-			Object expectedValue) {
-
-	    if(TAXON_EDITOR.equals(property)){
-	        return isTaxonEditor();
-	    }
-	    else if(BULK_EDITOR.equals(property)){
-	        return isBulkEditor();
-	    }
-	    else if(DERIVATE_EDITOR.equals(property)){
-	        return isDerivateEditor();
-	    }
-
-	    Object[] selectedElements = ((IStructuredSelection) receiver).toArray();
-
-	    if(selectedElements.length == 0){
-			// nothing selected so all tests should fail
-			return false;
-		}
-
-		if(MEDIA.equals(property)){
-			return isMedia(selectedElements);
-		}
-		else if(FEATURE_NODE_CONTAINER.equals(property)){
-			return isFeatureNodeContainer(selectedElements);
-		}
-		else if(DESCRIPTION.equals(property)){
-			return isDescription(selectedElements);
-		}
-		else if(INDIVIDUALS_ASSOCIATION.equals(property)){
-		    return isIndividualsAssociation(selectedElements);
-		}
-		else if(DESCRIPTION_ELEMENT.equals(property)){
-			return isDescriptionElement(selectedElements);
-		}
-		else if(DELETABLE.equals(property)){
-			return isDeletable(selectedElements);
-		}
-		else if(IMAGE_GALLERY.equals(property)){
-			return isImageGallery(selectedElements);
-		}
-		else{
-			return false;
-		}
-	}
-
-	private boolean isImageGallery(Object[] selectedElements) {
-		for (Object object : selectedElements){
-			if(!(object instanceof DescriptionBase) || !((DescriptionBase<?>) object).isImageGallery()){
-				return false;
-			}
-		}
-		return true;
-	}
-
-	private boolean isFeatureNodeContainer(Object[] selectedElements) {
-		for (Object object : selectedElements){
-			if(!(object instanceof FeatureNodeContainer)){
-				return false;
-			}
-		}
-		return true;
-	}
-
-	private boolean isDeletable(Object[] selectedElements) {
-		boolean result = false;
-
-		for (Object object : selectedElements) {
-
-			if((object instanceof DescriptionBase)
-				|| (object instanceof DescriptionElementBase)
-				|| (object instanceof Media)
-				|| (object instanceof FeatureNodeContainer)){
-				result = true;
-			}else{
-				return false;
-			}
-
-		}
-		return result;
-	}
-
-	private boolean isDescriptionElement(Object[] selectedElements) {
-		for (Object object : selectedElements){
-			if(!(object instanceof DescriptionElementBase)){
-				return false;
-			}
-		}
-		return true;
-	}
-
-	private boolean isDescription(Object[] selectedElements) {
-		for (Object object : selectedElements){
-			if(!(object instanceof DescriptionBase)){
-				return false;
-			}
-		}
-		return true;
-	}
-
-	private boolean isIndividualsAssociation(Object[] selectedElements) {
-	    for (Object object : selectedElements){
-	        if(!(object instanceof IndividualsAssociation)){
-	            return false;
-	        }
-	    }
-	    return true;
-	}
-
-	private boolean isMedia(Object[] selectedElements) {
-		for (Object object : selectedElements){
-			if(!(object instanceof Media)){
-				return false;
-			}
-		}
-		return true;
-	}
-
-	private boolean isTaxonEditor() {
-	    if(AbstractUtility.getActiveE4Editor() instanceof MultiPageTaxonEditor){
-	        return true;
-	    }
-	    return false;
-	}
-
-	private boolean isBulkEditor() {
-	    if(AbstractUtility.getActiveE4Editor() instanceof BulkEditor){
-	        return true;
-	    }
-	    return false;
-	}
-
-	private boolean isDerivateEditor() {
-	    if(AbstractUtility.getActiveE4Editor() instanceof DerivateView){
-	        return true;
-	    }
-	    return false;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DynamicFeatureMenu.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DynamicFeatureMenu.java
deleted file mode 100644
index f9e466e4b..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/DynamicFeatureMenu.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy
- * http://www.e-taxonomy.eu
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * See LICENSE.TXT at the top of this package for the full license terms.
- */
-
-package eu.etaxonomy.taxeditor.editor.view.descriptive.handler;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.actions.CompoundContributionItem;
-import org.eclipse.ui.handlers.IHandlerService;
-
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.description.DescriptionBase;
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.Feature;
-import eu.etaxonomy.cdm.model.description.FeatureNode;
-import eu.etaxonomy.cdm.model.description.FeatureTree;
-import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.CreateDescriptionElementOperation;
-import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- *
- * @author n.hoffmann
- * @created 17.04.2009
- * @version 1.0
- */
-public class DynamicFeatureMenu extends CompoundContributionItem {
-
-	/** {@inheritDoc} */
-	@Override
-	protected IContributionItem[] getContributionItems() {
-
-		return new IContributionItem[] { new ContributionItem() {
-			@Override
-            public void fill(Menu menu, int index) {
-			    ISelectionService selectionService = TaxeditorEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getSelectionService();
-
-				ISelection selection = selectionService.getSelection(DescriptiveViewPart.ID);
-
-				if (selection instanceof IStructuredSelection) {
-					IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-					Object selectedElement = structuredSelection
-							.getFirstElement();
-
-					if (selectedElement instanceof DescriptionBase<?>) {
-						FeatureTree featureTree = getFeatureTree((DescriptionBase<?>) selectedElement);
-
-						for (FeatureNode childNode : featureTree.getRootChildren()) {
-							createMenuItem(menu, childNode.getFeature());
-
-						}
-					} else if (selectedElement instanceof FeatureNodeContainer) {
-						FeatureNode featureNode = ((FeatureNodeContainer) selectedElement)
-								.getFeatureNode();
-
-						// add the feature to the menu
-						createMenuItem(menu, featureNode.getFeature());
-
-						// add possible children to the menu
-						for (FeatureNode childNode : featureNode.getChildNodes()) {
-							createMenuItem(menu, childNode.getFeature());
-						}
-					} else if (selectedElement instanceof DescriptionElementBase) {
-						Feature feature = ((DescriptionElementBase) selectedElement)
-								.getFeature();
-						createMenuItem(menu, feature);
-					}
-				}
-			}
-		} };
-	}
-
-	private void createMenuItem(Menu menu, final Feature feature) {
-		MenuItem menuItem = new MenuItem(menu, -1);
-		final Feature deproxiedFeature = HibernateProxyHelper.deproxy(feature, Feature.class);
-
-		String label = deproxiedFeature.getLabel(PreferencesUtil.getGlobalLanguage());
-		if (label == null){
-			label = deproxiedFeature.getLabel();
-		}
-		if(label == null){
-		    label = deproxiedFeature.generateTitle();
-		}
-		if(label == null){
-		    label = deproxiedFeature.toString();
-		}
-		menuItem.setText(label);
-		menuItem.addSelectionListener(new SelectionListener() {
-
-			@Override
-            public void widgetDefaultSelected(SelectionEvent e) {
-			}
-
-			@Override
-            public void widgetSelected(SelectionEvent ev) {
-				Event event = new Event();
-				event.data = deproxiedFeature;
-				try {
-				    TaxeditorEditorPlugin.getDefault().getWorkbench().getService(IHandlerService.class).executeCommand(
-							CreateDescriptionElementOperation.ID, event);
-				} catch (Exception e) {
-					MessagingUtils.error(getClass(), e);
-				}
-			}
-		});
-
-	}
-
-	/**
-	 * Retrieves the feature tree associated with the given description
-	 *
-	 * TODO as of now this is always the same thing because feature trees may
-	 * not be associated to descriptions yet.
-	 *
-	 * @param description
-	 * @return
-	 */
-	private FeatureTree getFeatureTree(DescriptionBase description) {
-		FeatureTree featureTree = null;
-
-		// TODO change this to the feature tree associated with this taxon
-		// description
-		if (description.hasStructuredData()) {
-			featureTree = PreferencesUtil
-					.getDefaultFeatureTreeForStructuredDescription();
-		} else {
-			featureTree = PreferencesUtil
-					.getDefaultFeatureTreeForTextualDescription();
-		}
-
-		if (featureTree == null) {
-			featureTree = FeatureTree.NewInstance(CdmStore.getTermManager()
-					.getPreferredTerms(Feature.class));
-		}
-
-		return featureTree;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/MoveDescriptionElementsHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/MoveDescriptionElementsHandler.java
deleted file mode 100644
index 808ded662..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/MoveDescriptionElementsHandler.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.view.descriptive.handler;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.api.service.IDescriptionService;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.description.DescriptionBase;
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.MoveDescriptionElementsOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
-
-
-/**
- * @author n.hoffmann
- * @created Feb 8, 2011
- * @version 1.0
- */
-public class MoveDescriptionElementsHandler extends AbstractHandler implements IPostOperationEnabled{
-	private UUID newAcceptedTaxonNodeUuid;
-	private TaxonNameEditor editor;
-
-	@Override
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-
-//		ConversationHolder conversation = CdmStore.createConversation();
-		editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(Page.NAME);
-		ISelection selection = HandlerUtil.getCurrentSelection(event);
-		Taxon actualTaxon= null;
-		if(selection instanceof IStructuredSelection){
-
-			IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-
-			List<DescriptionElementBase> elements = new ArrayList<DescriptionElementBase>();
-
-			for(Object element : structuredSelection.toArray()){
-				if(element instanceof DescriptionElementBase){
-					UUID uuid = ((DescriptionElementBase) element).getUuid();
-
-					elements.add(CdmStore.getService(IDescriptionService.class).loadDescriptionElement(uuid, null));
-				} else if(element instanceof FeatureNodeContainer){
-					for(DescriptionElementBase de : ((FeatureNodeContainer)element).getDescriptionElements()){
-						elements.add(
-								CdmStore.getService(IDescriptionService.class).loadDescriptionElement(de.getUuid(), null)
-							);
-					}
-				}
-			}
-
-			if(elements.size() == 0){
-				return null;
-			}
-			DescriptionBase description = elements.get(0).getInDescription();
-			List<UUID> excludeTaxa = new ArrayList<UUID>();
-			if (description!=null && description.isInstanceOf(TaxonDescription.class)){
-				TaxonDescription taxonDescription = HibernateProxyHelper.deproxy(description, TaxonDescription.class);
-				actualTaxon = taxonDescription.getTaxon();
-				excludeTaxa.add(actualTaxon.getUuid());
-			}
-			Classification classification = null;
-			TaxonNode actualNode = null;
-			if (actualTaxon != null){
-			    if (!actualTaxon.getTaxonNodes().isEmpty() && actualTaxon.getTaxonNodes().size() ==1){
-			        actualNode = actualTaxon.getTaxonNodes().iterator().next();
-			        classification = actualNode.getClassification();
-
-			    }
-			}
-			TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
-					editor.getConversationHolder(),
-					Messages.MoveDescriptionElementsHandler_CHOOSE_ACC_TAXON,
-					excludeTaxa,
-					null, classification
-					);
-			if (newAcceptedTaxonNode != null){
-    			Taxon targetTaxon = newAcceptedTaxonNode.getTaxon();
-
-    			if(targetTaxon == null){
-    				// canceled
-    				return null;
-    			}
-    			newAcceptedTaxonNodeUuid = newAcceptedTaxonNode.getUuid();
-
-    			String moveMessage = String.format(Messages.MoveDescriptionElementsHandler_ELEMENTS_MOVED, EditorUtil.getActiveMultiPageTaxonEditor().getTaxon());
-
-    			try {
-    				AbstractPostOperation operation = new MoveDescriptionElementsOperation(
-    						event.getCommand().getName(), EditorUtil.getUndoContext(),
-    						targetTaxon.getUuid(), moveMessage, elements, false, this);
-
-    				AbstractUtility.executeOperation(operation);
-
-    				//CdmStore.getService(ITaxonService.class).saveOrUpdate(targetTaxon);
-
-    			} catch (NotDefinedException e) {
-    				MessagingUtils.error(getClass(), e);
-    			}
-			}
-		}
-
-		return null;
-	}
-
-	/** {@inheritDoc} */
-	@Override
-    public boolean postOperation(CdmBase objectAffectedByOperation) {
-
-		editor.getConversationHolder().bind();
-		editor.getConversationHolder().commit(true);
-		Display.getDefault().asyncExec(new Runnable(){
-
-            @Override
-            public void run() {
-				//AbstractUtility.close(editor.getMultiPageTaxonEditor());
-
-				try {
-					MultiPageTaxonEditor possibleOpenEditor = (MultiPageTaxonEditor) EditorUtil.findEditorByTaxonNodeUuid(newAcceptedTaxonNodeUuid);
-					if(possibleOpenEditor != null){
-						AbstractUtility.close(possibleOpenEditor);
-					}
-					EditorUtil.openTaxonBaseE4(newAcceptedTaxonNodeUuid);
-				} catch (PartInitException e) {
-					MessagingUtils.error(this.getClass(), e);
-					throw new RuntimeException(e);
-				} catch (Exception e) {
-					MessagingUtils.warningDialog(Messages.MoveDescriptionElementsHandler_CREATE_FAILURE, this, e.getMessage());
-				}
-			}
-
-		});
-
-
-		return true;
-	}
-
-	@Override
-	public boolean onComplete() {
-		return false;
-	}
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/MoveDescriptionToOtherTaxonHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/MoveDescriptionToOtherTaxonHandler.java
deleted file mode 100644
index 7c02d900e..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/MoveDescriptionToOtherTaxonHandler.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/**
- *
- */
-package eu.etaxonomy.taxeditor.editor.view.descriptive.handler;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.cdm.api.service.IDescriptionService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.description.DescriptionBase;
-import eu.etaxonomy.cdm.model.description.TaxonDescription;
-import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.MoveDescriptionToOtherTaxonOperation;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
-
-/**
- * <p>ChangeAcceptedTaxonToSynonymHandler class.</p>
- *
- * @author a.kohlbecker
- * @created Okt. 11, 2013
- * @version 1.0
- *
- */
-public class MoveDescriptionToOtherTaxonHandler extends AbstractHandler
-		implements IPostOperationEnabled {
-	private static final Logger logger = Logger
-			.getLogger(MoveDescriptionToOtherTaxonHandler.class);
-	private MoveDescriptionToOtherTaxonOperation operation;
-
-	private UUID newAcceptedTaxonNodeUuid;
-	private MultiPageTaxonEditor editor;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	/** {@inheritDoc} */
-	@Override
-    public Object execute(ExecutionEvent event) throws ExecutionException {
-
-		ISelection selection = HandlerUtil.getCurrentSelection(event);
-		editor = EditorUtil.getActiveMultiPageTaxonEditor();
-		if (this.editor.isDirty()){
-		    boolean proceed = MessageDialog.openQuestion(null,
-	                   Messages.MoveDescriptionToOtherTaxonHandler_SAVE_CHANGES, Messages.MoveDescriptionToOtherTaxonHandler_SAVE_CHANGES_MESSAGE);
-	        if (proceed) {
-	            editor.doSave(EditorUtil.getMonitor());
-	        } else {
-	            return null;
-	        }
-
-		}
-
-
-		if(selection instanceof IStructuredSelection){
-
-			List<TaxonDescription> descriptions = new ArrayList<TaxonDescription>();
-
-			IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-
-			for(Object element : structuredSelection.toArray()){
-				UUID uuid = null;
-				if (element instanceof FeatureNodeContainer){
-					uuid = ((FeatureNodeContainer)element).getDescription().getUuid();
-				}	else if (element instanceof DescriptionBase){
-					uuid = ((DescriptionBase)element).getUuid();
-				}
-
-				if (uuid != null){
-					descriptions.add((TaxonDescription) CdmStore.getService(IDescriptionService.class).load(uuid, null));
-				}
-			}
-			if(descriptions.size() == 0){
-				return null;
-			}
-
-			// Choose the target taxon
-			List<UUID> excludeTaxa = new ArrayList<UUID>();
-
-
-			excludeTaxa.add(descriptions.get(0).getTaxon().getUuid());
-
-			//get current taxon node
-			TaxonNode node = null;
-			Classification classification = null;
-			MultiPageTaxonEditor taxonEditor = EditorUtil.getActiveMultiPageTaxonEditor();
-            if(taxonEditor!=null){
-                node = ((TaxonEditorInput) taxonEditor.getEditorInput()).getTaxonNode();
-                classification = node.getClassification();
-            }
-			TaxonNode newAcceptedTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
-					editor.getConversationHolder(),
-					Messages.MoveDescriptionToOtherTaxonHandler_CHOOSE_ACC_TAXON,
-					excludeTaxa,
-					node,
-					classification);
-
-			if (newAcceptedTaxonNode == null) {
-				return null;
-			}
-
-			newAcceptedTaxonNodeUuid = newAcceptedTaxonNode.getUuid();
-
-			try {
-				for(TaxonDescription description : descriptions){
-					operation = new MoveDescriptionToOtherTaxonOperation(event.getCommand().getName(),
-											editor.getUndoContext(),
-											description,
-											newAcceptedTaxonNode,
-											this,
-											editor,
-											(ICdmEntitySessionEnabled)editor.getEditorInput());
-					AbstractUtility.executeOperation(operation);
-				}
-
-			} catch (NotDefinedException e) {
-				logger.warn("Command name not set"); //$NON-NLS-1$
-			}
-		}
-
-		return null;
-
-	}
-
-	/* (non-Javadoc)
-	 * @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
-	 */
-	/** {@inheritDoc} */
-	@Override
-    public boolean postOperation(CdmBase objectAffectedByOperation) {
-		Display.getDefault().asyncExec(new Runnable(){
-
-			@Override
-            public void run() {
-				AbstractUtility.close(editor);
-
-				try {
-					MultiPageTaxonEditor possibleOpenEditor = (MultiPageTaxonEditor) EditorUtil.findEditorByTaxonNodeUuid(newAcceptedTaxonNodeUuid);
-					if(possibleOpenEditor != null){
-						AbstractUtility.close(possibleOpenEditor);
-					}
-					EditorUtil.openTaxonBaseE4(newAcceptedTaxonNodeUuid);
-				} catch (PartInitException e) {
-					MessagingUtils.error(this.getClass(), e);
-					throw new RuntimeException(e);
-				} catch (Exception e) {
-					MessagingUtils.warningDialog(Messages.MoveDescriptionToOtherTaxonHandler_CREATE_FAILED, this, e.getMessage());
-				}
-			}
-
-		});
-
-
-		return true;
-	}
-
-	/**
-	 * <p>onComplete</p>
-	 *
-	 * @return a boolean.
-	 */
-	@Override
-    public boolean onComplete() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/ToggleShowOnlyIndividualAssociationsHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/ToggleShowOnlyIndividualAssociationsHandler.java
deleted file mode 100644
index cdaec22d9..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/handler/ToggleShowOnlyIndividualAssociationsHandler.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
-* Copyright (C) 2014 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-package eu.etaxonomy.taxeditor.editor.view.descriptive.handler;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
-
-/**
- * @author pplitzner
- * @date Nov 25, 2014
- *
- */
-public class ToggleShowOnlyIndividualAssociationsHandler extends AbstractHandler {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-     */
-    @Override
-    public Object execute(ExecutionEvent event) throws ExecutionException {
-        IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
-        if(activePart instanceof DescriptiveViewPart){
-            DescriptiveViewPart descriptiveViewPart = (DescriptiveViewPart)activePart;
-            descriptiveViewPart.toggleShowOnlyIndividualAssociations();
-        }
-        return null;
-    }
-
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewPart.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewPart.java
deleted file mode 100644
index bed33a7e8..000000000
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewPart.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.editor.view.media;
-
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeNode;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.internal.E4PartWrapper;
-
-import eu.etaxonomy.cdm.model.description.IDescribable;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
-import eu.etaxonomy.taxeditor.editor.l10n.Messages;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
-import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
-import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
-import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
-import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
-import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
-import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
-import eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart;
-import eu.etaxonomy.taxeditor.workbench.WorkbenchUtility;
-
-/**
- * @author n.hoffmann
- * @created Jun 15, 2010
- * @version 1.0
- */
-public class MediaViewPart extends AbstractCdmEditorViewPart implements IPartContentHasDetails, IPartContentHasSupplementalData {
-
-	public static final String ID = "eu.etaxonomy.taxeditor.editor.view.media"; //$NON-NLS-1$
-
-
-	private TreeViewer viewer;
-
-	/** {@inheritDoc} */
-	@Override
-	public void createViewer(Composite parent) {
-
-		viewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL
-				| SWT.V_SCROLL | SWT.FULL_SELECTION));
-
-		viewer.setContentProvider(new MediaContentProvider());
-		viewer.setLabelProvider(new MediaLabelProvider());
-		viewer.setAutoExpandLevel(2);
-
-		// Propagate selection from viewer
-		getSite().setSelectionProvider(viewer);
-
-		// Add context menu to tree
-		MenuManager menuMgr = new MenuManager();
-		menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-		menuMgr.setRemoveAllWhenShown(true);
-		getSite().registerContextMenu(menuMgr, viewer);
-
-		Control control = viewer.getControl();
-		Menu menu = menuMgr.createContextMenu(control);
-		menuMgr.setRemoveAllWhenShown(true);
-		control.setMenu(menu);
-
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	protected ISelection getInitialSelection() {
-		if(getEditor() != null){
-			return new StructuredSelection(getEditor().getEditorInput());
-		}
-
-		return super.getInitialSelection();
-	}
-
-	/** {@inheritDoc} */
-	@Override
-    protected void selectionChanged_internal(IWorkbenchPart workbenchPart, ISelection selection) {
-	    Object partObject = workbenchPart;
-
-	    if(partObject==this){
-	        return;
-	    }
-
-        Object wrappedPart = WorkbenchUtility.getE4WrappedPart(partObject);
-        if(wrappedPart!=null){
-            partObject = wrappedPart;
-        }
-//		if(AbstractUtility.getActiveE4Editor() == null){
-//			showEmptyPage();
-//			return;
-//		}
-
-
-        if (partObject instanceof DetailsViewPart || partObject instanceof SupplementalDataViewPart
-                || partObject instanceof DescriptiveViewPart) {
-            // do not show empty page as these views are also used to edit the
-            // description selected in this view
-            return;
-        }
-
-		if(partObject instanceof IPartContentHasMedia && ((IPartContentHasMedia) partObject).canAttachMedia() ){
-		    if(selection instanceof IStructuredSelection){
-		    	Object firstElement = ((IStructuredSelection) selection).getFirstElement();
-		    	if (partObject instanceof MultiPageTaxonEditor){
-	            	if (firstElement != ((MultiPageTaxonEditor)partObject).getTaxon()){
-	            		showEmptyPage();
-	            		return;
-	            	}
-	            }
-		        if(firstElement instanceof TreeNode){
-		            showViewer(partObject, new StructuredSelection(((TreeNode) firstElement).getValue()));
-		            return;
-		        }
-		        else if(firstElement!=null
-	                    && firstElement instanceof IDescribable<?>){
-		            showViewer(partObject, (IStructuredSelection) selection);
-		            return;
-		        }
-		    }
-		}
-		if (selection instanceof IStructuredSelection){
-			IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-			if(structuredSelection.getFirstElement() instanceof TreeNode){
-					if (((TreeNode)structuredSelection.getFirstElement()).getValue() instanceof SpecimenOrObservationBase){
-				    structuredSelection = new StructuredSelection(((TreeNode)structuredSelection.getFirstElement()).getValue());
-				    showViewer(partObject, structuredSelection);
-				    return;
-				}
-			}
-		}
-
-		showEmptyPage();
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public void changed(Object object) {
-	    viewer.expandToLevel(2);
-	    viewer.refresh();
-	    if(object != null){
-	        StructuredSelection selection = new StructuredSelection(object);
-	        viewer.setSelection(selection, true);
-	    }
-	    //TODO: should be replaced with the possibility to set views dirty
-	    // when we move to Eclipse 4
-	    // take a look at ISaveblePart
-	    if(part instanceof BulkEditor && !(object instanceof SpecimenOrObservationBase<?>)){
-	        ((BulkEditor) part).forceDirty();
-	        IStructuredSelection selection = (IStructuredSelection) ((BulkEditor) part).getSelectionProvider().getSelection();
-            ((BulkEditor) part).changed(selection.getFirstElement());
-
-	    }
-	    if (part instanceof E4PartWrapper){
-	    	part = WorkbenchUtility.getE4WrappedPart(part);
-	    	if (part instanceof IDirtyMarkable){
-	    		 StructuredSelection selection = new StructuredSelection(object);
-	    		((IDirtyMarkable)part).changed(selection.getFirstElement());
-	    	}
-	    }
-
-
-	    super.changed(object);
-	}
-
-	/** {@inheritDoc} */
-	@Override
-	public Viewer getViewer() {
-		return viewer;
-	}
-
-	@Override
-    public boolean onComplete() {
-		return true;
-	}
-
-	@Override
-	protected String getViewName() {
-		return Messages.MediaViewPart_MEDIA;
-	}
-}
diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/e4/MediaViewPartE4.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/e4/MediaViewPartE4.java
index adf4c4c7d..dffc96cb3 100644
--- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/e4/MediaViewPartE4.java
+++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/e4/MediaViewPartE4.java
@@ -28,7 +28,7 @@ import org.eclipse.swt.widgets.Tree;
 import eu.etaxonomy.cdm.model.description.IDescribable;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.editor.name.e4.TaxonNameEditorE4;
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.e4.FactualDataPartE4;
 import eu.etaxonomy.taxeditor.editor.view.media.MediaContentProvider;
 import eu.etaxonomy.taxeditor.editor.view.media.MediaLabelProvider;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
@@ -83,7 +83,7 @@ public class MediaViewPartE4 extends AbstractCdmEditorPartE4
 	    Object partObject = createPartObject(activePart);
 
 	    if (partObject instanceof DetailsPartE4 || partObject instanceof SupplementalDataPartE4
-	            || partObject instanceof DescriptiveViewPart) {
+	            || partObject instanceof FactualDataPartE4) {
 	        // do not show empty page as these views are also used to edit the
 	        // description selected in this view
 	        return;
