taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/DeleteTaxonNodeHandler.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/EditTaxonHandler.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/MoveTaxonHandler.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/NewTaxonomicTreeWizadPage.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/NewTaxonomicTreeWizard.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/QuickCreateChildTaxonHandler.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/handler/ShowTaxonomicTreeViewHandler.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/internal/TaxeditorNavigationPlugin.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorPropertyTester.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorRoot.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymContentProvider.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorSynonymLabelProvider.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonContentProvider.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonLabelProvider.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonomicTreeContentProvider.java -text
-taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/NavigatorTaxonomicTreeLabelProvider.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/OpenTaxonActionProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/Root.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymContentProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/SynonymLabelProvider.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonDropAdapterAssistant.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonLinkHelper.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigatorDataChangeBehavior.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeContentProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeLabelProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodePropertyTester.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonomicTreeContentProvider.java -text
+taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonomicTreeLabelProvider.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchBar.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultLabelProvider.java -text
taxeditor-navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchResultView.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/handler/ShowDataSourceViewHandler.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelExportWizard.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractExcelImportWizard.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/BerlinModelExportWizard.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/BerlinModelExportWizardPage.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizard.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbExportWizardPage.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/io/JaxbImportWizard.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/ReferenceUtil.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/Resources.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/SynonymUtil.java -text
-taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonNodeUtil.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonTransfer.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TaxonUtil.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/model/TimeUtil.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AbstractPersistentPostOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/AbstractPostOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateMisapplicationOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateSynonymInExisitingHomotypicalGroupOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateSynonymInNewGroupOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/CreateTaxonomicTreeOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteConceptRelationOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteDescriptionElementOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteImageOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteMisapplicationOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteSynonymOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonNodeOperation.java -text
+taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/DeleteTaxonomicTreeOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/IPostOperationEnabled.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/MoveTaxonOperation.java -text
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/operations/RemoveHomotypicalGroupBasionymOperation.java -text
-<?xml version="1.0" encoding="UTF-8"?>\r
-<?pde version="3.4"?>\r
-\r
-<product name="%productName" id="eu.etaxonomy.taxeditor.application.TaxonomicEditor" application="eu.etaxonomy.taxeditor.application.application" version="2.0.0" useFeatures="true">\r
-\r
- <aboutInfo>\r
- <text>\r
- %productBlurb\r
- </text>\r
- </aboutInfo>\r
-\r
- <configIni use="default">\r
- </configIni>\r
-\r
- <launcherArgs>\r
- <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>\r
- </launcherArgs>\r
-\r
- <windowImages i16="/taxeditor-application/icons/256color_16x16.gif" i32="/taxeditor-application/icons/256color_32x32.gif" i48="/taxeditor-application/icons/256color_48x48.gif"/>\r
-\r
- <splash\r
- startupProgressRect="5,447,366,15"\r
- startupMessageRect="7,432,360,20"\r
- startupForegroundColor="000000" />\r
- <launcher name="TaxonomicEditor">\r
- <solaris/>\r
- <win useIco="false">\r
- <bmp/>\r
- </win>\r
- </launcher>\r
-\r
- <vm>\r
- </vm>\r
-\r
- <plugins>\r
- <plugin id="com.ibm.icu"/>\r
- <plugin id="eu.etaxonomy.cdmLibrary"/>\r
- <plugin id="eu.etaxonomy.taxeditor.application"/>\r
- <plugin id="eu.etaxonomy.taxeditor.editor"/>\r
- <plugin id="eu.etaxonomy.taxeditor.navigation"/>\r
- <plugin id="eu.etaxonomy.taxeditor.store"/>\r
- <plugin id="org.eclipse.core.commands"/>\r
- <plugin id="org.eclipse.core.contenttype"/>\r
- <plugin id="org.eclipse.core.databinding"/>\r
- <plugin id="org.eclipse.core.databinding.beans"/>\r
- <plugin id="org.eclipse.core.expressions"/>\r
- <plugin id="org.eclipse.core.filebuffers"/>\r
- <plugin id="org.eclipse.core.filesystem"/>\r
- <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>\r
- <plugin id="org.eclipse.core.jobs"/>\r
- <plugin id="org.eclipse.core.resources"/>\r
- <plugin id="org.eclipse.core.resources.compatibility" fragment="true"/>\r
- <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>\r
- <plugin id="org.eclipse.core.runtime"/>\r
- <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>\r
- <plugin id="org.eclipse.equinox.app"/>\r
- <plugin id="org.eclipse.equinox.common"/>\r
- <plugin id="org.eclipse.equinox.preferences"/>\r
- <plugin id="org.eclipse.equinox.registry"/>\r
- <plugin id="org.eclipse.help"/>\r
- <plugin id="org.eclipse.jface"/>\r
- <plugin id="org.eclipse.jface.databinding"/>\r
- <plugin id="org.eclipse.jface.text"/>\r
- <plugin id="org.eclipse.osgi"/>\r
- <plugin id="org.eclipse.pde.source"/>\r
- <plugin id="org.eclipse.swt"/>\r
- <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>\r
- <plugin id="org.eclipse.text"/>\r
- <plugin id="org.eclipse.ui"/>\r
- <plugin id="org.eclipse.ui.editors"/>\r
- <plugin id="org.eclipse.ui.forms"/>\r
- <plugin id="org.eclipse.ui.ide"/>\r
- <plugin id="org.eclipse.ui.navigator"/>\r
- <plugin id="org.eclipse.ui.navigator.resources"/>\r
- <plugin id="org.eclipse.ui.views"/>\r
- <plugin id="org.eclipse.ui.views.properties.tabbed"/>\r
- <plugin id="org.eclipse.ui.win32" fragment="true"/>\r
- <plugin id="org.eclipse.ui.workbench"/>\r
- <plugin id="org.eclipse.ui.workbench.texteditor"/>\r
- <plugin id="org.junit4"/>\r
- </plugins>\r
-\r
- <features>\r
- <feature id="eu.etaxonomy.taxeditor" version="2.0.0.v20090610_1523"/>\r
- </features>\r
-\r
-</product>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.4"?>
+
+<product name="%productName" id="eu.etaxonomy.taxeditor.application.TaxonomicEditor" application="eu.etaxonomy.taxeditor.application.application" version="2.0.0" useFeatures="true">
+
+ <aboutInfo>
+ <text>
+ %productBlurb
+ </text>
+ </aboutInfo>
+
+ <configIni use="default">
+ </configIni>
+
+ <launcherArgs>
+ <vmArgs>-Xmx256M</vmArgs>
+ <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
+ </launcherArgs>
+
+ <windowImages i16="/taxeditor-application/icons/256color_16x16.gif" i32="/taxeditor-application/icons/256color_32x32.gif" i48="/taxeditor-application/icons/256color_48x48.gif"/>
+
+ <splash
+ startupProgressRect="5,447,366,15"
+ startupMessageRect="7,432,360,20"
+ startupForegroundColor="000000" />
+ <launcher name="TaxonomicEditor">
+ <solaris/>
+ <win useIco="false">
+ <bmp/>
+ </win>
+ </launcher>
+
+
+ <vm>
+ </vm>
+
+ <plugins>
+ <plugin id="com.ibm.icu"/>
+ <plugin id="eu.etaxonomy.cdmLibrary"/>
+ <plugin id="eu.etaxonomy.taxeditor.application"/>
+ <plugin id="eu.etaxonomy.taxeditor.editor"/>
+ <plugin id="eu.etaxonomy.taxeditor.navigation"/>
+ <plugin id="eu.etaxonomy.taxeditor.store"/>
+ <plugin id="org.eclipse.core.commands"/>
+ <plugin id="org.eclipse.core.contenttype"/>
+ <plugin id="org.eclipse.core.databinding"/>
+ <plugin id="org.eclipse.core.databinding.beans"/>
+ <plugin id="org.eclipse.core.expressions"/>
+ <plugin id="org.eclipse.core.filebuffers"/>
+ <plugin id="org.eclipse.core.filesystem"/>
+ <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
+ <plugin id="org.eclipse.core.jobs"/>
+ <plugin id="org.eclipse.core.resources"/>
+ <plugin id="org.eclipse.core.resources.compatibility" fragment="true"/>
+ <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>
+ <plugin id="org.eclipse.core.runtime"/>
+ <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
+ <plugin id="org.eclipse.equinox.app"/>
+ <plugin id="org.eclipse.equinox.common"/>
+ <plugin id="org.eclipse.equinox.preferences"/>
+ <plugin id="org.eclipse.equinox.registry"/>
+ <plugin id="org.eclipse.help"/>
+ <plugin id="org.eclipse.jface"/>
+ <plugin id="org.eclipse.jface.databinding"/>
+ <plugin id="org.eclipse.jface.text"/>
+ <plugin id="org.eclipse.osgi"/>
+ <plugin id="org.eclipse.pde.source"/>
+ <plugin id="org.eclipse.swt"/>
+ <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
+ <plugin id="org.eclipse.text"/>
+ <plugin id="org.eclipse.ui"/>
+ <plugin id="org.eclipse.ui.editors"/>
+ <plugin id="org.eclipse.ui.forms"/>
+ <plugin id="org.eclipse.ui.ide"/>
+ <plugin id="org.eclipse.ui.navigator"/>
+ <plugin id="org.eclipse.ui.navigator.resources"/>
+ <plugin id="org.eclipse.ui.views"/>
+ <plugin id="org.eclipse.ui.views.properties.tabbed"/>
+ <plugin id="org.eclipse.ui.win32" fragment="true"/>
+ <plugin id="org.eclipse.ui.workbench"/>
+ <plugin id="org.eclipse.ui.workbench.texteditor"/>
+ <plugin id="org.junit4"/>
+ </plugins>
+
+ <features>
+ <feature id="eu.etaxonomy.taxeditor" version="2.0.0.v20090610_1523"/>
+ </features>
+
+</product>
* @return The EditorPart.\r
* @throws PartInitException \r
*/\r
- public static IEditorPart openEmpty(UUID parentTaxonNodeUuid) throws PartInitException{\r
- TaxonEditorInput input = TaxonEditorInput.NewEmptyInstance(parentTaxonNodeUuid);\r
+ public static IEditorPart openEmpty(UUID parentNodeUuid) throws PartInitException{\r
+ TaxonEditorInput input = TaxonEditorInput.NewEmptyInstance(parentNodeUuid);\r
return open(input, MultiPageTaxonEditor.ID);\r
}\r
\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
return new TaxonEditorInput(taxonNode, conversation);
}
- public static TaxonEditorInput NewEmptyInstance(UUID parentTaxonNodeUuid){
+ public static TaxonEditorInput NewEmptyInstance(UUID parentNodeUuid){
ConversationHolder conversation = CdmStore.NewTransactionalConversation();
TaxonNameBase<?, ?> name = PreferencesUtil.getInstanceOfPreferredNameClass();
+ TaxonNode parentTaxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(parentNodeUuid);
+
Taxon newTaxon = null;
TaxonNode newTaxonNode = null;
- // FIXME adding of root taxon nodes disabled for now. Still have to find a way to
- // which taxonomic tree the node shoul dbe added
-// if(parentTaxonNodeUuid == null){
-// newTaxon = Taxon.NewInstance(name, CdmStore.getDefault().getDefaultSec());
-// newTaxonNode = new TaxonNode();
-// }else{
- TaxonNode parentTaxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(parentTaxonNodeUuid);
-
+ if(parentTaxonNode == null){
+ // parentNodeUUid might be a taxonomic tree
+ // FIXME this is not very elegant, please refactor
+ // add new taxon as root node
+ TaxonomicTree tree = CdmStore.getTaxonService().getTaxonomicTreeByUuid(parentNodeUuid);
+
+ newTaxon = Taxon.NewInstance(name, CdmStore.getDefault().getDefaultSec());
+ newTaxonNode = tree.addRoot(newTaxon, null);
+ }else{
+ // add new taxon as child of another taxon
newTaxon = Taxon.NewInstance(name, parentTaxonNode.getTaxon().getSec());
-
newTaxonNode = parentTaxonNode.addChild(newTaxon, parentTaxonNode.getReferenceForParentChildRelation(), parentTaxonNode.getMicroReferenceForParentChildRelation());
-// }
+ }
// add the new taxon to the editors persistence context
CdmStore.getTaxonService().saveTaxonNode(newTaxonNode);
import org.eclipse.ui.IElementFactory;\r
import org.eclipse.ui.IMemento;\r
\r
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;\r
+import eu.etaxonomy.taxeditor.model.TaxonUtil;\r
import eu.etaxonomy.taxeditor.store.CdmStore;\r
import eu.etaxonomy.taxeditor.store.StoreUtil;\r
\r
public void mouseUp(MouseEvent event) {
if(event.widget == showMapButton){
- DistributionMapDialog dialog = new DistributionMapDialog(editor, this.getShell(), distributions);
+ DistributionMapDialog dialog = new DistributionMapDialog(editor, this.getShell());
dialog.open();
}
import java.awt.Color;
import java.util.Map;
-import java.util.Set;
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.widgets.Shell;
import eu.etaxonomy.cdm.ext.EditGeoService;
-import eu.etaxonomy.cdm.model.description.Distribution;
+import eu.etaxonomy.cdm.ext.IEditGeoService;
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
import eu.etaxonomy.taxeditor.editor.AbstractTaxonEditor;
*/
public class DistributionMapDialog extends Dialog {
- private Set<Distribution> distributions;
-
+ private IEditGeoService geoService;
+
private AbstractTaxonEditor editor;
private Browser browser;
public DistributionMapDialog(Shell parent, int style) {
super(parent, style);
this.setText("Map Viewer");
+ geoService = new EditGeoService();
}
/**
* @param parent
*/
- public DistributionMapDialog(AbstractTaxonEditor editor, Shell parent, Set<Distribution> distributions) {
+ public DistributionMapDialog(AbstractTaxonEditor editor, Shell parent) {
this(parent, 0);
this.editor = editor;
- this.distributions = distributions;
}
public Object open () {
String bbox = "-180,-90,180,90";
String backLayer = null;
- String parameter = EditGeoService.getEditGeoServiceUrlParameterString(
- distributions,
+ String parameter = geoService.getEditGeoServiceUrlParameterString(
+ editor.getTaxon(),
presenceAbsenceTermColors,
width,
height,
commandId="eu.etaxonomy.taxeditor.navigation.command.editTaxon"
label="Edit"
style="push">
+ <visibleWhen>
+ <reference
+ definitionId="isTaxonNode">
+ </reference>
+ </visibleWhen>
</command>
<command
commandId="eu.etaxonomy.taxeditor.navigation.command.moveTaxon"
label="Move Taxon"
style="push">
+ <visibleWhen>
+ <reference
+ definitionId="isTaxonNode">
+ </reference>
+ </visibleWhen>
</command>
<separator
- name="taxeditor-navigation.separator1">
+ name="taxeditor-navigation.separator1"
+ visible="true">
</separator>
<command
commandId="eu.etaxonomy.taxeditor.navigation.command.createChildTaxon"
style="push">
</command>
<separator
- name="separator1"
+ name="eu.etaxonomy.taxeditor.treemenu.separator2"
visible="true">
</separator>
<command
<extension
point="org.eclipse.ui.navigator.navigatorContent">
<navigatorContent
- contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorTaxonomicTreeContentProvider"
+ contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.TaxonomicTreeContentProvider"
id="eu.etaxonomy.taxeditor.navigation.taxonomictreecontent"
- labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorTaxonomicTreeLabelProvider"
+ labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.TaxonomicTreeLabelProvider"
name="Taxonomic Tree">
<triggerPoints>
<instanceof
- value="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorRoot">
+ value="eu.etaxonomy.taxeditor.navigation.navigator.Root">
</instanceof>
</triggerPoints>
<possibleChildren>
</possibleChildren>
</navigatorContent>
<navigatorContent
- contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorTaxonContentProvider"
+ contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodeContentProvider"
id="eu.etaxonomy.taxeditor.navigation.taxoncontent"
- labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorTaxonLabelProvider"
+ labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodeLabelProvider"
name="Taxon Node">
<triggerPoints>
<instanceof value="eu.etaxonomy.cdm.model.taxon.TaxonNode"/>
class="eu.etaxonomy.taxeditor.navigation.navigator.TaxonDropAdapterAssistant"
id="eu.etaxonomy.taxeditor.navigation.navigator.dropassistant">
<possibleDropTargets>
- <instanceof
- value="eu.etaxonomy.cdm.model.taxon.TaxonNode">
- </instanceof>
+ <or>
+ <instanceof
+ value="eu.etaxonomy.cdm.model.taxon.TaxonNode">
+ </instanceof>
+ <instanceof
+ value="eu.etaxonomy.cdm.model.taxon.TaxonomicTree">
+ </instanceof>
+ </or>
</possibleDropTargets>
</dropAssistant>
<possibleChildren>
</actionProvider>
</navigatorContent>
<navigatorContent
- contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorSynonymContentProvider"
+ contentProvider="eu.etaxonomy.taxeditor.navigation.navigator.SynonymContentProvider"
id="eu.etaxonomy.taxeditor.navigation.synonymcontent"
- labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorSynonymLabelProvider"
+ labelProvider="eu.etaxonomy.taxeditor.navigation.navigator.SynonymLabelProvider"
name="Synonyms"
priority="highest">
<triggerPoints>
<and>
<instanceof
- value="eu.etaxonomy.cdm.model.taxon.Taxon">
+ value="eu.etaxonomy.cdm.model.taxon.TaxonNode">
</instanceof>
<test
forcePluginActivation="true"
<extension
point="org.eclipse.core.expressions.propertyTesters">
<propertyTester
- class="eu.etaxonomy.taxeditor.navigation.navigator.NavigatorPropertyTester"
+ class="eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodePropertyTester"
id="eu.etaxonomy.taxeditor.propertytests.navigatorPropertyTester"
namespace="eu.etaxonomy.taxeditor.propertytests"
properties="hasSynonyms"
- type="eu.etaxonomy.cdm.model.taxon.Taxon">
+ type="eu.etaxonomy.cdm.model.taxon.TaxonNode">
</propertyTester>
</extension>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <category
+ id="eu.etaxonomy.taxeditor.new.category.cdm"
+ name="CDM">
+ </category>
+ <primaryWizard
+ id="org.eclipse.ui.wizards.new.file">
+ </primaryWizard>
+ <wizard
+ category="eu.etaxonomy.taxeditor.new.category.cdm"
+ class="eu.etaxonomy.taxeditor.navigation.handler.NewTaxonomicTreeWizard"
+ id="taxeditor-navigation.wizard1"
+ name="Taxonomic Tree">
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.core.expressions.definitions">
+ <definition
+ id="isTaxonNode">
+ <with
+ variable="activeMenuSelection">
+ <iterate>
+ <instanceof
+ value="eu.etaxonomy.cdm.model.taxon.TaxonNode">
+ </instanceof>
+ </iterate>
+ </with>
+ </definition>
+ <definition
+ id="isTaxonomicTree">
+ <with
+ variable="activeMenuSelection">
+ <iterate>
+ <instanceof
+ value="eu.etaxonomy.cdm.model.taxon.TaxonomicTree">
+ </instanceof>
+ </iterate>
+ </with>
+ </definition>
+ <definition
+ id="isSynonym">
+ <with
+ variable="activeMenuSelection">
+ <iterate>
+ <instanceof
+ value="eu.etaxonomy.cdm.model.taxon.Synonym">
+ </instanceof>
+ </iterate>
+ </with>
+ </definition>
+ </extension>
import org.eclipse.ui.ide.undo.WorkspaceUndoUtil;
import org.eclipse.ui.navigator.CommonViewer;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
getActiveWorkbenchWindow();
}
- public static void openEmpty(TaxonNode parentTaxonNode) {
+ public static void openEmpty(UUID parentNodeUuid) {
try {
- UUID parentTaxonNodeUuid = parentTaxonNode == null ? null : parentTaxonNode.getUuid();
-
- EditorUtil.openEmpty(parentTaxonNodeUuid);
+ EditorUtil.openEmpty(parentNodeUuid);
} catch (PartInitException e) {
logger.error("Error opening the editor", e);
}
* @param event
* @return
*/
- public static TaxonNode getCurrentSelection(ExecutionEvent event){
+ public static CdmBase getCurrentSelection(ExecutionEvent event){
ISelection menuSelection = HandlerUtil.getActiveMenuSelection(event);
// The selection should always be a tree selection since we are in the
// taxonomic tree view. Just in case this will be used in another spot.
if(menuSelection instanceof TreeSelection){
- TaxonNode taxonNode = (TaxonNode) ((TreeSelection) menuSelection).getFirstElement();
- logger.debug("Selected taxon: " + taxonNode);
- return taxonNode;
+ CdmBase cdmBase = (CdmBase) ((TreeSelection) menuSelection).getFirstElement();
+ logger.debug("Selected cdmBase object: " + cdmBase);
+ return cdmBase;
}
return null;
}
* @param parentElement
*/
public static void selectInNavigator(Object element, Object parentElement) {
- TaxonNavigator navigator = (TaxonNavigator) TaxeditorEditorPlugin.getDefault().getWorkbench().
- getActiveWorkbenchWindow().getActivePage().findView(TaxonNavigator.ID);
+ TaxonNavigator navigator = getNavigator();
if (navigator != null) {
CommonViewer viewer = navigator.getCommonViewer();
if (viewer != null) {
" more than one accepted taxon. This case is not handled yet by the software.");
}
}
+
+ /**
+ * @return the TaxonNavigator instance if present
+ */
+ public static TaxonNavigator getNavigator() {
+ return (TaxonNavigator) TaxeditorEditorPlugin.getDefault().getWorkbench().
+ getActiveWorkbenchWindow().getActivePage().findView(TaxonNavigator.ID);
+ }
}
\ No newline at end of file
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
/**
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
public Object execute(ExecutionEvent event) throws ExecutionException {
- TaxonNode parentTaxonNode = NavigationUtil.getCurrentSelection(event);
-
- // Open editor for new taxon
- NavigationUtil.openEmpty(parentTaxonNode);
+ CdmBase selection = NavigationUtil.getCurrentSelection(event);
+
+ // Open editor for new cdmBase object
+ NavigationUtil.openEmpty(selection.getUuid());
return null;
}
import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.core.commands.operations.IUndoableOperation;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
import eu.etaxonomy.taxeditor.operations.DeleteTaxonNodeOperation;
+import eu.etaxonomy.taxeditor.operations.DeleteTaxonomicTreeOperation;
/**
* @author n.hoffmann
.getLogger(DeleteTaxonNodeHandler.class);
public Object execute(ExecutionEvent event) throws ExecutionException {
- // FIXME make operation handle taxon node?
- TaxonNode taxonNode = NavigationUtil.getCurrentSelection(event);
-
- IUndoableOperation operation;
+ CdmBase selection = NavigationUtil.getCurrentSelection(event);
+
+ IUndoableOperation operation = null;
try {
- operation = new DeleteTaxonNodeOperation(event.getCommand().getName(),
- NavigationUtil.getUndoContext(), taxonNode);
+ if(selection instanceof TaxonomicTree){
+ operation = new DeleteTaxonomicTreeOperation(event.getCommand().getName(),
+ NavigationUtil.getUndoContext(), (TaxonomicTree) selection);
+ }else if(selection instanceof TaxonNode){
+ operation = new DeleteTaxonNodeOperation(event.getCommand().getName(),
+ NavigationUtil.getUndoContext(), (TaxonNode) selection);
+ }
NavigationUtil.executeOperation(operation);
} catch (NotDefinedException e) {
logger.warn("Command name not set");
*/
public Object execute(ExecutionEvent event) throws ExecutionException {
Shell shell = NavigationUtil.getShell();
- TaxonNode taxonNode = NavigationUtil.getCurrentSelection(event);
+ TaxonNode taxonNode = (TaxonNode) NavigationUtil.getCurrentSelection(event);
Dialog dialog = new TaxonSearchDialog(shell);
Object value = ((TaxonSearchDialog) dialog).open();
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.navigation.handler;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * @author n.hoffmann
+ * @created 23.06.2009
+ * @version 1.0
+ */
+public class NewTaxonomicTreeWizadPage extends WizardPage {
+ private static final Logger logger = Logger
+ .getLogger(NewTaxonomicTreeWizadPage.class);
+
+ private Text text_treeLabel;
+
+ /**
+ * @param pageName
+ */
+ protected NewTaxonomicTreeWizadPage(String pageName) {
+ super(pageName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ public void createControl(Composite parent) {
+
+
+ Composite composite = new Composite(parent, SWT.NONE);
+ GridLayout gridLayout = new GridLayout();
+ gridLayout.numColumns = 2;
+ composite.setLayout(gridLayout);
+
+ CLabel label_treeLabel = new CLabel(composite, SWT.NULL);
+ label_treeLabel.setText("Label:");
+
+ text_treeLabel = new Text(composite, SWT.BORDER);
+ text_treeLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+
+ // FIXME this is a rudimentary implementation. Add missing fields.
+
+ setControl(composite);
+ }
+
+ /**
+ * @return the text_treeLabel
+ */
+ public String getTreeLabel() {
+ return text_treeLabel.getText();
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.navigation.handler;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.core.commands.operations.AbstractOperation;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
+import eu.etaxonomy.taxeditor.operations.CreateTaxonomicTreeOperation;
+
+/**
+ * @author n.hoffmann
+ * @created 23.06.2009
+ * @version 1.0
+ */
+public class NewTaxonomicTreeWizard extends Wizard implements INewWizard {
+ private static final Logger logger = Logger
+ .getLogger(NewTaxonomicTreeWizard.class);
+
+ public static final String NEW_TAXONOMIC_TREE = "NEW_TAXONOMIC_TREE";
+
+ private NewTaxonomicTreeWizadPage page;
+
+ /**
+ *
+ */
+ public NewTaxonomicTreeWizard() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#addPages()
+ */
+ @Override
+ public void addPages() {
+ super.addPages();
+
+ page = new NewTaxonomicTreeWizadPage(NEW_TAXONOMIC_TREE);
+
+ addPage(page);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#performFinish()
+ */
+ @Override
+ public boolean performFinish() {
+
+ AbstractOperation operation = new CreateTaxonomicTreeOperation("Create Taxonomic Tree",
+ NavigationUtil.getUndoContext(), page.getTreeLabel());
+ NavigationUtil.executeOperation(operation);
+
+ NavigationUtil.getNavigator().getCommonViewer().refresh();
+
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ // TODO Auto-generated method stub
+
+ }
+}
package eu.etaxonomy.taxeditor.navigation.handler;
+import java.util.UUID;
+
import org.apache.log4j.Logger;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
private static final Logger logger = Logger
.getLogger(QuickCreateChildTaxonHandler.class);
- private TaxonNode parentTaxonNode;
+ private UUID parentNodeUuid;
/* (non-Javadoc)
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
public Object execute(ExecutionEvent event) throws ExecutionException {
Shell shell = HandlerUtil.getActiveShell(event);
- parentTaxonNode = NavigationUtil.getCurrentSelection(event);
- if(NavigationUtil.isDirty(parentTaxonNode)){
+ CdmBase selection = NavigationUtil.getCurrentSelection(event);
+
+
+ if((selection instanceof TaxonNode) && NavigationUtil.isDirty((TaxonNode) selection)){
MessageDialog.openWarning(shell, "Unsaved Parent Taxon", "There are unsaved " +
- "changes in the parent taxon. Pleas save first.");
+ "changes in the parent taxon. Please save first.");
return null;
}
+ parentNodeUuid = selection.getUuid();
+
InputDialog dialog = new InputDialog(shell, "Quick create child taxon",
"Enter child taxon's name to create a new taxon", null, null);
if (dialog.open() == Window.OK) {
CreateChildTaxonOperation operation;
try {
operation = new CreateChildTaxonOperation(event.getCommand().getName(),
- NavigationUtil.getUndoContext(), parentTaxonNode, name, this);
+ NavigationUtil.getUndoContext(), parentNodeUuid, name, this);
IStatus status = EditorUtil.executeOperation(operation);
if(status.getCode() == TaxeditorStorePlugin.ERROR_SAVING_ZERO_NAME){
MessageDialog.openWarning(shell, "No Name Specified", "An attempt was made to save a taxon with" +
}
public boolean postOperation(CdmBase objectAffectedByOperation) {
- NavigationUtil.selectInNavigator(objectAffectedByOperation, parentTaxonNode);
+ NavigationUtil.selectInNavigator(objectAffectedByOperation, parentNodeUuid);
return true;
}
}
* @created 02.06.2009\r
* @version 1.0\r
*/\r
-public class NavigatorRoot extends PlatformObject implements IAdaptable, IPersistableElement, IElementFactory {\r
+public class Root extends PlatformObject implements IAdaptable, IPersistableElement, IElementFactory {\r
\r
- private static final Logger logger = Logger.getLogger(NavigatorRoot.class);\r
+ private static final Logger logger = Logger.getLogger(Root.class);\r
\r
public List<TaxonomicTree> getParentBeans() {\r
List<TaxonomicTree> trees = CdmStore.getDefault().getTaxonomicTrees();\r
* @created 02.06.2009\r
* @version 1.0\r
*/\r
-public class NavigatorSynonymContentProvider implements ITreeContentProvider {\r
+public class SynonymContentProvider implements ITreeContentProvider {\r
private static final Logger logger = Logger\r
- .getLogger(NavigatorSynonymContentProvider.class);\r
+ .getLogger(SynonymContentProvider.class);\r
\r
private static final Object[] NO_CHILDREN = new Object[0];\r
\r
* @created 04.06.2009\r
* @version 1.0\r
*/\r
-public class NavigatorSynonymLabelProvider extends ColumnLabelProvider \r
+public class SynonymLabelProvider extends ColumnLabelProvider \r
implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {\r
private static final Logger logger = Logger\r
- .getLogger(NavigatorSynonymLabelProvider.class);\r
+ .getLogger(SynonymLabelProvider.class);\r
\r
public Image getImage(Object element) {\r
return null;\r
conversation = CdmStore.NewTransactionalConversation();\r
conversation.registerForDataStoreChanges(this);\r
this.getCommonViewer().refresh();\r
- return new NavigatorRoot();\r
+ return new Root();\r
}\r
\r
public void init(IViewSite site, IMemento memento)\r
}\r
\r
protected String getFrameToolTipText(Object element) {\r
- if (element instanceof NavigatorRoot) {\r
+ if (element instanceof Root) {\r
return "Taxonomic Tree";\r
}\r
return super.getFrameToolTipText(element);\r
* @created 02.06.2009\r
* @version 1.0\r
*/\r
-public class NavigatorTaxonContentProvider implements ITreeContentProvider {\r
+public class TaxonNodeContentProvider implements ITreeContentProvider {\r
private static final Logger logger = Logger\r
- .getLogger(NavigatorTaxonContentProvider.class);\r
+ .getLogger(TaxonNodeContentProvider.class);\r
\r
public Object[] getChildren(Object parentElement) {\r
\r
}\r
\r
public Object getParent(Object element) {\r
-// if(element instanceof TaxonNode){\r
-// return ((TaxonNode) element).getParent();\r
-// } \r
+ if(element instanceof TaxonNode){\r
+ return ((TaxonNode) element).getParent();\r
+ } \r
return null;\r
}\r
\r
public boolean hasChildren(Object element) {\r
- return this.getChildren(element).length > 0;\r
+ \r
+ boolean length = this.getChildren(element).length > 0;\r
+ \r
+ return length;\r
}\r
\r
public Object[] getElements(Object inputElement) {\r
* @created 04.06.2009\r
* @version 1.0\r
*/\r
-public class NavigatorTaxonLabelProvider extends ColumnLabelProvider \r
+public class TaxonNodeLabelProvider extends ColumnLabelProvider \r
implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {\r
private static final Logger logger = Logger\r
- .getLogger(NavigatorTaxonLabelProvider.class);\r
+ .getLogger(TaxonNodeLabelProvider.class);\r
\r
public Image getImage(Object element) {\r
return null;\r
import org.eclipse.core.expressions.PropertyTester;\r
\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
\r
-public class NavigatorPropertyTester extends PropertyTester {\r
+public class TaxonNodePropertyTester extends PropertyTester {\r
\r
private static final Object HAS_SYNONYMS = "hasSynonyms";\r
-\r
+ \r
public boolean test(Object receiver, String property, Object[] args,\r
Object expectedValue) {\r
- if (receiver instanceof Taxon && HAS_SYNONYMS.equals(property)) {\r
- return ((Taxon) receiver).hasSynonyms();\r
+ if (receiver instanceof TaxonNode && HAS_SYNONYMS.equals(property)) {\r
+ Taxon taxon = ((TaxonNode) receiver).getTaxon();\r
+ return taxon.hasSynonyms();\r
}\r
+ \r
return false;\r
}\r
}\r
* @created 17.06.2009
* @version 1.0
*/
-public class NavigatorTaxonomicTreeContentProvider implements ITreeContentProvider {
+public class TaxonomicTreeContentProvider implements ITreeContentProvider {
private static final Logger logger = Logger
- .getLogger(NavigatorTaxonomicTreeContentProvider.class);
+ .getLogger(TaxonomicTreeContentProvider.class);
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
*/
public Object[] getChildren(Object parentElement) {
- if (parentElement instanceof NavigatorRoot) {
- return ((NavigatorRoot) parentElement).getParentBeans().toArray();
+ if (parentElement instanceof Root) {
+ return ((Root) parentElement).getParentBeans().toArray();
}
if(parentElement instanceof TaxonomicTree) {
* @created 17.06.2009
* @version 1.0
*/
-public class NavigatorTaxonomicTreeLabelProvider extends ColumnLabelProvider
+public class TaxonomicTreeLabelProvider extends ColumnLabelProvider
implements ILabelProvider, IDescriptionProvider, IStyledLabelProvider {
private static final Logger logger = Logger
- .getLogger(NavigatorTaxonomicTreeLabelProvider.class);
+ .getLogger(TaxonomicTreeLabelProvider.class);
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ColumnLabelProvider#getImage(java.lang.Object)
class="selection.Selection1">
</selection>
</wizard>
+ <wizard
+ category="eu.etaxonomy.taxeditor.import.category.cdm"
+ class="eu.etaxonomy.taxeditor.io.BerlinModelExportWizard"
+ id="eu.etaxonomy.taxeditor.io.export.berlinModel"
+ name="Berlin Model">
+ </wizard>
<category
id="eu.etaxonomy.taxeditor.export.category.excel"
name="Excel">
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.io;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.IExportWizard;
+import org.eclipse.ui.IWorkbench;
+
+/**
+ * @author n.hoffmann
+ * @created 23.06.2009
+ * @version 1.0
+ */
+public class BerlinModelExportWizard extends Wizard implements IExportWizard {
+ private static final Logger logger = Logger
+ .getLogger(BerlinModelExportWizard.class);
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#performFinish()
+ */
+ @Override
+ public boolean performFinish() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ // TODO Auto-generated method stub
+
+ }
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.io;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * @author n.hoffmann
+ * @created 23.06.2009
+ * @version 1.0
+ */
+public class BerlinModelExportWizardPage extends WizardPage {
+
+
+ private static final Logger logger = Logger
+ .getLogger(BerlinModelExportWizardPage.class);
+
+ /**
+ * @param pageName
+ */
+ protected BerlinModelExportWizardPage(String pageName) {
+ super(pageName);
+ this.setTitle("Berlin Model Export");
+
+ this.setDescription("Exports the contents of the currently selected database into a Berlin Model database");
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+ */
+ public void createControl(Composite parent) {
+ // TODO Auto-generated method stub
+
+ }
+}
import org.eclipse.ui.IWorkbench;
import eu.etaxonomy.cdm.io.common.CdmDefaultExport;
-import eu.etaxonomy.cdm.io.common.ICdmExport;
+import eu.etaxonomy.cdm.io.common.ICdmExporter;
import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @author n.hoffmann
public final String JAXB_EXPORT = "JAXB_EXPORT";
- private ICdmExport<JaxbExportConfigurator> export;
+ private ICdmExporter export;
private JaxbExportWizardPage page;
@Override
public boolean performFinish() {
- export = new CdmDefaultExport<JaxbExportConfigurator>();
+ export = new CdmDefaultExport();
String url = page.getFolderText() + File.pathSeparator + page.getExportFileName();
exportConfigurator = JaxbExportConfigurator.NewInstance(CdmDataSourceRepository.getDefault().getCurrentDataSource(), url);
+ exportConfigurator.setCdmAppController(CdmStore.getApplicationController());
Job exportJob = new Job("JAXB Export"){
+++ /dev/null
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.taxeditor.model;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.UUID;
-
-import org.apache.log4j.Logger;
-
-import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.reference.ReferenceBase;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
-import eu.etaxonomy.taxeditor.store.CdmStore;
-
-/**
- * @author n.hoffmann
- * @created 25.03.2009
- * @version 1.0
- */
-public class TaxonNodeUtil {
- private static final Logger logger = Logger
- .getLogger(TaxonNodeUtil.class);
-
- /**
- *
- * @param taxonNodeUuid
- * @return
- */
- public static boolean deleteTaxonNodeIsolated(UUID taxonNodeUuid){
- // get a new conversation
- ConversationHolder conversation = CdmStore.NewTransactionalConversation();
-
- TaxonNode taxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(taxonNodeUuid);
-
- boolean result = taxonNode.remove();
-
- // commit the conversation and throw it away
- conversation.commit(true);
- return result;
- }
-
- public static TaxonNode addChildTaxonBaseIsolated(UUID taxonNodeUuid, TaxonNameBase<?, ?> newTaxonName){
- // disallow saving of zero length names
- if(newTaxonName.getFullTitleCache().length() == 0){
- return null;
- }
-
- // get a new conversation
- ConversationHolder conversation = CdmStore.NewTransactionalConversation();
- // find the taxonBase
- TaxonNode parentTaxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(taxonNodeUuid);
- // logic to add new taxon name
- Taxon childTaxon = Taxon.NewInstance(newTaxonName, parentTaxonNode.getTaxon().getSec());
- TaxonNode childTaxonNode = parentTaxonNode.addChild(childTaxon);
- //not needed here: CdmStore.getTaxonService().save(parentTaxon);
- // commit the conversation and throw it away
- conversation.commit(true);
- return childTaxonNode;
- }
-
- /**
- *
- * @param taxonNodeUuid
- * @param newParentTaxonNodeUuid
- * @return
- */
- public static TaxonNode moveTaxonBaseIsolated(UUID taxonNodeUuid, UUID newParentTaxonNodeUuid){
-
- // get a new conversation
- ConversationHolder conversation = CdmStore.NewTransactionalConversation();
- // find the taxon node
- TaxonNode taxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(taxonNodeUuid);
- // store all relevant information of taxon node and delete the taxon node.
- Taxon taxon = taxonNode.getTaxon();
- ReferenceBase parentChildReference = taxonNode.getReferenceForParentChildRelation();
- String parentChildMicroReference = taxonNode.getMicroReferenceForParentChildRelation();
- Synonym synonymUsed = taxonNode.getSynonymToBeUsed();
-
- taxonNode.remove();
-
- TaxonNode newParentTaxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(newParentTaxonNodeUuid);
- TaxonNode newChild = newParentTaxonNode.addChild(taxon, parentChildReference, parentChildMicroReference, synonymUsed);
- // commit the conversation
- conversation.commit(true);
- return newChild;
- }
-
- /**
- * TODO this method should be in cdm library
- *
- * Example:
- * TaxonA(fromTaxon) isOverlapping TaxonB(toTaxon)
- *
- * @param fromTaxon
- * @param toTaxon
- * @return
- * @deprecated TODO this method should be in the library
- */
- public static TaxonRelationship getRelationshipBetweenTwoTaxa(Taxon fromTaxon, Taxon toTaxon){
- Set<TaxonRelationship> relations = new HashSet<TaxonRelationship>();
-
- for(TaxonRelationship relation : fromTaxon.getRelationsFromThisTaxon()){
- if(relation.getToTaxon().equals(toTaxon)){
- relations.add(relation);
- }
- }
-
- if(relations.size() > 1){
- logger.warn("Found multiple relations between two taxa. Does this make sense?");
- }
-
- if(relations.size() == 0){
- logger.warn("No relations between the two given taxa");
- new Throwable("No relations between the two given taxa");
- }
-
- return relations.toArray(new TaxonRelationship[0])[0];
- }
-}
--- /dev/null
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.model;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
+
+/**
+ * @author n.hoffmann
+ * @created 25.03.2009
+ * @version 1.0
+ */
+public class TaxonUtil {
+ private static final Logger logger = Logger
+ .getLogger(TaxonUtil.class);
+
+
+ /**
+ * TODO this method should be in cdm library
+ *
+ * Example:
+ * TaxonA(fromTaxon) isOverlapping TaxonB(toTaxon)
+ *
+ * @param fromTaxon
+ * @param toTaxon
+ * @return
+ * @deprecated TODO this method should be in the library
+ */
+ public static TaxonRelationship getRelationshipBetweenTwoTaxa(Taxon fromTaxon, Taxon toTaxon){
+ Set<TaxonRelationship> relations = new HashSet<TaxonRelationship>();
+
+ for(TaxonRelationship relation : fromTaxon.getRelationsFromThisTaxon()){
+ if(relation.getToTaxon().equals(toTaxon)){
+ relations.add(relation);
+ }
+ }
+
+ if(relations.size() > 1){
+ logger.warn("Found multiple relations between two taxa. Does this make sense?");
+ }
+
+ if(relations.size() == 0){
+ logger.warn("No relations between the two given taxa");
+ new Throwable("No relations between the two given taxa");
+ }
+
+ return relations.toArray(new TaxonRelationship[0])[0];
+ }
+}
\r
package eu.etaxonomy.taxeditor.operations;\r
\r
+import java.util.UUID;\r
+\r
import org.apache.log4j.Logger;\r
import org.eclipse.core.commands.operations.AbstractOperation;\r
import org.eclipse.core.commands.operations.IUndoContext;\r
*/\r
protected TaxonNode taxonNode;\r
\r
+ protected UUID parentNodeUuid;\r
+\r
/**\r
* \r
* @param label\r
* @param undoContext\r
* @param taxon\r
*/\r
- public AbstractPostOperation(String label, IUndoContext undoContext,\r
- Taxon taxon) {\r
+ private AbstractPostOperation(String label, IUndoContext undoContext) {\r
super(label);\r
addContext(undoContext);\r
+ }\r
+ \r
+ /**\r
+ * \r
+ * @param label\r
+ * @param undoContext\r
+ * @param taxon\r
+ */\r
+ public AbstractPostOperation(String label, IUndoContext undoContext,\r
+ Taxon taxon) {\r
+ this(label, undoContext);\r
\r
this.taxon = taxon;\r
}\r
this.taxonNode = taxonNode;\r
}\r
\r
+ public AbstractPostOperation(String label, IUndoContext undoContext, UUID parentNodeUuid, IPostOperationEnabled postOperationEnabled){\r
+ this(label, undoContext);\r
+ \r
+ this.parentNodeUuid = parentNodeUuid;\r
+ this.postOperationEnabled = postOperationEnabled;\r
+ }\r
+ \r
/**\r
* This method will try to call the post operation on a possibly registered\r
* IPostOperationEnabled implementor. Objects that were affected by the operation \r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;\r
+import eu.etaxonomy.taxeditor.model.TaxonUtil;\r
\r
/**\r
* @author n.hoffmann\r
super(label, undoContext, taxon, postOperationEnabled);\r
this.relatedTaxon = relatedTaxon;\r
\r
- this.taxonRelationship = TaxonNodeUtil.getRelationshipBetweenTwoTaxa(relatedTaxon, taxon);\r
+ this.taxonRelationship = TaxonUtil.getRelationshipBetweenTwoTaxa(relatedTaxon, taxon);\r
this.oldRelationshipType = taxonRelationship.getType();\r
this.newRelationshipType = type;\r
}\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;\r
+import eu.etaxonomy.taxeditor.model.TaxonUtil;\r
\r
/**\r
* @author p.ciardelli\r
IPostOperationEnabled editor) {\r
super(label, undoContext, taxon, editor);\r
\r
- this.taxonRelationship = TaxonNodeUtil.getRelationshipBetweenTwoTaxa(concept, taxon);\r
+ this.taxonRelationship = TaxonUtil.getRelationshipBetweenTwoTaxa(concept, taxon);\r
this.oldRelationshipType = taxonRelationship.getType();\r
\r
this.concept = concept;\r
package eu.etaxonomy.taxeditor.operations;
+import java.util.UUID;
+
import org.apache.log4j.Logger;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.operations.IUndoContext;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
/**
* @param conversationEnabled
*/
public CreateChildTaxonOperation(String label, IUndoContext undoContext,
- TaxonNode taxonNode, TaxonNameBase<?, ?> name, IPostOperationEnabled postOperationEnabled) {
- super(label, undoContext, taxonNode, postOperationEnabled);
+ UUID parentNodeUuid, TaxonNameBase<?, ?> name, IPostOperationEnabled postOperationEnabled) {
+ super(label, undoContext, parentNodeUuid, postOperationEnabled);
this.newTaxonName = name;
}
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
- childTaxonNode = TaxonNodeUtil.addChildTaxonBaseIsolated(taxonNode.getUuid(), newTaxonName);
+ childTaxonNode = addChildTaxonBaseIsolated(parentNodeUuid, newTaxonName);
if(childTaxonNode != null){
return postExecute(childTaxonNode);
logger.warn("Not yet implemented.");
return null;
}
+
+ private TaxonNode addChildTaxonBaseIsolated(UUID parentNodeUuid, TaxonNameBase<?, ?> newTaxonName){
+ // disallow saving of zero length names
+ if(newTaxonName.getFullTitleCache().length() == 0){
+ return null;
+ }
+
+ // get a new conversation
+ ConversationHolder conversation = CdmStore.NewTransactionalConversation();
+ // find the taxonBase
+ TaxonNode parentTaxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(parentNodeUuid);
+
+ Taxon childTaxon;
+ TaxonNode childTaxonNode;
+
+ if(parentTaxonNode == null){
+ // parent seems to of type TaxonomicTree
+ TaxonomicTree tree = CdmStore.getTaxonService().getTaxonomicTreeByUuid(parentNodeUuid);
+ childTaxon = Taxon.NewInstance(newTaxonName, CdmStore.getDefault().getDefaultSec());
+
+ childTaxonNode = tree.addRoot(childTaxon, null);
+ }else{
+ // logic to add new taxon name
+ childTaxon = Taxon.NewInstance(newTaxonName, parentTaxonNode.getTaxon().getSec());
+ childTaxonNode = parentTaxonNode.addChild(childTaxon);
+ }
+ // commit the conversation and throw it away
+ conversation.commit(true);
+ return childTaxonNode;
+ }
}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.operations;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.AbstractOperation;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
+import eu.etaxonomy.taxeditor.model.TaxonUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ * @created 23.06.2009
+ * @version 1.0
+ */
+public class CreateTaxonomicTreeOperation extends AbstractOperation {
+
+ private static final Logger logger = Logger
+ .getLogger(CreateTaxonomicTreeOperation.class);
+ private String treeLabel;
+
+ /**
+ * @param label
+ * @param undoContext
+ */
+ public CreateTaxonomicTreeOperation(String label, IUndoContext undoContext, String treeLabel) {
+ super(label);
+ addContext(undoContext);
+
+ this.treeLabel = treeLabel;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+
+ if(treeLabel.trim().length() == 0){
+ return Status.CANCEL_STATUS;
+ }
+
+ // get a new conversation
+ ConversationHolder conversation = CdmStore.NewTransactionalConversation();
+
+ TaxonomicTree tree = TaxonomicTree.NewInstance(treeLabel);
+
+ CdmStore.getTaxonService().saveTaxonomicTree(tree);
+
+ conversation.commit(true);
+
+ return Status.OK_STATUS;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ @Override
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;\r
+import eu.etaxonomy.taxeditor.model.TaxonUtil;\r
\r
/**\r
* Deletes a relation between two taxa. \r
\r
this.relatedTaxon = relatedTaxon;\r
\r
- relationship = TaxonNodeUtil.getRelationshipBetweenTwoTaxa(relatedTaxon, taxon);\r
+ relationship = TaxonUtil.getRelationshipBetweenTwoTaxa(relatedTaxon, taxon);\r
\r
relationshipType = relationship.getType();\r
\r
\r
package eu.etaxonomy.taxeditor.operations;\r
\r
+import java.util.UUID;\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.jface.dialogs.MessageDialog;\r
import org.eclipse.swt.widgets.Shell;\r
\r
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;\r
+import eu.etaxonomy.taxeditor.model.TaxonUtil;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
\r
/**\r
* Delete a taxon node from its TaxonomicTree and thus from the current taxonomic view.\r
}\r
\r
// delete the taxon in an isolated conversation\r
- TaxonNodeUtil.deleteTaxonNodeIsolated(taxonNode.getUuid());\r
+ deleteTaxonNodeIsolated(taxonNode.getUuid());\r
\r
\r
return postExecute(null);\r
// so that all the mediation magic does the rest for us\r
return postExecute(null);\r
}\r
+ \r
+ /**\r
+ * \r
+ * @param taxonNodeUuid\r
+ * @return\r
+ */\r
+ private boolean deleteTaxonNodeIsolated(UUID taxonNodeUuid){\r
+ // get a new conversation\r
+ ConversationHolder conversation = CdmStore.NewTransactionalConversation();\r
+ \r
+ TaxonNode taxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(taxonNodeUuid);\r
+ \r
+ boolean result = taxonNode.remove();\r
+ \r
+ // commit the conversation and throw it away\r
+ conversation.commit(true);\r
+ return result;\r
+ }\r
}\r
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.operations;
+
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author n.hoffmann
+ * @created 23.06.2009
+ * @version 1.0
+ */
+public class DeleteTaxonomicTreeOperation extends AbstractPostOperation {
+
+ private static final Logger logger = Logger
+ .getLogger(DeleteTaxonomicTreeOperation.class);
+
+ private TaxonomicTree taxonomicTree;
+
+
+ /**
+ * @param label
+ * @param undoContext
+ * @param taxonNode
+ * @param postOperationEnabled
+ */
+ public DeleteTaxonomicTreeOperation(String label, IUndoContext undoContext,
+ TaxonomicTree taxonomicTree) {
+ super(label, undoContext, null);
+
+ this.taxonomicTree = taxonomicTree;
+
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+
+ deleteTaxonomicTreeIsolated(taxonomicTree.getUuid());
+
+ return postExecute(null);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.IUndoableOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.commands.operations.IUndoableOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
+ */
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * @param uuid
+ */
+ private boolean deleteTaxonomicTreeIsolated(UUID uuid) {
+ // get a new conversation
+ ConversationHolder conversation = CdmStore.NewTransactionalConversation();
+
+ TaxonomicTree taxonomicTree = CdmStore.getTaxonService().getTaxonomicTreeByUuid(uuid);
+ CdmStore.getTaxonService().removeTaxonomicTree(taxonomicTree);
+
+ // commit the conversation
+ conversation.commit(true);
+ return true;
+ }
+}
\r
package eu.etaxonomy.taxeditor.operations;\r
\r
+import java.util.UUID;\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.IStatus;\r
import org.eclipse.core.runtime.Status;\r
\r
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
+import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
-import eu.etaxonomy.taxeditor.model.TaxonNodeUtil;\r
+import eu.etaxonomy.taxeditor.model.TaxonUtil;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
\r
/**\r
* Change the taxonomic parent of a given taxon.\r
public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
throws ExecutionException {\r
\r
- TaxonNode newTaxonNode = TaxonNodeUtil.moveTaxonBaseIsolated(taxonNode.getUuid(), newParentTaxonNode.getUuid());\r
+ TaxonNode newTaxonNode = moveTaxonBaseIsolated(taxonNode.getUuid(), newParentTaxonNode.getUuid());\r
\r
return postExecute(newTaxonNode);\r
}\r
public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
throws ExecutionException {\r
\r
- TaxonNodeUtil.moveTaxonBaseIsolated(taxonNode.getUuid(), oldParentTaxonNode.getUuid());\r
+ moveTaxonBaseIsolated(taxonNode.getUuid(), oldParentTaxonNode.getUuid());\r
\r
return Status.OK_STATUS;\r
}\r
+ \r
+ /**\r
+ * \r
+ * @param taxonNodeUuid\r
+ * @param newParentTaxonNodeUuid\r
+ * @return\r
+ */\r
+ private TaxonNode moveTaxonBaseIsolated(UUID taxonNodeUuid, UUID newParentTaxonNodeUuid){\r
+ \r
+ // get a new conversation\r
+ ConversationHolder conversation = CdmStore.NewTransactionalConversation();\r
+ // find the taxon node\r
+ TaxonNode taxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(taxonNodeUuid);\r
+ // store all relevant information of taxon node and delete the taxon node.\r
+ Taxon taxon = taxonNode.getTaxon();\r
+ ReferenceBase parentChildReference = taxonNode.getReferenceForParentChildRelation();\r
+ String parentChildMicroReference = taxonNode.getMicroReferenceForParentChildRelation();\r
+ Synonym synonymUsed = taxonNode.getSynonymToBeUsed();\r
+\r
+ taxonNode.remove();\r
+ \r
+ TaxonNode newParentTaxonNode = CdmStore.getTaxonService().getTaxonNodeByUuid(newParentTaxonNodeUuid);\r
+ TaxonNode newChild = newParentTaxonNode.addChild(taxon, parentChildReference, parentChildMicroReference, synonymUsed);\r
+ // commit the conversation\r
+ conversation.commit(true); \r
+ return newChild;\r
+ }\r
}\r
this.applicationController = applicationController;
}
- public CdmApplicationController getApplicationController(){
+ private CdmApplicationController getApplicationControllerInternal(){
return applicationController;
}
+
+ public static CdmApplicationController getApplicationController(){
+ return getDefault().getApplicationControllerInternal();
+ }
/**
configurator.setDoNamesWithoutTaxa(true);
configurator.setDoSynonyms(true);
}
- configurator.setReferenceBase(null);
+ configurator.setSec(null);
configurator.setPageNumber(0);
// TODO currently limit results to 1000
configurator.setPageSize(1000);