Merge branch 'develop' into remoting-4.0
authorCherian Mathew <c.mathew@bgbm.org>
Tue, 8 Sep 2015 18:49:12 +0000 (20:49 +0200)
committerCherian Mathew <c.mathew@bgbm.org>
Tue, 8 Sep 2015 18:49:12 +0000 (20:49 +0200)
Conflicts:
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientDescriptionService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/operation/MoveDerivateOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchView.java

1  2 
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/contextMenu/CreateDerivateContextMenu.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/operation/MoveDerivateOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchView.java

index 91d656cb015cbb3bc6a735a13f0711e759e3190a,4b5d0106a9ccb5add07c05655a1f249ba7dccfa3..bd8fca97e7b04a35a3b550d47d8bf3b37fbbf51f
@@@ -865,10 -865,6 +865,6 @@@ public class TransientOccurenceService 
                  maxDepth, pageSize, pageNumber, orderHints, propertyPaths);
      }
  
-     @Override
-     public boolean moveDerivate(SpecimenOrObservationBase<?> from, SpecimenOrObservationBase<?> to, DerivedUnit derivate) {
-         return defaultService.moveDerivate(from, to, derivate);
-     }
  
      @Override
      public UpdateResult moveSequence(DnaSample from, DnaSample to, Sequence sequence) {
       * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#moveDerivate(java.util.UUID, java.util.UUID, java.util.UUID)
       */
      @Override
-     public UpdateResult moveDerivate(UUID specimenFromUuid, UUID specimenToUuid, UUID derivateUuid) {
-        return defaultService.moveDerivate(specimenFromUuid, specimenToUuid, derivateUuid);
+     public UpdateResult moveDerivate(UUID arg0, UUID arg1, UUID arg2) {
+         return defaultService.moveDerivate(arg0, arg1, arg2);
+     }
+     /* (non-Javadoc)
+      * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#moveDerivate(eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase, eu.etaxonomy.cdm.model.occurrence.DerivedUnit)
+      */
+     @Override
+     public boolean moveDerivate(SpecimenOrObservationBase<?> from, SpecimenOrObservationBase<?> to, DerivedUnit derivate) {
+         return defaultService.moveDerivate(from, to, derivate);
      }
  
      /* (non-Javadoc)
      public UpdateResult moveSequence(UUID arg0, UUID arg1, UUID arg2) {
          return defaultService.moveSequence(arg0, arg1, arg2);
      }
 -
  }
index 4b07479232049f952ef483de4185e8fa12a11bb2,e62783ae4bed2908fa2688196f9c3a1e83b496f7..296a0902adb751da4fc67a80e066917d8e7bd8d9
@@@ -13,9 -13,7 +13,9 @@@ import org.eclipse.ui.IWorkbenchWindow
  import org.eclipse.ui.PlatformUI;
  import org.eclipse.ui.actions.CompoundContributionItem;
  
 +import eu.etaxonomy.cdm.api.application.CdmApplicationState;
  import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy;
 +import eu.etaxonomy.cdm.api.service.IOccurrenceService;
  import eu.etaxonomy.cdm.model.media.Media;
  import eu.etaxonomy.cdm.model.molecular.DnaSample;
  import eu.etaxonomy.cdm.model.molecular.Sequence;
@@@ -31,7 -29,6 +31,7 @@@ import eu.etaxonomy.taxeditor.editor.Ed
  import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
  import eu.etaxonomy.taxeditor.model.AbstractUtility;
  import eu.etaxonomy.taxeditor.model.MessagingUtils;
 +import eu.etaxonomy.taxeditor.store.CdmStore;
  import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
  
  /**
@@@ -40,9 -37,6 +40,6 @@@
   */
  public class CreateDerivateContextMenu extends CompoundContributionItem {
  
-     /* (non-Javadoc)
-      * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
-      */
      @Override
      protected IContributionItem[] getContributionItems() {
          IContributionItem[] contributionItems = new IContributionItem[] {
              MenuItem existingMediaItem = new MenuItem(mediaMenu, SWT.NONE);
              existingMediaItem.setText("Media Specimen with existing media");
              existingMediaItem.addSelectionListener(new SelectionAdapter() {
-                 /* (non-Javadoc)
-                  * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-                  */
                  @Override
                  public void widgetSelected(SelectionEvent e) {
                      //select media
                          specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, mediaSpecimen, derivationEventType));
                          mediaSpecimen.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
                          mediaSpecimen.getTitleCache(); //update title cache
 +                        CdmStore.getService(IOccurrenceService.class).merge(specimenOrObservationBase);
                      }
  
                      //refresh view
                          derivateView = (DerivateView) AbstractUtility.getActivePart();
                      }
                      if(derivateView!=null){
 +
                          derivateView.getConversationHolder().commit();
                          derivateView.refreshTree(mediaSpecimen);
                      }
              this.derivationEventType = derivationEventType;
          }
  
-         /* (non-Javadoc)
-          * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-          */
          @Override
          public void widgetSelected(SelectionEvent e) {
              DerivateView derivateView = null;
                      Sequence newInstance = Sequence.NewInstance(dnaSample, "", 0);
                      createdElement = newInstance;
                  }
 +                CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate);
              }
              else if(selectedDerivate instanceof Sequence){
                  SingleRead newInstance = SingleRead.NewInstance();
                  ((Sequence) selectedDerivate).addSingleRead(newInstance);
                  createdElement = newInstance;
 +                CdmApplicationState.getCurrentAppConfig().getSequenceService().merge((Sequence)selectedDerivate);
              }
              else if(selectedDerivate instanceof SpecimenOrObservationBase && DerivedUnit.class.isAssignableFrom(childClass)){
                  SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>)selectedDerivate;
                  derivedUnit.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
                  derivedUnit.getTitleCache(); //update title cache
                  createdElement = derivedUnit;
 +                CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate);
              }
  
              //refresh view
              if(derivateView!=null){
 +                //CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate);
                  derivateView.getConversationHolder().commit();
                  derivateView.refreshTree(createdElement);
              }
index 11c1af71a20e4ec79c5ba08f7c7430039178e71a,e7bfe694f565d2a18d89b8a5848860145a0a04ba..9e8f30b5c955a056a3a97fe56a0d1a8a5bfdcb08
@@@ -101,9 -101,7 +101,9 @@@ public class MoveDerivateOperation exte
              if(fromParentSpecimen instanceof SpecimenOrObservationBase<?>
              && fromNode!=null
              && !fromNode.equals(targetNode)){//don't drag on direct parent node)
 -                return occurrenceService.moveDerivate((SpecimenOrObservationBase<?>)fromParentSpecimen, targetSpecimen, draggedSpecimen);
 +                return occurrenceService.moveDerivate(((SpecimenOrObservationBase<?>)fromParentSpecimen).getUuid(),
 +                        targetSpecimen.getUuid(),
 +                        draggedSpecimen.getUuid()).isOk();
              }
          }
  
          else if(draggedNodeValue instanceof SingleRead && targetNodeValue instanceof Sequence){
              SingleRead singleRead = (SingleRead) draggedNodeValue;
              if(fromParentSpecimen instanceof Sequence){
 -                return CdmStore.getService(ISequenceService.class).moveSingleRead((Sequence)fromParentSpecimen, (Sequence)targetNodeValue, singleRead).isOk();
 +                return CdmStore.getService(ISequenceService.class).moveSingleRead(((Sequence)fromParentSpecimen).getUuid(),
 +                        ((Sequence)targetNodeValue).getUuid(),
 +                        singleRead.getUuid()).isOk();
++
              }
          }
  
          else if(draggedNodeValue instanceof Sequence && targetNodeValue instanceof DnaSample && ((SpecimenOrObservationBase<?>) targetNodeValue).getRecordBasis()==SpecimenOrObservationType.DnaSample){
              Sequence sequence = (Sequence)draggedNodeValue;
              if(fromParentSpecimen instanceof DnaSample && ((SpecimenOrObservationBase<?>) targetNodeValue).getRecordBasis()==SpecimenOrObservationType.DnaSample){
 -                return occurrenceService.moveSequence((DnaSample)fromParentSpecimen, (DnaSample)targetNodeValue, sequence).isOk();
 +                return occurrenceService.moveSequence(((DnaSample)fromParentSpecimen).getUuid(),
 +                        ((DnaSample)targetNodeValue).getUuid(),
 +                        sequence.getUuid()).isOk();
++
              }
          }
          return false;
index c7346c245d4439cb1ad321f32f0184750abc02df,93c229adfd2e2cfda5114ab9c7f341b36b3aa86b..6eb54ff1ce7d588055501526c0fb94951b86b5f6
@@@ -9,10 -9,6 +9,10 @@@
   */
  package eu.etaxonomy.taxeditor.view.derivateSearch;
  
 +import java.util.Collection;
 +import java.util.List;
 +import java.util.Map;
 +
  import org.eclipse.core.runtime.IProgressMonitor;
  import org.eclipse.jface.action.MenuManager;
  import org.eclipse.swt.widgets.Composite;
@@@ -22,23 -18,19 +22,23 @@@ import org.eclipse.ui.IMemento
  import org.eclipse.ui.part.ViewPart;
  
  import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 +import eu.etaxonomy.cdm.model.common.CdmBase;
  import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
  import eu.etaxonomy.taxeditor.model.IContextListener;
 +import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 +import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
  import eu.etaxonomy.taxeditor.store.CdmStore;
  
  /**
   * This view allows to search for and filter {@link SpecimenOrObservationBase}s and display
   * the results in a list. The results can be selected and opened in an editor.
   */
 -public class DerivateSearchView extends ViewPart implements IContextListener {
 +public class DerivateSearchView extends ViewPart implements IContextListener, ICdmEntitySessionEnabled {
  
      public static final String ID = "eu.etaxonomy.taxeditor.view.derivateSearch.DerivateSearchView";
      private DerivateSearchCompositeController derivateSearchCompositeController;
      private ConversationHolder conversationHolder;
 +    private ICdmEntitySession cdmEntitySession;
  
      /**
       * Constructs a new DerivateSearchView and registers it to listen to context changes
          CdmStore.getContextManager().addContextListener(this);
      }
  
-     /* (non-Javadoc)
-      * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-      */
      @Override
      public void createPartControl(Composite parent) {
 +
          derivateSearchCompositeController = new DerivateSearchCompositeController(parent, this);
          getSite().setSelectionProvider(derivateSearchCompositeController.getResultViewer());
          derivateSearchCompositeController.setEnabled(CdmStore.isActive());
@@@ -65,9 -53,6 +62,6 @@@
          control.setMenu(menu);
      }
  
-     /* (non-Javadoc)
-      * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-      */
      @Override
      public void setFocus() {
          derivateSearchCompositeController.setFocus();
          if(getConversationHolder()!=null && !getConversationHolder().isClosed() && !getConversationHolder().isBound()){
              getConversationHolder().bind();
          }
 +        if(getCdmEntitySession() != null) {
 +            getCdmEntitySession().bind();
 +        }
      }
  
-     /* (non-Javadoc)
-      * @see eu.etaxonomy.taxeditor.model.IContextListener#contextAboutToStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
-      */
      @Override
      public void contextAboutToStop(IMemento memento, IProgressMonitor monitor) {
      }
  
-     /* (non-Javadoc)
-      * @see eu.etaxonomy.taxeditor.model.IContextListener#contextStop(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
-      */
      @Override
      public void contextStop(IMemento memento, IProgressMonitor monitor) {
          derivateSearchCompositeController.setEnabled(false);
          derivateSearchCompositeController.reset();
      }
  
-     /* (non-Javadoc)
-      * @see eu.etaxonomy.taxeditor.model.IContextListener#contextStart(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
-      */
      @Override
      public void contextStart(IMemento memento, IProgressMonitor monitor) {
          derivateSearchCompositeController.setEnabled(true);
      }
  
-     /* (non-Javadoc)
-      * @see eu.etaxonomy.taxeditor.model.IContextListener#contextRefresh(org.eclipse.core.runtime.IProgressMonitor)
-      */
      @Override
      public void contextRefresh(IProgressMonitor monitor) {
          initConversation();
 +        initSession();
 +    }
 +
 +    private void initSession() {
 +        if(CdmStore.isActive() && cdmEntitySession == null) {
 +            cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
 +        }
      }
  
      private void initConversation(){
          }
      }
  
-     /* (non-Javadoc)
-      * @see eu.etaxonomy.taxeditor.model.IContextListener#workbenchShutdown(org.eclipse.ui.IMemento, org.eclipse.core.runtime.IProgressMonitor)
-      */
      @Override
      public void workbenchShutdown(IMemento memento, IProgressMonitor monitor) {
      }
  
-     /**
-      * @return the conversationHolder
-      */
      public ConversationHolder getConversationHolder() {
          if(CdmStore.isActive() && conversationHolder==null){
              initConversation();
          return conversationHolder;
      }
  
 -    /**
 -     * {@inheritDoc}
 -     */
++
      @Override
      public void dispose() {
+         if(conversationHolder!=null){
+             conversationHolder.close();
+         }
++
 +        cdmEntitySession.dispose();
 +        super.dispose();
 +    }
 +
 +
 +    /* (non-Javadoc)
 +     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
 +     */
 +    @Override
 +    public ICdmEntitySession getCdmEntitySession() {
 +        initSession();
 +        return cdmEntitySession;
 +    }
 +
 +    /* (non-Javadoc)
 +     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
 +     */
 +    @Override
 +    public <T extends CdmBase> Collection<T> getRootEntities() {
 +        // TODO Auto-generated method stub
 +        return null;
 +    }
 +
 +    /* (non-Javadoc)
 +     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
 +     */
 +    @Override
 +    public Map<Object, List<String>> getPropertyPathsMap() {
 +        // TODO Auto-generated method stub
 +        return null;
      }
  }