eu.etaxonomy.taxeditor.cdmlib
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.core.runtime,
+Import-Package: eu.etaxonomy.taxeditor.editor,
+ org.eclipse.core.runtime,
org.eclipse.equinox.app,
org.eclipse.jface.text,
org.eclipse.jface.text.presentation,
package eu.etaxonomy.taxeditor.annotatedlineeditor;
import java.util.Iterator;
-import java.util.List;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ui.editors.text.TextEditor;
import org.eclipse.ui.texteditor.IDocumentProvider;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @created 25.06.2009
* @version 1.0
*/
-public class AnnotatedLineEditor extends TextEditor implements IConversationEnabled, IPostOperationEnabled, ICdmEntitySessionEnabled {
+public class AnnotatedLineEditor extends TextEditor implements IConversationEnabled, IPostOperationEnabled {
protected ConversationHolder conversation;
private IEntityPersistenceService persistenceService;
protected ILineDisplayStrategy lineDisplayStrategy;
- private final ICdmEntitySession cdmEntitySession;
+
/**
* <p>Constructor for AnnotatedLineEditor.</p>
*/
public AnnotatedLineEditor(ConversationHolder conversation) {
this.conversation = conversation;
- cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
}
/* (non-Javadoc)
if (getConversationHolder() != null) {
getConversationHolder().bind();
}
- cdmEntitySession.bind();
+ ((AbstractBulkEditorInput)getEditorInput()).bind();
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setFocus();
// TODO pass focus to underlying widgets
}
public void dispose() {
super.dispose();
conversation.close();
- cdmEntitySession.dispose();
+ ((AbstractBulkEditorInput)getEditorInput()).dispose();
}
/**
return false;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
- */
- @Override
- public ICdmEntitySession getCdmEntitySession() {
- return cdmEntitySession;
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
- */
- @Override
- public <T extends CdmBase> List<T> getRootEntities() {
- AbstractBulkEditorInput input = (AbstractBulkEditorInput)getEditorInput();
- return input.getModel();
- }
}
@Override
public void setFocus() {
conversation.bind();
- getCdmEntitySession().bind();
searchBar.setFocus();
// TODO find a better place to put this - this dialog should be shown after initial contents of
displayWarningDialog();
isInitialFocus = false;
}
+ super.setFocus();
}
/**
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.CdmBaseSortProvider;
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.TitleCacheComparator;
import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
+import eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
* @version 1.0
* @param <T>
*/
-public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEditorInput , IEntityPersistenceService<T> {
+public abstract class AbstractBulkEditorInput<T extends ICdmBase> extends CdmEntitySessionInput implements IEditorInput ,
+ IEntityPersistenceService<T> {
private UUID entityUuid;
private static Class serviceClass;
+ public AbstractBulkEditorInput() {
+
+ }
+
/**
* <p>NewInstance</p>
*
/**
* @return
*/
- public List<?> getModel() {
+ public List<T> getModel() {
return model;
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+ */
+ @Override
+ public List<T> getRootEntities() {
+ return getModel();
+ }
}
return false;
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+ */
+ @Override
+ public void merge() {
+
+ }
+
}
return entity.getName();
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+ */
+ @Override
+ public void merge() {
+
+ }
+
}
return (entity).getFullTitleCache();
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+ */
+ @Override
+ public void merge() {
+
+ }
+
}
// $Id$
/**
* 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.
*/
public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRelationship> {
/**
- *
+ *
*/
private static final long serialVersionUID = -7453923697752787687L;
}
return instance;
}
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.IEditorInput#getName()
*/
/** {@inheritDoc} */
@Override
protected NameRelationship loadEntity(UUID entityUuid) {
- List<String> propertyPaths = Arrays.asList(new String[]{});
+ List<String> propertyPaths = Arrays.asList(new String[]{});
return null; // CdmStore.getNameService().load(entityUuid, propertyPaths);
}
MessagingUtils.notImplementedMessage(getClass());
return null;
}
-
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getTypeText(java.lang.Object)
*/
if(entity instanceof NameRelationship){
return ((NameRelationship) entity).getType().getTitleCache();
}
-
+
return super.getTypeText(entity);
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+ */
+ @Override
+ public void merge() {
+
+ }
+
}
return sortProviders;
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+ */
+ @Override
+ public void merge() {
+
+ }
}
return super.getTypeText(entity);
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+ */
+ @Override
+ public void merge() {
+
+ }
+
}
import java.util.List;\r
import java.util.UUID;\r
\r
-import eu.etaxonomy.cdm.api.service.INameService;\r
import eu.etaxonomy.cdm.api.service.ITaxonService;\r
import eu.etaxonomy.cdm.api.service.config.FindTaxaAndNamesConfiguratorImpl;\r
import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;\r
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;\r
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;\r
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
import eu.etaxonomy.cdm.persistence.query.MatchMode;\r
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;\r
-import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.NameCreator;\r
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.TaxonCreator;\r
import eu.etaxonomy.taxeditor.store.CdmStore;\r
\r
return new TaxonCreator();\r
}\r
\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()\r
+ */\r
+ @Override\r
+ public void merge() {\r
+\r
+ }\r
+\r
}\r
return String.format("%s, %s", entity.getUsername(), entity.getPerson());
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+ */
+ @Override
+ public void merge() {
+
+ }
+
}
import org.eclipse.swt.widgets.Table;
import org.eclipse.ui.IWorkbenchPart;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.IAgentService;
import eu.etaxonomy.cdm.api.service.IGroupService;
selectionService.addSelectionListener(this);
}
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
- }
-
-
}
logger.info("Remote invoking : " + currentRemoteInvocation.getMethodName() + "@" + config.getServiceUrl());
rir = super.doExecuteRequest(config, baos);
if(rir.getValue() != null && !rir.hasException()) {
- if(currentRemoteInvocation.getMethodName().equals("merge")) {
- rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), true));
- } else if(rir.getValue() instanceof UpdateResult){
+ if(rir.getValue() instanceof UpdateResult){
UpdateResult result = (UpdateResult)rir.getValue();
if(result.isOk()){
- cdmEntitySessionManager.load(result, true);
+ rir = new RemoteInvocationResult(cdmEntitySessionManager.load(result, true));
}
} else {
- rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), false));
+ rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), true));
}
}
cache(currentRemoteInvocation, rir);
import org.apache.log4j.Logger;
-import eu.etaxonomy.cdm.api.application.CdmApplicationState;
import eu.etaxonomy.cdm.api.service.IService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.common.CdmBase;
this.changeObservers = new ArrayList<ICdmEntitySessionEnabled>();
this.newCdmEntities = new HashSet<CdmBase>();
cdmEntitySessionManager.addToOwnerSessionMap(sessionOwner, this);
- CdmApplicationState.getCurrentDataChangeService().register(sessionOwner);
}
public void dispose() {
cdmTransientEntityCacher.dispose();
-// for(ICdmEntitySessionEnabled observer : changeObservers) {
-// CdmPostDataChangeObservableListener.getDefault().unregister(observer);
-// }
changeObservers.clear();
cdmEntitySessionManager.remove(sessionOwner);
- CdmApplicationState.getCurrentDataChangeService().unregister(sessionOwner);
+
}
}
ICdmEntitySession session = ownerSessionMap.get(sessionOwner);
if(session == null) {
- session = newSession(sessionOwner,true);
+ throw new CdmClientSessionException("Trying to bind session which does not exist");
}
setActiveSession(session);
import java.util.Collection;
-import eu.etaxonomy.cdm.api.application.ICdmChangeListener;
import eu.etaxonomy.cdm.model.common.CdmBase;
-public interface ICdmEntitySessionEnabled extends ICdmChangeListener {
+public interface ICdmEntitySessionEnabled {
public ICdmEntitySession getCdmEntitySession();
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.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
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;
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;
/**
*
* @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> */
private boolean dirty;
- private ICdmEntitySession cdmEntitySession;
private ConversationHolder conversation;
private IDataChangeBehavior dataChangeBehavior;
private IUndoContext undoContext;
/** {@inheritDoc} */
@Override
public void dispose() {
- if(cdmEntitySession != null) {
- cdmEntitySession.dispose();
- }
+ input.dispose();
conversation.unregisterForDataStoreChanges(this);
conversation.close();
super.dispose();
input = (TaxonEditorInput) getEditorInput();
conversation = input.getConversationHolder();
conversation.registerForDataStoreChanges(this);
- CdmApplicationState.getCurrentDataChangeService().register(this);
+
try {
addPage(Page.NAME.getIndex(), new TaxonNameEditor(this),
getEditorInput());
// commit the conversation and start a new transaction immediately
- input.update();
+ input.merge();
conversation.commit(true);
monitor.worked(1);
editorPage.setDisabled();
}
}
- CdmApplicationState.getCurrentDataChangeService().unregister(this);
+
conversation.unregisterForDataStoreChanges(this);
conversation.close();
setDirty(false);
}
this.input = (TaxonEditorInput) input;
- cdmEntitySession = this.input.getCdmEntitySession();
+
// try {
// // Listen for name changes,
// 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();
}
return true;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
- */
- @Override
- public ICdmEntitySession getCdmEntitySession() {
- return cdmEntitySession;
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
- */
- @Override
- public List<TaxonNode> getRootEntities() {
- return input.getRootEntities();
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
- }
}
import org.eclipse.ui.IMemento;
import org.eclipse.ui.IPersistableElement;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.IClassificationService;
* @created 19.03.2009
* @version 1.0
*/
-public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorInput, IConversationEnabled, IPersistableElement {
+public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorInput, IConversationEnabled, IPersistableElement {
private final ConversationHolder conversation;
private TaxonBase initiallySelectedTaxonBase;
- private final ITaxonNodeService service;
-
private enum CdmType {
TAXON_NODE,
TAXON_BASE,
private TaxonEditorInput(UUID uuid, CdmType type) {
this.conversation = CdmStore.createConversation();
- service = CdmStore.getService(ITaxonNodeService.class);
switch(type) {
case PARENT_TAXON_NODE:
initForParentTaxonNode(uuid);
private void initForTaxonNode(UUID taxonNodeUuid) {
- TaxonNode taxonNode = getCdmEntitySession().remoteLoad(service,taxonNodeUuid, null);
+ TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNodeUuid);
if(taxonNode == null){
MessagingUtils.warningDialog("Not yet implemented", TaxonEditorInput.class, "Selected element is not type TaxonBase.");
private void initForTaxonBase(UUID taxonBaseUuid) {
- TaxonBase taxonBase = getCdmEntitySession().remoteLoad(CdmStore.getService(ITaxonService.class),taxonBaseUuid);
+ TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).load(taxonBaseUuid);
if (taxonBase != null){
if(taxonBase.isInstanceOf(Taxon.class)){
Taxon taxon = CdmBase.deproxy(taxonBase, Taxon.class);
TaxonNode newTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference());
// add the new taxon to the editors persistence context
- UUID newTaxonNodeUuid = getCdmEntitySession().remoteSave(CdmStore.getService(ITaxonNodeService.class),newTaxonNode);
+ UUID newTaxonNodeUuid = CdmStore.getService(ITaxonNodeService.class).save(newTaxonNode).getUuid();
initForTaxonNode(newTaxonNodeUuid);
}
return initiallySelectedTaxonBase;
}
- @Override
- public String toString() {
- return String.format("%s[%s]", this.getClass().getSimpleName(), getTaxon());
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#getService()
- */
- @Override
- public ITaxonNodeService getService() {
- return service;
- }
+// @Override
+// public String toString() {
+// return String.format("%s[%s]", this.getClass().getSimpleName(), getTaxon());
+// }
/* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#getRootEntities()
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
*/
@Override
- public List<TaxonNode> getRootEntities() {
+ public List<TaxonNode> getRootEntities() {
return Arrays.asList(taxonNode);
}
-
/* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#update()
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
*/
@Override
- public <T extends CdmBase> void update() {
- taxonNode = getCdmEntitySession().remoteUpdate(service, taxonNode);
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
+ public void merge() {
+ CdmStore.getService(ITaxonNodeService.class).merge(taxonNode);
}
}
/**
- *
+ *
*/
package eu.etaxonomy.taxeditor.editor.key;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.model.description.IIdentificationKey;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput;
/**
* @author n.hoffmann
- *
+ *
*/
public abstract class AbstractIdentificationEditorInput<T extends IIdentificationKey>
- implements IEditorInput, IConversationEnabled {
+ extends CdmEntitySessionInput implements IEditorInput, IConversationEnabled {
private final ConversationHolder conversation;
/*
* (non-Javadoc)
- *
+ *
* @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
*/
@Override
/*
* (non-Javadoc)
- *
+ *
* @see org.eclipse.ui.IEditorInput#exists()
*/
@Override
/*
* (non-Javadoc)
- *
+ *
* @see org.eclipse.ui.IEditorInput#getImageDescriptor()
*/
@Override
/*
* (non-Javadoc)
- *
+ *
* @see org.eclipse.ui.IEditorInput#getPersistable()
*/
@Override
/*
* (non-Javadoc)
- *
+ *
* @see org.eclipse.ui.IEditorInput#getToolTipText()
*/
@Override
/*
* (non-Javadoc)
- *
+ *
* @see org.eclipse.ui.IEditorInput#getName()
*/
@Override
@Override
public void update(CdmDataChangeMap changeEvents) {
}
-
+
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
package eu.etaxonomy.taxeditor.editor.key;
-import java.util.Arrays;
-import java.util.List;
-
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.forms.editor.FormEditor;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
-import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @author n.hoffmann
* @version 1.0
*/
public class KeyEditor extends FormEditor implements IConversationEnabled,
- IDirtyMarkable, IPartContentHasDetails, ICdmEntitySessionEnabled {
+ IDirtyMarkable, IPartContentHasDetails {
public static final String ID = "eu.etaxonomy.taxeditor.editor.key";
private boolean dirty;
private KeyEditorDataChangeBehaviour dataChangeBehavior;
- private ICdmEntitySession cdmEntitySession;
+
private PolytomousKeyEditorInput polytomousKeyEditorInput;
/*
@Override
public void init(IEditorSite site, IEditorInput input)
throws PartInitException {
- cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
polytomousKeyEditorInput = (PolytomousKeyEditorInput)input;
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- polytomousKeyEditorInput.init();
- }
super.init(site, input);
}
monitor.beginTask("Saving Editor", 1);
getConversationHolder().bind();
getConversationHolder().commit(true);
- CdmStore.getService(IPolytomousKeyService.class).merge(((PolytomousKeyEditorInput)getEditorInput()).getKey());
+ polytomousKeyEditorInput.merge();
setDirty(false);
monitor.worked(1);
} finally {
@Override
public void setFocus() {
getConversationHolder().bind();
- cdmEntitySession.bind();
+ polytomousKeyEditorInput.bind();
super.setFocus();
}
/*
public void dispose() {
conversation.unregisterForDataStoreChanges(this);
conversation.close();
- cdmEntitySession.dispose();
+ polytomousKeyEditorInput.dispose();
super.dispose();
}
PolytomousKey key = polytomousKeyEditorInput.getKey();
setPartName(key.getTitleCache());
}
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
- */
- @Override
- public ICdmEntitySession getCdmEntitySession() {
- return cdmEntitySession;
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
- */
- @Override
- public List<PolytomousKey> getRootEntities() {
- return Arrays.asList(polytomousKeyEditorInput.getKey());
- }
-
-
-
}
*/
package eu.etaxonomy.taxeditor.editor.key.polytomous;
+import java.util.Arrays;
+import java.util.List;
import java.util.UUID;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
this.name = name;
}
- public void init() {
- this.key = CdmStore.getService(IPolytomousKeyService.class).load(keyUuid, null);
- }
public static PolytomousKeyEditorInput NewInstance(UUID polytomousKeyUuid) throws Exception{
try{
return super.equals(object);
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+ */
+ @Override
+ public List<PolytomousKey> getRootEntities() {
+ return Arrays.asList(key);
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+ */
+ @Override
+ public void merge() {
+ CdmStore.getService(IPolytomousKeyService.class).merge(key);
+ }
+
}
import org.eclipse.ui.forms.widgets.TableWrapLayout;
import org.eclipse.ui.part.EditorPart;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.taxeditor.preference.Resources;
import eu.etaxonomy.taxeditor.security.RequiredPermissions;
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @version 1.0
*/
public class TaxonNameEditor extends EditorPart implements
- IMultiPageTaxonEditorPage, IConversationEnabled, ICdmEntitySessionEnabled,
+ IMultiPageTaxonEditorPage, IConversationEnabled,
IPartContentHasDetails, IPartChangeListener,
ISelectionListener, IDropTargetable, ISecuredEditor {
setEnabled(enabled, background);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
- */
- @Override
- public ICdmEntitySession getCdmEntitySession() {
- return editor.getCdmEntitySession();
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
- */
- @Override
- public <T extends CdmBase> List<T> getRootEntities() {
- // TODO Auto-generated method stub
- return null;
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
- }
+
}
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPart;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
import eu.etaxonomy.taxeditor.editor.key.AbstractGraphKeyEditor;
super.changed(object);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
- }
}
import org.eclipse.zest.layouts.LayoutStyles;
import org.eclipse.zest.layouts.algorithms.TreeLayoutAlgorithm;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
return layoutAlgoritm;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
- }
}
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.part.EditorPart;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
super.dispose();
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
- }
-
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
*/
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.PartInitException;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
provider.toggleShowOnlyIndividualAssociations();
viewer.refresh();
}
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
- }
}
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPart;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
public boolean onComplete() {
return true;
}
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
- }
}
import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.ui.part.ViewPart;
+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.application.ICdmChangeListener;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
*
*/
public class PolytomousKeyViewPart extends ViewPart implements
- IConversationEnabled, ICdmEntitySessionEnabled, IPostOperationEnabled {
+ IConversationEnabled, ICdmEntitySessionEnabled, IPostOperationEnabled,
+ ICdmChangeListener {
private class FilterModifyListener implements ModifyListener{
@Override
conversation = CdmStore.createConversation();
conversation.registerForDataStoreChanges(this);
cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+ CdmApplicationState.getCurrentDataChangeService().register(this);
List<PolytomousKey> input = CdmStore.getService(IPolytomousKeyService.class).list(PolytomousKey.class, null, null, null, null);
if(!viewer.getControl().isDisposed()){
if(cdmEntitySession != null) {
cdmEntitySession.dispose();
}
+ CdmApplicationState.getCurrentDataChangeService().unregister(this);
super.dispose();
}
import eu.etaxonomy.cdm.api.application.CdmApplicationState;
import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
+import eu.etaxonomy.cdm.api.application.ICdmChangeListener;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.IClassificationService;
* @version 1.0
*/
public class TaxonNavigator extends CommonNavigator implements
- IPostOperationEnabled, IConversationEnabled, Observer, ICdmEntitySessionEnabled {
+ IPostOperationEnabled, IConversationEnabled, Observer,
+ ICdmEntitySessionEnabled, ICdmChangeListener {
/**
* Constant
if(cdmEntitySession != null) {
cdmEntitySession.dispose();
}
+ CdmApplicationState.getCurrentDataChangeService().unregister(this);
}
/*
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.handlers.HandlerUtil;
import eu.etaxonomy.cdm.api.conversation.ConversationHolderMock;
*/
@Override
public AbstractOperation prepareOperation(ExecutionEvent event) {
+ Shell activeShell = HandlerUtil.getActiveShell(event);
TaxonNode parentTaxonNode;
List<UUID> excludeTaxa = new ArrayList<UUID>();
boolean moveToNewParent = true;
if (PreferencesUtil.getSortNodesNaturally()){
- if(!MessageDialog.openQuestion(null, "Target node", "The choosen target node should be the parent?")){
+ if(!MessageDialog.openQuestion(activeShell, "Target node", "The choosen target node should be the parent?")){
moveToNewParent = false;
}
- parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
+ parentTaxonNode = TaxonNodeSelectionDialog.select(activeShell,
new ConversationHolderMock(),
"Choose the taxon above the moved taxon.",
excludeTaxa,
null,
null);
} else {
- parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
+ parentTaxonNode = TaxonNodeSelectionDialog.select(activeShell,
new ConversationHolderMock(),
"Choose new parent",
excludeTaxa,
null,
null);
}
+
+
if(parentTaxonNode != null){
if(NavigationUtil.isDirty(parentTaxonNode)){
- MessageDialog.openWarning(HandlerUtil.getActiveShell(event),
+ MessageDialog.openWarning(activeShell,
"Unsaved Parent Taxon",
"There are unsaved changes in the parent taxon. Please save first.");
return null;
*/
package eu.etaxonomy.taxeditor.editor;
-import eu.etaxonomy.cdm.api.service.IService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
}
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
- */
@Override
public ICdmEntitySession getCdmEntitySession() {
- return cdmEntitySession;
+ return cdmEntitySession;
}
- public <T extends CdmBase> void update(IService<T> service, T cdmBase) {
- cdmEntitySession.remoteUpdate(service, cdmBase);
+ public void bind() {
+ cdmEntitySession.bind();
}
- public abstract <T extends CdmBase> IService<T> getService();
-
- public <T extends CdmBase> void update(T cdmBase) {
- cdmEntitySession.remoteUpdate(getService(), cdmBase);
+ public void dispose() {
+ cdmEntitySession.dispose();
}
+ public abstract void merge();
- public abstract <T extends CdmBase> void update();
}
import org.eclipse.ui.PartInitException;\r
import org.eclipse.ui.part.EditorPart;\r
\r
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;\r
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;\r
import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
super.dispose();\r
}\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)\r
- */\r
- @Override\r
- public void onChange(CdmChangeEvent event) {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()\r
*/\r
switch(status.getSeverity()) {
case IStatus.WARNING:
- MessagingUtils.warningDialog("Operation successful but with warnings", null, status);
+ ErrorDialog.openError(null, "Operation successful but with warnings", null, status);
break;
case IStatus.ERROR:
ErrorDialog.openError(null, "Error executing operation", null, status);
import org.eclipse.ui.IMemento;
import org.eclipse.ui.part.ViewPart;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
super.dispose();
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
- }
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPart;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.description.Feature;
public boolean onComplete() {
return true;
}
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
- }
}
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.part.EditorPart;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
// TODO Auto-generated method stub
return false;
}
-
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
- */
- @Override
- public void onChange(CdmChangeEvent event) {
- // TODO Auto-generated method stub
-
- }
-
-
}
* 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.operation;
+package eu.etaxonomy.taxeditor.store.operations;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
import eu.etaxonomy.cdm.api.service.ITestService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.api.service.dto.CdmEntityIdentifier;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
/**
* @author cmathew
private UpdateResult result;
private Exception exception;
+ private CdmEntityIdentifier cei;
/**
this.exception = exception;
}
+ public RemotingTestUpdateOperation(CdmEntityIdentifier cei,
+ Object source,
+ boolean async) {
+ super(LABEL, Action.Update, source, async);
+ this.cei = cei;
+ }
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation#doUpdateExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
*/
protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
ITestService testService = CdmApplicationState.getTestService();
if(result != null) {
- return CdmApplicationState.getTestService().returnResult(result);
- } else if(throwExceptions) {
+ return testService.returnResult(result);
+ } else if(exception != null) {
return testService.throwException(exception);
+ } else if(cei != null) {
+ return testService.addChild(cei);
}
return null;
}
import org.junit.After;
import org.junit.Before;
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher;
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
import eu.etaxonomy.taxeditor.session.MockSessionOwner;
sessionOwner = new MockSessionOwner();
logger.info("created mock session owner : " + sessionOwner);
ICdmEntitySession cdmEntitySession = cdmEntitySessionManager.newSession(sessionOwner, true);
+ CdmApplicationState.getCurrentDataChangeService().register(sessionOwner);
sessionOwner.setCdmEntitySession(cdmEntitySession);
cacher = getCacher(sessionOwner);
}
@After
public void postSessionAwareTest() {
sessionOwner.dispose();
+ CdmApplicationState.getCurrentDataChangeService().unregister(sessionOwner);
logger.info("disposed of mock session owner : " + sessionOwner);
}
}
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.operations.BaseOperationTest;
import eu.etaxonomy.taxeditor.remoting.cache.ProxyUtils;
+import eu.etaxonomy.taxeditor.store.operations.RemotingTestUpdateOperation;
/**
* @author cmathew
operation = new RemotingTestUpdateOperation(result, sessionOwner, false);
operation.execute(monitor, info);
+
+ Assert.assertEquals(taxonNodes, sessionOwner.getEventUpdatedObjects());
}
@Test
sessionOwner.setExpectedUpdatedObjects(taxonNodes);
operation = new RemotingTestUpdateOperation(result, sessionOwner, false);
operation.execute(monitor, info);
+
+ Assert.assertEquals(taxonNodes, sessionOwner.getEventUpdatedObjects());
}
@Test
Assert.assertEquals(taxonNodes, sessionOwner.getEventUpdatedObjects());
}
+ @Test
+ public void testDataChange() throws ExecutionException {
+ TaxonNode taxonNode = (TaxonNode) ProxyUtils.deproxy(taxonNodeService.load(taxonNodeUuid1));
+ CdmEntityIdentifier cei = new CdmEntityIdentifier(taxonNode.getId(), TaxonNode.class);
+
+ taxonNodes = new HashSet<TaxonNode>();
+ taxonNodes.add(taxonNode);
+
+ int taxonNodeCountChildren = taxonNode.getCountChildren();
+ sessionOwner.setExpectedUpdatedObjects(taxonNodes);
+
+ operation = new RemotingTestUpdateOperation(cei, sessionOwner, false);
+ operation.execute(monitor, info);
+
+ Set eventUpdatedObjects = sessionOwner.getEventUpdatedObjects();
+ Assert.assertEquals(taxonNodes, eventUpdatedObjects);
+ Assert.assertEquals(taxonNodeCountChildren + 1, ((TaxonNode)eventUpdatedObjects.iterator().next()).getCountChildren());
+ }
+
}
import org.junit.Assert;
import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
+import eu.etaxonomy.cdm.api.application.ICdmChangeListener;
import eu.etaxonomy.cdm.model.common.CdmBase;
-public class MockSessionOwner<T extends CdmBase> implements ICdmEntitySessionEnabled {
+public class MockSessionOwner<T extends CdmBase> implements ICdmEntitySessionEnabled, ICdmChangeListener {
private static final Logger logger = Logger.getLogger(MockSessionOwner.class);