import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException;
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.strategy.merge.DefaultMergeStrategy;
+import eu.etaxonomy.cdm.strategy.merge.IMergable;
+import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
+import eu.etaxonomy.cdm.strategy.merge.MergeException;
+import eu.etaxonomy.cdm.strategy.merge.MergeMode;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
+import eu.etaxonomy.taxeditor.bulkeditor.handler.MergeGroupHandler;
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.AgentCreator;
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
+import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
* @created 25.06.2009
* @version 1.0
*/
-public class AgentEditorInput extends AbstractBulkEditorInput<AgentBase> {
+public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase> {
/**
*
public boolean isMergingEnabled() {
return true;
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
+ */
+ /** {@inheritDoc} */
+ @Override
+ public boolean isConvertingEnabled() {
+ return true;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public boolean merge(TeamOrPersonBase entity, TeamOrPersonBase mergeTarget) {
+ if (entity instanceof IMergable) {
+ try {
+ IMergeStrategy strategy = DefaultMergeStrategy.NewInstance(Person.class);
+ strategy.setMergeMode("institutionalMemberships", MergeMode.FIRST);
+ CdmStore.getCommonService().merge((IMergable)mergeTarget, (IMergable)entity, strategy);
+ } catch (MergeException e) {
+ MessagingUtils.errorDialog("Bulk Editor Merge Error",
+ this,
+ "Could not merge chosen objects of type " + entity.getClass().getName(),
+ TaxeditorBulkeditorPlugin.PLUGIN_ID,
+ e,
+ true);
+ }
+ }
+ return true;
+ }
/** {@inheritDoc} */
@Override
- public List<AgentBase> listEntities(IIdentifiableEntityServiceConfigurator configurator) {
+ public List<TeamOrPersonBase> listEntities(IIdentifiableEntityServiceConfigurator configurator) {
return CdmStore.getSearchManager().findTeamOrPersons(configurator);
}
* @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
*/
@Override
- public List<IBulkEditorSortProvider<AgentBase>> getSortProviders() {
- List<IBulkEditorSortProvider<AgentBase>> sortProviders = super.getSortProviders();
+ public List<IBulkEditorSortProvider<TeamOrPersonBase>> getSortProviders() {
+ List<IBulkEditorSortProvider<TeamOrPersonBase>> sortProviders = super.getSortProviders();
- sortProviders.add(0, new IdentifiableEntitySortProvider<AgentBase>());
+ sortProviders.add(0, new IdentifiableEntitySortProvider<TeamOrPersonBase>());
return sortProviders;
}
* @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
*/
@Override
- protected IEntityCreator<AgentBase> createEntityCreator() {
+ protected IEntityCreator<TeamOrPersonBase> createEntityCreator() {
return new AgentCreator();
}
+ @Override
+ public boolean save(TeamOrPersonBase entity) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean delete(TeamOrPersonBase entity)
+ throws ReferencedObjectUndeletableException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
}