Merge branch 'release/3.12.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.editor / src / main / java / eu / etaxonomy / taxeditor / editor / MultiPageTaxonEditor.java
index 3c1c7efde3878d27c6c5738a1cb5c6ec93de999e..e58a897b2426f9d5d69d82de6188620a37fa4ccf 100644 (file)
@@ -29,7 +29,6 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 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.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
@@ -43,8 +42,6 @@ import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 
 /**
  *
@@ -57,7 +54,7 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
  * @version 1.0
  */
 public class MultiPageTaxonEditor extends FormEditor implements
-IPartContentHasFactualData, IConversationEnabled, ICdmEntitySessionEnabled, IPostOperationEnabled,
+IPartContentHasFactualData, IConversationEnabled, IPostOperationEnabled,
 IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
 
     /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.taxon"{trunked}</code> */
@@ -65,7 +62,6 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
 
     private boolean dirty;
 
-    private ICdmEntitySession cdmEntitySession;
     private ConversationHolder conversation;
     private IDataChangeBehavior dataChangeBehavior;
     private IUndoContext undoContext;
@@ -86,9 +82,7 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
     /** {@inheritDoc} */
     @Override
     public void dispose() {
-        if(cdmEntitySession != null) {
-            cdmEntitySession.dispose();
-        }
+        input.dispose();
         conversation.unregisterForDataStoreChanges(this);
         conversation.close();
         super.dispose();
@@ -105,7 +99,7 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
         input = (TaxonEditorInput) getEditorInput();
         conversation = input.getConversationHolder();
         conversation.registerForDataStoreChanges(this);
-        cdmEntitySession.registerForDataStoreChanges(this);
+
         try {
             addPage(Page.NAME.getIndex(), new TaxonNameEditor(this),
                     getEditorInput());
@@ -150,7 +144,7 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
 
             // commit the conversation and start a new transaction immediately
 
-            input.update();
+            input.merge();
             conversation.commit(true);
             monitor.worked(1);
 
@@ -173,7 +167,7 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
                 editorPage.setDisabled();
             }
         }
-        cdmEntitySession.unregisterForDataStoreChanges(this);
+
         conversation.unregisterForDataStoreChanges(this);
         conversation.close();
         setDirty(false);
@@ -256,7 +250,7 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
         }
 
         this.input = (TaxonEditorInput) input;
-        cdmEntitySession = this.input.getCdmEntitySession();
+
 
         // try {
         // // Listen for name changes,
@@ -319,6 +313,9 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
                 container.refresh();
             }
         }
+        //refresh part title
+        //TODO: refresh taxon node in taxon navigator
+        setPartName();
     }
 
     /* (non-Javadoc)
@@ -402,9 +399,7 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
         // logger.warn("Setting focus to editor");
         // bind the conversation
         getConversationHolder().bind();
-        if(cdmEntitySession != null) {
-            cdmEntitySession.bind();
-        }
+        input.bind();
         // pass focus to the active editor page
         getActiveEditor().setFocus();
     }
@@ -436,7 +431,7 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
     /** {@inheritDoc} */
     @Override
     public boolean postOperation(CdmBase objectAffectedByOperation) {
-        setDirty(true);
+               setDirty(true);
 
         for (IEditorPart editor : this.getPages()) {
             if (editor instanceof IPostOperationEnabled) {
@@ -563,18 +558,11 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
     }
 
     /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
+     * @see eu.etaxonomy.taxeditor.model.IPartContentHasMedia#canAttachMedia()
      */
     @Override
-    public ICdmEntitySession getCdmEntitySession() {
-        return cdmEntitySession;
+    public boolean canAttachMedia() {
+        return true;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
-     */
-    @Override
-    public List<TaxonNode> getRootEntities() {
-        return input.getRootEntities();
-    }
 }