2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.actions
.cdm
;
12 import org
.apache
.log4j
.Logger
;
13 import org
.eclipse
.jface
.action
.Action
;
14 import org
.eclipse
.jface
.resource
.ImageDescriptor
;
16 import eu
.etaxonomy
.cdm
.model
.name
.TaxonNameBase
;
17 import eu
.etaxonomy
.cdm
.model
.taxon
.Synonym
;
18 import eu
.etaxonomy
.cdm
.model
.taxon
.SynonymRelationship
;
19 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
20 import eu
.etaxonomy
.taxeditor
.ITaxEditorConstants
;
21 import eu
.etaxonomy
.taxeditor
.TaxEditorPlugin
;
22 import eu
.etaxonomy
.taxeditor
.editor
.name
.CdmParserController
;
25 * Add a new synonym to a taxon.
32 public class AddHomotypicSynonymToTaxonAction
extends Action
{
33 private static final Logger logger
= Logger
34 .getLogger(AddHomotypicSynonymToTaxonAction
.class);
36 private static String text
= "Create a homotypic synonym";
37 private ImageDescriptor image
= TaxEditorPlugin
.getDefault()
38 .getImageDescriptor(ITaxEditorConstants
.HOMOTYPIC_SYN_ICON
);
41 Synonym synonym
= null;
42 TaxonNameBase synonymName
= null;
44 private AddHomotypicSynonymToTaxonAction() {
46 setImageDescriptor(image
);
49 public AddHomotypicSynonymToTaxonAction(TaxonNameBase synonymName
,
52 this.synonymName
= synonymName
;
56 public AddHomotypicSynonymToTaxonAction(Synonym synonym
, Taxon taxon
) {
58 this.synonym
= synonym
;
62 public AddHomotypicSynonymToTaxonAction(String unparsedName
, Taxon taxon
) {
63 this(CdmParserController
.parseFullReference(unparsedName
, null, null), taxon
);
67 if (synonym
!= null) {
68 taxon
.addHomotypicSynonym(synonym
, null, null);
70 if (synonymName
!= null) {
71 SynonymRelationship synonymRelationship
= taxon
72 .addHomotypicSynonymName(synonymName
, null, null);
73 synonym
= synonymRelationship
.getSynonym();
78 public Synonym
getSynonym() {