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);
}
-
+
}
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;
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;
/**
*/
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);
}
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;
*/
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;
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());
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;
}
}