//re-loading sequence to avoid session conflicts
Sequence sequenceNode = CdmStore.getService(ISequenceService.class).load(((AlignmentEditorInput)getEditorInput()).getSequenceNodeUuid());
+ ((AlignmentEditorInput)getEditorInput()).setSequenceNode(sequenceNode);
StringAdapter stringProvider = new StringAdapter(getEditableConsensusArea().getAlignmentModel(), false); // Throws an exception if a token has more than one character.
// Write consensus sequence:
}
monitor.worked(1);
+ ((AlignmentEditorInput)getEditorInput()).merge();
// Commit the conversation and start a new transaction immediately:
conversationHolder.commit(true);
monitor.worked(1);
if(conversationHolder!=null){
conversationHolder.bind();
}
+ ((AlignmentEditorInput)getEditorInput()).bind();
}
+ @Override
+ public void dispose() {
+ ((AlignmentEditorInput)getEditorInput()).dispose();
+ }
public boolean isInsertMode() {
return getAlignmentsContainer().getEditSettings().isInsert();
package eu.etaxonomy.taxeditor.molecular.editor;
+import java.util.Arrays;
+import java.util.List;
import java.util.UUID;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IPersistableElement;
+import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
+import eu.etaxonomy.cdm.model.molecular.Sequence;
+import eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
/**
* @author Ben Stöver
* @date 04.08.2014
*/
-public class AlignmentEditorInput implements IEditorInput {
+public class AlignmentEditorInput extends CdmEntitySessionInput implements IEditorInput {
private static final String name = "AlignmentEditor";
private final UUID sequenceNodeUuid;
-
+ private Sequence sequenceNode;
public AlignmentEditorInput(UUID sequenceNodeUuid) {
- super();
+ super(false);
this.sequenceNodeUuid = sequenceNodeUuid;
+ initSession();
}
}
return true;
}
+
+
+ public void setSequenceNode(Sequence sequenceNode) {
+ this.sequenceNode = sequenceNode;
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+ */
+ @Override
+ public List<Sequence> getRootEntities() {
+ return Arrays.asList(sequenceNode);
+ }
+
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+ */
+ @Override
+ public void merge() {
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {
+ CdmStore.getService(ISequenceService.class).merge(sequenceNode, true);
+ }
+ }
}