/**
- * <p>AgentEditorInput class.</p>
- *
* @author p.ciardelli
* @created 25.06.2009
* @version 1.0
*/
public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase> {
- /**
- *
- */
private static final long serialVersionUID = 3387950621617078479L;
- /** Constant <code>ID="bulkeditor.input.author"</code> */
public static final String ID = "bulkeditor.input.author";
private static AgentEditorInput instance;
- /**
- * <p>getID</p>
- *
- * @return the iD
- */
public static String getID() {
return ID;
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#getName()
- */
- /**
- * <p>getName</p>
- *
- * @return a {@link java.lang.String} object.
- */
+
@Override
public String getName() {
return BulkEditorInputType.AGENT.label;
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#getToolTipText()
- */
- /**
- * <p>getToolTipText</p>
- *
- * @return a {@link java.lang.String} object.
- */
+
@Override
public String getToolTipText() {
return getName();
}
- /**
- * <p>Getter for the field <code>instance</code>.</p>
- *
- * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
- */
public static AbstractBulkEditorInput getInstance() {
if (instance == null) {
instance = new AgentEditorInput();
return instance;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
- */
/** {@inheritDoc} */
@Override
public boolean isMergingEnabled() {
return true;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
- */
+
/** {@inheritDoc} */
@Override
public boolean isConvertingEnabled() {
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, Person.class);
+ if(entity instanceof Person && mergeTarget instanceof Person) {
+ IMergeStrategy strategy = DefaultMergeStrategy.NewInstance(Person.class);
+ strategy.setMergeMode("institutionalMemberships", MergeMode.FIRST);
+ CdmStore.getCommonService().merge(mergeTarget.getId(), entity.getId(), Person.class);
+ } else {
+ IMergeStrategy strategy = DefaultMergeStrategy.NewInstance(TeamOrPersonBase.class);
+ CdmStore.getCommonService().merge(mergeTarget.getId(), entity.getId(), TeamOrPersonBase.class);
+ }
} catch (MergeException e) {
MessagingUtils.errorDialog("Bulk Editor Merge Error",
this,
public boolean delete(AgentBase entity) throws ReferencedObjectUndeletableException {
-
return CdmStore.getService(IAgentService.class).delete(entity) != null;
}
-// /** {@inheritDoc} */
-// public boolean save(AgentBase entity) {
-//
-// return CdmStore.getService(IAgentService.class).saveOrUpdate(entity) != null;
-// }
+ /** {@inheritDoc} */
+ public boolean save(AgentBase entity) {
+
+ return CdmStore.getService(IAgentService.class).saveOrUpdate(entity) != null;
+ }
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
- */
@Override
public List<IBulkEditorSortProvider<TeamOrPersonBase>> getSortProviders() {
List<IBulkEditorSortProvider<TeamOrPersonBase>> sortProviders = super.getSortProviders();
return sortProviders;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
- */
+
@Override
protected IEntityCreator<TeamOrPersonBase> createEntityCreator() {
return new AgentCreator();
}
@Override
- public boolean save(TeamOrPersonBase entity) {
+ public TeamOrPersonBase save(TeamOrPersonBase entity) {
if(CdmStore.getCurrentSessionManager().isRemoting()) {
- return CdmStore.getService(IAgentService.class).merge(entity) != null;
+ return (TeamOrPersonBase) CdmStore.getService(IAgentService.class).merge(entity, true).getMergedEntity();
} else {
- return CdmStore.getService(IAgentService.class).saveOrUpdate(entity) != null;
+ CdmStore.getService(IAgentService.class).saveOrUpdate(entity) ;
+ return entity;
}
}
}
+
}