EditConceptRelationshipComposite : show notification only when creating concept relat...
authorCherian Mathew <c.mathew@bgbm.org>
Wed, 29 Apr 2015 16:47:56 +0000 (18:47 +0200)
committerCherian Mathew <c.mathew@bgbm.org>
Wed, 29 Apr 2015 16:47:56 +0000 (18:47 +0200)
NewTaxonBaseComposite : added second sec. combobox for the case of creating synonyms
INewTaxonBaseComponentListener, NewTaxonBasePresenter : creating separate containers for acc. taxon and synonym references
NewTaxonBasePresenter, NewTaxonBasePresenterTest : updated new synonym method to include acc. taxon sec in input
StatusComposite : added move / change actions to context menu

src/main/java/eu/etaxonomy/cdm/vaadin/component/EditConceptRelationshipComposite.java
src/main/java/eu/etaxonomy/cdm/vaadin/component/NewTaxonBaseComposite.java
src/main/java/eu/etaxonomy/cdm/vaadin/component/StatusComposite.java
src/main/java/eu/etaxonomy/cdm/vaadin/presenter/NewTaxonBasePresenter.java
src/main/java/eu/etaxonomy/cdm/vaadin/view/INewTaxonBaseComponentListener.java
src/test/java/eu/etaxonomy/cdm/vaadin/presenter/NewTaxonBasePresenterTest.java

index 78d04bd61cf7bae5d8dc5a13b95a6b05aa86e8b0..acc9d37bd0e773ef728174f45e667885c9d860be 100644 (file)
@@ -406,7 +406,7 @@ public class EditConceptRelationshipComposite extends CustomComponent {
     private static void showInDialog(String windowTitle,
             EditConceptRelationshipComposite ecrc) {
         //FIXME : hack for the moment to demonstrate checking of concept relationship rules
-        if(!ecrc.canCreateRelationship()) {
+        if(ecrc.action.equals(Action.Create) && !ecrc.canCreateRelationship()) {
             Notification.show("Cannot create relationship for a taxon which is already congruent to another taxon", Type.WARNING_MESSAGE);
             return;
         }
index 683da55fbf45a3ca4e220792af84cbd4dbb22490..72a690209c0340c5621024d3dc15fa8ce4a94acb 100644 (file)
@@ -62,16 +62,20 @@ public class NewTaxonBaseComposite extends CustomComponent implements INewTaxonB
     @AutoGenerated
     private GridLayout gridLayout;
     @AutoGenerated
-    private Label accTaxonNameValue;
+    private ComboBox synComboBox;
+    @AutoGenerated
+    private Label synSecLabel;
     @AutoGenerated
-    private ComboBox secComboBox;
+    private ComboBox accTaxonSecComboBox;
     @AutoGenerated
-    private Label secLabel;
+    private Label accTaxonSecLabel;
     @AutoGenerated
     private TextField nameTextField;
     @AutoGenerated
     private Label nameLabel;
     @AutoGenerated
+    private Label accTaxonNameValue;
+    @AutoGenerated
     private Label accTaxonLabel;
     private INewTaxonBaseComponentListener listener;
 
@@ -107,42 +111,57 @@ public class NewTaxonBaseComposite extends CustomComponent implements INewTaxonB
         addUIListeners();
 
         if(accTaxonName == null || accTaxonName.isEmpty()) {
+            // this is the case where we create a new taxon
             accTaxonLabel.setVisible(false);
             accTaxonNameValue.setVisible(false);
+            synSecLabel.setVisible(false);
+            synComboBox.setVisible(false);
         } else {
+            // this is the case where we create a new synonym
             accTaxonNameValue.setValue(accTaxonName);
         }
         init();
     }
 
     public void init() {
-        initSecComboBox();
+        initAccTaxonSecComboBox();
+        if(accTaxonIun != null) {
+            initSynSecComboBox();
+        }
     }
 
-    private void initSecComboBox() {
-
-        secComboBox.setNullSelectionAllowed(false);
-        secComboBox.setItemCaptionPropertyId("titleCache");
-        secComboBox.setImmediate(true);
+    private void  initAccTaxonSecComboBox() {
+        accTaxonSecComboBox.setNullSelectionAllowed(false);
+        accTaxonSecComboBox.setItemCaptionPropertyId("titleCache");
+        accTaxonSecComboBox.setImmediate(true);
         if(listener != null) {
-            secComboBox.setContainerDataSource(listener.getSecRefContainer());
-            Object selectedSecItemId = null;
-            // if accTaxonIun is null then we are creating a new taxon
-            // else a new synonym
-            if(accTaxonIun == null) {
-                selectedSecItemId = listener.getClassificationRefId(classificationIun.getUuid());
+            accTaxonSecComboBox.setContainerDataSource(listener.getAccTaxonSecRefContainer());
+            Object selectedSecItemId = listener.getClassificationRefId(classificationIun.getUuid());
+            if(selectedSecItemId != null) {
+                accTaxonSecComboBox.setValue(selectedSecItemId);
             } else {
-                selectedSecItemId = listener.getAcceptedTaxonRefId(accTaxonIun.getUuid());
+                accTaxonSecComboBox.setInputPrompt(CHOOSE_SECUNDUM_PROMPT);
             }
+        }
+    }
 
+    private void initSynSecComboBox() {
+        synComboBox.setNullSelectionAllowed(false);
+        synComboBox.setItemCaptionPropertyId("titleCache");
+        synComboBox.setImmediate(true);
+        if(listener != null) {
+            synComboBox.setContainerDataSource(listener.getSynSecRefContainer());
+            Object selectedSecItemId = listener.getClassificationRefId(classificationIun.getUuid());
             if(selectedSecItemId != null) {
-                secComboBox.setValue(selectedSecItemId);
+                synComboBox.setValue(selectedSecItemId);
             } else {
-                secComboBox.setInputPrompt(CHOOSE_SECUNDUM_PROMPT);
+                synComboBox.setInputPrompt(CHOOSE_SECUNDUM_PROMPT);
             }
         }
     }
 
+
+
     private void addUIListeners() {
         addSaveButtonListener();
         addCancelButtonListener();
@@ -155,7 +174,10 @@ public class NewTaxonBaseComposite extends CustomComponent implements INewTaxonB
             public void buttonClick(ClickEvent event) {
                 try {
                     nameTextField.validate();
-                    secComboBox.validate();
+                    accTaxonSecComboBox.validate();
+                    if(accTaxonIun != null) {
+                        synComboBox.validate();
+                    }
                 } catch (EmptyValueException e) {
                     Notification notification = new Notification("Invalid input", "Neither Name or Secundum can be empty", Type.WARNING_MESSAGE);
                     notification.setDelayMsec(2000);
@@ -171,9 +193,12 @@ public class NewTaxonBaseComposite extends CustomComponent implements INewTaxonB
                         setProgress("Saving Taxon " + nameTextField.getValue());
                         IdUuidName taxonBaseIdUuid;
                         if(accTaxonIun == null) {
-                            taxonBaseIdUuid = listener.newTaxon(nameTextField.getValue(),secComboBox.getValue(), classificationIun.getUuid());
+                            taxonBaseIdUuid = listener.newTaxon(nameTextField.getValue(),accTaxonSecComboBox.getValue(), classificationIun.getUuid());
                         } else {
-                            taxonBaseIdUuid = listener.newSynonym(nameTextField.getValue(),secComboBox.getValue(), accTaxonIun.getUuid());
+                            taxonBaseIdUuid = listener.newSynonym(nameTextField.getValue(),
+                                    accTaxonSecComboBox.getValue(),
+                                    accTaxonSecComboBox.getValue(),
+                                    accTaxonIun.getUuid());
                         }
                         Object rowId = new RowId(taxonBaseIdUuid.getId());
                         registerDelayedEvent(new CdmChangeEvent(Action.Create, Arrays.asList(rowId), NewTaxonBaseComposite.class));
@@ -218,13 +243,13 @@ public class NewTaxonBaseComposite extends CustomComponent implements INewTaxonB
         // common part: create layout
         mainLayout = new VerticalLayout();
         mainLayout.setImmediate(false);
-        mainLayout.setWidth("340px");
-        mainLayout.setHeight("200px");
+        mainLayout.setWidth("420px");
+        mainLayout.setHeight("240px");
         mainLayout.setMargin(true);
 
         // top-level component properties
-        setWidth("340px");
-        setHeight("200px");
+        setWidth("420px");
+        setHeight("240px");
 
         // gridLayout
         gridLayout = buildGridLayout();
@@ -253,7 +278,7 @@ public class NewTaxonBaseComposite extends CustomComponent implements INewTaxonB
         gridLayout = new GridLayout();
         gridLayout.setImmediate(false);
         gridLayout.setWidth("-1px");
-        gridLayout.setHeight("-1px");
+        gridLayout.setHeight("140px");
         gridLayout.setMargin(false);
         gridLayout.setSpacing(true);
         gridLayout.setColumns(2);
@@ -268,6 +293,15 @@ public class NewTaxonBaseComposite extends CustomComponent implements INewTaxonB
         gridLayout.addComponent(accTaxonLabel, 0, 0);
         gridLayout.setComponentAlignment(accTaxonLabel, new Alignment(34));
 
+        // accTaxonNameValue
+        accTaxonNameValue = new Label();
+        accTaxonNameValue.setImmediate(false);
+        accTaxonNameValue.setWidth("-1px");
+        accTaxonNameValue.setHeight("-1px");
+        accTaxonNameValue.setValue("Taxon Name");
+        gridLayout.addComponent(accTaxonNameValue, 1, 0);
+        gridLayout.setComponentAlignment(accTaxonNameValue, new Alignment(33));
+
         // nameLabel
         nameLabel = new Label();
         nameLabel.setImmediate(false);
@@ -287,33 +321,41 @@ public class NewTaxonBaseComposite extends CustomComponent implements INewTaxonB
         gridLayout.addComponent(nameTextField, 1, 1);
         gridLayout.setComponentAlignment(nameTextField, new Alignment(33));
 
-        // secLabel
-        secLabel = new Label();
-        secLabel.setImmediate(false);
-        secLabel.setWidth("-1px");
-        secLabel.setHeight("-1px");
-        secLabel.setValue("Secundum : ");
-        gridLayout.addComponent(secLabel, 0, 2);
-        gridLayout.setComponentAlignment(secLabel, new Alignment(34));
-
-        // secComboBox
-        secComboBox = new ComboBox();
-        secComboBox.setImmediate(false);
-        secComboBox.setWidth("190px");
-        secComboBox.setHeight("-1px");
-        secComboBox.setInvalidAllowed(false);
-        secComboBox.setRequired(true);
-        gridLayout.addComponent(secComboBox, 1, 2);
-        gridLayout.setComponentAlignment(secComboBox, new Alignment(33));
-
-        // accTaxonNameValue
-        accTaxonNameValue = new Label();
-        accTaxonNameValue.setImmediate(false);
-        accTaxonNameValue.setWidth("-1px");
-        accTaxonNameValue.setHeight("-1px");
-        accTaxonNameValue.setValue("Taxon Name");
-        gridLayout.addComponent(accTaxonNameValue, 1, 0);
-        gridLayout.setComponentAlignment(accTaxonNameValue, new Alignment(33));
+        // accTaxonSecLabel
+        accTaxonSecLabel = new Label();
+        accTaxonSecLabel.setImmediate(false);
+        accTaxonSecLabel.setWidth("-1px");
+        accTaxonSecLabel.setHeight("-1px");
+        accTaxonSecLabel.setValue("Acc. Taxon Secundum : ");
+        gridLayout.addComponent(accTaxonSecLabel, 0, 2);
+        gridLayout.setComponentAlignment(accTaxonSecLabel, new Alignment(34));
+
+        // accTaxonSecComboBox
+        accTaxonSecComboBox = new ComboBox();
+        accTaxonSecComboBox.setImmediate(false);
+        accTaxonSecComboBox.setWidth("190px");
+        accTaxonSecComboBox.setHeight("-1px");
+        accTaxonSecComboBox.setInvalidAllowed(false);
+        accTaxonSecComboBox.setRequired(true);
+        gridLayout.addComponent(accTaxonSecComboBox, 1, 2);
+        gridLayout.setComponentAlignment(accTaxonSecComboBox, new Alignment(33));
+
+        // synSecLabel
+        synSecLabel = new Label();
+        synSecLabel.setImmediate(false);
+        synSecLabel.setWidth("-1px");
+        synSecLabel.setHeight("-1px");
+        synSecLabel.setValue("Synonym Secundum : ");
+        gridLayout.addComponent(synSecLabel, 0, 3);
+
+        // synComboBox
+        synComboBox = new ComboBox();
+        synComboBox.setImmediate(false);
+        synComboBox.setWidth("190px");
+        synComboBox.setHeight("-1px");
+        synComboBox.setInvalidAllowed(false);
+        synComboBox.setRequired(true);
+        gridLayout.addComponent(synComboBox, 1, 3);
 
         return gridLayout;
     }
index a8627627a3dd54cfb3d9d00fb4655812ef041b75..4b5316f2ddb2c67acb3150d738b29c4ba4ef8047 100644 (file)
@@ -106,11 +106,13 @@ public class StatusComposite extends CustomComponent implements View, IStatusCom
 
     private final boolean taxaTreeTableMultiSelectMode = true;
 
-    private static final String SELECT_FILTER = "Select filter ...";
     private static final String SELECT_CLASSIFICATION = "Select classification ...";
 
-    private static final String ADD_TAXON_SYNONYM_INPUT = "Add ...";
+
     private static final String CREATE_ACC_TAXON = "Create Accepted Taxon";
+    private static final String CHANGE_TO_ACC_TAXON = "Change to Accepted Taxon";
+    private static final String REPLACE_ACC_TAXON = "Replace Accepted Taxon";
+    private static final String CHANGE_TO_SYNONYM = "Change to Synonym";
     private static final String CREATE_SYNONYM = "Create Synonym";
     private static final String SET_AS_DELETED = "Set as Deleted";
     private static final String SET_AS_EXCLUDED = "Set as Excluded";
@@ -282,14 +284,6 @@ public class StatusComposite extends CustomComponent implements View, IStatusCom
         container.addContainerProperty("filter", String.class, "");
         container.addContainerProperty("selected", Boolean.class, "");
 
-//        Item item = container.addItem(FILTER_NOT_RESOLVED);
-//        item.getItemProperty(PROPERTY_FILTER_ID).setValue(FILTER_NOT_RESOLVED);
-//        item.getItemProperty(PROPERTY_SELECTED_ID).setValue(false);
-//
-//        item = container.addItem(FILTER_UNPLACED);
-//        item.getItemProperty(PROPERTY_FILTER_ID).setValue(FILTER_UNPLACED);
-//        item.getItemProperty(PROPERTY_SELECTED_ID).setValue(false);
-
         Item item = container.addItem(FILTER_UNFINISHED);
         item.getItemProperty(PROPERTY_FILTER_ID).setValue(FILTER_UNFINISHED);
         item.getItemProperty(PROPERTY_SELECTED_ID).setValue(false);
@@ -409,7 +403,7 @@ public class StatusComposite extends CustomComponent implements View, IStatusCom
                         .fireSelectionEvent(new SelectionEvent(Arrays.asList(idUuidName, getSelectedClassificationUuid()), StatusComposite.class), true);
                     }
                     taxaTreeTable.setValue(Arrays.asList(itemId));
-                    generateTaxaTreeTableContextMenu(!isSynonym);
+                    generateTaxaTreeTableContextMenu(isSynonym);
 
                 }
             }
@@ -424,9 +418,25 @@ public class StatusComposite extends CustomComponent implements View, IStatusCom
 
         taxaTableContextMenu.removeAllItems();
         if(isSynonym) {
+
+
+            ContextMenuItem changeToAccTaxonMenuItem = taxaTableContextMenu.addItem(CHANGE_TO_ACC_TAXON);
+            changeToAccTaxonMenuItem.setData(CHANGE_TO_ACC_TAXON);
+
+            ContextMenuItem replaceAccTaxonMenuItem = taxaTableContextMenu.addItem(REPLACE_ACC_TAXON);
+            replaceAccTaxonMenuItem.setData(REPLACE_ACC_TAXON);
+
+            replaceAccTaxonMenuItem.setSeparatorVisible(true);
+        } else {
             ContextMenuItem createSynMenuItem = taxaTableContextMenu.addItem(CREATE_SYNONYM);
             createSynMenuItem.setData(CREATE_SYNONYM);
+
+            ContextMenuItem changeToSynMenuItem = taxaTableContextMenu.addItem(CHANGE_TO_SYNONYM);
+            changeToSynMenuItem.setData(CHANGE_TO_SYNONYM);
+
+            changeToSynMenuItem.setSeparatorVisible(true);
         }
+
         ContextMenuItem setDeletedMenuItem = taxaTableContextMenu.addItem(SET_AS_DELETED);
         setDeletedMenuItem.setData(SET_AS_DELETED);
 
@@ -436,8 +446,6 @@ public class StatusComposite extends CustomComponent implements View, IStatusCom
         ContextMenuItem setOutOfScopeMenuItem = taxaTableContextMenu.addItem(SET_AS_OUT_OF_SCOPE);
         setOutOfScopeMenuItem.setData(SET_AS_OUT_OF_SCOPE);
 
-        setOutOfScopeMenuItem.setSeparatorVisible(true);
-
         ContextMenuItem createAccTaxonMenuItem = taxaTableContextMenu.addItem(CREATE_ACC_TAXON);
         createAccTaxonMenuItem.setData(CREATE_ACC_TAXON);
 
index 543aaabdfde330b79eaf85ab40c8345b9940a772..4fccf126e892de363e061dfd66662e4ae81ed9bf 100644 (file)
@@ -46,7 +46,8 @@ public class NewTaxonBasePresenter implements INewTaxonBaseComponentListener {
 
 
 
-    private final CdmSQLContainer secRefContainer;
+    private final CdmSQLContainer accTaxonSecRefContainer;
+    private final CdmSQLContainer synSecRefContainer;
 
     private final IReferenceService referenceService;
     private final ITaxonNodeService taxonNodeService;
@@ -55,16 +56,20 @@ public class NewTaxonBasePresenter implements INewTaxonBaseComponentListener {
     private final ICdmApplicationConfiguration app;
 
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.vaadin.view.INewTaxonBaseComponentListener#getSecRefContainer()
-     */
+
+    @Override
+    public CdmSQLContainer getAccTaxonSecRefContainer() {
+        return accTaxonSecRefContainer;
+    }
+
     @Override
-    public CdmSQLContainer getSecRefContainer() {
-        return secRefContainer;
+    public CdmSQLContainer getSynSecRefContainer() {
+        return synSecRefContainer;
     }
 
     public NewTaxonBasePresenter() throws SQLException {
-        secRefContainer = CdmSQLContainer.newInstance("Reference");
+        accTaxonSecRefContainer = CdmSQLContainer.newInstance("Reference");
+        synSecRefContainer = CdmSQLContainer.newInstance("Reference");
         referenceService = CdmSpringContextHelper.getReferenceService();
         taxonNodeService = CdmSpringContextHelper.getTaxonNodeService();
         taxonService = CdmSpringContextHelper.getTaxonService();
@@ -78,7 +83,7 @@ public class NewTaxonBasePresenter implements INewTaxonBaseComponentListener {
     @Override
     public IdUuidName newTaxon(String scientificName, Object secRefItemId, UUID classificationUuid) {
         TransactionStatus tx = app.startTransaction();
-        UUID uuid = secRefContainer.getUuid(secRefItemId);
+        UUID uuid = accTaxonSecRefContainer.getUuid(secRefItemId);
 
         Reference sec = CdmBase.deproxy(referenceService.load(uuid), Reference.class);
 
@@ -102,19 +107,27 @@ public class NewTaxonBasePresenter implements INewTaxonBaseComponentListener {
      * @see eu.etaxonomy.cdm.vaadin.view.INewTaxonBaseComponentListener#newSynonym(java.lang.String, java.lang.Object, java.util.UUID)
      */
     @Override
-    public IdUuidName newSynonym(String scientificName, Object secRefItemId, UUID accTaxonUuid) {
+    public IdUuidName newSynonym(String scientificName, Object synSecRefItemId, Object accTaxonSecRefItemId, UUID accTaxonUuid) {
         TransactionStatus tx = app.startTransaction();
         List<String> ACC_TAXON_INIT_STRATEGY = Arrays.asList(new String []{
                 "synonymRelations"
         });
-        UUID refUuid = secRefContainer.getUuid(secRefItemId);
-        Reference sec = CdmBase.deproxy(referenceService.load(refUuid), Reference.class);
+
+        UUID synRefUuid = synSecRefContainer.getUuid(synSecRefItemId);
+        Reference synSec = CdmBase.deproxy(referenceService.load(synRefUuid), Reference.class);
         NonViralNameParserImpl parser = NonViralNameParserImpl.NewInstance();
         NonViralName name = parser.parseFullName(scientificName);
         name.setTitleCache(scientificName, true);
+        Synonym newSynonym = Synonym.NewInstance(name, synSec);
+
+
+        UUID accTaxonRefUuid = accTaxonSecRefContainer.getUuid(accTaxonSecRefItemId);
+        Reference accTaxonSec = CdmBase.deproxy(referenceService.load(accTaxonRefUuid), Reference.class);
         Taxon accTaxon = CdmBase.deproxy(taxonService.load(accTaxonUuid, ACC_TAXON_INIT_STRATEGY), Taxon.class);
-        Synonym newSynonym = Synonym.NewInstance(name, sec);
+        accTaxon.setSec(accTaxonSec);
+
         accTaxon.addSynonym(newSynonym, SynonymRelationshipType.SYNONYM_OF());
+
         UUID newUuid = taxonService.save(newSynonym);
         app.commitTransaction(tx);
         return new IdUuidName(newSynonym.getId(), newUuid, newSynonym.getTitleCache());
index 10393180a165d173d7c3db5aa7eeb46d1f996a36..bfcb5099d2ff4598b60f8da258f13040146d871a 100644 (file)
@@ -22,7 +22,6 @@ import eu.etaxonomy.cdm.vaadin.container.IdUuidName;
 public interface INewTaxonBaseComponentListener {
 
 
-    public CdmSQLContainer getSecRefContainer();
 
 
     /**
@@ -36,11 +35,12 @@ public interface INewTaxonBaseComponentListener {
 
     /**
      * @param scientificName
-     * @param secRefItemId
+     * @param synSecRefItemId
+     * @param accTaxonSecRefItemId
      * @param accTaxonUuid
      * @return
      */
-    public IdUuidName newSynonym(String scientificName, Object secRefItemId, UUID accTaxonUuid);
+    public IdUuidName newSynonym(String scientificName, Object synSecRefItemId, Object accTaxonSecRefItemId, UUID accTaxonUuid);
 
 
     /**
@@ -57,6 +57,21 @@ public interface INewTaxonBaseComponentListener {
     public Object getClassificationRefId(UUID classificationUuid);
 
 
+    /**
+     * @return
+     */
+    public CdmSQLContainer getAccTaxonSecRefContainer();
+
+
+    /**
+     * @return
+     */
+    public CdmSQLContainer getSynSecRefContainer();
+
+
+
+
+
 
 
 
index d2a4c32a6737de2c37b6f2ae717e61a9b5379cfd..77db29107d4fc69f8f68b6985cca9bd40560d711 100644 (file)
@@ -53,13 +53,15 @@ public class NewTaxonBasePresenterTest extends CdmVaadinBaseTest {
     @Test
     public void testNewTaxonBase() throws SQLException {
         RowId refId20 = new RowId(20);
+        RowId refId21 = new RowId(21);
         UUID newTaxonUuid = ntbp.newTaxon("Taxon E", refId20, UUID.fromString("6595638e-4993-421a-9fe5-76b09d94f36a")).getUuid();
         List<String> ACC_TAXON_INIT_STRATEGY = Arrays.asList(new String []{
+                "sec",
                 "synonymRelations"
         });
         Taxon taxon = CdmBase.deproxy(CdmSpringContextHelper.getTaxonService().load(newTaxonUuid,ACC_TAXON_INIT_STRATEGY),Taxon.class);
 
-        UUID newSynonymUuid = ntbp.newSynonym("Synonym OfE", refId20, newTaxonUuid).getUuid();
+        UUID newSynonymUuid = ntbp.newSynonym("Synonym OfE", refId20, refId21, newTaxonUuid).getUuid();
         taxon = CdmBase.deproxy(CdmSpringContextHelper.getTaxonService().load(newTaxonUuid,ACC_TAXON_INIT_STRATEGY),Taxon.class);
 
         Set<Synonym> synonyms = taxon.getSynonyms();
@@ -68,6 +70,12 @@ public class NewTaxonBasePresenterTest extends CdmVaadinBaseTest {
 
         Synonym synonym = CdmBase.deproxy(CdmSpringContextHelper.getTaxonService().load(newSynonymUuid),Synonym.class);
         Assert.assertEquals(synonym, synonymOfTaxon);
+
+        Assert.assertEquals(synonym.getSec().getId(), 20);
+
+        taxon = CdmBase.deproxy(CdmSpringContextHelper.getTaxonService().load(newTaxonUuid,ACC_TAXON_INIT_STRATEGY),Taxon.class);
+
+        Assert.assertEquals(taxon.getSec().getId(), 21);
     }