About to add serious annotation functionality - backup first.
[taxeditor.git] / eclipseprojects / eu.etaxonomy.taxeditor / src / eu / etaxonomy / taxeditor / actions / cdm / AddHomotypicSynonymToTaxonAction.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
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.
8 */
9
10 package eu.etaxonomy.taxeditor.actions.cdm;
11
12 import org.apache.log4j.Logger;
13 import org.eclipse.jface.action.Action;
14 import org.eclipse.jface.resource.ImageDescriptor;
15
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;
23
24 /**
25 * Add a new synonym to a taxon.
26 *
27 * @author p.ciardelli
28 * @created 06.05.2008
29 * @version 1.0
30 *
31 */
32 public class AddHomotypicSynonymToTaxonAction extends Action {
33 private static final Logger logger = Logger
34 .getLogger(AddHomotypicSynonymToTaxonAction.class);
35
36 private static String text = "Create a homotypic synonym";
37 private ImageDescriptor image = TaxEditorPlugin.getDefault()
38 .getImageDescriptor(ITaxEditorConstants.HOMOTYPIC_SYN_ICON);
39
40 Taxon taxon;
41 Synonym synonym = null;
42 TaxonNameBase synonymName = null;
43
44 private AddHomotypicSynonymToTaxonAction() {
45 super(text);
46 setImageDescriptor(image);
47 }
48
49 public AddHomotypicSynonymToTaxonAction(TaxonNameBase synonymName,
50 Taxon taxon) {
51 this();
52 this.synonymName = synonymName;
53 this.taxon = taxon;
54 }
55
56 public AddHomotypicSynonymToTaxonAction(Synonym synonym, Taxon taxon) {
57 this();
58 this.synonym = synonym;
59 this.taxon = taxon;
60 }
61
62 public AddHomotypicSynonymToTaxonAction(String unparsedName, Taxon taxon) {
63 this(CdmParserController.parseFullReference(unparsedName, null, null), taxon);
64 }
65
66 public void run() {
67 if (synonym != null) {
68 taxon.addHomotypicSynonym(synonym, null, null);
69 } else {
70 if (synonymName != null) {
71 SynonymRelationship synonymRelationship = taxon
72 .addHomotypicSynonymName(synonymName, null, null);
73 synonym = synonymRelationship.getSynonym();
74 }
75 }
76 }
77
78 public Synonym getSynonym() {
79 return synonym;
80 }
81 }