eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/TaxonTransfer.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/UndoableAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/WidgetTransfer.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/AddHeterotypicSynonymToTaxonAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/AddHomotypicSynonymToTaxonAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/AddMisappliedNameToTaxonAction.java -text
-eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/AddSynonymToTaxonAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/ChangeMisappliedNameToSynonymAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/ChangeNameHomotypicGroup.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/ChangeSynonymHomotypicGroup.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/ChangeSynonymToMisappliedNameAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/ChangeSynonymToTaxonAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/CreateNameRelationAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/DeleteMisappliedNameFromTaxonAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/DeleteNameRelationAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/DeleteSynonymFromAcceptedTaxaAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/DeleteSynonymFromTaxonAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/DeleteTaxonAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/cdm/MakeGroupBasionymAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/ChangeTaxonToSynonymAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/DeleteMisappliedNameCompositeAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/DeleteSynonymCompositeAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/MoveCompositeToNewGroupAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/MoveTaxonDialogAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenNameRelationWizardAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/OpenNameRelationsListWizardAction.java -text
folderLayoutLeft.addView(TaxonomicTreeView.ID);
folderLayoutLeft.addView(SearchView.ID);
-// IFolderLayout folderLayoutMiddleLeft = layout.createFolder("middleleftfolder", IPageLayout.BOTTOM, 0.3f, "leftfolder");
-// folderLayoutMiddleLeft.addView(RecentNamesView.ID);
IFolderLayout folderLayoutBottomLeft = layout.createFolder("bottomleftfolder", IPageLayout.BOTTOM, 0.75f, "leftfolder");
folderLayoutBottomLeft.addView(RecentNamesView.ID);
folderLayoutBottomLeft.addView(FavoritesView.ID);
layout.getViewLayout(IPageLayout.ID_PROP_SHEET).setCloseable(false);
layout.getViewLayout(TaxonomicTreeView.ID).setCloseable(false);
-// layout.getViewLayout(RecentNamesView.ID).setCloseable(false);
-// layout.getViewLayout(FavoritesView.ID).setCloseable(false);
addFastViews(layout);
public static final String MISAPPLIED_NAME = "misappliedname";\r
public static final String BASIONYM = "basionym";\r
public static final String SYNONYM = "synonym";\r
+ public static final String HOMOTYPIC_SYNONYM = "homotypic_synonym";\r
+ public static final String HETEROTYPIC_SYNONYM = "heterotypic_synonym";\r
public static final String NAMERELATION = "namerelation";\r
public static final String TAXON = "taxon";\r
+ public static final String HOMOTYPIC_GROUP = "homotypicgroup";\r
\r
/* ***************************************************************************************\r
FONTS\r
package eu.etaxonomy.taxeditor;\r
\r
import org.apache.log4j.Logger;\r
+import org.eclipse.core.runtime.Platform;\r
import org.eclipse.jface.preference.PreferencePage;\r
import org.eclipse.swt.SWT;\r
import org.eclipse.swt.events.SelectionAdapter;\r
package eu.etaxonomy.taxeditor;
+import org.eclipse.ui.IFolderLayout;
import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPerspectiveFactory;
+import eu.etaxonomy.taxeditor.view.FavoritesView;
import eu.etaxonomy.taxeditor.view.NameListView;
+import eu.etaxonomy.taxeditor.view.RecentNamesView;
+import eu.etaxonomy.taxeditor.view.SearchView;
+import eu.etaxonomy.taxeditor.view.TaxonomicTreeView;
public class SideBySidePerspective implements IPerspectiveFactory {
public void createInitialLayout(IPageLayout layout) {
String editorArea = layout.getEditorArea();
- layout.addStandaloneView(NameListView.ID, false, IPageLayout.LEFT, 0.30f, editorArea);
- layout.getViewLayout(NameListView.ID).setCloseable(false);
-// layout.addStandaloneView(LeftPane.ID, false, IPageLayout.LEFT, 0.30f, editorArea);
-// layout.getViewLayout(LeftPane.ID).setCloseable(false);
-// layout.getViewLayout("org.eclipse.ui.views.PropertySheet").setCloseable(false);
-// layout.addView(UndoView.ID, IPageLayout.BOTTOM, 0.8f, editorArea);
+
+ // Note: plug-in org.eclipse.ui.ide necessary for
+ // IPageLayout.ID_PROBLEM_VIEW ("org.eclipse.ui.views.ProblemView") to run
+// layout.addView(IPageLayout.ID_PROBLEM_VIEW, IPageLayout.BOTTOM, 0.8f, editorArea);
+
+ IFolderLayout folderLayoutLeft = layout.createFolder("leftfolder", IPageLayout.LEFT, 0.3f, editorArea);
+ folderLayoutLeft.addView(TaxonomicTreeView.ID);
+ folderLayoutLeft.addView(SearchView.ID);
+
+ IFolderLayout folderLayoutBottomLeft = layout.createFolder("bottomleftfolder", IPageLayout.BOTTOM, 0.75f, "leftfolder");
+ folderLayoutBottomLeft.addView(RecentNamesView.ID);
+ folderLayoutBottomLeft.addView(FavoritesView.ID);
+
+ layout.getViewLayout(TaxonomicTreeView.ID).setCloseable(false);
+
addFastViews(layout);
}
+\r
/**\r
* Copyright (C) 2007 EDIT\r
* European Distributed Institute of Taxonomy \r
import org.eclipse.core.runtime.FileLocator;\r
import org.eclipse.core.runtime.IPath;\r
import org.eclipse.core.runtime.Path;\r
+import org.eclipse.core.runtime.Platform;\r
import org.eclipse.jface.databinding.swt.SWTObservables;\r
import org.eclipse.jface.preference.IPreferenceStore;\r
import org.eclipse.jface.resource.FontRegistry;\r
\r
void initDatastore() {\r
\r
+// if (1 == 1) return;\r
+ \r
boolean useSoraya = true;\r
// useSoraya = false;\r
Taxon genusTaxon;\r
* PREFERENCES\r
**************************************************************************/\r
protected void initializeDefaultPreferences(IPreferenceStore store) {\r
+// Platform.getPreferencesService().getBoolean(qualifier, key, defaultValue, contexts)\r
store.setDefault(ITaxEditorConstants.CODE_PREFERENCE,\r
ITaxEditorConstants.DEFAULT_CODE_PREFERENCE);\r
}\r
\r
- /***************************************************************************\r
- * TAXONOMIC TREE - OLD\r
- **************************************************************************/\r
-//\r
-// public ReferenceBase getSec() {\r
-// return getCdmApp().getReferenceService().getReferenceByUuid(\r
-// UUID.fromString("f3593c18-a8d2-4e51-bdad-0befbf8fb2d1"));\r
-// }\r
-//\r
-// private List<Taxon> sessionRootTaxa;\r
-//\r
-// public List<Taxon> getSessionRootTaxa() {\r
-// if (sessionRootTaxa == null) {\r
-// sessionRootTaxa = new ArrayList<Taxon>();\r
-// sessionRootTaxa\r
-// .addAll(getCdmApp().getTaxonService().getRootTaxa(getSec(), null, false));\r
-// addSessionTaxa(sessionRootTaxa);\r
-// }\r
-// return sessionRootTaxa;\r
-// }\r
-//\r
-// /**\r
-// * This map of taxa to their taxonomic children is used by\r
-// * NameTreeContentProvider's getChildren method.\r
-// * \r
-// * key = taxon, value = key's child taxa Note that a map can have a key ==\r
-// * null, i.e. no parent taxon\r
-// */\r
-// private HashMap<Taxon, Set<Taxon>> sessionTaxonomicChildrenMap;\r
-// private IObservableSet observableSessionTaxonSet;\r
-//\r
-// private Map<Taxon, Set<Taxon>> getTaxonomicChildrenMap() {\r
-// if (sessionTaxonomicChildrenMap == null) {\r
-// sessionTaxonomicChildrenMap = new HashMap<Taxon, Set<Taxon>>();\r
-// }\r
-// return sessionTaxonomicChildrenMap;\r
-// }\r
-//\r
-// /**\r
-// * Returns any child taxa for this taxon that have already been requested\r
-// * during this session.\r
-// * \r
-// * @param parentTaxon\r
-// * @return\r
-// */\r
-// public Set<Taxon> getSessionTaxonomicChildren(Taxon parentTaxon) {\r
-// return getTaxonomicChildrenMap().get(parentTaxon);\r
-// }\r
-//\r
-// private void addSessionTaxonomicChildren(Taxon parentTaxon,\r
-// Set<Taxon> childTaxa) {\r
-// Set<Taxon> sessionChildTaxa = getSessionTaxonomicChildren(parentTaxon);\r
-// if (sessionChildTaxa == null) {\r
-// getTaxonomicChildrenMap().put(parentTaxon, childTaxa);\r
-// } else {\r
-// sessionChildTaxa.addAll(childTaxa);\r
-// }\r
-// }\r
-//\r
-// private void addSessionTaxonomicChild(Taxon parentTaxon, Taxon childTaxon) {\r
-// Set<Taxon> childTaxa = new HashSet<Taxon>();\r
-// childTaxa.add(childTaxon);\r
-// addSessionTaxonomicChildren(parentTaxon, childTaxa);\r
-// }\r
-//\r
-// /**\r
-// * All Taxon listen for changes to their parents\r
-// */\r
-//// PropertyChangeListener taxonomicParentListener = new PropertyChangeListener() {\r
-//// @Override\r
-//// public void propertyChange(java.beans.PropertyChangeEvent event) {\r
-//// logger.warn("property change for " + event.getPropertyName());\r
-//// if (event.getSource() instanceof Taxon) {\r
-//// \r
-//// // Methods for removing and adding also remap taxa to their new parents.\r
-//// Taxon childTaxon = (Taxon) event.getSource();\r
-//// removeSessionTaxon(childTaxon);\r
-//// addSessionTaxon(childTaxon);\r
-//// }\r
-//// }\r
-//// };\r
-//\r
-// /**\r
-// * @return\r
-// */\r
-// public IObservableSet getObservableSessionTaxa() {\r
-// if (observableSessionTaxonSet == null) {\r
-// Realm realm = SWTObservables.getRealm(Display.getDefault());\r
-// observableSessionTaxonSet = new WritableSet(realm);\r
-//// observableSessionTaxonSet.addSetChangeListener(new ISetChangeListener() {\r
-//// @Override\r
-//// public void handleSetChange(SetChangeEvent event) {\r
-//// for (Object addition : event.diff.getAdditions()) {\r
-//// if (addition instanceof Taxon) {\r
-//// ((Taxon) addition).addPropertyChangeListener(\r
-//// "taxonomicParentCache", taxonomicParentListener); \r
-//// }\r
-//// }\r
-//// for (Object removal : event.diff.getRemovals()) {\r
-//// if (removal instanceof Taxon) {\r
-//// ((Taxon) removal)\r
-//// .removePropertyChangeListener(taxonomicParentListener);\r
-//// }\r
-//// }\r
-//// }\r
-//// });\r
-// }\r
-// return observableSessionTaxonSet;\r
-// }\r
-// \r
-// /**\r
-// * Recursive function to clear the hashmap of a taxon's children used in this session, \r
-// * and the childrens' children, etc.\r
-// * \r
-// * @param taxon\r
-// */\r
-// private void clearTaxonomicChildren(Taxon taxon) {\r
-// Set<Taxon> children = getSessionTaxonomicChildren(taxon);\r
-// if (children != null) {\r
-// logger.warn(children.size() + " children in " + CdmUtil.getDisplayName(taxon));\r
-// for (Taxon child : children) {\r
-// clearTaxonomicChildren(child);\r
-// }\r
-// getTaxonomicChildrenMap().remove(taxon);\r
-// getObservableSessionTaxa().removeAll(children);\r
-// }\r
-// }\r
-// \r
-// /**\r
-// * Remove taxon from all session collections\r
-// * \r
-// * @param taxon\r
-// */\r
-// public void removeSessionTaxon(Taxon taxon) {\r
-//\r
-// clearTaxonomicChildren(taxon);\r
-// \r
-// getObservableSessionTaxa().remove(taxon);\r
-// \r
-// // Remove taxon from its parent\r
-// Taxon parentTaxon = taxon.getTaxonomicParent();\r
-// Set<Taxon> children = getSessionTaxonomicChildren(parentTaxon);\r
-// if (children != null) {\r
-// children.remove(taxon);\r
-// }\r
-// \r
-// // If no parent, this is a root taxa - remove from root taxa\r
-// if (parentTaxon == null) {\r
-// getSessionRootTaxa().remove(taxon);\r
-// }\r
-// }\r
-//\r
-// public void addSessionTaxa(Collection<Taxon> taxa) {\r
-// getObservableSessionTaxa().addAll(taxa);\r
-// for (Taxon taxon : taxa) {\r
-// addSessionTaxonomicChild(taxon.getTaxonomicParent(), taxon);\r
-// }\r
-// }\r
-//\r
-// public void addSessionTaxon(Taxon taxon) {\r
-// if (getObservableSessionTaxa().contains(taxon)) {\r
-// return;\r
-// }\r
-// getObservableSessionTaxa().add(taxon);\r
-// addSessionTaxonomicChild(taxon.getTaxonomicParent(), taxon);\r
-// if (taxon.getTaxonomicParent() == null) {\r
-// getSessionRootTaxa().add(taxon);\r
-// }\r
-// }\r
-\r
/***************************************************************************\r
* TAXONOMIC TREE\r
**************************************************************************/\r
--- /dev/null
+/**\r
+ * Copyright (C) 2007 EDIT\r
+ * European Distributed Institute of Taxonomy \r
+ * http://www.e-taxonomy.eu\r
+ * \r
+ * The contents of this file are subject to the Mozilla Public License Version 1.1\r
+ * See LICENSE.TXT at the top of this package for the full license terms.\r
+ */\r
+\r
+package eu.etaxonomy.taxeditor.actions.cdm;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.model.CdmUtil;\r
+\r
+/**\r
+ * Add a new synonym to a taxon.\r
+ * \r
+ * @author p.ciardelli\r
+ * @created 06.05.2008\r
+ * @version 1.0\r
+ * \r
+ */\r
+public class AddHeterotypicSynonymToTaxonAction extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(AddHeterotypicSynonymToTaxonAction.class);\r
+\r
+ private static String text = "Create a heterotypic synonym";\r
+ private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageDescriptor(ITaxEditorConstants.HETEROTYPIC_SYN_ICON);\r
+\r
+ Taxon taxon;\r
+ Synonym synonym = null;\r
+ TaxonNameBase synonymName = null;\r
+\r
+ private AddHeterotypicSynonymToTaxonAction() {\r
+ super(text);\r
+ setImageDescriptor(image);\r
+ }\r
+\r
+ public AddHeterotypicSynonymToTaxonAction(TaxonNameBase synonymName,\r
+ Taxon taxon) {\r
+ this();\r
+ this.synonymName = synonymName;\r
+ this.taxon = taxon;\r
+ }\r
+\r
+ public AddHeterotypicSynonymToTaxonAction(Synonym synonym, Taxon taxon) {\r
+ this();\r
+ this.synonymName = synonym.getName();\r
+ this.taxon = taxon;\r
+ }\r
+\r
+ public AddHeterotypicSynonymToTaxonAction(String unparsedName, Taxon taxon) {\r
+ this(CdmUtil.parseFullReference(unparsedName, null, null), taxon);\r
+ }\r
+\r
+ public void run() {\r
+ if (synonymName != null) {\r
+ SynonymRelationship synonymRelationship = taxon\r
+ .addHeterotypicSynonymName(synonymName);\r
+ synonym = synonymRelationship.getSynonym();\r
+ }\r
+ }\r
+\r
+ public Synonym getSynonym() {\r
+ return synonym;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+/**\r
+ * Copyright (C) 2007 EDIT\r
+ * European Distributed Institute of Taxonomy \r
+ * http://www.e-taxonomy.eu\r
+ * \r
+ * The contents of this file are subject to the Mozilla Public License Version 1.1\r
+ * See LICENSE.TXT at the top of this package for the full license terms.\r
+ */\r
+\r
+package eu.etaxonomy.taxeditor.actions.cdm;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.model.CdmUtil;\r
+\r
+/**\r
+ * Add a new synonym to a taxon.\r
+ * \r
+ * @author p.ciardelli\r
+ * @created 06.05.2008\r
+ * @version 1.0\r
+ * \r
+ */\r
+public class AddHomotypicSynonymToTaxonAction extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(AddHomotypicSynonymToTaxonAction.class);\r
+\r
+ private static String text = "Create a homotypic synonym";\r
+ private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageDescriptor(ITaxEditorConstants.HOMOTYPIC_SYN_ICON);\r
+\r
+ Taxon taxon;\r
+ Synonym synonym = null;\r
+ TaxonNameBase synonymName = null;\r
+\r
+ private AddHomotypicSynonymToTaxonAction() {\r
+ super(text);\r
+ setImageDescriptor(image);\r
+ }\r
+\r
+ public AddHomotypicSynonymToTaxonAction(TaxonNameBase synonymName,\r
+ Taxon taxon) {\r
+ this();\r
+ this.synonymName = synonymName;\r
+ this.taxon = taxon;\r
+ }\r
+\r
+ public AddHomotypicSynonymToTaxonAction(Synonym synonym, Taxon taxon) {\r
+ this();\r
+ this.synonym = synonym;\r
+ this.taxon = taxon;\r
+ }\r
+\r
+ public AddHomotypicSynonymToTaxonAction(String unparsedName, Taxon taxon) {\r
+ this(CdmUtil.parseFullReference(unparsedName, null, null), taxon);\r
+ }\r
+\r
+ public void run() {\r
+ if (synonym != null) {\r
+ taxon.addHomotypicSynonym(synonym, null, null);\r
+ } else {\r
+ if (synonymName != null) {\r
+ SynonymRelationship synonymRelationship = taxon\r
+ .addHomotypicSynonymName(synonymName, null, null);\r
+ synonym = synonymRelationship.getSynonym();\r
+ }\r
+ }\r
+ }\r
+\r
+ public Synonym getSynonym() {\r
+ return synonym;\r
+ }\r
+}
\ No newline at end of file
+++ /dev/null
-/**\r
- * Copyright (C) 2007 EDIT\r
- * European Distributed Institute of Taxonomy \r
- * http://www.e-taxonomy.eu\r
- * \r
- * The contents of this file are subject to the Mozilla Public License Version 1.1\r
- * See LICENSE.TXT at the top of this package for the full license terms.\r
- */\r
-\r
-package eu.etaxonomy.taxeditor.actions.cdm;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.jface.action.Action;\r
-\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.cdm.model.taxon.Synonym;\r
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.taxeditor.model.CdmUtil;\r
-\r
-/**\r
- * Add a new synonym to a taxon.\r
- * \r
- * @author p.ciardelli\r
- * @created 06.05.2008\r
- * @version 1.0\r
- * \r
- */\r
-public class AddSynonymToTaxonAction extends Action {\r
- private static final Logger logger = Logger\r
- .getLogger(AddSynonymToTaxonAction.class);\r
-\r
- Taxon taxon;\r
- Synonym synonym;\r
-\r
- public AddSynonymToTaxonAction(TaxonNameBase name, Taxon taxon) {\r
- this.synonym = Synonym\r
- .NewInstance(name, CdmUtil.getSessionDefaultSec());\r
- }\r
-\r
- public AddSynonymToTaxonAction(Synonym synonym, Taxon taxon) {\r
- this.synonym = synonym;\r
- this.taxon = taxon;\r
- }\r
-\r
- public AddSynonymToTaxonAction(String unparsedName, Taxon taxon) {\r
- this(CdmUtil.parseFullReference(unparsedName, null, null), taxon);\r
- }\r
-\r
- public void run() {\r
- taxon.addSynonym(synonym, SynonymRelationshipType\r
- .HETEROTYPIC_SYNONYM_OF());\r
- }\r
-\r
- public Synonym getSynonym() {\r
- return synonym;\r
- }\r
-}
\ No newline at end of file
deleteMisappliedNameAction = new DeleteMisappliedNameFromTaxonAction(misappliedNameTaxon, taxon);\r
deleteMisappliedNameAction.run();\r
\r
- addSynonymAction = new AddSynonymToTaxonAction(name, taxon);\r
+ addSynonymAction = new AddHeterotypicSynonymToTaxonAction(name, taxon);\r
addSynonymAction.run();\r
- synonym = ((AddSynonymToTaxonAction) addSynonymAction).getSynonym();\r
+ synonym = ((AddHeterotypicSynonymToTaxonAction) addSynonymAction).getSynonym();\r
\r
firePropertyChange(ITaxEditorConstants.SYNONYM, null, synonym); \r
}\r
--- /dev/null
+/**\r
+ * Copyright (C) 2007 EDIT\r
+ * European Distributed Institute of Taxonomy \r
+ * http://www.e-taxonomy.eu\r
+ * \r
+ * The contents of this file are subject to the Mozilla Public License Version 1.1\r
+ * See LICENSE.TXT at the top of this package for the full license terms.\r
+ */\r
+\r
+package eu.etaxonomy.taxeditor.actions.cdm;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+\r
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 22.05.2008\r
+ * @version 1.0\r
+ */\r
+public class ChangeNameHomotypicGroup extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(ChangeNameHomotypicGroup.class);\r
+\r
+ private static String text = "Change name's homotypic group";\r
+ private ImageDescriptor image = null;\r
+\r
+ private TaxonNameBase name;\r
+ private HomotypicalGroup newHomotypicGroup;\r
+\r
+ \r
+ private ChangeNameHomotypicGroup() {\r
+ super(text);\r
+ setImageDescriptor(image);\r
+ }\r
+ \r
+ public ChangeNameHomotypicGroup(TaxonNameBase name, HomotypicalGroup newHomotypicGroup) {\r
+ this();\r
+ \r
+ this.name = name;\r
+ this.newHomotypicGroup = newHomotypicGroup;\r
+ }\r
+ \r
+ public void run() {\r
+ HomotypicalGroup oldHomotypicGroup = name.getHomotypicalGroup();\r
+ if (oldHomotypicGroup != null) {\r
+ oldHomotypicGroup.removeTypifiedName(name);\r
+ }\r
+ \r
+ newHomotypicGroup.addTypifiedName(name);\r
+ \r
+ firePropertyChange(ITaxEditorConstants.HOMOTYPIC_GROUP, oldHomotypicGroup, newHomotypicGroup); \r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+/**\r
+ * Copyright (C) 2007 EDIT\r
+ * European Distributed Institute of Taxonomy \r
+ * http://www.e-taxonomy.eu\r
+ * \r
+ * The contents of this file are subject to the Mozilla Public License Version 1.1\r
+ * See LICENSE.TXT at the top of this package for the full license terms.\r
+ */\r
+\r
+package eu.etaxonomy.taxeditor.actions.cdm;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+\r
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.model.CdmUtil;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 22.05.2008\r
+ * @version 1.0\r
+ */\r
+public class ChangeSynonymHomotypicGroup extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(ChangeSynonymHomotypicGroup.class);\r
+\r
+ private static String text = "Change synonym's homotypic group";\r
+ private ImageDescriptor image = null;\r
+\r
+ private Synonym synonym;\r
+ private Taxon taxon;\r
+ private HomotypicalGroup newHomotypicGroup;\r
+\r
+ private ChangeSynonymHomotypicGroup() {\r
+ super(text);\r
+ setImageDescriptor(image);\r
+ }\r
+ \r
+ public ChangeSynonymHomotypicGroup(Synonym synonym, Taxon taxon, HomotypicalGroup newHomotypicGroup) {\r
+ this();\r
+ \r
+ this.synonym = synonym;\r
+ this.taxon = taxon;\r
+ this.newHomotypicGroup = newHomotypicGroup;\r
+ }\r
+ \r
+ public void run() {\r
+ \r
+ if (synonym == null || synonym.getName() == null || \r
+ taxon == null || taxon.getName() == null) {\r
+ return;\r
+ }\r
+ \r
+ TaxonNameBase synonymName = synonym.getName();\r
+ String synonymType = null;\r
+ \r
+ HomotypicalGroup oldHomotypicGroup = synonymName.getHomotypicalGroup();\r
+ HomotypicalGroup taxonHomotypicGroup = taxon.getName().getHomotypicalGroup();\r
+ \r
+ new ChangeNameHomotypicGroup(synonymName, newHomotypicGroup).run();\r
+ \r
+// // Has relation changed from homotypic to heterotypic?\r
+// if (oldHomotypicGroup.equals(taxonHomotypicGroup) && !newHomotypicGroup.equals(taxonHomotypicGroup)) {\r
+// new DeleteSynonymFromTaxonAction(synonym, taxon).run();\r
+// AddHeterotypicSynonymToTaxonAction addSynonymAction = new AddHeterotypicSynonymToTaxonAction(synonymName, taxon);\r
+// addSynonymAction.run();\r
+// synonym = addSynonymAction.getSynonym();\r
+// }\r
+//\r
+// // Has relation changed from heterotypic to homotypic?\r
+// if (!oldHomotypicGroup.equals(taxonHomotypicGroup) && newHomotypicGroup.equals(taxonHomotypicGroup)) {\r
+// new DeleteSynonymFromTaxonAction(synonym, taxon).run();\r
+// AddHomotypicSynonymToTaxonAction addSynonymAction = new AddHomotypicSynonymToTaxonAction(synonymName, taxon);\r
+// addSynonymAction.run();\r
+// synonym = addSynonymAction.getSynonym();\r
+// }\r
+ \r
+ new DeleteSynonymFromAcceptedTaxaAction(synonym).run();\r
+ if (newHomotypicGroup.equals(taxonHomotypicGroup)) {\r
+ AddHomotypicSynonymToTaxonAction addSynonymAction = new AddHomotypicSynonymToTaxonAction(synonymName, taxon);\r
+ addSynonymAction.run();\r
+ synonym = addSynonymAction.getSynonym(); \r
+ } else {\r
+ AddHeterotypicSynonymToTaxonAction addSynonymAction = new AddHeterotypicSynonymToTaxonAction(synonymName, taxon);\r
+ addSynonymAction.run();\r
+ synonym = addSynonymAction.getSynonym();\r
+ }\r
+ \r
+ firePropertyChange(ITaxEditorConstants.HOMOTYPIC_GROUP, null, synonym); \r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+/**\r
+ * Copyright (C) 2007 EDIT\r
+ * European Distributed Institute of Taxonomy \r
+ * http://www.e-taxonomy.eu\r
+ * \r
+ * The contents of this file are subject to the Mozilla Public License Version 1.1\r
+ * See LICENSE.TXT at the top of this package for the full license terms.\r
+ */\r
+\r
+package eu.etaxonomy.taxeditor.actions.cdm;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.action.Action;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 22.05.2008\r
+ * @version 1.0\r
+ */\r
+public class DeleteSynonymFromAcceptedTaxaAction extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(DeleteSynonymFromAcceptedTaxaAction.class);\r
+\r
+ private Synonym synonym;\r
+\r
+ public DeleteSynonymFromAcceptedTaxaAction(Synonym synonym) {\r
+ super();\r
+ this.synonym = synonym;\r
+ }\r
+\r
+ public void run() {\r
+ for (Taxon acceptedTaxon : synonym.getAcceptedTaxa()) {\r
+ acceptedTaxon.removeSynonym(synonym);\r
+// TaxEditorPlugin.getDefault().getCdmApp().getTaxonService().removeTaxon(\r
+// synonym);\r
+ }\r
+\r
+ firePropertyChange(ITaxEditorConstants.SYNONYM, null, null);\r
+ }\r
+\r
+ public Synonym getSynonym() {\r
+ return synonym;\r
+ }\r
+}\r
\r
public void run() {\r
taxon.removeSynonym(synonym);\r
- TaxEditorPlugin.getDefault().getCdmApp().getTaxonService().removeTaxon(\r
- synonym);\r
+// TaxEditorPlugin.getDefault().getCdmApp().getTaxonService().removeTaxon(\r
+// synonym);\r
\r
firePropertyChange(ITaxEditorConstants.SYNONYM, null, null);\r
}\r
--- /dev/null
+/**\r
+ * Copyright (C) 2007 EDIT\r
+ * European Distributed Institute of Taxonomy \r
+ * http://www.e-taxonomy.eu\r
+ * \r
+ * The contents of this file are subject to the Mozilla Public License Version 1.1\r
+ * See LICENSE.TXT at the top of this package for the full license terms.\r
+ */\r
+\r
+package eu.etaxonomy.taxeditor.actions.ui;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.operations.AbstractOperation;\r
+import org.eclipse.core.commands.operations.IOperationHistory;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+import org.eclipse.core.runtime.Status;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+import org.eclipse.jface.util.IPropertyChangeListener;\r
+\r
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.UiUtil;\r
+import eu.etaxonomy.taxeditor.actions.cdm.ChangeSynonymHomotypicGroup;\r
+import eu.etaxonomy.taxeditor.model.CdmUtil;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.GroupComposite;\r
+import eu.etaxonomy.taxeditor.view.nameviewersupport.NameComposite;\r
+\r
+/**\r
+ * @author p.ciardelli\r
+ * @created 02.06.2008\r
+ * @version 1.0\r
+ */\r
+public class MoveCompositeToNewGroupAction extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(MoveCompositeToNewGroupAction.class);\r
+\r
+ private static String text = "Move name composite to new homotypic group";\r
+ private ImageDescriptor image = null;\r
+\r
+ private IUndoableOperation operation;\r
+ \r
+ private NameComposite composite;\r
+ private Synonym synonym;\r
+ private HomotypicalGroup newHomotypicGroup;\r
+ private Taxon taxon;\r
+\r
+ private MoveCompositeToNewGroupAction() {\r
+ super(text);\r
+ setImageDescriptor(image);\r
+ }\r
+\r
+ public MoveCompositeToNewGroupAction(final NameComposite composite,\r
+ GroupComposite groupComposite, Taxon taxon) {\r
+ this();\r
+\r
+ if (composite.getData() instanceof Synonym) {\r
+ this.synonym = (Synonym) composite.getData();\r
+ } else {\r
+ throw new IllegalArgumentException(\r
+ "This action requires a composite with a Synonym in its data field.");\r
+ }\r
+\r
+ if (groupComposite.getData() instanceof HomotypicalGroup) {\r
+ this.newHomotypicGroup = (HomotypicalGroup) groupComposite.getData();\r
+ } else {\r
+ throw new IllegalArgumentException(\r
+ "This action requires a group composite with a HomotypicalGroup in its data field.");\r
+ }\r
+ \r
+ this.composite = composite;\r
+ \r
+ if (groupComposite.getData(ITaxEditorConstants.TAXON) instanceof Taxon) {\r
+ this.taxon = (Taxon) groupComposite.getData(ITaxEditorConstants.TAXON);\r
+ } else {\r
+ this.taxon = taxon;\r
+ }\r
+ \r
+ operation = new ChangeHomotypicGroupOperation();\r
+\r
+ }\r
+\r
+ public void run() {\r
+ IOperationHistory operationHistory = UiUtil.getOperationHistory();\r
+ IUndoContext undoContext = UiUtil.getWorkbenchUndoContext();\r
+ operation.addContext(undoContext);\r
+ try {\r
+ operationHistory.execute(operation, null, null);\r
+ operationHistory.add(operation);\r
+ } catch (ExecutionException e) {\r
+ e.printStackTrace();\r
+ }\r
+ }\r
+\r
+ class ChangeHomotypicGroupOperation extends AbstractOperation {\r
+\r
+ public ChangeHomotypicGroupOperation() {\r
+ super("'" + text + "'");\r
+ }\r
+\r
+ @Override\r
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ Action changeHomotypicGroupAction = new ChangeSynonymHomotypicGroup(\r
+ synonym, taxon, newHomotypicGroup);\r
+ changeHomotypicGroupAction\r
+ .addPropertyChangeListener(new IPropertyChangeListener() {\r
+ @Override\r
+ public void propertyChange(\r
+ org.eclipse.jface.util.PropertyChangeEvent event) {\r
+ if (event.getProperty().equals(\r
+ ITaxEditorConstants.HOMOTYPIC_GROUP)) {\r
+ \r
+ if (event.getNewValue() instanceof Synonym) {\r
+ composite.setData(event.getNewValue());\r
+ }\r
+ \r
+ if (synonym.getName() == null) {\r
+ return;\r
+ }\r
+ \r
+ if (CdmUtil.isNameHomotypic(synonym.getName(), taxon)) {\r
+ composite.transform(NameComposite.CHANGE_TO_HOMOTYPIC_SYNONYM);\r
+ } else {\r
+ composite.transform(NameComposite.CHANGE_TO_HETEROTYPIC_SYNONYM); \r
+ }\r
+ }\r
+ }\r
+ });\r
+ changeHomotypicGroupAction.run();\r
+ return Status.OK_STATUS;\r
+ }\r
+\r
+ @Override\r
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ return execute(monitor, info);\r
+ }\r
+\r
+ @Override\r
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ return Status.OK_STATUS;\r
+ }\r
+ }\r
+}
\ No newline at end of file
return false;\r
} \r
\r
+ Set<TaxonNameBase> typifiedNames = homotypicalGroup.getTypifiedNames();\r
+ \r
+ // Check whether there are any other names in the group\r
+ if (typifiedNames.size() == 1) {\r
+ return false;\r
+ }\r
+ \r
boolean isBasionymToAll = true;\r
\r
- for (TaxonNameBase taxonName : homotypicalGroup.getTypifiedNames()) {\r
+ for (TaxonNameBase taxonName : typifiedNames) {\r
if (!taxonName.equals(name)) {\r
if (!isNameBasionymOf(name, taxonName)) {\r
return false;\r
import org.eclipse.swt.dnd.DropTargetEvent;\r
import org.eclipse.swt.dnd.Transfer;\r
import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Control;\r
import org.eclipse.swt.widgets.Display;\r
import org.eclipse.ui.IEditorInput;\r
import org.eclipse.ui.IEditorSite;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
import eu.etaxonomy.taxeditor.actions.WidgetTransfer;\r
import eu.etaxonomy.taxeditor.view.nameviewersupport.GroupComposite;\r
import eu.etaxonomy.taxeditor.view.nameviewersupport.NameComposite;\r
HomotypicalGroup homotypicGroup = taxon.getHomotypicGroup(); \r
GroupComposite homotypicComposite = \r
taxonCompositeFactory.createGroupComposite(parent, homotypicGroup); \r
+ homotypicComposite.setData(ITaxEditorConstants.TAXON, taxon);\r
\r
NameComposite nameCompositeWithWarning = null;\r
\r
\r
Synonym synonym = (Synonym) synonymOrMisName;\r
synonym.addPropertyChangeListener(taxonChangeListener);\r
- currentHeterotypicGroup = synonym.getHomotypicGroup(); \r
+ currentHeterotypicGroup = synonym.getHomotypicGroup();\r
+ \r
\r
if (currentHeterotypicGroup.equals(homotypicGroup)) {\r
\r
\r
// Create a new group composite\r
heterotypicGroupComposite = \r
- taxonCompositeFactory.createGroupComposite(parent, currentHeterotypicGroup); \r
+ taxonCompositeFactory.createGroupComposite(parent, currentHeterotypicGroup);\r
+ heterotypicGroupComposite.setData(ITaxEditorConstants.TAXON, taxon);\r
lastHeterotypicGroup = currentHeterotypicGroup;\r
}\r
\r
\r
GroupComposite newGroupComposite = \r
taxonCompositeFactory.createGroupComposite(parent, new HomotypicalGroup());\r
+ newGroupComposite.setData(ITaxEditorConstants.TAXON, taxon);\r
\r
NameComposite nameComposite = (NameComposite) event.data;\r
- nameComposite.setParent(newGroupComposite);\r
- \r
+ nameComposite.setParent(newGroupComposite); \r
} \r
});\r
\r
// We've added elements to the managed form, so redraw it\r
scrolledForm.reflow(true);\r
- \r
}\r
- \r
+ \r
+ \r
private NameComposite warnIfNameConflictWithParent(NameComposite nameComposite) {\r
\r
String message = null;\r
* @see org.eclipse.swt.widgets.Control#setParent(org.eclipse.swt.widgets.Composite)\r
*/\r
public boolean setParent(Composite parent) {\r
+ \r
Composite oldParent = this.getParent();\r
+ Composite oldGrandparent = oldParent.getParent();\r
+ \r
if (super.setParent(parent)) {\r
if (oldParent instanceof GroupComposite\r
&& oldParent.getChildren().length == 0) {\r
\r
// Redraw the component holding the group and grouped composites\r
parent.getParent().layout();\r
+ \r
+ // In case we are dragging between different views, redraw the\r
+ // "old" view\r
+ if (!oldGrandparent.equals(parent.getParent())) {\r
+ oldGrandparent.layout(); \r
+ }\r
\r
return true;\r
}\r
\r
String verifyText = e.text;\r
\r
- StyledText styledText = (StyledText)e.widget;\r
+ StyledText styledText = (StyledText) e.widget;\r
String widgetText = styledText.getText(); \r
int cursorPosition = styledText.getCaretOffset();\r
\r
import org.eclipse.swt.graphics.Image;\r
import org.eclipse.swt.widgets.Composite;\r
\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.model.CdmUtil;\r
\r
public class NameComposite extends EditableGroupedComposite {\r
\r
/* ************ TRANSFORMATIONS ************ */\r
public static final String ADD_GROUP_BASIONYM = "add_group_basionym";\r
public static final String REMOVE_GROUP_BASIONYM = "remove_group_basionym";\r
+ public static final String CHANGE_TO_HETEROTYPIC_SYNONYM = "change_to_heterotypic_synonym";\r
+ public static final String CHANGE_TO_HOMOTYPIC_SYNONYM = "change_to_homotypic_synonym";\r
\r
/* ************ MENU ACTIONS ************ */\r
public Action CHANGE_TAXON_TO_SYNONYM_ACTION;\r
setIcon(HETEROTYPIC_SYNONYM_ICON);\r
}\r
}\r
+ \r
+ if (transformation.equals(CHANGE_TO_HOMOTYPIC_SYNONYM)) {\r
+ if (!(getData() instanceof Synonym)) {\r
+ return;\r
+ }\r
+ Synonym synonym = (Synonym) getData();\r
+ if (CdmUtil.isNameGroupBasionym(synonym.getName())) {\r
+ setIcon(HOMOTYPIC_SYNONYM_ORIGINAL_COMBINATION_ICON);\r
+ } else {\r
+ setIcon(HOMOTYPIC_SYNONYM_ICON);\r
+ }\r
+ compositeType = HOMOTYPIC;\r
+ }\r
+ \r
+ if (transformation.equals(CHANGE_TO_HETEROTYPIC_SYNONYM)) {\r
+ if (!(getData() instanceof Synonym)) {\r
+ return;\r
+ }\r
+ Synonym synonym = (Synonym) getData();\r
+ if (CdmUtil.isNameGroupBasionym(synonym.getName())) {\r
+ setIcon(HETEROTYPIC_SYNONYM_ORIGINAL_COMBINATION_ICON);\r
+ } else {\r
+ setIcon(HETEROTYPIC_SYNONYM_ICON);\r
+ } \r
+ setIcon(HETEROTYPIC_SYNONYM_ICON);\r
+ compositeType = HETEROTYPIC;\r
+ }\r
}\r
\r
// public void createMenu() {\r
import eu.etaxonomy.taxeditor.actions.ui.ChangeTaxonToSynonymAction;\r
import eu.etaxonomy.taxeditor.actions.ui.DeleteMisappliedNameCompositeAction;\r
import eu.etaxonomy.taxeditor.actions.ui.DeleteSynonymCompositeAction;\r
+import eu.etaxonomy.taxeditor.actions.ui.MoveCompositeToNewGroupAction;\r
import eu.etaxonomy.taxeditor.actions.ui.MoveTaxonDialogAction;\r
import eu.etaxonomy.taxeditor.actions.ui.RemoveBasionymCompositeAction;\r
import eu.etaxonomy.taxeditor.model.CdmUtil;\r
return;\r
}\r
if (parentData instanceof HomotypicalGroup) {\r
- try {\r
- TaxonNameBase name = data.getName();\r
-\r
- // Change name composite's homotypical group to its\r
- // parent's ...\r
- ((HomotypicalGroup) parentData).addTypifiedName(name);\r
-// name.setHomotypicalGroup((HomotypicalGroup) parentData);\r
-\r
- // Delete synonym from taxon ...\r
- if (data instanceof Synonym) {\r
- taxon.removeSynonym((Synonym) data);\r
- }\r
-\r
- // Recreate it as either homotypic or heterotypic ...\r
- SynonymRelationship synonymRelation = null;\r
- if (parentData.equals(taxon.getHomotypicGroup())) {\r
- synonymRelation = taxon\r
- .addHomotypicSynonymName(name, null, null);\r
- } else {\r
- HomotypicalGroup group = (HomotypicalGroup) parentData;\r
- synonymRelation = taxon.addHeterotypicSynonymName(\r
- name, group, null, null);\r
- }\r
- nameComposite.setData(synonymRelation.getSynonym());\r
- } catch (RuntimeException e) {\r
- logger\r
- .error("CDM update failed during adaptParentData."); //$NON-NLS-1$\r
- e.printStackTrace();\r
- }\r
-\r
- // And set name composite's appearance to group synonymy\r
- // type\r
- if (parentData.equals(taxon.getHomotypicGroup())) {\r
- transformHomotypicSynonymComposite(nameComposite);\r
- } else {\r
- transformHeterotypicSynonymComposite(nameComposite);\r
- }\r
+ new MoveCompositeToNewGroupAction(nameComposite,\r
+ (GroupComposite) nameComposite.getParent(), taxon).run();\r
+// try {\r
+// TaxonNameBase name = data.getName();\r
+//\r
+// // Change name composite's homotypical group to its\r
+// // parent's ...\r
+// ((HomotypicalGroup) parentData).addTypifiedName(name);\r
+//// name.setHomotypicalGroup((HomotypicalGroup) parentData);\r
+//\r
+// // Delete synonym from taxon ...\r
+// if (data instanceof Synonym) {\r
+// taxon.removeSynonym((Synonym) data);\r
+// }\r
+//\r
+// // Recreate it as either homotypic or heterotypic ...\r
+// SynonymRelationship synonymRelation = null;\r
+// if (parentData.equals(taxon.getHomotypicGroup())) {\r
+// synonymRelation = taxon\r
+// .addHomotypicSynonymName(name, null, null);\r
+// } else {\r
+// HomotypicalGroup group = (HomotypicalGroup) parentData;\r
+// synonymRelation = taxon.addHeterotypicSynonymName(\r
+// name, group, null, null);\r
+// }\r
+// nameComposite.setData(synonymRelation.getSynonym());\r
+// } catch (RuntimeException e) {\r
+// logger\r
+// .error("CDM update failed during adaptParentData."); //$NON-NLS-1$\r
+// e.printStackTrace();\r
+// }\r
+//\r
+// // And set name composite's appearance to group synonymy\r
+// // type\r
+// if (parentData.equals(taxon.getHomotypicGroup())) {\r
+// transformHomotypicSynonymComposite(nameComposite);\r
+// } else {\r
+// transformHeterotypicSynonymComposite(nameComposite);\r
+// }\r
}\r
}\r
});\r
final TaxonBase data) {\r
final NameViewer nameViewer = new NameViewer(nameComposite);\r
\r
- // TODO change\r
Composite nameParent = nameComposite.getParent();\r
final Composite parent = nameParent.getParent();\r
\r
\r
@Override\r
public void handleSplitText(String text) {\r
+ \r
+ // create heterotypic synonym\r
NonViralName name = (NonViralName) CdmUtil.parseFullReference(text, null, null);\r
\r
SynonymRelationship synonymRelation = taxon\r
.addHeterotypicSynonymName(name);\r
Synonym synonym = synonymRelation.getSynonym();\r
+ \r
+ // create new group composite\r
+ // for this, we'll need the composite's CURRENT grandparent\r
GroupComposite newGroupComposite = createGroupComposite(parent,\r
synonym.getName().getHomotypicalGroup());\r
createHeterotypicSynonymComposite(newGroupComposite, synonym);\r