eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/NameTransfer.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/SaveAllAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/SynonymRelationshipTransfer.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/TaxEditorActionFactory.java -text
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/SwapSynonymAndTaxonAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/io/ExportAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/io/ImportAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/ChangeConceptRelationAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/ChangeSynonymToConceptRelationAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/ChangeSynonymToMisapplicationAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/CreateAutonymAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/CreateConceptRelationAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/CreateHeterotypicSynonymAction.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/CreateMisappliedNameAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/CreateNewTaxonFromSynonymAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/CreateSynonymInGroupAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/CreateTaxonomicallyIncludedTaxonAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/MakeBasionymAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/Messages.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/RemoveConceptAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/RemoveSynonymAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/UnmakeBasionymAction.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/name/messages.properties -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/actions/ui/ChangeTaxonToSynonymAction.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/editor/LineBreakListener.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/LineWrapSquigglesStrategy.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/LineWrapSupport.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/MenuConstants.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditorActionBarContributor.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/ParseListener.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/SelectTaxonDialog.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/SimpleSelectionProvider.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/ConceptGroupComposite.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/HomotypicalGroupComposite.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/IterableSynonymyList.java -text
-eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/Messages.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/MisappliedGroupComposite.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/MisappliedNameComposite.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/NameComposite.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/RulerWithIcon.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/SynonymComposite.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java -text
-eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/editor/name/messages.properties -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/io/InputWizard.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/io/InputWizard2.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/model/CdmSessionDataRepository.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/ChangeTaxonToSynonymOperation.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/DeleteTaxonOperation.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/MoveTaxonOperation.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/ChangeConceptRelationOperation.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/ChangeHomotypicGroupOperation.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/ChangeMisappliedNameToSynonymOperation.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/ChangeSynonymToConceptOperation.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/ChangeSynonymToTaxonOperation.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/CreateConceptRelationOperation.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/CreateMisappliedNameOperation.java -text
+eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/CreateSynonymInExisitingHomotypicalGroupOperation.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/CreateSynonymInNewGroupOperation.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/MakeSynonymAcceptedOperation.java -text
eclipseprojects/eu.etaxonomy.taxeditor/src/eu/etaxonomy/taxeditor/operations/name/MakeSynonymGroupBasionymOperation.java -text
org.eclipse.ui.views,
org.eclipse.pde.source,
org.eclipse.ui.ide,
- eu.etaxonomy.cdmLibrary,
org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.editors
+ org.eclipse.ui.editors,
+ eu.etaxonomy.cdmLibrary;bundle-version="2.0.0"
Eclipse-LazyStart: true
Export-Package: com.swtdesigner,
eu.etaxonomy.taxeditor,
class="eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor"\r
icon="icons/edit_16x16.gif"\r
id="eu.etaxonomy.taxeditor.editor.multipagetaxonview"\r
- name="Multitabbed Taxon Editor">\r
+ name="Multitabbed Taxon Editor"\r
+ contributorClass="eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditorActionBarContributor">\r
</editor>\r
<editor\r
class="eu.etaxonomy.taxeditor.editor.EmptyEditorView"\r
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
+import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;
import eu.etaxonomy.cdm.io.common.ImportWrapper;
+import eu.etaxonomy.taxeditor.actions.TaxEditorActionFactory;
import eu.etaxonomy.taxeditor.actions.io.ExportAction;
import eu.etaxonomy.taxeditor.actions.io.ImportAction;
-import eu.etaxonomy.taxeditor.actions.ui.OpenNewTaxonEditorAction;
import eu.etaxonomy.taxeditor.controller.GlobalController;
/**
// Actions - important to allocate these only in makeActions, and then use
// them in the fill methods. This ensures that the actions aren't recreated
// when fillActionBars is called with FILL_PROXY.
- private IWorkbenchAction exitAction;
- private IWorkbenchAction saveAction;
- private IWorkbenchAction preferencesAction;
- private IWorkbenchAction undoAction;
- private IWorkbenchAction redoAction;
-
- private IAction newNameAction;
+// private IWorkbenchAction exitAction;
+// private IWorkbenchAction saveAction;
+// private IWorkbenchAction preferencesAction;
+// private IWorkbenchAction undoAction;
+// private IWorkbenchAction redoAction;
+//
+// private IAction newNameAction;
private List<IAction> importActionList;
GlobalController.setStatusLineManager(getActionBarConfigurer().getStatusLineManager());
- saveAction = ActionFactory.SAVE.create(window);
- register(saveAction);
+ // File menu actions
+ register(TaxEditorActionFactory.NEW.create(window));
+ register(TaxEditorActionFactory.SAVE.create(window));
+ register(TaxEditorActionFactory.QUIT.create(window));
- undoAction = ActionFactory.UNDO.create(window);
- register(undoAction);
+ // Edit menu actions
+ register(TaxEditorActionFactory.UNDO.create(window));
+ register(TaxEditorActionFactory.REDO.create(window));
+ register(TaxEditorActionFactory.CUT.create(window));
+ register(TaxEditorActionFactory.COPY.create(window));
+ register(TaxEditorActionFactory.PASTE.create(window));
+ register(TaxEditorActionFactory.DELETE.create(window));
- redoAction = ActionFactory.REDO.create(window);
- register(redoAction);
+ // Window menu actions
+ register(TaxEditorActionFactory.PREFERENCES.create(window));
- exitAction = ActionFactory.QUIT.create(window);
- register(exitAction);
+ // Help menu actions
+ register(TaxEditorActionFactory.ABOUT.create(window));
- newNameAction = new OpenNewTaxonEditorAction();
- register(newNameAction);
- preferencesAction = ActionFactory.PREFERENCES.create(window);
makeImportActions();
register(exportJaxbAction);
}
+
private void makeImportActions() {
importActionList = new ArrayList<IAction>();
importActionList.add(importAction);
}
}
-
- protected void fillMenuBar(IMenuManager menuBar) {
-
- // Note: to hook into Eclipse File Menu, to use open File for instance,
- // replace NULL with IWorkbenchActionConstants.M_FILE);
+
+ private MenuManager FILE_MENU(){
MenuManager fileMenu = new MenuManager("&File",
- null);
-
- MenuManager editMenu = new MenuManager("&Edit", null);
+ IWorkbenchActionConstants.M_FILE);
// Create submenu for imports
MenuManager importMenu = new MenuManager("Import ...", null);
// Create submenu for exports
MenuManager exportMenu = new MenuManager("Export as ...", null);
-
+
// Populate file menu
- menuBar.add(fileMenu);
- fileMenu.add(newNameAction);
- fileMenu.add(saveAction);
+ fileMenu.add(getAction(TaxEditorActionFactory.NEW.getId()));
+ fileMenu.add(getAction(TaxEditorActionFactory.SAVE.getId()));
fileMenu.add(new Separator());
fileMenu.add(importMenu);
fileMenu.add(exportMenu);
fileMenu.add(new Separator());
- fileMenu.add(exitAction);
-
- menuBar.add(editMenu);
- editMenu.add(undoAction);
- editMenu.add(redoAction);
+ fileMenu.add(getAction(TaxEditorActionFactory.QUIT.getId()));
// Populate submenu for imports
for (IAction importAction : importActionList) {
// Populate submenu for exports
exportMenu.add(exportJaxbAction);
- // Populate preferences
- MenuManager preferencesMenu = new MenuManager("&Preferences",
- null);
- menuBar.add(preferencesMenu);
- preferencesMenu.add(preferencesAction);
+ return fileMenu;
+ }
+
+
+ private MenuManager EDIT_MENU() {
+
+ MenuManager editMenu = new MenuManager("&Edit", IWorkbenchActionConstants.M_EDIT);
+
+ editMenu.add(getAction(TaxEditorActionFactory.UNDO.getId()));
+ editMenu.add(getAction(TaxEditorActionFactory.REDO.getId()));
+ editMenu.add(new Separator());
+ editMenu.add(getAction(TaxEditorActionFactory.CUT.getId()));
+ editMenu.add(getAction(TaxEditorActionFactory.COPY.getId()));
+ editMenu.add(getAction(TaxEditorActionFactory.PASTE.getId()));
+ editMenu.add(new Separator());
+ editMenu.add(getAction(TaxEditorActionFactory.DELETE.getId()));
+
+ return editMenu;
+ }
+
+ private MenuManager WINDOW_MENU() {
+ MenuManager windowMenu = new MenuManager("&Window",
+ IWorkbenchActionConstants.M_WINDOW);
+
+ windowMenu.add(getAction(TaxEditorActionFactory.PREFERENCES.getId()));
+
+ return windowMenu;
+ }
+
+ private MenuManager HELP_MENU(){
+ MenuManager helpMenu = new MenuManager("&Help",
+ IWorkbenchActionConstants.M_HELP);
+
+ helpMenu.add(getAction(TaxEditorActionFactory.ABOUT.getId()));
+
+ return helpMenu;
+ }
+
+ protected void fillMenuBar(IMenuManager menuBar) {
+
+ menuBar.add(FILE_MENU());
+
+ menuBar.add(EDIT_MENU());
+
+ menuBar.add(WINDOW_MENU());
+
+ menuBar.add(HELP_MENU());
}
}
\ 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;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.ui.IWorkbenchWindow;\r
+import org.eclipse.ui.actions.ActionFactory;\r
+import org.eclipse.ui.actions.NewWizardAction;\r
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;\r
+\r
+import eu.etaxonomy.taxeditor.actions.ui.OpenTaxonEditorAction;\r
+\r
+/**\r
+ * This class is an extension to the standard ActionFactory. Any useful\r
+ * functionality already implemented in ActionFactory may be used or \r
+ * overwritten by more suitable implementations.\r
+ * \r
+ * @author n.hoffmann\r
+ * @created 03.02.2009\r
+ * @version 1.0\r
+ */\r
+public abstract class TaxEditorActionFactory extends ActionFactory {\r
+ private static final Logger logger = Logger\r
+ .getLogger(TaxEditorActionFactory.class);\r
+ \r
+ /**\r
+ * Workbench action (id "new"): Opens the new wizard dialog. This action maintains\r
+ * its enablement state.\r
+ */\r
+ public static final ActionFactory NEW = new ActionFactory("new") {//$NON-NLS-1$\r
+ \r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.ui.actions.ActionFactory#create(org.eclipse.ui.IWorkbenchWindow)\r
+ */\r
+ public IWorkbenchAction create(IWorkbenchWindow window) {\r
+ if (window == null) {\r
+ throw new IllegalArgumentException();\r
+ }\r
+ IWorkbenchAction action = new OpenTaxonEditorAction();\r
+ action.setId(getId());\r
+ return action;\r
+ }\r
+ };\r
+ \r
+ /**\r
+ * Creates a new workbench action factory with the given id.\r
+ * \r
+ * @param actionId\r
+ * the id of actions created by this action factory\r
+ */\r
+ protected TaxEditorActionFactory(String actionId) {\r
+ super(actionId);\r
+ }\r
+}\r
.getLogger(SwapSynonymAndTaxonAction.class);\r
\r
private static String text = "Make synonym accepted name for this taxon";\r
- private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ private static ImageDescriptor image = TaxEditorPlugin.getDefault()\r
.getImageDescriptor(ITaxEditorConstants.SYNONYM_TO_TAXON_ICON);\r
\r
private Synonym synonym;\r
private Taxon taxon;\r
\r
- public SwapSynonymAndTaxonAction(Synonym synonym, Taxon taxon) {\r
+ public SwapSynonymAndTaxonAction(){\r
+ super(text, image);\r
+ }\r
+ \r
+ public SwapSynonymAndTaxonAction(Taxon taxon, Synonym synonym) {\r
+ this();\r
this.synonym = synonym;\r
this.taxon = taxon;\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.name;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
+import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.operations.name.ChangeConceptRelationOperation;\r
+import eu.etaxonomy.taxeditor.operations.name.CreateConceptRelationOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 03.02.2009\r
+ * @version 1.0\r
+ */\r
+public class ChangeConceptRelationAction extends Action {\r
+\r
+ private static final Logger logger = Logger\r
+ .getLogger(ChangeConceptRelationAction.class);\r
+\r
+ private static String text = "Change concept relation";\r
+ private static ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageRegistry().getDescriptor(ITaxEditorConstants.CONCEPT_ICON);\r
+\r
+ private Taxon relatedTaxon;\r
+\r
+ private Taxon taxon;\r
+\r
+ private TaxonRelationshipType taxonRelationshipType;\r
+\r
+ private ChangeConceptRelationAction(){\r
+ super(text, image);\r
+ }\r
+ \r
+ public ChangeConceptRelationAction(Taxon taxon, Taxon relatedTaxon,\r
+ TaxonRelationshipType taxonRelationshipType) {\r
+ this();\r
+ this.setText(taxonRelationshipType.getLabel());\r
+ this.taxon = taxon;\r
+ this.relatedTaxon = relatedTaxon;\r
+ this.taxonRelationshipType = taxonRelationshipType;\r
+ }\r
+ \r
+ public void run() {\r
+ IUndoableOperation operation = new ChangeConceptRelationOperation(\r
+ "Create concept relation '" + taxonRelationshipType.getLabel() + "'", \r
+ EditorController.getUndoContext(taxon), taxon, relatedTaxon, taxonRelationshipType);\r
+ \r
+ GlobalController.executeOperation(operation);\r
+ }\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.name;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\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
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.operations.name.ChangeSynonymToConceptOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 02.02.2009\r
+ * @version 1.0\r
+ */\r
+public class ChangeSynonymToConceptRelationAction extends Action {\r
+\r
+\r
+ private static final Logger logger = Logger\r
+ .getLogger(ChangeSynonymToConceptRelationAction.class);\r
+ \r
+ private static String text = "Change synonym to concept relation"; //$NON-NLS-1$\r
+ \r
+ private static ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageDescriptor(ITaxEditorConstants.CONCEPT_ICON);\r
+\r
+ private Synonym synonym;\r
+\r
+ private Taxon taxon;\r
+ \r
+ private ChangeSynonymToConceptRelationAction() {\r
+ super(text, image);\r
+ }\r
+ \r
+ public ChangeSynonymToConceptRelationAction(Taxon taxon, Synonym synonym) {\r
+ this();\r
+ this.taxon = taxon;\r
+ this.synonym = synonym;\r
+ }\r
+ \r
+ public void run() {\r
+ IUndoableOperation operation = new ChangeSynonymToConceptOperation\r
+ (this.getText(), EditorController.getUndoContext(taxon), taxon, synonym);\r
+ \r
+ GlobalController.executeOperation(operation); \r
+ }\r
+ \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.name;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\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
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.operations.name.ChangeSynonymToMisappliedNameOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 02.02.2009\r
+ * @version 1.0\r
+ */\r
+public class ChangeSynonymToMisapplicationAction extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(ChangeSynonymToMisapplicationAction.class);\r
+ \r
+ private static String text = "Change synonym to misapplied name"; //$NON-NLS-1$\r
+ private static ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageDescriptor(ITaxEditorConstants.MISAPPLIED_NAME_ICON);\r
+\r
+ private Synonym synonym;\r
+\r
+ private Taxon taxon;\r
+ \r
+ private ChangeSynonymToMisapplicationAction(){\r
+ super(text, image);\r
+ }\r
+ \r
+ public ChangeSynonymToMisapplicationAction(Taxon taxon, Synonym synonym){\r
+ this();\r
+ this.taxon = taxon;\r
+ this.synonym = synonym;\r
+ }\r
+ \r
+ public void run() {\r
+ IUndoableOperation operation = new ChangeSynonymToMisappliedNameOperation\r
+ (this.getText(), EditorController.getUndoContext(taxon), taxon, synonym);\r
+ \r
+ GlobalController.executeOperation(operation);\r
+ }\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.name;\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.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 02.02.2009\r
+ * @version 1.0\r
+ */\r
+public class CreateAutonymAction extends Action {\r
+ private static final Logger logger = Logger.getLogger(CreateAutonymAction.class);\r
+\r
+ private static String text = "Create autonym";\r
+ private static ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageRegistry().getDescriptor(ITaxEditorConstants.AUTONYM_ICON);\r
+\r
+ public CreateAutonymAction(){\r
+ super(text, image);\r
+ }\r
+ \r
+ public void run(){\r
+ Taxon taxon = EditorController.getActiveEditor().getTaxon();\r
+ \r
+ logger.warn("Not implemented yet!");\r
+ }\r
+}\r
.getLogger(CreateConceptRelationAction.class);\r
\r
private static String text = "Create concept relation";\r
- private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ private static ImageDescriptor image = TaxEditorPlugin.getDefault()\r
.getImageRegistry().getDescriptor(ITaxEditorConstants.CONCEPT_ICON);\r
\r
- private Taxon taxon;\r
private TaxonRelationshipType taxonRelationshipType;\r
\r
- private CreateConceptRelationAction() {\r
- super(text);\r
- setImageDescriptor(image);\r
- }\r
-\r
- public CreateConceptRelationAction(Taxon taxon, TaxonRelationshipType taxonRelationshipType) {\r
- this();\r
- \r
- setText(taxonRelationshipType.getLabel());\r
- \r
- this.taxon = taxon;\r
+ public CreateConceptRelationAction(TaxonRelationshipType taxonRelationshipType) {\r
+ super(text, image);\r
this.taxonRelationshipType = taxonRelationshipType;\r
+ setText(taxonRelationshipType.getLabel());\r
}\r
\r
+\r
public void run() {\r
+ Taxon taxon = EditorController.getActiveEditor().getTaxon();\r
+ \r
IUndoableOperation operation = new CreateConceptRelationOperation(\r
"Create concept relation '" + taxonRelationshipType.getLabel() + "'", \r
EditorController.getUndoContext(taxon), taxon, taxonRelationshipType);\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.name;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+\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.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.operations.name.CreateMisappliedNameOperation;\r
+import eu.etaxonomy.taxeditor.operations.name.CreateSynonymInNewGroupOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 02.02.2009\r
+ * @version 1.0\r
+ */\r
+public class CreateHeterotypicSynonymAction extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(CreateHeterotypicSynonymAction.class);\r
+\r
+ private static String text = "Create heterotypic synonym";\r
+ private static ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageRegistry().getDescriptor(ITaxEditorConstants.HETEROTYPIC_SYN_ICON);\r
+ \r
+ public CreateHeterotypicSynonymAction(){\r
+ super(text, image);\r
+ }\r
+\r
+ public void run() {\r
+ Taxon taxon = EditorController.getActiveEditor().getTaxon();\r
+ \r
+ IUndoableOperation operation = new CreateSynonymInNewGroupOperation(getText(), \r
+ EditorController.getUndoContext(taxon), taxon, "");\r
+ \r
+ GlobalController.executeOperation(operation);\r
+ }\r
+}\r
private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
.getImageRegistry().getDescriptor(ITaxEditorConstants.MISAPPLIED_NAME_ICON);\r
\r
- private Taxon taxon;\r
-\r
- private CreateMisappliedNameAction() {\r
+ public CreateMisappliedNameAction() {\r
super(text);\r
setImageDescriptor(image);\r
}\r
\r
- public CreateMisappliedNameAction(Taxon taxon) {\r
- this();\r
- this.taxon = taxon;\r
- }\r
-\r
public void run() {\r
+ Taxon taxon = EditorController.getActiveEditor().getTaxon();\r
+ \r
IUndoableOperation operation = new CreateMisappliedNameOperation(getText(), \r
EditorController.getUndoContext(taxon), taxon);\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.name;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\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
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.operations.name.ChangeSynonymToTaxonOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 02.02.2009\r
+ * @version 1.0\r
+ */\r
+public class CreateNewTaxonFromSynonymAction extends Action {\r
+\r
+ private static final Logger logger = Logger\r
+ .getLogger(CreateNewTaxonFromSynonymAction.class);\r
+ \r
+ private static final String text = "Use synonym name to make a new taxon"; //$NON-NLS-1$\r
+ private static final ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageDescriptor(ITaxEditorConstants.SYNONYM_TO_TAXON_ICON);\r
+\r
+ private Synonym synonym;\r
+\r
+ private Taxon taxon;\r
+\r
+ private CreateNewTaxonFromSynonymAction() {\r
+ super(text, image);\r
+ }\r
+ \r
+ public CreateNewTaxonFromSynonymAction(Taxon taxon, Synonym synonym) {\r
+ this();\r
+ this.taxon = taxon;\r
+ this.synonym = synonym;\r
+ }\r
+ \r
+ public void run() {\r
+ IUndoableOperation operation = new ChangeSynonymToTaxonOperation\r
+ (this.getText(), EditorController.getUndoContext(taxon), taxon, synonym);\r
+ \r
+ GlobalController.executeOperation(operation); \r
+ }\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.name;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\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.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.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.operations.name.CreateSynonymInExisitingHomotypicalGroupOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 02.02.2009\r
+ * @version 1.0\r
+ */\r
+public class CreateSynonymInGroupAction extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(CreateSynonymInGroupAction.class);\r
+ private static String text = "Create synonym in homotypical group";\r
+ private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageRegistry().getDescriptor(ITaxEditorConstants.HOMOTYPIC_SYN_ICON);\r
+ \r
+ public CreateSynonymInGroupAction(){\r
+ super(text);\r
+ setImageDescriptor(image); \r
+ }\r
+ \r
+ public void run(){\r
+ Taxon taxon = EditorController.getActiveEditor().getTaxon();\r
+ HomotypicalGroup group = taxon.getHomotypicGroup();\r
+ \r
+ IUndoableOperation operation = new CreateSynonymInExisitingHomotypicalGroupOperation(getText(), \r
+ EditorController.getUndoContext(taxon), taxon, group, "");\r
+ \r
+ GlobalController.executeOperation(operation);\r
+ }\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.name;\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.Taxon;\r
+import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.editor.name.CdmParserController;\r
+import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 02.02.2009\r
+ * @version 1.0\r
+ */\r
+public class CreateTaxonomicallyIncludedTaxonAction extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(CreateTaxonomicallyIncludedTaxonAction.class);\r
+\r
+ private static String text = "Create taxonomically included taxon";\r
+ private static ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageRegistry().getDescriptor(ITaxEditorConstants.BLACK_SQUARE_ICON);\r
+\r
+ public CreateTaxonomicallyIncludedTaxonAction(){\r
+ super(text, image);\r
+ }\r
+ \r
+ public void run(){\r
+ \r
+ Taxon taxon = EditorController.getActiveEditor().getTaxon();\r
+ // Create a new taxon with an empty name\r
+ TaxonNameBase childName = \r
+ CdmParserController.parseFullReference("", null, null);\r
+ Taxon childTaxon = Taxon.NewInstance(childName, CdmSessionDataRepository.getDefault().getDefaultSec());\r
+ \r
+ // Add the newly created taxon to the actual open taxon\r
+ taxon.addTaxonomicChild(childTaxon, null, null);\r
+ \r
+ // Open a new editor window for the new taxon\r
+ EditorController.open(childTaxon);\r
+ }\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.name;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\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
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.operations.name.MakeSynonymGroupBasionymOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 03.02.2009\r
+ * @version 1.0\r
+ */\r
+public class MakeBasionymAction extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(MakeBasionymAction.class);\r
+ \r
+ private static ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageDescriptor(ITaxEditorConstants.BASIONYM_ICON);\r
+ \r
+ private Taxon taxon;\r
+ private Synonym synonym;\r
+ \r
+ public MakeBasionymAction(Taxon taxon, Synonym synonym){\r
+ String text = Messages.getString("AddBasionymCompositeAction.0", synonym.getName());\r
+ this.setText(text);\r
+ this.setImageDescriptor(image);\r
+ }\r
+ \r
+ public void run() {\r
+ IUndoableOperation operation = new MakeSynonymGroupBasionymOperation\r
+ (this.getText(), EditorController.getUndoContext(taxon), taxon, synonym);\r
+ \r
+ GlobalController.executeOperation(operation); \r
+ }\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
-package eu.etaxonomy.taxeditor.editor.name;\r
+package eu.etaxonomy.taxeditor.actions.name;\r
\r
import java.util.Locale;\r
import java.util.MissingResourceException;\r
*/\r
public class Messages {\r
private static final Logger logger = Logger.getLogger(Messages.class);\r
- private static final String BUNDLE_NAME = "eu.etaxonomy.taxeditor.editor.name.messages"; //$NON-NLS-1$\r
+ private static final String BUNDLE_NAME = "eu.etaxonomy.taxeditor.actions.name.messages"; //$NON-NLS-1$\r
\r
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle\r
.getBundle(BUNDLE_NAME, Locale.getDefault());\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.name;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
+import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
+import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.operations.name.RemoveConceptRelationOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 03.02.2009\r
+ * @version 1.0\r
+ */\r
+public class RemoveConceptAction extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(RemoveConceptAction.class);\r
+ \r
+ private static String text = "Remove concept relation from taxon"; //$NON-NLS-1$\r
+ private static ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageDescriptor(ITaxEditorConstants.ACTIVE_DELETE_ICON);\r
+\r
+ private TaxonRelationshipType relationshipType;\r
+\r
+ private Taxon relatedTaxon;\r
+\r
+ private Taxon taxon;\r
+ \r
+ private RemoveConceptAction(){\r
+ super(text, image);\r
+ }\r
+\r
+ public RemoveConceptAction(Taxon taxon, Taxon relatedTaxon,\r
+ TaxonRelationshipType relationshipType) {\r
+ this();\r
+ this.taxon = taxon;\r
+ this.relatedTaxon = relatedTaxon;\r
+ this.relationshipType = relationshipType;\r
+ }\r
+ \r
+ public void run() {\r
+ IUndoableOperation operation = new RemoveConceptRelationOperation\r
+ (this.getText(), EditorController.getUndoContext(taxon), taxon, relatedTaxon, relationshipType);\r
+ \r
+ GlobalController.executeOperation(operation);\r
+ }\r
+\r
+ \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.name;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\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
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.operations.name.RemoveSynonymOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 02.02.2009\r
+ * @version 1.0\r
+ */\r
+public class RemoveSynonymAction extends Action {\r
+\r
+ private static final Logger logger = Logger\r
+ .getLogger(RemoveSynonymAction.class);\r
+ \r
+ private static final String text = "Remove synonym from taxon"; //$NON-NLS-1$\r
+ private static final ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageDescriptor(ITaxEditorConstants.ACTIVE_DELETE_ICON);\r
+\r
+ private Synonym synonym;\r
+\r
+ private Taxon taxon;\r
+ \r
+ private RemoveSynonymAction() {\r
+ super(text, image);\r
+ }\r
+ \r
+ public RemoveSynonymAction(Taxon taxon, Synonym synonym) {\r
+ this();\r
+ this.taxon = taxon;\r
+ this.synonym = synonym;\r
+ }\r
+ \r
+ public void run() {\r
+ IUndoableOperation operation = new RemoveSynonymOperation\r
+ (this.getText(), EditorController.getUndoContext(taxon), taxon, synonym);\r
+ \r
+ GlobalController.executeOperation(operation); \r
+ }\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.name;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.operations.IUndoableOperation;\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.resource.ImageDescriptor;\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
+import eu.etaxonomy.taxeditor.controller.EditorController;\r
+import eu.etaxonomy.taxeditor.controller.GlobalController;\r
+import eu.etaxonomy.taxeditor.operations.name.UnmakeSynonymGroupBasionymOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 03.02.2009\r
+ * @version 1.0\r
+ */\r
+public class UnmakeBasionymAction extends Action {\r
+ private static final Logger logger = Logger\r
+ .getLogger(UnmakeBasionymAction.class);\r
+ \r
+ \r
+ private static ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageDescriptor(ITaxEditorConstants.BASIONYM_ICON);\r
+ \r
+ private Taxon taxon;\r
+ private Synonym synonym;\r
+ \r
+ public UnmakeBasionymAction(Taxon taxon, Synonym synonym){\r
+ String text = Messages.getString("RemoveBasionymCompositeAction.0", synonym.getName()); //$NON-NLS-1$\r
+ this.setText(text);\r
+ this.setImageDescriptor(image);\r
+ this.taxon = taxon;\r
+ this.synonym = synonym;\r
+ }\r
+ \r
+ public void run() {\r
+ IUndoableOperation operation = new UnmakeSynonymGroupBasionymOperation\r
+ (this.getText(), EditorController.getUndoContext(taxon), taxon, synonym);\r
+ \r
+ GlobalController.executeOperation(operation); \r
+ }\r
+}\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.controller.EditorController;\r
import eu.etaxonomy.taxeditor.controller.GlobalController;\r
import eu.etaxonomy.taxeditor.operations.ChangeTaxonToSynonymOperation;\r
\r
.getLogger(ChangeTaxonToSynonymAction.class);\r
\r
private static String text = "Change this taxon to a synonym";\r
- private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ private static ImageDescriptor image = TaxEditorPlugin.getDefault()\r
.getImageRegistry().getDescriptor(ITaxEditorConstants.TAXON_TO_SYNONYM_ICON);\r
\r
private Taxon taxon;\r
\r
- private ChangeTaxonToSynonymAction() {\r
- super(text);\r
- setImageDescriptor(image);\r
- }\r
-\r
- public ChangeTaxonToSynonymAction(Taxon taxon) {\r
- this();\r
- this.taxon = taxon;\r
+ public ChangeTaxonToSynonymAction() {\r
+ super(text, image);\r
}\r
\r
public void run() {\r
+ Taxon taxon = EditorController.getActiveEditor().getTaxon();\r
+ \r
IUndoableOperation operation = new ChangeTaxonToSynonymOperation(getText(), \r
GlobalController.getWorkbenchUndoContext(), taxon);\r
\r
.getLogger(MoveTaxonDialogAction.class);\r
\r
private static String text = "Move this taxon to a new parent";\r
- private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ private static ImageDescriptor image = TaxEditorPlugin.getDefault()\r
.getImageRegistry().getDescriptor(ITaxEditorConstants.MOVE_ICON);\r
\r
- private Taxon taxon;\r
-\r
- private MoveTaxonDialogAction() {\r
- super(text);\r
- setImageDescriptor(image);\r
- }\r
-\r
- public MoveTaxonDialogAction(Taxon taxon) {\r
- this();\r
- this.taxon = taxon;\r
+ public MoveTaxonDialogAction() {\r
+ super(text, image);\r
}\r
\r
public void run() {\r
\r
+ Taxon taxon = EditorController.getActiveEditor().getTaxon();\r
IEditorPart editor = null;\r
\r
\r
\r
import org.apache.log4j.Logger;\r
import org.eclipse.jface.action.Action;\r
-import org.eclipse.jface.action.IAction;\r
import org.eclipse.jface.resource.ImageDescriptor;\r
-import org.eclipse.jface.viewers.ISelection;\r
import org.eclipse.ui.IWorkbenchWindow;\r
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;\r
+import org.eclipse.ui.actions.ActionFactory;\r
\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.controller.EditorController;\r
\r
/**\r
* Opens a taxon editor for an existing taxon.\r
* \r
+ * FIXME this action is broken and actually throws lots of hibernate exceptions\r
+ * \r
* @author p.ciardelli\r
* @created 02.06.2008\r
* @version 1.0\r
*/\r
-public class OpenTaxonEditorAction extends Action implements IWorkbenchWindowActionDelegate {\r
+public class OpenTaxonEditorAction extends Action implements ActionFactory.IWorkbenchAction {\r
private static final Logger logger = Logger\r
.getLogger(OpenTaxonEditorAction.class);\r
\r
private static String editTaxonText = "Edit taxon";\r
private static String newTaxonText = "Add new taxon";\r
-// private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
-// .getImageDescriptor(ITaxEditorConstants.OPEN_TAXON_ICON);\r
- private ImageDescriptor image = null;\r
- \r
+ private ImageDescriptor image = TaxEditorPlugin.getDefault()\r
+ .getImageDescriptor(ITaxEditorConstants.OPEN_TAXON_ICON);\r
+\r
private IWorkbenchWindow window;\r
\r
private Taxon taxon;\r
\r
@Override\r
public void dispose() {\r
- // TODO Auto-generated method stub\r
- \r
- }\r
-\r
- @Override\r
- public void init(IWorkbenchWindow window) {\r
- this.window = window;\r
- }\r
-\r
- @Override\r
- public void run(IAction action) {\r
- run();\r
- }\r
-\r
- @Override\r
- public void selectionChanged(IAction action, ISelection selection) {\r
- // TODO Auto-generated method stub\r
- \r
}\r
}
\ No newline at end of file
}\r
return taxonEditors;\r
}\r
+ \r
+ /**\r
+ * Returns the currently active taxon editor\r
+ * \r
+ * @return the taxon editor that has focus\r
+ */\r
+ public static MultiPageTaxonEditor getActiveEditor(){\r
+ if(getActivePage().getActiveEditor() instanceof MultiPageTaxonEditor){\r
+ return (MultiPageTaxonEditor) getActivePage().getActiveEditor();\r
+ }\r
+ return null;\r
+ }\r
\r
public static IUndoContext getUndoContext(Taxon taxon) {\r
// TODO make this taxon name editor specific\r
// return getTaxonNameEditor(taxon).getUndoContext();\r
- return IOperationHistory.GLOBAL_UNDO_CONTEXT;\r
+ return getUndoContext();\r
+ }\r
+\r
+ public static IUndoContext getUndoContext() {\r
+ return IOperationHistory.GLOBAL_UNDO_CONTEXT;\r
}\r
\r
\r
import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
import eu.etaxonomy.cdm.model.name.Rank;\r
import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;\r
import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
\r
/**\r
logger.error("Error executing operation: " + operation.getLabel(), e);\r
}\r
}\r
-\r
}
\ No newline at end of file
}\r
});\r
}\r
-\r
+ \r
private List getActions() {\r
if (actions == null) {\r
actions = new ArrayList();\r
public void addSubmenu(MenuManager submenu) {\r
getActions().add(submenu);\r
}\r
+ \r
+ public void setMenuManager(MenuManager menuManager){\r
+ if(control == null){\r
+ logger.warn("No control set for context menu");\r
+ }else{\r
+ this.menuManager = menuManager;\r
+ menu = menuManager.createContextMenu(control);\r
+ control.setMenu(menu);\r
+ \r
+ menuManager.addMenuListener(new IMenuListener() {\r
+ public void menuAboutToShow(IMenuManager manager) {\r
+ for (Object action : getActions()) {\r
+ if (action instanceof Action) {\r
+ manager.add((Action) action);\r
+ }\r
+ if (action instanceof Separator) {\r
+ manager.add((Separator) action);\r
+ }\r
+ if (action instanceof MenuManager) {\r
+ manager.add((MenuManager) action);\r
+ }\r
+ }\r
+ }\r
+ }); \r
+ }\r
+ }\r
\r
public Menu getMenu() {\r
return menu;\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.editor;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.action.MenuManager;\r
+import org.eclipse.jface.action.Separator;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateAutonymAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateConceptRelationAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateHeterotypicSynonymAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateMisappliedNameAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateSynonymInGroupAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateTaxonomicallyIncludedTaxonAction;\r
+import eu.etaxonomy.taxeditor.actions.ui.ChangeTaxonToSynonymAction;\r
+import eu.etaxonomy.taxeditor.actions.ui.MoveTaxonDialogAction;\r
+import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 03.02.2009\r
+ * @version 1.0\r
+ */\r
+public class MenuConstants {\r
+ private static final Logger logger = Logger.getLogger(MenuConstants.class);\r
+ \r
+ public static final MenuManager EDITOR_TAXON_MENU(){\r
+ MenuManager taxonEditorMenu = new MenuManager("Taxon");\r
+ \r
+ taxonEditorMenu.add(new CreateHeterotypicSynonymAction());\r
+ taxonEditorMenu.add(new CreateSynonymInGroupAction());\r
+ taxonEditorMenu.add(new Separator()); \r
+ taxonEditorMenu.add(new CreateMisappliedNameAction());\r
+ \r
+ MenuManager subMenu = new MenuManager("Create concept relation");\r
+ for (TaxonRelationshipType type : \r
+ CdmSessionDataRepository.getDefault().getConceptRelationshipTypes()) {\r
+ subMenu.add(new CreateConceptRelationAction(type));\r
+ }\r
+ taxonEditorMenu.add(subMenu);\r
+ taxonEditorMenu.add(new Separator());\r
+ taxonEditorMenu.add(new MoveTaxonDialogAction());\r
+ taxonEditorMenu.add(new ChangeTaxonToSynonymAction());\r
+ taxonEditorMenu.add(new Separator());\r
+ // TODO is it correct that onlx taxa with rank species may have autonyms?\r
+ // if(taxon.getName().getRank().equals(Rank.SPECIES())){\r
+ taxonEditorMenu.add(new CreateAutonymAction());\r
+ // }\r
+ taxonEditorMenu.add(new CreateTaxonomicallyIncludedTaxonAction());\r
+ \r
+ return taxonEditorMenu;\r
+ }\r
+ \r
+}\r
});\r
\r
setPartName();\r
- \r
+ \r
super.init(site, input);\r
}\r
\r
public void setDirtyExtern(boolean IS_DIRTY) {\r
setDirty(IS_DIRTY);\r
}\r
+ \r
+ public Taxon getTaxon(){\r
+ return this.taxon;\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.editor;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.jface.action.IMenuManager;\r
+import org.eclipse.jface.action.MenuManager;\r
+import org.eclipse.jface.action.Separator;\r
+import org.eclipse.ui.IWorkbenchActionConstants;\r
+import org.eclipse.ui.part.EditorActionBarContributor;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateAutonymAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateConceptRelationAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateHeterotypicSynonymAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateMisappliedNameAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateSynonymInGroupAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateTaxonomicallyIncludedTaxonAction;\r
+import eu.etaxonomy.taxeditor.actions.ui.ChangeTaxonToSynonymAction;\r
+import eu.etaxonomy.taxeditor.actions.ui.MoveTaxonDialogAction;\r
+import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 03.02.2009\r
+ * @version 1.0\r
+ */\r
+public class MultiPageTaxonEditorActionBarContributor extends\r
+ EditorActionBarContributor {\r
+ private static final Logger logger = Logger\r
+ .getLogger(MultiPageTaxonEditorActionBarContributor.class);\r
+\r
+ /**\r
+ * \r
+ */\r
+ public MultiPageTaxonEditorActionBarContributor() {\r
+ logger.warn("Setting up action bar contributions.");\r
+ }\r
+ \r
+ public void contributeToMenu(IMenuManager menubar){ \r
+ menubar.insertAfter(IWorkbenchActionConstants.M_EDIT, MenuConstants.EDITOR_TAXON_MENU());\r
+ }\r
+}\r
import org.eclipse.ui.forms.IManagedForm;\r
import org.eclipse.ui.views.properties.IPropertySource;\r
\r
+import eu.etaxonomy.cdm.model.name.Rank;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateAutonymAction;\r
import eu.etaxonomy.taxeditor.actions.name.CreateConceptRelationAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateHeterotypicSynonymAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateSynonymInGroupAction;\r
import eu.etaxonomy.taxeditor.actions.name.CreateMisappliedNameAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateTaxonomicallyIncludedTaxonAction;\r
import eu.etaxonomy.taxeditor.actions.ui.ChangeTaxonToSynonymAction;\r
import eu.etaxonomy.taxeditor.actions.ui.MoveTaxonDialogAction;\r
import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
+import eu.etaxonomy.taxeditor.editor.MenuConstants;\r
import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
import eu.etaxonomy.taxeditor.propertysheet.name.TaxonBasePropertySource;\r
\r
private void createMenu() {\r
ContextMenu contextMenu = createContextMenu();\r
\r
- contextMenu.addAction(new ChangeTaxonToSynonymAction(getTaxon()));\r
- contextMenu.addAction(new MoveTaxonDialogAction(getTaxon()));\r
- contextMenu.addSeparator();\r
- contextMenu.addAction(new CreateMisappliedNameAction(getTaxon()));\r
+ contextMenu.setMenuManager(MenuConstants.EDITOR_TAXON_MENU());\r
\r
- MenuManager subMenu = new MenuManager("Create concept relation");\r
- for (TaxonRelationshipType type : \r
- CdmSessionDataRepository.getDefault().getConceptRelationshipTypes()) {\r
- subMenu.add(new CreateConceptRelationAction(\r
- getTaxon(), type));\r
- }\r
- contextMenu.addSubmenu(subMenu);\r
- \r
- \r
- // TODO Make action "Create autonym and subspecies"\r
-// contextMenu.addSeparator();\r
+// contextMenu.addAction(new CreateHeterotypicSynonymAction());\r
+// contextMenu.addAction(new CreateSynonymInGroupAction());\r
+// contextMenu.addSeparator(); \r
+// contextMenu.addAction(new CreateMisappliedNameAction());\r
// \r
-// contextMenu.addAction(new CreateAutonym(getTaxon()));\r
-// contextMenu.addAction(new CreateSubspecies(getTaxon()));\r
+// MenuManager subMenu = new MenuManager("Create concept relation");\r
+// for (TaxonRelationshipType type : \r
+// CdmSessionDataRepository.getDefault().getConceptRelationshipTypes()) {\r
+// subMenu.add(new CreateConceptRelationAction(type));\r
+// }\r
+// contextMenu.addSubmenu(subMenu);\r
+// contextMenu.addSeparator(); \r
+// contextMenu.addAction(new MoveTaxonDialogAction());\r
+// contextMenu.addAction(new ChangeTaxonToSynonymAction());\r
+// contextMenu.addSeparator();\r
+// // TODO is it correct that onlx taxa with rank species may have autonyms?\r
+// // if(getTaxon().getName().getRank().equals(Rank.SPECIES())){\r
+// contextMenu.addAction(new CreateAutonymAction());\r
+// // }\r
+// contextMenu.addAction(new CreateTaxonomicallyIncludedTaxonAction());\r
}\r
\r
@Override\r
import org.eclipse.core.commands.operations.IUndoContext;\r
import org.eclipse.core.commands.operations.IUndoableOperation;\r
import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.action.MenuManager;\r
import org.eclipse.jface.resource.ImageDescriptor;\r
import org.eclipse.swt.graphics.Font;\r
import org.eclipse.swt.widgets.Composite;\r
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.actions.name.ChangeConceptRelationAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateConceptRelationAction;\r
+import eu.etaxonomy.taxeditor.actions.name.RemoveConceptAction;\r
import eu.etaxonomy.taxeditor.controller.EditorController;\r
import eu.etaxonomy.taxeditor.controller.GlobalController;\r
import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
+import eu.etaxonomy.taxeditor.model.CdmSessionDataRepository;\r
import eu.etaxonomy.taxeditor.operations.name.RemoveConceptRelationOperation;\r
import eu.etaxonomy.taxeditor.operations.name.RemoveMisappliedNameOperation;\r
import eu.etaxonomy.taxeditor.propertysheet.name.TaxonBasePropertySource;\r
private void createMenu() {\r
ContextMenu contextMenu = createContextMenu();\r
\r
- final IUndoContext undoContext = EditorController.getUndoContext(taxon);\r
- \r
// Remove misapplied name from taxon\r
- String text = "Remove concept relation from taxon"; //$NON-NLS-1$\r
- ImageDescriptor image = TaxEditorPlugin.getDefault()\r
- .getImageDescriptor(ITaxEditorConstants.ACTIVE_DELETE_ICON);\r
- contextMenu.addAction(new Action(text, image){\r
- \r
- public void run() {\r
- IUndoableOperation operation = new RemoveConceptRelationOperation\r
- (this.getText(), undoContext, taxon, relatedTaxon, relationshipType);\r
- \r
- GlobalController.executeOperation(operation);\r
- }\r
- });\r
+ contextMenu.addAction(new RemoveConceptAction(taxon, relatedTaxon, relationshipType));\r
+ MenuManager subMenu = new MenuManager("Change relation type");\r
+ for (TaxonRelationshipType type : CdmSessionDataRepository.getDefault().getConceptRelationshipTypes()) {\r
+ subMenu.add(new ChangeConceptRelationAction(taxon, relatedTaxon, type));\r
+ }\r
+ contextMenu.addSubmenu(subMenu);\r
}\r
\r
\r
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
import eu.etaxonomy.taxeditor.ITaxEditorConstants;\r
import eu.etaxonomy.taxeditor.TaxEditorPlugin;\r
+import eu.etaxonomy.taxeditor.actions.name.RemoveConceptAction;\r
import eu.etaxonomy.taxeditor.controller.EditorController;\r
import eu.etaxonomy.taxeditor.controller.GlobalController;\r
import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
\r
ContextMenu contextMenu = createContextMenu();\r
\r
- final IUndoContext undoContext = EditorController.getUndoContext(taxon);\r
- \r
// Remove misapplied name from taxon\r
- String text = "Remove misapplied name from taxon"; //$NON-NLS-1$\r
- ImageDescriptor image = TaxEditorPlugin.getDefault()\r
- .getImageDescriptor(ITaxEditorConstants.ACTIVE_DELETE_ICON);\r
- contextMenu.addAction(new Action(text, image){\r
- \r
- public void run() {\r
- IUndoableOperation operation = new RemoveConceptRelationOperation\r
- (this.getText(), undoContext, taxon, \r
- misappliedName, TaxonRelationshipType.MISAPPLIED_NAME_FOR());\r
- \r
- GlobalController.executeOperation(operation);\r
- }\r
- });\r
+ contextMenu.addAction(new RemoveConceptAction(taxon, \r
+ misappliedName, TaxonRelationshipType.MISAPPLIED_NAME_FOR()));\r
+\r
}\r
\r
public boolean setParent(Composite parent) {\r
import org.eclipse.core.commands.operations.IUndoableOperation;\r
import org.eclipse.core.runtime.Assert;\r
import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.action.MenuManager;\r
import org.eclipse.swt.SWT;\r
import org.eclipse.swt.custom.StyledText;\r
import org.eclipse.swt.events.FocusAdapter;\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.actions.cdm.SwapSynonymAndTaxonAction;\r
+import eu.etaxonomy.taxeditor.actions.name.ChangeSynonymToConceptRelationAction;\r
+import eu.etaxonomy.taxeditor.actions.name.ChangeSynonymToMisapplicationAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateSynonymInGroupAction;\r
+import eu.etaxonomy.taxeditor.actions.name.CreateNewTaxonFromSynonymAction;\r
+import eu.etaxonomy.taxeditor.actions.name.MakeBasionymAction;\r
+import eu.etaxonomy.taxeditor.actions.name.Messages;\r
+import eu.etaxonomy.taxeditor.actions.name.RemoveSynonymAction;\r
+import eu.etaxonomy.taxeditor.actions.name.UnmakeBasionymAction;\r
import eu.etaxonomy.taxeditor.controller.EditorController;\r
import eu.etaxonomy.taxeditor.controller.GlobalController;\r
import eu.etaxonomy.taxeditor.editor.ContextMenu;\r
import eu.etaxonomy.taxeditor.model.CdmUtil;\r
import eu.etaxonomy.taxeditor.operations.name.ChangeHomotypicGroupOperation;\r
-import eu.etaxonomy.taxeditor.operations.name.ChangeSynonymToConceptOperation;\r
import eu.etaxonomy.taxeditor.operations.name.ChangeSynonymToMisappliedNameOperation;\r
-import eu.etaxonomy.taxeditor.operations.name.ChangeSynonymToTaxonOperation;\r
-import eu.etaxonomy.taxeditor.operations.name.MakeSynonymAcceptedOperation;\r
-import eu.etaxonomy.taxeditor.operations.name.MakeSynonymGroupBasionymOperation;\r
-import eu.etaxonomy.taxeditor.operations.name.RemoveSynonymOperation;\r
import eu.etaxonomy.taxeditor.operations.name.UnmakeSynonymGroupBasionymOperation;\r
import eu.etaxonomy.taxeditor.propertysheet.name.TaxonBasePropertySource;\r
\r
\r
ContextMenu contextMenu = createContextMenu();\r
\r
- // Change composite to a misapplied name\r
- String text = "Change synonym to misapplied name"; //$NON-NLS-1$\r
- ImageDescriptor image = TaxEditorPlugin.getDefault()\r
- .getImageDescriptor(ITaxEditorConstants.MISAPPLIED_NAME_ICON);\r
- contextMenu.addAction(new Action(text, image){\r
- \r
- public void run() {\r
- IUndoableOperation operation = new ChangeSynonymToMisappliedNameOperation\r
- (this.getText(), undoContext, taxon, synonym);\r
- \r
- GlobalController.executeOperation(operation);\r
- }\r
- });\r
- \r
- // Change synonym to conccept relation\r
- text = "Change synonym to concept relation"; //$NON-NLS-1$\r
- image = TaxEditorPlugin.getDefault()\r
- .getImageDescriptor(ITaxEditorConstants.CONCEPT_ICON);\r
-\r
- contextMenu.addAction(new Action(text, image){\r
- \r
- public void run() {\r
- IUndoableOperation operation = new ChangeSynonymToConceptOperation\r
- (this.getText(), undoContext, taxon, synonym);\r
- \r
- GlobalController.executeOperation(operation); \r
- }\r
- });\r
- \r
- // Remove composite\r
- text = "Remove synonym from taxon"; //$NON-NLS-1$\r
- image = TaxEditorPlugin.getDefault()\r
- .getImageDescriptor(ITaxEditorConstants.ACTIVE_DELETE_ICON);\r
- contextMenu.addAction(new Action(text, image){\r
- \r
- public void run() {\r
- IUndoableOperation operation = new RemoveSynonymOperation\r
- (this.getText(), undoContext, taxon, synonym);\r
- \r
- GlobalController.executeOperation(operation); \r
- }\r
- });\r
- \r
- // Separator\r
- contextMenu.addSeparator();\r
- \r
- // Make the synonym the basionym of the homotypic group\r
- text = Messages.getString\r
- ("AddBasionymCompositeAction.0", synonym.getName()); //$NON-NLS-1$\r
- image = TaxEditorPlugin.getDefault()\r
- .getImageDescriptor(ITaxEditorConstants.BASIONYM_ICON);\r
- Action makeBasionymAction = new Action(text, image){\r
- \r
- public void run() {\r
- IUndoableOperation operation = new MakeSynonymGroupBasionymOperation\r
- (this.getText(), undoContext, taxon, synonym);\r
- \r
- GlobalController.executeOperation(operation); \r
- }\r
- };\r
- contextMenu.addAction(makeBasionymAction); \r
- \r
- // Action to remove the composite as basionym of the homotypic group\r
- text = Messages.getString\r
- ("RemoveBasionymCompositeAction.0", synonym.getName()); //$NON-NLS-1$\r
- image = TaxEditorPlugin.getDefault()\r
- .getImageDescriptor(ITaxEditorConstants.BASIONYM_ICON);\r
- Action unmakeBasionymAction = new Action(text, image){\r
- \r
- public void run() {\r
- IUndoableOperation operation = new UnmakeSynonymGroupBasionymOperation\r
- (this.getText(), undoContext, taxon, synonym);\r
- \r
- GlobalController.executeOperation(operation); \r
- }\r
- };\r
- contextMenu.addAction(unmakeBasionymAction);\r
- \r
+ contextMenu.addAction(new RemoveSynonymAction(taxon, synonym));\r
if (CdmUtil.isNameGroupBasionym(synonym.getName())) {\r
- \r
- // Gray out action for "make synonym group basionym"\r
- makeBasionymAction.setEnabled(false);\r
+ contextMenu.addAction(new UnmakeBasionymAction(taxon, synonym));\r
} else {\r
- \r
- // Gray out action for "unmake synonym group basionym"\r
- unmakeBasionymAction.setEnabled(false);\r
+ contextMenu.addAction(new MakeBasionymAction(taxon, synonym)); \r
}\r
- \r
- // Separator\r
+ // Add synonym to this synonyms homotypical group\r
+ // FIXME not working with the new menu action \r
+// contextMenu.addAction(new CreateSynonymInGroupAction(synonym.getHomotypicGroup()));\r
contextMenu.addSeparator();\r
-\r
+ contextMenu.addAction(new ChangeSynonymToMisapplicationAction(taxon, synonym));\r
+ contextMenu.addAction(new ChangeSynonymToConceptRelationAction(taxon, synonym));\r
+ contextMenu.addSeparator(); \r
// Change this synonym to the taxon's accepted name\r
- text = "Make synonym this taxon's accepted taxon"; //$NON-NLS-1$\r
- image = TaxEditorPlugin.getDefault()\r
- .getImageDescriptor(ITaxEditorConstants.SWAP_SYNONYM_AND_TAXON_ICON);\r
- Action swapAction = new Action(text, image){\r
- \r
- public void run() {\r
- IUndoableOperation operation = new MakeSynonymAcceptedOperation\r
- (this.getText(), undoContext, taxon, synonym);\r
- \r
- GlobalController.executeOperation(operation); \r
- }\r
- };\r
+ Action swapAction = new SwapSynonymAndTaxonAction(taxon, synonym);\r
contextMenu.addAction(swapAction);\r
// TODO fix operation\r
swapAction.setEnabled(false);\r
\r
// Make a new taxon with this synonym as the accepted name\r
- text = "Use synonym name to make a new taxon"; //$NON-NLS-1$\r
- image = TaxEditorPlugin.getDefault()\r
- .getImageDescriptor(ITaxEditorConstants.SYNONYM_TO_TAXON_ICON);\r
-\r
- contextMenu.addAction(new Action(text, image){\r
- \r
- public void run() {\r
- IUndoableOperation operation = new ChangeSynonymToTaxonOperation\r
- (this.getText(), undoContext, taxon, synonym);\r
- \r
- GlobalController.executeOperation(operation); \r
- }\r
- });\r
+ contextMenu.addAction(new CreateNewTaxonFromSynonymAction(taxon, synonym));\r
}\r
\r
\r
@Override\r
public Set<TaxonRelationshipType> getConceptRelationshipTypes() {\r
if (conceptRelationshipTypes == null) {\r
- conceptRelationshipTypes = getTaxonRelationshipTypes().terms;\r
+ conceptRelationshipTypes = getTaxonRelationshipTypes().getTerms();\r
conceptRelationshipTypes.remove(TaxonRelationshipType.MISAPPLIED_NAME_FOR());\r
conceptRelationshipTypes.remove(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN());\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.operations.name;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
+import eu.etaxonomy.taxeditor.operations.AbstractEditorOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 03.02.2009\r
+ * @version 1.0\r
+ */\r
+public class ChangeConceptRelationOperation extends AbstractEditorOperation {\r
+\r
+\r
+ private static final Logger logger = Logger\r
+ .getLogger(ChangeConceptRelationOperation.class);\r
+ private Taxon relatedTaxon;\r
+ private TaxonRelationshipType oldRelationshipType;\r
+ private TaxonRelationshipType newRelationshipType;\r
+\r
+ public ChangeConceptRelationOperation(String label,\r
+ IUndoContext undoContext, Taxon taxon, Taxon relatedTaxon, TaxonRelationshipType type) {\r
+ super(label, undoContext, taxon);\r
+ this.relatedTaxon = relatedTaxon;\r
+ //this.oldRelationshipType = relatedTaxon.get\r
+ this.newRelationshipType = type;\r
+ }\r
+ \r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+ */\r
+ @Override\r
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ // Remove relatedTaxon and old relationship\r
+ // FIXME since taxon relationships come in a set, which relationships are we going to delete here?\r
+// taxon.removeTaxon(relatedTaxon, oldRelationshipType);\r
+ // Add new relationship\r
+ // TODO add microcitation for misapplied name to property sheet\r
+ relatedTaxon.addTaxonRelation(taxon, newRelationshipType, null, null); \r
+ \r
+ return redrawOpenEditor();\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+ */\r
+ @Override\r
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ return execute(monitor, info);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+ */\r
+ @Override\r
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ // see FIXME in execute()\r
+ logger.warn("Not implemented yet. See developer documentation for details");\r
+ return null;\r
+ }\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.operations.name;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+\r
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.editor.name.CdmParserController;\r
+import eu.etaxonomy.taxeditor.operations.AbstractEditorOperation;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ * @created 02.02.2009\r
+ * @version 1.0\r
+ */\r
+public class CreateSynonymInExisitingHomotypicalGroupOperation extends\r
+ AbstractEditorOperation {\r
+ private static final Logger logger = Logger\r
+ .getLogger(CreateSynonymInExisitingHomotypicalGroupOperation.class);\r
+\r
+ private HomotypicalGroup group;\r
+ private String newSynonymText;\r
+\r
+ private SynonymRelationship synonymRelationship;\r
+ \r
+ public CreateSynonymInExisitingHomotypicalGroupOperation(String label,\r
+ IUndoContext undoContext, Taxon taxon, HomotypicalGroup group, String newSynonymText) {\r
+ super(label, undoContext, taxon);\r
+ this.group = group;\r
+ this.newSynonymText = newSynonymText;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+ */\r
+ @Override\r
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ \r
+ // Create synonym name using newSynonymText\r
+ TaxonNameBase synonymName = \r
+ CdmParserController.parseFullReference(newSynonymText, null, null);\r
+ \r
+ // Add name to given homotypic group\r
+ group.addTypifiedName(synonymName);\r
+ \r
+ // Create a new synonym for the taxon\r
+ // TODO add citations\r
+ if(group.equals(taxon.getHomotypicGroup())){\r
+ synonymRelationship = taxon.addHomotypicSynonymName(synonymName, null, null);\r
+ }else{\r
+ synonymRelationship = taxon.addHeterotypicSynonymName(synonymName);\r
+ }\r
+ return redrawOpenEditor();\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+ */\r
+ @Override\r
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ return execute(monitor, info);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+ */\r
+ @Override\r
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+\r
+ taxon.removeSynonymRelation(synonymRelationship);\r
+ \r
+ return redrawOpenEditor();\r
+ }\r
+}\r