From bce766a128fd4241fd8673a5dd871056f893b404 Mon Sep 17 00:00:00 2001
From: Patrick Plitzner
Date: Wed, 13 Sep 2017 14:56:22 +0200
Subject: [PATCH] ref #6932 Refactor merge annotating
---
.../bulkeditor/e4/AnnotatedTableItem.java | 60 -------------------
.../taxeditor/bulkeditor/e4/BulkEditorE4.java | 41 +++----------
.../e4/BulkEditorLabelProvider.java | 15 ++++-
.../handler/ConvertPerson2TeamHandlerE4.java | 10 ++--
.../handler/ConvertTeam2PersonHandlerE4.java | 10 ++--
.../e4/handler/DeleteHandlerE4.java | 4 +-
.../e4/handler/MergeGroupHandlerE4.java | 34 +++++------
.../RemoveMergeCandidateHandlerE4.java | 6 +-
.../handler/SetMergeCandidateHandlerE4.java | 6 +-
.../e4/handler/SetMergeTargetHandlerE4.java | 12 ++--
.../input/AbstractBulkEditorInput.java | 40 ++++++++++---
11 files changed, 91 insertions(+), 147 deletions(-)
delete mode 100644 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/AnnotatedTableItem.java
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/AnnotatedTableItem.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/AnnotatedTableItem.java
deleted file mode 100644
index e4d8bc5e8..000000000
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/AnnotatedTableItem.java
+++ /dev/null
@@ -1,60 +0,0 @@
-// $Id$
-/**
-* Copyright (C) 2017 EDIT
-* 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.
-*/
-package eu.etaxonomy.taxeditor.bulkeditor.e4;
-
-import eu.etaxonomy.cdm.model.common.CdmBase;
-
-/**
- * @author pplitzner
- * @date 12.09.2017
- *
- */
-public class AnnotatedTableItem {
-
- private T element;
- private boolean isMergeCandidate = false;
- private boolean isMergeTarget = false;
-
- public AnnotatedTableItem(T element) {
- super();
- this.element = element;
- }
-
- public T getElement() {
- return element;
- }
-
- public void setMergeCandidate(boolean isMergeCandidate) {
- this.isMergeCandidate = isMergeCandidate;
- if(isMergeCandidate){
- this.isMergeTarget = false;
- }
- }
-
- public void setMergeTarget(boolean isMergeTarget) {
- this.isMergeTarget = isMergeTarget;
- if(isMergeTarget){
- this.isMergeCandidate = false;
- }
- }
-
- public boolean isMergeCandidate() {
- return isMergeCandidate;
- }
-
- public boolean isMergeTarget() {
- return isMergeTarget;
- }
-
- @Override
- public String toString() {
- return element.toString();
- }
-}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorE4.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorE4.java
index 866b2d3fd..17ce13faf 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorE4.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorE4.java
@@ -9,7 +9,6 @@
package eu.etaxonomy.taxeditor.bulkeditor.e4;
-import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
@@ -112,7 +111,7 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
bottomComposite.setLayout(new FillLayout());
viewer = new TableViewer(bottomComposite);
viewer.setContentProvider(new ArrayContentProvider());
- viewer.setLabelProvider(new BulkEditorLabelProvider());
+ viewer.setLabelProvider(new BulkEditorLabelProvider(this));
//propagate selection
@@ -126,17 +125,16 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
@Persist
public void save() {
+ //FIXME E4 do the potential merging of groups
+
// commit the conversation and start a new transaction immediately
conversation.commit(true);
Object object = viewer.getInput();
if(object instanceof List){
for (Object item: (List)object) {
- if(item instanceof AnnotatedTableItem){
- CdmBase cdmBase = ((AnnotatedTableItem) item).getElement();
- CdmStore.getService(cdmBase).merge(cdmBase, true);
- }
-
+ CdmBase cdmBase = (CdmBase) item;
+ CdmStore.getService(cdmBase).merge(cdmBase, true);
}
}
dirty.setDirty(false);
@@ -160,7 +158,7 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
getEditorInput().performSearch(query);
- viewer.setInput(getEditorInput().getWrappedModel());
+ viewer.setInput(getEditorInput().getModel());
refresh();
}
}
@@ -171,7 +169,7 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
public void refresh(boolean resetInput) {
if(resetInput){
- viewer.setInput(getEditorInput().getWrappedModel());
+ viewer.setInput(getEditorInput().getModel());
}
viewer.refresh();
}
@@ -192,30 +190,9 @@ public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnable
return input;
}
- public List getMergeCandidates(){
- List mergeCandidates = new ArrayList<>();
- for(AnnotatedTableItem item: (List)viewer.getInput()){
- if(item.isMergeCandidate()){
- mergeCandidates.add(item);
- }
- }
- return mergeCandidates;
- }
-
- public AnnotatedTableItem getMergeTarget(){
- for(AnnotatedTableItem item: (List)viewer.getInput()){
- if(item.isMergeTarget()){
- return item;
- }
- }
- return null;
- }
-
public void removeAllAnnotations(){
- for(AnnotatedTableItem item: (List)viewer.getInput()){
- item.setMergeCandidate(false);
- item.setMergeTarget(false);
- }
+ input.removeMergeTarget();
+ input.removeMergeCandidates();
}
/**
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorLabelProvider.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorLabelProvider.java
index 2d47fd1c7..f7eb7e0d9 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorLabelProvider.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/BulkEditorLabelProvider.java
@@ -18,6 +18,7 @@ import org.eclipse.core.runtime.Path;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
+import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
import eu.etaxonomy.taxeditor.model.ImageResources;
@@ -28,19 +29,27 @@ import eu.etaxonomy.taxeditor.model.ImageResources;
*/
public class BulkEditorLabelProvider extends LabelProvider {
+ private BulkEditorE4 editor;
+
+ public BulkEditorLabelProvider(BulkEditorE4 editor) {
+ super();
+ this.editor = editor;
+ }
+
/**
* {@inheritDoc}
*/
@Override
public Image getImage(Object element) {
- AnnotatedTableItem item = (AnnotatedTableItem)element;
+ AbstractBulkEditorInput input = editor.getEditorInput();
+
try {
- if(item.isMergeCandidate()){
+ if(input.getMergeCandidates().contains(element)){
IPath path = new Path("icons/merge_candidate.gif"); //$NON-NLS-1$
URL url = FileLocator.find(TaxeditorBulkeditorPlugin.getDefault().getBundle(), path, null);
return ImageResources.getImage(url.toURI());
}
- else if(item.isMergeTarget()){
+ else if(input.getMergeTarget()!=null && input.getMergeTarget().equals(element)){
IPath path = new Path("icons/merge_target.gif"); //$NON-NLS-1$
URL url = FileLocator.find(TaxeditorBulkeditorPlugin.getDefault().getBundle(), path, null);
return ImageResources.getImage(url.toURI());
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/ConvertPerson2TeamHandlerE4.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/ConvertPerson2TeamHandlerE4.java
index 328d7057c..f8d446933 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/ConvertPerson2TeamHandlerE4.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/ConvertPerson2TeamHandlerE4.java
@@ -21,8 +21,8 @@ import eu.etaxonomy.cdm.api.service.IAgentService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.strategy.merge.MergeException;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.AnnotatedTableItem;
import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -37,7 +37,7 @@ public class ConvertPerson2TeamHandlerE4 {
@Execute
- public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)AnnotatedTableItem item,
+ public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)CdmBase selection,
@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
@@ -55,7 +55,7 @@ public class ConvertPerson2TeamHandlerE4 {
Team team =null;
UpdateResult result = null;
try {
- result = CdmStore.getService(IAgentService.class).convertPerson2Team(item.getElement().getUuid());
+ result = CdmStore.getService(IAgentService.class).convertPerson2Team(selection.getUuid());
} catch (IllegalArgumentException e) {
MessagingUtils.errorDialog("Can not convert Person into a Team", null, e.getLocalizedMessage(), TaxeditorBulkeditorPlugin.PLUGIN_ID,e, true);
} catch (MergeException e) {
@@ -70,11 +70,11 @@ public class ConvertPerson2TeamHandlerE4 {
}
@CanExecute
- public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)AnnotatedTableItem selection,
+ public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)CdmBase selection,
@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
MHandledMenuItem menuItem){
boolean canExecute = false;
- canExecute = ((BulkEditorE4)activePart.getObject()).getEditorInput().isConvertingEnabled() && selection.getElement() instanceof Person;
+ canExecute = ((BulkEditorE4)activePart.getObject()).getEditorInput().isConvertingEnabled() && selection instanceof Person;
menuItem.setVisible(canExecute);
return canExecute;
}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/ConvertTeam2PersonHandlerE4.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/ConvertTeam2PersonHandlerE4.java
index bd54325bb..e9ecbcd50 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/ConvertTeam2PersonHandlerE4.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/ConvertTeam2PersonHandlerE4.java
@@ -21,8 +21,8 @@ import eu.etaxonomy.cdm.api.service.IAgentService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.agent.Team;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.strategy.merge.MergeException;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.AnnotatedTableItem;
import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -35,7 +35,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
public class ConvertTeam2PersonHandlerE4 {
@Execute
- public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)AnnotatedTableItem item,
+ public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)CdmBase selection,
@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
@@ -54,7 +54,7 @@ public class ConvertTeam2PersonHandlerE4 {
UpdateResult result = null;
try {
- result = CdmStore.getService(IAgentService.class).convertTeam2Person(item.getElement().getUuid());
+ result = CdmStore.getService(IAgentService.class).convertTeam2Person(selection.getUuid());
} catch (IllegalArgumentException e) {
MessagingUtils.informationDialog("Can not convert Team to Person", e.getMessage());
} catch (MergeException e) {
@@ -69,11 +69,11 @@ public class ConvertTeam2PersonHandlerE4 {
}
@CanExecute
- public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)AnnotatedTableItem selection,
+ public boolean canExecute(@Named(IServiceConstants.ACTIVE_SELECTION)CdmBase selection,
@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
MHandledMenuItem menuItem){
boolean canExecute = false;
- canExecute = ((BulkEditorE4)activePart.getObject()).getEditorInput().isConvertingEnabled() && selection.getElement() instanceof Team;
+ canExecute = ((BulkEditorE4)activePart.getObject()).getEditorInput().isConvertingEnabled() && selection instanceof Team;
menuItem.setVisible(canExecute);
return canExecute;
}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/DeleteHandlerE4.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/DeleteHandlerE4.java
index 3dca3dd8b..6e39daad6 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/DeleteHandlerE4.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/DeleteHandlerE4.java
@@ -46,7 +46,6 @@ import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.AnnotatedTableItem;
import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
import eu.etaxonomy.taxeditor.l10n.Messages;
@@ -83,7 +82,7 @@ public class DeleteHandlerE4 {
private static final String CONFIRM_DELETION = Messages.DeleteHandler_CONFIRM;
@Execute
- public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)AnnotatedTableItem item,
+ public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)CdmBase object,
@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
@Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
@@ -98,7 +97,6 @@ public class DeleteHandlerE4 {
DeleteConfiguratorBase config = null;
DeleteResult result = new DeleteResult();
String errorMessage= OBJECT;
- CdmBase object = item.getElement();
if (editor.isDirty()){
boolean proceed = MessageDialog.openQuestion(null,
"Save changes", "You have made changes that must be saved before this query can be executed. Would you like to proceed?");
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/MergeGroupHandlerE4.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/MergeGroupHandlerE4.java
index 10aeb78a6..d2adbb653 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/MergeGroupHandlerE4.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/MergeGroupHandlerE4.java
@@ -12,7 +12,6 @@ import java.util.List;
import javax.inject.Named;
-import org.apache.log4j.Logger;
import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.services.IServiceConstants;
@@ -21,10 +20,11 @@ import org.eclipse.swt.widgets.Shell;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.strategy.merge.MergeException;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.AnnotatedTableItem;
import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
@@ -34,18 +34,17 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
*
*/
public class MergeGroupHandlerE4 {
- private static final Logger logger = Logger
- .getLogger(MergeGroupHandlerE4.class);
@Execute
- public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)Object object,
+ public void execute(
@Named(IServiceConstants.ACTIVE_PART)MPart activePart,
@Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
+ AbstractBulkEditorInput input = editor.getEditorInput();
// Check whether there are any group annotations
- List mergeCandidates = editor.getMergeCandidates();
+ List mergeCandidates = input.getMergeCandidates();
if (mergeCandidates.size() == 0) {
MessageDialog.openWarning(shell,
"No merge candidates", "No objects have been chosen for merging.");
@@ -53,47 +52,46 @@ public class MergeGroupHandlerE4 {
}
// Check whether group merge target has been set
- AnnotatedTableItem mergeTarget = editor.getMergeTarget();
+ CdmBase mergeTarget = input.getMergeTarget();
if (mergeTarget == null) {
MessageDialog.openWarning(shell,
"No group merge target set", "No group merge target has been set.");
return;
}
- Object targetEntity = mergeTarget.getElement();
TeamOrPersonBase teamOrPerson = null;
Reference ref = null;
- if (targetEntity instanceof TeamOrPersonBase){
- teamOrPerson = HibernateProxyHelper.deproxy(targetEntity, TeamOrPersonBase.class);
- } else if(targetEntity instanceof Reference){
- ref = HibernateProxyHelper.deproxy(targetEntity, Reference.class);
+ if (mergeTarget instanceof TeamOrPersonBase){
+ teamOrPerson = HibernateProxyHelper.deproxy(mergeTarget, TeamOrPersonBase.class);
+ } else if(mergeTarget instanceof Reference){
+ ref = HibernateProxyHelper.deproxy(mergeTarget, Reference.class);
}
- for (AnnotatedTableItem item : mergeCandidates) {
+ for (CdmBase item : mergeCandidates) {
//first check whether entities are mergeable
try{
if (ref != null){
- Reference ref2 = HibernateProxyHelper.deproxy(item.getElement(), Reference.class);
+ Reference ref2 = HibernateProxyHelper.deproxy(item, Reference.class);
if (!CdmStore.getCommonService().isMergeable(ref, ref2, null)){
MessageDialog.openWarning(shell,
"No merge possible", "A merge of " + ref.getTitleCache() + " and " + ref2.getTitleCache() + " is not possible.");
return;
}
+ input.getModel().remove(item);
}
if (teamOrPerson != null){
- TeamOrPersonBase teamOrPerson2 = HibernateProxyHelper.deproxy(item.getElement(), TeamOrPersonBase.class);
+ TeamOrPersonBase teamOrPerson2 = HibernateProxyHelper.deproxy(item, TeamOrPersonBase.class);
if (!CdmStore.getCommonService().isMergeable(teamOrPerson, teamOrPerson2, null)){
MessageDialog.openWarning(shell,
"No merge possible", "A merge of " + teamOrPerson.getTitleCache() + " and " + teamOrPerson2.getTitleCache() + " is not possible.");
return;
}
+ input.getModel().remove(item);
}
}catch(MergeException e){
}
- editor.removeAllAnnotations();
- editor.refresh();
// ((BulkEditor) editor).removeAnnotatedLine(item);
//
// // Mark entity container for merging with target entity
@@ -107,5 +105,7 @@ public class MergeGroupHandlerE4 {
// model.removeTypeFromAllAnnotations(IBulkEditorConstants.TYPE_MERGE_CANDIDATE);
// model.removeTypeFromAllAnnotations(IBulkEditorConstants.TYPE_MERGE_TARGET);
}
+ editor.setDirty();
+ editor.refresh();
}
}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/RemoveMergeCandidateHandlerE4.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/RemoveMergeCandidateHandlerE4.java
index 453bf7e1f..b7f6e6e7e 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/RemoveMergeCandidateHandlerE4.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/RemoveMergeCandidateHandlerE4.java
@@ -14,7 +14,7 @@ import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.services.IServiceConstants;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.AnnotatedTableItem;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
/**
@@ -27,10 +27,10 @@ public class RemoveMergeCandidateHandlerE4 {
@Execute
- public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)AnnotatedTableItem item,
+ public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)CdmBase selection,
@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
- item.setMergeCandidate(false);
+ editor.getEditorInput().removeMergeCandidate(selection);
editor.refresh();
}
}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/SetMergeCandidateHandlerE4.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/SetMergeCandidateHandlerE4.java
index edc7bcf00..0a3f625b5 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/SetMergeCandidateHandlerE4.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/SetMergeCandidateHandlerE4.java
@@ -14,7 +14,7 @@ import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.services.IServiceConstants;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.AnnotatedTableItem;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
/**
@@ -26,10 +26,10 @@ import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
public class SetMergeCandidateHandlerE4 {
@Execute
- public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)AnnotatedTableItem item,
+ public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)CdmBase selection,
@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
- item.setMergeCandidate(true);
+ editor.getEditorInput().addMergeCandidate(selection);
editor.refresh();
}
}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/SetMergeTargetHandlerE4.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/SetMergeTargetHandlerE4.java
index 6edef7b9e..afe5091a2 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/SetMergeTargetHandlerE4.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/e4/handler/SetMergeTargetHandlerE4.java
@@ -14,8 +14,9 @@ import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.services.IServiceConstants;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.AnnotatedTableItem;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
+import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
/**
*
@@ -26,14 +27,11 @@ import eu.etaxonomy.taxeditor.bulkeditor.e4.BulkEditorE4;
public class SetMergeTargetHandlerE4 {
@Execute
- public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)AnnotatedTableItem item,
+ public void execute(@Named(IServiceConstants.ACTIVE_SELECTION)CdmBase selection,
@Named(IServiceConstants.ACTIVE_PART)MPart activePart) {
BulkEditorE4 editor = (BulkEditorE4) activePart.getObject();
- AnnotatedTableItem mergeTarget = editor.getMergeTarget();
- if(mergeTarget!=null){
- mergeTarget.setMergeTarget(false);
- }
- item.setMergeTarget(true);
+ AbstractBulkEditorInput input = editor.getEditorInput();
+ input.setMergeTarget(selection);
editor.refresh();
}
}
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
index 0bd958bab..3abc2c97a 100644
--- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
+++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
@@ -31,7 +31,6 @@ import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorQuery;
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
-import eu.etaxonomy.taxeditor.bulkeditor.e4.AnnotatedTableItem;
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.CdmBaseSortProvider;
import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.TitleCacheComparator;
import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
@@ -52,6 +51,9 @@ public abstract class AbstractBulkEditorInput extends CdmEnti
private List model = new ArrayList<>();
+ private List mergeCandidates = new ArrayList<>();
+ private T mergeTarget = null;
+
private IEntityCreator entityCreator;
private final ConversationHolder conversation;
@@ -80,6 +82,34 @@ public abstract class AbstractBulkEditorInput extends CdmEnti
protected abstract T loadEntity(UUID entityUuid);
+ public void setMergeTarget(T t){
+ mergeTarget = t;
+ }
+
+ public List getMergeCandidates() {
+ return mergeCandidates;
+ }
+
+ public T getMergeTarget() {
+ return mergeTarget;
+ }
+
+ public void removeMergeTarget(){
+ mergeTarget = null;
+ }
+
+ public void addMergeCandidate(T t){
+ mergeCandidates.add(t);
+ }
+
+ public void removeMergeCandidate(T t){
+ mergeCandidates.remove(t);
+ }
+
+ public void removeMergeCandidates() {
+ mergeCandidates = new ArrayList<>();
+ }
+
private void setEntityUuid(UUID entityUuid){
this.entityUuid = entityUuid;
}
@@ -222,14 +252,6 @@ public abstract class AbstractBulkEditorInput extends CdmEnti
return model;
}
- public List> getWrappedModel() {
- List> wrappetItems = new ArrayList<>();
- for(T t:model){
- wrappetItems.add(new AnnotatedTableItem(t));
- }
- return wrappetItems;
- }
-
protected boolean replaceInModel(T entity) {
int index = model.indexOf(entity);
if(index >= 0) {
--
2.34.1