/eu.etaxonomy.taxeditor.webapp/.settings/org.eclipse.m2e.core.prefs
/eu.etaxonomy.taxeditor.webapp/lib/
+eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/cdm/database/schema/dataset.xsd
+eu.etaxonomy.taxeditor.test/src/test/resources/eu/etaxonomy/cdm/database/schema/PUBLIC.xsd
Bundle-ManifestVersion: 2
Bundle-Name: Application
Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
-Bundle-Version: 4.3.0
+Bundle-Version: 4.4.0
Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
Bundle-Vendor: EDIT
Bundle-Localization: OSGI-INF/l10n/plugin
perspective.name.0 = Polytomous Key\r
perspective.name.1 = Uses\r
perspective.name.2 = Derivatives\r
+perspective.name.3 = Checklist\r
menu.label = General\r
menu.label.0 = Edit\r
menu.label.1 = Window\r
menu.label.2 = Help\r
menu.label.3 = New\r
+menu.label.4 = Admin\r
command.label = Close\r
command.label.0 = Close All\r
command.label.1 = Save\r
command.label.20 = About the EDIT Platform\r
command.label.21 = New\r
command.label.22 = Save\r
+command.label.23 = Database Preferences\r
product.name = EDIT Taxonomic Editor\r
command.name = Parser Help\r
command.name.0 = About the EDIT Platform\r
perspective.name.0 = Polytomer Schlüssel
perspective.name.1 = Nutzung
perspective.name.2 = Derivate
+perspective.name.3 = Checklisten
menu.label = Datei
menu.label.0 = Bearbeiten
menu.label.1 = Extras
menu.label.2 = Hilfe
menu.label.3 = Neu
+menu.label.4 = Admin
command.label = Schlie\u00dfen
command.label.0 = Schlie\u00dfe alle
command.label.1 = Speichern
command.label.20 = \u00dcber die EDIT Platform
command.label.21 = Neu
command.label.22 = Speichern
+command.label.23 = Datenbank Präferenzen
product.name = EDIT Taxonomischer Editor
command.name = Parser Hilfe
command.name.0 = \u00dcber die EDIT Platform
class="eu.etaxonomy.taxeditor.perspective.ChecklistPerspective"
icon="icons/check.png"
id="eu.etaxonomy.taxeditor.perspective.checklistperspective"
- name="Checklist">
+ name="%perspective.name.3">
</perspective>
</extension>
id="org.eclipse.ui.main.menu.window"
label="%menu.label.1">
</menu>
+ <menu
+ id="org.eclipse.ui.main.menu.admin"
+ label="%menu.label.4">
+ </menu>
<menu
id="org.eclipse.ui.main.menu.help"
label="%menu.label.2">
</menu>
+
</menuContribution>
<menuContribution
locationURI="menu:org.eclipse.ui.main.menu.file">
</command>
</menuContribution>
<menuContribution
+ allPopups="false"
+ locationURI="menu:org.eclipse.ui.main.menu.admin">
+ <command
+ commandId="eu.etaxonomy.taxeditor.application.DatabaseSettings"
+ label="%command.label.23"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ <and>
+ <reference
+ definitionId="hasROLE_PROJECT_MANAGER">
+ </reference>
+ <reference
+ definitionId="isCdmStoreConnected">
+ </reference>
+ </and>
+ </visibleWhen>
+ </command>
+ </menuContribution>
+ <menuContribution
locationURI="menu:org.eclipse.ui.main.menu.help">
<command
commandId="org.eclipse.ui.help.helpContents"
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.3.0</version>
+ <version>4.4.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
public void postWindowOpen() {
PreferencesUtil.checkNomenclaturalCode();
-
-
if(PreferencesUtil.shouldConnectAtStartUp()) {
CdmStore.connect();
}
import org.eclipse.ui.IPlaceholderFolderLayout;
import org.eclipse.ui.progress.IProgressConstants;
-import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
import eu.etaxonomy.taxeditor.view.datasource.CdmDataSourceViewPart;
layout.addView(DetailsViewPart.ID, IPageLayout.RIGHT, 0.6f, layout.getEditorArea());
- layout.addView(DerivateView.ID, IPageLayout.BOTTOM, 0.5f, layout.getEditorArea());
-
layout.addView(DescriptiveViewPart.ID, IPageLayout.BOTTOM, 0.6f, TaxonNavigator.ID);
- // layout.addView(SupplementalDataViewPart.ID, IPageLayout.BOTTOM, 0.25f, DetailsViewPart.ID);
-
folderAdditional = layout.createPlaceholderFolder(ADDITIONAL, IPageLayout.BOTTOM, 0.6f, TaxonNavigator.ID);
folderAdditional.addPlaceholder(CdmDataSourceViewPart.ID);
Bundle-ManifestVersion: 2
Bundle-Name: Bulkeditor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.bulkeditor;singleton:=true
-Bundle-Version: 4.3.0
+Bundle-Version: 4.4.0
Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.3.0</version>
+ <version>4.4.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
import org.eclipse.ui.texteditor.AbstractDocumentProvider;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
}
if (annotation.isMarkedAsMerged()) {
persistenceService.merge(annotation.getEntity(), annotation.getMergeTarget()); // merge
- } else {
+ } if (annotation.isMarkedAsDeleted()) {
+ try {
+ persistenceService.delete(annotation.getEntity(), annotation.getDeleteConfigurator());
+ } catch (ReferencedObjectUndeletableException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } // merge
+ }
+
+ else {
// TODO clarify w AM whether this needs to be executed on merged objects
//persistenceService.delete(annotation.getEntity()); // delete
}
int length = position.getLength();
Object entity = annotation.getEntity();
- annotation.markAsDeleted();
+ //annotation.markAsDeleted(configurator);
model.removeAnnotation(annotation);
-
+
// Immediately followed by a delimiter?
int annotationEnd = offset + length;
try {
}
try {
+
document.replace(offset, length, "");
+
} catch (BadLocationException e) {
MessagingUtils.error(getClass(), "Problems removing annotated line", e);
}
updateLineFromAnnotation(annotation);
}
}
+
+
}
*/
public void removeAnnotatedLine(LineAnnotation annotation) {
((AnnotatedLineDocumentProvider) getDocumentProvider()).removeAnnotatedLine(annotation);
+
}
/* (non-Javadoc)
package eu.etaxonomy.taxeditor.annotatedlineeditor;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
* @return a boolean.
* @throws ReferencedObjectUndeletableException
*/
- boolean delete(T entity) throws ReferencedObjectUndeletableException;
+ boolean delete(T entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException;
}
import org.apache.log4j.Logger;
import org.eclipse.jface.text.source.Annotation;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
+import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
+
/**
* An <code>Annotation</code> which spans an entire line and holds an object associated
* with the line in an <code>IEntityContainer</code>.
private boolean markedAsMerged;
private boolean markedAsNew;
private T mergeTarget;
+ private DeleteConfiguratorBase configurator= null;
/**
lineDisplayStrategy.setStatusMessage(entity + " deleted.", entity);
}
}
-
+ public void markAsDeleted(DeleteConfiguratorBase config) {
+ super.markDeleted(true);
+ this.configurator = config;
+ if (!isMarkedAsMerged()) {
+ lineDisplayStrategy.setStatusMessage(entity + " deleted.", entity);
+ }
+ }
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#markAsMerged(eu.etaxonomy.cdm.model.common.CdmBase)
*/
public void setEntity(Object entity) {
this.entity = (T) entity;
}
+
+ public DeleteConfiguratorBase getDeleteConfigurator() {
+ return this.configurator;
+ }
+
+ public void setDeleteConfigurator(DeleteConfiguratorBase config) {
+ this.configurator = config;
+
+ }
}
import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;
import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;
import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
+import eu.etaxonomy.taxeditor.bulkeditor.input.OccurrenceEditorInput;
import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonEditorInput;
import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
private boolean isDirty;
private IUndoContext undoContext;
-
+
public BulkEditor() {
super(CdmStore.createConversation());
undoContext = new UndoContext();
searchBar.setFocus();
}
+ /**
+ * @return the searchBar
+ */
+ public BulkEditorSearch getSearchBar() {
+ return searchBar;
+ }
+
private void displayWarningDialog() {
IPreferenceStore prefs = PreferencesUtil.getPreferenceStore();
if (!prefs.getBoolean(IPreferenceKeys.HIDE_BULKEDITOR_INFO)) {
isDirty = true;
firePropertyChange(PROP_DIRTY);
}
-
- @Override
+
+
+ @Override
public void doSave(IProgressMonitor progressMonitor) {
isDirty = false;
return;
}
}
- conversation.clear();
- conversation.commit(true);
+ //conversation.clear();
+ //conversation.commit(true);
getEditorInput().dispose();
getEditorInput().bind();
getEditorInput().performSearch(query);
-
+
refresh();
selectFirstItem();
@Override
public boolean canAttachMedia() {
- return getEditorInput() instanceof TaxonEditorInput?true:false;
+ return (getEditorInput() instanceof TaxonEditorInput || getEditorInput() instanceof OccurrenceEditorInput) ?true:false;
}
public IUndoContext getUndoContext() {
return undoContext;
}
+
+
}
package eu.etaxonomy.taxeditor.bulkeditor.handler;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.text.TextSelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
import eu.etaxonomy.cdm.api.service.DeleteResult;
-import eu.etaxonomy.cdm.api.service.IAgentService;
-import eu.etaxonomy.cdm.api.service.IGroupService;
-import eu.etaxonomy.cdm.api.service.IMediaService;
-import eu.etaxonomy.cdm.api.service.INameService;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.IReferenceService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.api.service.IUserService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
+import eu.etaxonomy.cdm.api.service.config.MediaDeletionConfigurator;
import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.Group;
import eu.etaxonomy.cdm.model.common.User;
import eu.etaxonomy.cdm.model.media.Media;
*/
public class DeleteHandler extends AbstractHandler {
+
+
/* (non-Javadoc)
* @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
- ISelection selection = HandlerUtil.getCurrentSelection(event);
+ TextSelection selection = (TextSelection) HandlerUtil.getCurrentSelection(event);
IEditorPart editor = HandlerUtil.getActiveEditor(event);
IEditorInput input = editor.getEditorInput();
IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-
+ DeleteConfiguratorBase config = null;
IEntityPersistenceService persistenceService = (IEntityPersistenceService) input;
-
-
+ DeleteResult result = new DeleteResult();
+ String errorMessage= "The object ";
for(Object object : structuredSelection.toList()){
+ if (object instanceof CdmBase){
+ CdmBase base = (CdmBase)object;
+ LineAnnotation annotation = (LineAnnotation) model.getAnnotation(object);
+ if (base.getId() != 0){
+
+
+ try {
+ ICdmApplicationConfiguration controller;
+ controller = CdmStore.getCurrentApplicationConfiguration();
+ if (object instanceof SpecimenOrObservationBase){
+ IOccurrenceService service = controller.getOccurrenceService();
+ if (object != null){
+ result = service.isDeletable(((SpecimenOrObservationBase) object).getUuid(), null);
+ errorMessage = "The specimen or observation ";
+
+ }
+ } else if (object instanceof Reference){
+ IReferenceService service = controller.getReferenceService();
+ if (object != null){
+ result = service.isDeletable(((Reference)object).getUuid(), null);
+ errorMessage = "The reference ";
+ }
+
+ } else if (object instanceof Group){
+ errorMessage = "The group ";
+ }else if (object instanceof User){
+ errorMessage = "The user ";
+ } else if (object instanceof TaxonNameBase){
+ TaxonNameBase name = HibernateProxyHelper.deproxy(object, TaxonNameBase.class);
+ if (object != null){
+ config = new NameDeletionConfigurator();
+
+ DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", null, "Do you really want to delete the name?\nThis operation is irreversible!", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
+ int result_dialog= dialog.open();
+ if (result_dialog != Status.OK){
+ return null;
+ }
+ result = controller.getNameService().isDeletable(name.getUuid(), config);
+ errorMessage = "The name ";
+
+ }
+ } else if (object instanceof TaxonBase){
+
+ // synonym
+ if(object instanceof Synonym){
+ Synonym synonym = HibernateProxyHelper.deproxy(object, Synonym.class);
+ config = new SynonymDeletionConfigurator();
+ errorMessage = "The synonym ";
+ DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", null, "Do you really want to delete the synonym?", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
+ int result_dialog= dialog.open();
+ if (result_dialog != Status.OK){
+ return null;
+ }
+ result = controller.getTaxonService().isDeletable(synonym.getUuid(), config);
+
+ }
+ else if(object instanceof Taxon ){
+ Taxon taxon = HibernateProxyHelper.deproxy(object, Taxon.class);
+ if (((Taxon)object).getTaxonNodes().isEmpty()){
+ errorMessage = "The taxon ";
+ } else{
+ MessagingUtils.messageDialog("Delete not possible", getClass(), "The taxon can not be deleted in bulk editor. It is used in a classification.", null);
+ return null;
+ }
+ config = new TaxonDeletionConfigurator();
+ ((TaxonDeletionConfigurator) config).setDeleteInAllClassifications(true);
+ DeleteConfiguratorDialog dialog;
+ dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", null, "Do you really want to delete the taxon?", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
+ int result_dialog= dialog.open();
+ if (result_dialog != Status.OK){
+ return null;
+ }
+ result = controller.getTaxonService().isDeletable(taxon.getUuid(), config);
+
+ }
+ } else if (object instanceof TeamOrPersonBase){
+
+ errorMessage = "The team or person ";
+ } else if (object instanceof Media){
+ config = new MediaDeletionConfigurator();
+ Media media = HibernateProxyHelper.deproxy(object, Media.class);
+ DeleteConfiguratorDialog dialog;
+ dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", null, "Do you really want to delete the media?", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
+ int result_dialog= dialog.open();
+ if (result_dialog != Status.OK){
+ return null;
+ }
+
+ result = controller.getMediaService().isDeletable(media.getUuid(), config);
+ errorMessage = "The media ";
+
+ }
+
+
+ } catch (Exception e){
+ MessagingUtils.errorDialog("Exception occured. Delete not possible", getClass(), e.getMessage(), TaxeditorBulkeditorPlugin.PLUGIN_ID, null, true);
+ }
+ if (result.isError() || result.isAbort()){
+ if (!result.getExceptions().isEmpty()) {
+ List<String> messages = new ArrayList<String>();
+ int i = result.getExceptions().size();
+ for (Exception e:result.getExceptions()){
+ messages.add(e.getMessage());
+ }
+ errorMessage += "could not be deleted.";
+ //MessagingUtils.errorDialog("test", getClass(), "message", TaxeditorBulkeditorPlugin.PLUGIN_ID, result.getExceptions().iterator().next(),true);
+ DeleteResultMessagingUtils.messageDialogWithDetails(result,errorMessage, TaxeditorBulkeditorPlugin.PLUGIN_ID);
+ }else{
+ MessagingUtils.messageDialog("Delete not possible", getClass(), "The object could not be deleted. An exception occured.", null);
+ }
+ }else if (model != null) {
+ Iterator iter = model.getAnnotationIterator(selection.getOffset(), selection.getLength(), true, true);
+ while (iter.hasNext()) {
+ Object next = iter.next();
+ if (next instanceof LineAnnotation) {
+ if (result.isOk()){
+ ((LineAnnotation)next).markAsDeleted(config);
- LineAnnotation annotation = (LineAnnotation) model.getAnnotation(object);
- DeleteResult result = new DeleteResult();
- String errorMessage= "The object ";
- //result.setError();
- try {
- ICdmApplicationConfiguration controller;
- controller = CdmStore.getCurrentApplicationConfiguration();
-
- if (object instanceof SpecimenOrObservationBase){
- IOccurrenceService service = controller.getOccurrenceService();
- if (object != null){
- result = service.delete(((SpecimenOrObservationBase) object).getUuid());
- errorMessage = "The specimen or observation ";
- }
- } else if (object instanceof Reference){
- IReferenceService service = controller.getReferenceService();
- if (object != null){
- result = service.delete(((Reference) object).getUuid());
- errorMessage = "The reference ";
- }
-
- } else if (object instanceof Group){
- IGroupService service = controller.getGroupService();
- if (object != null){
- result = service.delete(((Group) object).getUuid());
- errorMessage = "The group ";
- }
- }else if (object instanceof User){
- IUserService service = controller.getUserService();
- if (object != null){
- result = service.delete(((User) object).getUuid());
- errorMessage = "The user ";
- }
- } else if (object instanceof TaxonNameBase){
- INameService service = controller.getNameService();
- if (object != null){
- NameDeletionConfigurator config = new NameDeletionConfigurator();
-
- DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", null, "Do you really want to delete the name?", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
- int result_dialog= dialog.open();
- if (result_dialog != Status.OK){
- return null;
- }
- result = service.delete(((TaxonNameBase) object).getUuid(), config);
- errorMessage = "The name ";
- }
- } else if (object instanceof TaxonBase){
- ITaxonService service = controller.getTaxonService();
- if (object != null){
- if (object instanceof Taxon){
- TaxonDeletionConfigurator config = new TaxonDeletionConfigurator();
- config.setDeleteInAllClassifications(true);
- DeleteConfiguratorDialog dialog;
- if (((Taxon)object).getTaxonNodes().isEmpty()){
- dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", null, "Do you really want to delete the taxon?", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
- int result_dialog= dialog.open();
- if (result_dialog != Status.OK){
- return null;
- }
- result = service.deleteTaxon(((TaxonBase) object).getUuid(), config, null);
- errorMessage = "The taxon ";
- } else{
- MessagingUtils.messageDialog("Delete not possible", getClass(), "The taxon can not be deleted in bulk editor. It is used in a classification.", null);
- return null;
- }
-
- }else{
- SynonymDeletionConfigurator config = new SynonymDeletionConfigurator();
- DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", null, "Do you really want to delete the synonym?", MessageDialog.WARNING, new String[] { "Delete", "Skip" }, 0);
- int result_dialog= dialog.open();
- if (result_dialog != Status.OK){
- return null;
}
- result = service.deleteSynonym(((Synonym)object).getUuid(), config);
- errorMessage = "The synonym ";
- }
- }
- } else if (object instanceof TeamOrPersonBase){
- IAgentService service = controller.getAgentService();
- //TeamOrPersonBase teamOrPerson = (TeamOrPersonBase)service.load(((TeamOrPersonBase) object).getUuid());
- result = service.delete(((TeamOrPersonBase)object).getUuid());
- errorMessage = "The team or person ";
- } else if (object instanceof Media){
- IMediaService service = controller.getMediaService();
- //TeamOrPersonBase teamOrPerson = (TeamOrPersonBase)service.load(((TeamOrPersonBase) object).getUuid());
- result = service.delete(((Media)object).getUuid(), null);
- errorMessage = "The media ";
+
+ }
+ }
}
- } catch (Exception e){
- MessagingUtils.errorDialog("Exception occured. Delete not possible", getClass(), e.getMessage(), TaxeditorBulkeditorPlugin.PLUGIN_ID, null, true);
- }
- if (result.isError() || result.isAbort()){
- if (!result.getExceptions().isEmpty()) {
- List<String> messages = new ArrayList<String>();
- int i = result.getExceptions().size();
- for (Exception e:result.getExceptions()){
- messages.add(e.getMessage());
- }
- errorMessage += "could not be deleted.";
- //MessagingUtils.errorDialog("test", getClass(), "message", TaxeditorBulkeditorPlugin.PLUGIN_ID, result.getExceptions().iterator().next(),true);
- DeleteResultMessagingUtils.messageDialogWithDetails(result,errorMessage, TaxeditorBulkeditorPlugin.PLUGIN_ID);
- }else{
- MessagingUtils.messageDialog("Delete not possible", getClass(), "The object could not be deleted. An exception occured.", null);
- }
- }
- if (result.isOk() ){
- ((BulkEditor) editor).removeAnnotatedLine(annotation);
- if(result.getUpdatedObjects().size() != 0 || !result.getExceptions().isEmpty()){
- List<String> messages = new ArrayList<String>();
+ }
+ if (result.isOk() ){
+
+ ((BulkEditor) editor).removeAnnotatedLine(annotation);
+
+ if(result.getUpdatedObjects().size() != 0 || !result.getExceptions().isEmpty()){
+ List<String> messages = new ArrayList<String>();
int i = result.getExceptions().size();
for (Exception e:result.getExceptions()){
messages.add(e.getMessage());
}
- errorMessage += "was deleted but related object(s) could not be deleted. ";
- //MessagingUtils.errorDialog("test", getClass(), "message", TaxeditorBulkeditorPlugin.PLUGIN_ID, result.getExceptions().iterator().next(),true);
- DeleteResultMessagingUtils.messageDialogWithDetails(result, errorMessage, TaxeditorBulkeditorPlugin.PLUGIN_ID);
- }
+ errorMessage += "can be deleted but related object(s) could not be deleted. ";
+ //MessagingUtils.errorDialog("test", getClass(), "message", TaxeditorBulkeditorPlugin.PLUGIN_ID, result.getExceptions().iterator().next(),true);
+ DeleteResultMessagingUtils.messageDialogWithDetails(result, errorMessage, TaxeditorBulkeditorPlugin.PLUGIN_ID);
+ }
+
+ }
- }
+ }
}
}
return null;
}
+
}
import java.util.UUID;
import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
}
@Override
- public boolean delete(TeamOrPersonBase entity)
+ public boolean delete(TeamOrPersonBase entity, DeleteConfiguratorBase config)
throws ReferencedObjectUndeletableException {
- // TODO Auto-generated method stub
- return false;
+ return CdmStore.getService(IAgentService.class).delete(entity.getUuid()) != null;
}
/* (non-Javadoc)
import eu.etaxonomy.cdm.api.service.IAgentService;
import eu.etaxonomy.cdm.api.service.IGroupService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
* @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#delete(java.lang.Object)
*/
@Override
- public boolean delete(Group entity) throws ReferencedObjectUndeletableException {
- return CdmStore.getService(IGroupService.class).delete(entity) != null;
+ public boolean delete(Group entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException {
+ return CdmStore.getService(IGroupService.class).delete(entity.getUuid()) != null;
}
/* (non-Javadoc)
import java.util.UUID;
import eu.etaxonomy.cdm.api.service.IMediaService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.config.MediaDeletionConfigurator;
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.model.media.Media;
+import eu.etaxonomy.cdm.persistence.dao.hibernate.media.MediaDaoHibernateImpl;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.MediaCreator;
}
@Override
- public boolean delete(Media entity) throws ReferencedObjectUndeletableException {
- return CdmStore.getService(IMediaService.class).delete(entity) != null;
+ public boolean delete(Media entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException {
+ MediaDeletionConfigurator mediaConfig = null;
+ if (config instanceof MediaDeletionConfigurator){
+ mediaConfig = (MediaDeletionConfigurator) config;
+ } else{
+
+ }
+ return CdmStore.getService(IMediaService.class).delete(entity.getUuid(), mediaConfig) != null;
}
@Override
import java.util.UUID;
import eu.etaxonomy.cdm.api.service.INameService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
return CdmStore.getService(INameService.class).load(uuid, propertyPaths);
}
*/
- /** {@inheritDoc}
- **/
@Override
- public boolean delete(TaxonNameBase entity) {
- return CdmStore.getService(INameService.class).delete(entity) != null;
+ public boolean delete(TaxonNameBase entity, DeleteConfiguratorBase config) {
+ NameDeletionConfigurator nameConfig = null;
+ if (config instanceof NameDeletionConfigurator){
+ nameConfig = (NameDeletionConfigurator) config;
+ } else{
+
+ }
+ return CdmStore.getService(INameService.class).delete(entity.getUuid(), nameConfig) != null;
}
-
+
/** {@inheritDoc} */
@Override
public TaxonNameBase save(TaxonNameBase entity) {
import java.util.List;
import java.util.UUID;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.model.name.NameRelationship;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
*/
/** {@inheritDoc} */
@Override
- public boolean delete(NameRelationship entity) {
+ public boolean delete(NameRelationship entity, DeleteConfiguratorBase config) {
// TODO Auto-generated method stub
return false;
}
import java.util.UUID;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
/** {@inheritDoc}
* @throws ReferencedObjectUndeletableException */
@Override
- public boolean delete(SpecimenOrObservationBase entity) throws ReferencedObjectUndeletableException {
+ public boolean delete(SpecimenOrObservationBase entity, DeleteConfiguratorBase config ) throws ReferencedObjectUndeletableException {
return CdmStore.getService(IOccurrenceService.class).delete(entity) != null;
}
import java.util.UUID;
import eu.etaxonomy.cdm.api.service.IReferenceService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.model.common.MarkerType;
/** {@inheritDoc}
* @throws ReferencedObjectUndeletableException */
@Override
- public boolean delete(Reference entity) throws ReferencedObjectUndeletableException {
- return CdmStore.getService(IReferenceService.class).delete(entity) != null;
+ public boolean delete(Reference entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException {
+ return CdmStore.getService(IReferenceService.class).delete(entity.getUuid()) != null;
}
/** {@inheritDoc} */
import java.util.UUID;\r
\r
import eu.etaxonomy.cdm.api.service.ITaxonService;\r
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;\r
import eu.etaxonomy.cdm.api.service.config.FindTaxaAndNamesConfiguratorImpl;\r
import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;\r
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;\r
+import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;\r
+import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;\r
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;\r
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
/** {@inheritDoc} */\r
@Override\r
public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {\r
- IFindTaxaAndNamesConfigurator<TaxonBase> newConfig = new FindTaxaAndNamesConfiguratorImpl<TaxonBase>();\r
- newConfig.setTitleSearchString(configurator.getTitleSearchStringSqlized());\r
- newConfig.setMatchMode(MatchMode.ANYWHERE);\r
+// IFindTaxaAndNamesConfigurator<TaxonBase> newConfig = new FindTaxaAndNamesConfiguratorImpl<TaxonBase>();\r
+// newConfig.setTitleSearchString(configurator.getTitleSearchStringSqlized());\r
+// newConfig.setMatchMode(MatchMode.ANYWHERE);\r
+ \r
List<TaxonBase> taxa = CdmStore.getSearchManager().findTaxa(configurator);\r
List<TaxonBase> taxaCopy = new ArrayList<TaxonBase>();\r
for (TaxonBase taxon:taxa){\r
/** {@inheritDoc}\r
* @throws ReferencedObjectUndeletableException */\r
@Override\r
- public boolean delete(TaxonBase entity) {\r
- return CdmStore.getService(ITaxonService.class).delete(entity) != null;\r
+ public boolean delete(TaxonBase entity, DeleteConfiguratorBase config) {\r
+ if (entity instanceof Taxon){\r
+ TaxonDeletionConfigurator taxonConfig = null;\r
+ if (config instanceof TaxonDeletionConfigurator){\r
+ taxonConfig = (TaxonDeletionConfigurator)config;\r
+ }else{\r
+ \r
+ }\r
+ \r
+ return CdmStore.getService(ITaxonService.class).deleteTaxon(entity.getUuid(), taxonConfig, null) != null;\r
+ } else{\r
+ SynonymDeletionConfigurator synConfig = null;\r
+ if (config instanceof SynonymDeletionConfigurator){\r
+ synConfig = (SynonymDeletionConfigurator)config;\r
+ }else{\r
+ \r
+ }\r
+ \r
+ return CdmStore.getService(ITaxonService.class).deleteSynonym(entity.getUuid(), synConfig) != null;\r
+ }\r
}\r
@Override\r
protected IEntityCreator<TaxonBase> createEntityCreator() {\r
import java.util.UUID;
import eu.etaxonomy.cdm.api.service.IUserService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.model.common.User;
* @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#delete(java.lang.Object)
*/
@Override
- public boolean delete(User entity) throws ReferencedObjectUndeletableException {
+ public boolean delete(User entity, DeleteConfiguratorBase config) throws ReferencedObjectUndeletableException {
return CdmStore.getService(IUserService.class).delete(entity) != null;
}
-<?xml version="1.0" encoding="UTF-8"?>\r
-<classpath>\r
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>\r
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>\r
- <classpathentry kind="src" path="src/main/java"/>\r
- <classpathentry kind="src" path="src/main/resources"/>\r
- <classpathentry exported="true" kind="lib" path="lib/activation-1.1.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/antlr-2.7.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/aopalliance-1.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/apache-log4j-extras-1.2.17.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/aspectjrt-1.8.8.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/aspectjweaver-1.8.8.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/avro-1.6.3.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-anim-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-awt-util-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-bridge-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-css-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-dom-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-ext-1.8.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-extension-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-gvt-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-js-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-parser-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-script-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-svg-dom-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-svggen-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-transcoder-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-util-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/batik-xml-1.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/c3p0-0.9.5.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-4.3.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-4.3.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-ext/4.3.0-SNAPSHOT/cdmlib-ext-4.3.0-sources.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-4.3.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-io/4.3.0-SNAPSHOT/cdmlib-io-4.3.0-sources.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-4.3.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-model/4.3.0-SNAPSHOT/cdmlib-model-4.3.0-sources.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-4.3.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-4.3.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-4.3.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-4.3.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-services/4.3.0-SNAPSHOT/cdmlib-services-4.3.0-sources.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-test-4.3.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cglib-3.2.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cglib-nodep-3.2.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/classmate-1.3.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/codemodel-2.2.11.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.aopalliance-1.0.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.apache.commons.logging-1.1.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.9.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/commons-codec-1.10.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/commons-collections-3.2.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/commons-csv-1.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/commons-dbcp-1.4.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/commons-io-2.4.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/commons-lang3-3.3.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/commons-pool-1.5.4.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/concurrent-1.3.4.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/dbunit-2.4.9.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/dom4j-1.6.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/doxia-core-1.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/doxia-logging-api-1.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/doxia-module-apt-1.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/doxia-module-xhtml-1.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/doxia-sink-api-1.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/dozer-5.3.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/dtd-parser-1.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/easymock-2.3.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/easymockclassextension-2.3.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/ehcache-core-2.6.11.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/ezmorph-1.0.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/FastInfoset-1.2.13.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/fop-1.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/google-api-translate-java-0.92.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/guava-19.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/h2-1.4.190.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/h2mig_pagestore_addon.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hamcrest-core-1.3.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-c3p0-5.0.7.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-cglib-repack-2.1_3.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-commons-annotations-5.0.1.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-core-5.0.7.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-ehcache-5.0.7.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-entitymanager-5.0.7.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-envers-5.0.7.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-jpa-2.1-api-1.0.0.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-search-4.2.0.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-search-analyzers-4.2.0.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-search-engine-5.5.2.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-search-orm-5.5.2.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-5.2.2.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-cdi-5.2.2.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/hsqldb-2.3.3.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/httpclient-4.5.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/httpclient-cache-4.2.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/httpcore-4.4.4.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/httpmime-4.5.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/icu4j-2.6.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/identificationKeyAPI-1.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/istack-commons-runtime-2.21.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/istack-commons-tools-2.21.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/itextpdf-5.5.8.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jackson-annotations-2.6.5.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jackson-core-2.6.5.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jackson-core-asl-1.8.8.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jackson-databind-2.6.5.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jackson-mapper-asl-1.8.8.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jakarta-regexp-1.4.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jandex-2.0.0.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/javassist-3.20.0-GA.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/javax.el-2.2.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/javax.el-api-2.2.5.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/javax.servlet-api-3.1.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jaxb-api-2.2.12.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jaxb-core-2.2.11.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jaxb-jxc-2.2.11.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jaxb-runtime-2.2.11.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jaxb-xjc-2.2.11.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jaxb1-impl-2.2-EA.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.4.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jboss-logging-3.3.0.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jcl-over-slf4j-1.7.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jdbc4-2.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jdom-1.1.3.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jdom2-2.0.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jena-arq-2.13.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jena-core-2.13.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jena-iri-1.1.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jena-tdb-1.1.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/joda-time-2.9.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/json-20090211.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/json-lib-2.4-jdk15.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jsonld-java-0.5.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jsr250-api-1.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jta-1.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/jtds-1.3.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/junit-4.12.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/junit-benchmarks-0.7.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/libthrift-0.9.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/log4j-1.2.17.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lsid-client-1.1.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lsid-server-1.1.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lucene-analyzers-common-5.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lucene-backward-codecs-5.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lucene-core-5.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lucene-facet-5.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lucene-grouping-5.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lucene-highlighter-5.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lucene-join-5.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lucene-memory-5.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lucene-misc-5.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lucene-queries-5.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lucene-queryparser-5.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lucene-sandbox-5.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/lucene-suggest-5.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/mapstruct-1.0.0.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/mchange-commons-java-0.2.11.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/mysql-connector-java-5.1.38.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/objenesis-1.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/odfdom-0.8.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/odfdom-java-0.8.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/ognl-2.6.9.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/opencsv-2.3.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/org.osgi.core-1.0.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/osgi-3.6.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/p6spy-2.1.4.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/paranamer-2.3.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/plexus-classworlds-1.2-alpha-9.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/plexus-component-annotations-1.5.5.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/plexus-container-default-1.0-alpha-30.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/plexus-utils-3.0.15.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/poi-3.13.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/poi-ooxml-3.13.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/poi-ooxml-schemas-3.13.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/postgresql-9.4-1206-jdbc4.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/relaxngDatatype-20020414.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/rngom-2.2.11.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/sanselan-0.97-incubator.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/Saxon-HE-9.7.0-2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/servlet-api-2.5.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/slf4j-api-1.7.13.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/slf4j-log4j12-1.7.13.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/slf4j-nop-1.7.13.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/snappy-java-1.0.4.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/solr-analysis-extras-3.6.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/solr-core-3.6.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/solr-solrj-3.6.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-aop-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-aspects-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-beans-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-context-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-context-support-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-core-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-expression-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-jdbc-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-modules-cache-0.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-orm-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-oxm-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-plugin-core-1.2.0.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-plugin-metadata-1.2.0.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-security-config-4.0.3.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-security-core-4.0.3.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-security-web-4.0.3.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-test-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-tx-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-web-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/spring-webmvc-4.2.4.RELEASE.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/springfox-core-2.3.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/springfox-schema-2.3.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/springfox-spi-2.3.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/springfox-spring-web-2.3.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/springfox-swagger-common-2.3.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/springfox-swagger2-2.3.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/standard-1.1.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/stax-1.2.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/stax-api-1.0.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/stax-ex-1.7.7.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/swagger-annotations-1.5.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/swagger-models-1.5.5.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/tools.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/txw2-2.2.11.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/unitils-core-3.4.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/unitils-database-3.4.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/unitils-dbmaintainer-3.4.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/unitils-dbunit-3.4.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/unitils-easymock-3.4.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/unitils-inject-3.4.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/unitils-mock-3.4.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/unitils-orm-3.4.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/unitils-spring-3.4.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/usertype.jodatime-2.0.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/usertype.spi-2.0.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/validation-api-1.1.0.Final.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/wsdl4j-1.6.3.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xalan-2.7.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xercesImpl-2.11.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xml-apis-1.0.b2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xml-apis-ext-1.3.04.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xml-resolver-1.2.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xmlbeans-2.6.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xmlgraphics-commons-1.5.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xmlpull-1.1.3.1.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xmlunit-1.6.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xom-1.2.5.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xpp3_min-1.1.4c.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xpp3-1.1.4c.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xsom-20140925.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/xstream-1.4.8.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/yjp-controller-api-redist-9.0.8.jar"/>\r
- <classpathentry kind="output" path="target/classes"/>\r
-</classpath>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry exported="true" kind="lib" path="lib/spring-security-oauth2-2.0.11.RELEASE.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/resources"/>
+ <classpathentry exported="true" kind="lib" path="lib/activation-1.1.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/antlr-2.7.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/aopalliance-1.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/apache-log4j-extras-1.2.17.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/aspectjrt-1.8.8.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/aspectjweaver-1.8.8.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/avro-1.6.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-anim-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-awt-util-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-bridge-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-css-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-dom-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-ext-1.8.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-extension-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-gvt-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-js-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-parser-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-script-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-svg-dom-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-svggen-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-transcoder-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-util-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/batik-xml-1.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/c3p0-0.9.5.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-4.4.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-4.4.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-ext/4.3.0-SNAPSHOT/cdmlib-ext-4.4.0-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-4.4.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-io/4.3.0-SNAPSHOT/cdmlib-io-4.4.0-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-4.4.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-model/4.3.0-SNAPSHOT/cdmlib-model-4.4.0-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-4.4.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-4.4.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-4.4.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-4.4.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-services/4.3.0-SNAPSHOT/cdmlib-services-4.4.0-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-test-4.4.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cglib-3.2.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cglib-nodep-3.2.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/classmate-1.3.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/codemodel-2.2.11.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.aopalliance-1.0.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/com.springsource.org.apache.commons.logging-1.1.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-beanutils-1.9.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-codec-1.10.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-collections-3.2.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-csv-1.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-dbcp-1.4.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-io-2.4.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-lang-2.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-lang3-3.3.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-logging-1.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/commons-pool-1.5.4.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/concurrent-1.3.4.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/dbunit-2.4.9.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/dom4j-1.6.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/doxia-core-1.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/doxia-logging-api-1.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/doxia-module-apt-1.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/doxia-module-xhtml-1.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/doxia-sink-api-1.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/dozer-5.3.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/dtd-parser-1.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/easymock-2.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/easymockclassextension-2.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/ehcache-core-2.6.11.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/ezmorph-1.0.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/FastInfoset-1.2.13.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/fop-1.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/google-api-translate-java-0.92.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/guava-19.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/h2-1.4.190.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/h2mig_pagestore_addon.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hamcrest-core-1.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-c3p0-5.0.7.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-cglib-repack-2.1_3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-commons-annotations-5.0.1.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-core-5.0.7.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-ehcache-5.0.7.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-entitymanager-5.0.7.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-envers-5.0.7.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-jpa-2.1-api-1.0.0.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-search-4.2.0.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-search-analyzers-4.2.0.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-search-engine-5.5.2.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-search-orm-5.5.2.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-5.2.2.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hibernate-validator-cdi-5.2.2.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/hsqldb-2.3.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/httpclient-4.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/httpclient-cache-4.2.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/httpcore-4.4.4.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/httpmime-4.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/icu4j-2.6.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/identificationKeyAPI-1.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/istack-commons-runtime-2.21.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/istack-commons-tools-2.21.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/itextpdf-5.5.8.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jackson-annotations-2.6.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jackson-core-2.6.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jackson-core-asl-1.8.8.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jackson-databind-2.6.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jackson-mapper-asl-1.8.8.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jakarta-regexp-1.4.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jandex-2.0.0.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/javassist-3.20.0-GA.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/javax.el-2.2.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/javax.el-api-2.2.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/javax.servlet-api-3.1.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jaxb-api-2.2.12.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jaxb-core-2.2.11.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jaxb-jxc-2.2.11.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jaxb-runtime-2.2.11.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jaxb-xjc-2.2.11.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jaxb1-impl-2.2-EA.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.4.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jboss-logging-3.3.0.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jboss-transaction-api_1.1_spec-1.0.0.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jcl-over-slf4j-1.7.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jdbc4-2.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jdom-1.1.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jdom2-2.0.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jena-arq-2.13.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jena-core-2.13.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jena-iri-1.1.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jena-tdb-1.1.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/joda-time-2.9.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/json-20090211.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/json-lib-2.4-jdk15.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jsonld-java-0.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jsr250-api-1.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jta-1.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/jtds-1.3.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/junit-4.12.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/junit-benchmarks-0.7.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/libthrift-0.9.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/log4j-1.2.17.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lsid-client-1.1.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lsid-server-1.1.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lucene-analyzers-common-5.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lucene-backward-codecs-5.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lucene-core-5.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lucene-facet-5.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lucene-grouping-5.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lucene-highlighter-5.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lucene-join-5.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lucene-memory-5.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lucene-misc-5.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lucene-queries-5.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lucene-queryparser-5.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lucene-sandbox-5.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/lucene-suggest-5.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/mapstruct-1.0.0.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/mchange-commons-java-0.2.11.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/mysql-connector-java-5.1.38.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/objenesis-1.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/odfdom-0.8.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/odfdom-java-0.8.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/ognl-2.6.9.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/opencsv-2.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/org.osgi.core-1.0.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/osgi-3.6.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/paranamer-2.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/plexus-classworlds-1.2-alpha-9.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/plexus-component-annotations-1.5.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/plexus-container-default-1.0-alpha-30.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/plexus-utils-3.0.15.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/poi-3.13.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/poi-ooxml-3.13.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/poi-ooxml-schemas-3.13.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/postgresql-9.4-1206-jdbc4.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/relaxngDatatype-20020414.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/rngom-2.2.11.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/sanselan-0.97-incubator.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/Saxon-HE-9.7.0-2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/servlet-api-2.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/slf4j-api-1.7.13.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/slf4j-log4j12-1.7.13.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/slf4j-nop-1.7.13.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/snappy-java-1.0.4.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/solr-analysis-extras-3.6.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/solr-core-3.6.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/solr-solrj-3.6.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-aop-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-aspects-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-beans-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-context-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-context-support-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-core-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-expression-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-jdbc-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-modules-cache-0.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-orm-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-oxm-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-plugin-core-1.2.0.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-plugin-metadata-1.2.0.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-security-config-4.0.3.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-security-core-4.0.3.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-security-web-4.0.3.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-test-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-tx-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-web-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/spring-webmvc-4.2.4.RELEASE.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/springfox-core-2.3.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/springfox-schema-2.3.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/springfox-spi-2.3.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/springfox-spring-web-2.3.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/springfox-swagger-common-2.3.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/springfox-swagger2-2.3.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/standard-1.1.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/stax-1.2.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/stax-api-1.0.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/stax-ex-1.7.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/swagger-annotations-1.5.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/swagger-models-1.5.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/tools.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/txw2-2.2.11.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-core-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-database-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-dbmaintainer-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-dbunit-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-easymock-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-inject-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-mock-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-orm-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/unitils-spring-3.4.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/usertype.jodatime-2.0.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/usertype.spi-2.0.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/validation-api-1.1.0.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/wsdl4j-1.6.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xalan-2.7.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xercesImpl-2.11.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xml-apis-1.0.b2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xml-apis-ext-1.3.04.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xml-resolver-1.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xmlbeans-2.6.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xmlgraphics-commons-1.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xmlpull-1.1.3.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xmlunit-1.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xom-1.2.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xpp3_min-1.1.4c.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xpp3-1.1.4c.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xsom-20140925.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/xstream-1.4.8.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/yjp-controller-api-redist-9.0.8.jar"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Bundle-ManifestVersion: 2
Bundle-Name: CDM Library Dependencies Plugin
Bundle-SymbolicName: eu.etaxonomy.taxeditor.cdmlib;singleton:=true
-Bundle-Version: 4.3.0
+Bundle-Version: 4.4.0
Eclipse-BundleShape: dir
Export-Package: com.google.api,
com.google.api.detect,
eu.etaxonomy.cdm.remote.json.processor.value,
eu.etaxonomy.cdm.remote.json.util,
eu.etaxonomy.cdm.remote.l10n,
+ eu.etaxonomy.cdm.remote.oauth2,
eu.etaxonomy.cdm.remote.service,
eu.etaxonomy.cdm.remote.view,
eu.etaxonomy.cdm.remote.view.oaipmh,
org.springframework.security.core,
org.springframework.security.core.context,
org.springframework.security.core.userdetails,
+ org.springframework.security.oauth2.client,
+ org.springframework.security.oauth2.client.filter,
+ org.springframework.security.oauth2.client.filter.state,
+ org.springframework.security.oauth2.client.http,
+ org.springframework.security.oauth2.client.resource,
+ org.springframework.security.oauth2.client.test,
+ org.springframework.security.oauth2.client.token,
+ org.springframework.security.oauth2.client.token.auth,
+ org.springframework.security.oauth2.client.token.grant.client,
+ org.springframework.security.oauth2.client.token.grant.code,
+ org.springframework.security.oauth2.client.token.grant.implicit,
+ org.springframework.security.oauth2.client.token.grant.password,
+ org.springframework.security.oauth2.client.token.grant.redirect,
+ org.springframework.security.oauth2.common,
+ org.springframework.security.oauth2.common.exceptions,
+ org.springframework.security.oauth2.common.util,
+ org.springframework.security.oauth2.config.annotation.builders,
+ org.springframework.security.oauth2.config.annotation.configuration,
+ org.springframework.security.oauth2.config.annotation.configurers,
+ org.springframework.security.oauth2.config.annotation.web.configuration,
+ org.springframework.security.oauth2.config.annotation.web.configurers,
+ org.springframework.security.oauth2.config.xml,
+ org.springframework.security.oauth2.http.converter,
+ org.springframework.security.oauth2.http.converter.jaxb,
+ org.springframework.security.oauth2.provider,
+ org.springframework.security.oauth2.provider.approval,
+ org.springframework.security.oauth2.provider.authentication,
+ org.springframework.security.oauth2.provider.client,
+ org.springframework.security.oauth2.provider.code,
+ org.springframework.security.oauth2.provider.endpoint,
+ org.springframework.security.oauth2.provider.error,
+ org.springframework.security.oauth2.provider.expression,
+ org.springframework.security.oauth2.provider.implicit,
+ org.springframework.security.oauth2.provider.password,
+ org.springframework.security.oauth2.provider.refresh,
+ org.springframework.security.oauth2.provider.request,
+ org.springframework.security.oauth2.provider.token,
+ org.springframework.security.oauth2.provider.token.store,
+ org.springframework.security.oauth2.provider.token.store.redis,
+ org.springframework.security.oauth2.provider.vote,
org.springframework.security.provisioning,
org.springframework.stereotype,
org.springframework.transaction;uses:="org.springframework.core",
lib/batik-util-1.7.jar,
lib/batik-xml-1.7.jar,
lib/c3p0-0.9.5.2.jar,
- lib/cdmlib-commons-4.3.0.jar,
- lib/cdmlib-ext-4.3.0.jar,
- lib/cdmlib-io-4.3.0.jar,
- lib/cdmlib-model-4.3.0.jar,
- lib/cdmlib-persistence-4.3.0.jar,
- lib/cdmlib-print-4.3.0.jar,
- lib/cdmlib-remote-4.3.0.jar,
- lib/cdmlib-services-4.3.0.jar,
- lib/cdmlib-test-4.3.0.jar,
+ lib/cdmlib-commons-4.4.0.jar,
+ lib/cdmlib-ext-4.4.0.jar,
+ lib/cdmlib-io-4.4.0.jar,
+ lib/cdmlib-model-4.4.0.jar,
+ lib/cdmlib-persistence-4.4.0.jar,
+ lib/cdmlib-print-4.4.0.jar,
+ lib/cdmlib-remote-4.4.0.jar,
+ lib/cdmlib-services-4.4.0.jar,
+ lib/cdmlib-test-4.4.0.jar,
lib/cglib-3.2.0.jar,
lib/cglib-nodep-3.2.0.jar,
lib/classmate-1.3.1.jar,
lib/opencsv-2.3.jar,
lib/org.osgi.core-1.0.0.jar,
lib/osgi-3.6.0.jar,
- lib/p6spy-2.1.4.jar,
lib/paranamer-2.3.jar,
lib/plexus-classworlds-1.2-alpha-9.jar,
lib/plexus-component-annotations-1.5.5.jar,
lib/xpp3-1.1.4c.jar,
lib/xsom-20140925.jar,
lib/xstream-1.4.8.jar,
- lib/yjp-controller-api-redist-9.0.8.jar
+ lib/yjp-controller-api-redist-9.0.8.jar,
+ lib/spring-security-oauth2-2.0.11.RELEASE.jar
Import-Package: eu.etaxonomy.cdm.api.application
lib/batik-util-1.7.jar,\
lib/batik-xml-1.7.jar,\
lib/c3p0-0.9.5.2.jar,\
- lib/cdmlib-commons-4.3.0.jar,\
- lib/cdmlib-ext-4.3.0.jar,\
- lib/cdmlib-io-4.3.0.jar,\
- lib/cdmlib-model-4.3.0.jar,\
- lib/cdmlib-persistence-4.3.0.jar,\
- lib/cdmlib-print-4.3.0.jar,\
- lib/cdmlib-remote-4.3.0.jar,\
- lib/cdmlib-services-4.3.0.jar,\
- lib/cdmlib-test-4.3.0.jar,\
+ lib/cdmlib-commons-4.4.0.jar,\
+ lib/cdmlib-ext-4.4.0.jar,\
+ lib/cdmlib-io-4.4.0.jar,\
+ lib/cdmlib-model-4.4.0.jar,\
+ lib/cdmlib-persistence-4.4.0.jar,\
+ lib/cdmlib-print-4.4.0.jar,\
+ lib/cdmlib-remote-4.4.0.jar,\
+ lib/cdmlib-services-4.4.0.jar,\
+ lib/cdmlib-test-4.4.0.jar,\
lib/cglib-3.2.0.jar,\
lib/cglib-nodep-3.2.0.jar,\
lib/classmate-1.3.1.jar,\
lib/opencsv-2.3.jar,\
lib/org.osgi.core-1.0.0.jar,\
lib/osgi-3.6.0.jar,\
- lib/p6spy-2.1.4.jar,\
lib/paranamer-2.3.jar,\
lib/plexus-classworlds-1.2-alpha-9.jar,\
lib/plexus-component-annotations-1.5.5.jar,\
lib/xpp3-1.1.4c.jar,\
lib/xsom-20140925.jar,\
lib/xstream-1.4.8.jar,\
- lib/yjp-controller-api-redist-9.0.8.jar
+ lib/yjp-controller-api-redist-9.0.8.jar,\
+ lib/spring-security-oauth2-2.0.11.RELEASE.jar
jars.compile.order = .
output.. = bin/
<parent>\r
<groupId>eu.etaxonomy</groupId>\r
<artifactId>taxeditor-parent</artifactId>\r
- <version>4.3.0</version>\r
+ <version>4.4.0</version>\r
</parent>\r
<modelVersion>4.0.0</modelVersion>\r
<artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>\r
import org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl;
import eu.etaxonomy.cdm.database.CdmDataSource;
-import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
/**
* This is a very preliminary class to get the model cache running. Need to better understand how
String database = "xyz";
String path = "C:\\Users\\a.mueller\\.cdmLibrary\\writableResources\\h2\\LocalH2_" + database;
String username = "sa";
- CdmDataSource dataSource = CdmDataSource.NewH2EmbeddedInstance("cdmTest", username, "", path, NomenclaturalCode.ICNAFP);
+ CdmDataSource dataSource = CdmDataSource.NewH2EmbeddedInstance("cdmTest", username, "", path);
return dataSource;
}
import eu.etaxonomy.cdm.config.CdmPersistentXMLSource;
import eu.etaxonomy.cdm.config.CdmPersistentXMLSource.CdmSourceProperties;
import eu.etaxonomy.cdm.config.ICdmPersistentSource;
-import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
/**
* Class representing a CDM remote source which can be persisted to a source config file
*
*/
public class CdmPersistentRemoteSource extends CdmRemoteSourceBase implements ICdmPersistentSource{
+ @SuppressWarnings("unused")
private static final Logger logger = Logger.getLogger(CdmPersistentRemoteSource.class);
public static final String REMOTESOURCE_BEAN_POSTFIX = "RemoteSource";
if(!cdmSourceProperties.containsKey(CdmSourceProperties.CONTEXTPATH.toString())) {
throw new CdmRemoteSourceException("Could not initialise remote source. Required property '" + CdmSourceProperties.SERVER.toString() + "' is missing");
}
- // default NomenclaturalCode is always ICNAFP
- if(!cdmSourceProperties.containsKey(CdmSourceProperties.NOMENCLATURAL_CODE.toString())) {
- cdmSourceProperties.put(CdmSourceProperties.NOMENCLATURAL_CODE.toString(), NomenclaturalCode.ICNAFP.name());
- }
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.config.ICdmPersistentSource#getBeanName()
- */
@Override
public String getBeanName() {
return beanName;
return cdmSourceProperties.getProperty(CdmSourceProperties.CONTEXTPATH.toString());
}
- @Override
- public NomenclaturalCode getNomenclaturalCode() {
- return NomenclaturalCode.fromString(cdmSourceProperties.getProperty(CdmSourceProperties.NOMENCLATURAL_CODE.toString()));
- }
-
public static CdmPersistentRemoteSource save(String strRemoteSourceName, ICdmRemoteSource remoteSource) throws CdmRemoteSourceException {
Properties cdmSourceProperties = new Properties();
cdmSourceProperties.put(CdmSourceProperties.SERVER.toString(), remoteSource.getServer());
cdmSourceProperties.put(CdmSourceProperties.PORT.toString(), String.valueOf(remoteSource.getPort()));
cdmSourceProperties.put(CdmSourceProperties.CONTEXTPATH.toString(), remoteSource.getContextPath());
- cdmSourceProperties.put(CdmSourceProperties.NOMENCLATURAL_CODE.toString(), remoteSource.getNomenclaturalCode().name());
checkProperties(cdmSourceProperties);
return save(strRemoteSourceName, cdmSourceProperties);
}
* @return
*/
public static CdmRemoteSource NewInstance() {
- return new CdmRemoteSource(DEFAULT_NAME, DEFAULT_SERVER, DEFAULT_PORT, DEFAULT_CONTEXT_PATH, DEFAULT_NOMENCLATURAL_CODE);
+ return new CdmRemoteSource(DEFAULT_NAME, DEFAULT_SERVER, DEFAULT_PORT, DEFAULT_CONTEXT_PATH);
}
/**
* @param nomenclaturalCode
* @return
*/
- public static CdmRemoteSource NewInstance(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
- return new CdmRemoteSource(name, server, port, contextPath, nomenclaturalCode);
+ public static CdmRemoteSource NewInstance(String name, String server, int port, String contextPath) {
+ return new CdmRemoteSource(name, server, port, contextPath);
}
/**
* @param contextPath
* @param nomenclaturalCode
*/
- private CdmRemoteSource(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
- super(name, server, port, contextPath, nomenclaturalCode);
+ private CdmRemoteSource(String name, String server, int port, String contextPath) {
+ super(name, server, port, contextPath);
}
import eu.etaxonomy.cdm.config.CdmSource;
import eu.etaxonomy.cdm.config.CdmSourceException;
import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
-import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
/**
* Base class representing a CDM remote source.
protected static final String DEFAULT_SERVER = "127.0.0.1";
protected static final int DEFAULT_PORT = 8080;
protected static final String DEFAULT_CONTEXT_PATH = "";
- protected static final NomenclaturalCode DEFAULT_NOMENCLATURAL_CODE = NomenclaturalCode.ICNAFP;
private String contextPath;
private String baseUrl;
setServer(DEFAULT_SERVER);
setPort(DEFAULT_PORT);
setContextPath(DEFAULT_CONTEXT_PATH);
- setNomenclaturalCode(DEFAULT_NOMENCLATURAL_CODE);
}
/**
* @param contextPath
* @param nomenclaturalCode
*/
- public CdmRemoteSourceBase(String name, String server, int port, String contextPath, NomenclaturalCode nomenclaturalCode) {
+ public CdmRemoteSourceBase(String name, String server, int port, String contextPath) {
setName(name);
setServer(server);
setPort(port);
setContextPath(contextPath);
- setNomenclaturalCode(nomenclaturalCode);
metadataService = CdmApplicationRemoteConfiguration.getMetadataService(this);
}
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.remote.ICdmRemoteSource#getBaseUrl()
- */
@Override
public String getBaseUrl() {
return baseUrl;
this.baseUrl = baseUrl;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.remote.ICdmRemoteSource#getContextPath()
- */
@Override
public String getContextPath() {
return contextPath;
this.contextPath = contextPath;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.config.CdmSource#getDbSchemaVersion()
- */
@Override
public String getDbSchemaVersion() throws CdmSourceException {
return metadataService.getDbSchemaVersion();
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.config.CdmSource#isDbEmpty()
- */
@Override
public boolean isDbEmpty() throws CdmSourceException {
return metadataService.isDbEmpty();
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.config.CdmSource#checkConnection()
- */
@Override
public boolean checkConnection() throws CdmSourceException {
// assuming that database service works implies
return true;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.config.CdmSource#getConnectionMessage()
- */
@Override
public String getConnectionMessage() {
return "Connecting to Remote CDM Instance " + getName() + ":" + getPort() + "/" + getContextPath();
return metadataService.getCdmMetadataMap();
}
-
}
return CdmRemoteSource.NewInstance(name,
server,
port,
- instance.getBasePath(),
- null);
+ instance.getBasePath()
+ );
}
return null;
}
\r
<!-- Taxon Package -->\r
<mapping class="eu.etaxonomy.cdm.model.taxon.Synonym"/>\r
- <mapping class="eu.etaxonomy.cdm.model.taxon.SynonymRelationship"/>\r
- <mapping class="eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType"/>\r
+ <mapping class="eu.etaxonomy.cdm.model.taxon.SynonymType"/>\r
<mapping class="eu.etaxonomy.cdm.model.taxon.Taxon"/>\r
<mapping class="eu.etaxonomy.cdm.model.taxon.TaxonBase"/>\r
<mapping class="eu.etaxonomy.cdm.model.taxon.TaxonNode"/>\r
Bundle-ManifestVersion: 2
Bundle-Name: Editor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
-Bundle-Version: 4.3.0
+Bundle-Version: 4.4.0
Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
Bundle-Vendor: %Bundle-Vendor.0
Bundle-Localization: OSGI-INF/l10n/plugin
DeleteTaxonBaseHandler_CONFIRM_DELETION=Confirm Deletion
DeleteTaxonBaseHandler_ELEMENT_MUST_BE_SYNONYM_MISAPP_CONCEPT=Element has to be Synonym, Misapplication or Concept
DeleteTaxonBaseHandler_REALLY_DELETE_TAXON=Are you sure you want to delete the selected taxon?
+DeleteTaxonBaseHandler_REALLY_DELETE_SYNONYM=Are you sure you want to delete the selected synoym, this is irreversible?
+DeleteTaxonBaseHandler_DELETE_SYNONYM_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS=The Synonym could be deleted, but related object(s) could not be deleted
+DeleteTaxonBaseHandler_DELETE_MISAPPLIEDNAME_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS=The misapplied name could be deleted, but related object(s) could not be deleted
DescriptiveViewPart_COLLAPSE_ALL=Collapse All
DescriptiveViewPart_EXPAND_ALL=Expand All
OpenDerivateEditorForTaxonHandler_NO_DERIVATIVES_FOUND=Keine Derivate gefunden
DeleteTaxonBaseHandler_CONFIRM_DELETION=Löschen bestätigen
-DeleteTaxonBaseHandler_ELEMENT_MUST_BE_SYNONYM_MISAPP_CONCEPT=Element muss Synonym, Misapplication oder Konzept sein
+DeleteTaxonBaseHandler_ELEMENT_MUST_BE_SYNONYM_MISAPP_CONCEPT=Element muss Synonym, Misapplikation oder Konzept sein
DeleteTaxonBaseHandler_REALLY_DELETE_TAXON=Wollen Sie wirklich das ausgewählte Taxon löschen?
+DeleteTaxonBaseHandler_REALLY_DELETE_SYNONYM=Wollen Sie das ausgewählte Synonym wirklich löschen, dieser Vorgang ist nicht reversibel.
+DeleteTaxonBaseHandler_DELETE_SYNONYM_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS=Das Synonym konnte gelöscht werden, aber es gibt noch verknüpfte Objekte, die nicht gelöscht werden konnten.
+DeleteTaxonBaseHandler_DELETE_MISAPPLIEDNAME_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS=Die Misapplikation konnte gelöscht werden, aber es gibt noch verknüpfte Objekte, die nicht gelöscht werden konnten.
+
DescriptiveViewPart_COLLAPSE_ALL=Alles einklappen
DescriptiveViewPart_EXPAND_ALL=Alles ausklappen
command.label.23 = New Key Number\r
command.label.24 = New Alternative\r
command.label.25 = Refresh Nodes\r
+command.label.58 = Insert Node\r
command.label.26 = Delete\r
command.label.27 = New Factual Data\r
menu.label.1 = New\r
command.name.28 = New Child Node\r
command.name.29 = New Sibling Node\r
command.name.30 = Refresh Node Numbering\r
+command.name.58 = Insert New Node\r
command.name.31 = Apply Layout\r
category.name.6 = -- Concept Relations\r
command.name.32 = Create Concept Relation\r
name="taxeditor-editor.separator2"
visible="true">
</separator>
- <dynamic
+ <!-- <dynamic
class="eu.etaxonomy.taxeditor.editor.name.handler.GroupBasionymContributionItem"
id="taxeditor-editor.dynamic.setBasionym">
<visibleWhen>
</reference>
</or>
</visibleWhen>
- </dynamic>
+ </dynamic>-->
<command
commandId="eu.etaxonomy.taxeditor.editor.name.swapSynonymAndAccepted"
label="%command.label.17"
style="push">
</command>
<command
+ commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new.node"
+ label="%command.label.58"
+ style="push">
+ </command>
+ <command
commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new.sibling"
label="%command.label.24"
style="push">
</command>
- <dynamic
+ <!-- <dynamic
class="eu.etaxonomy.taxeditor.view.CdmViewerContextMenu"
id="eu.etaxonomy.taxeditor.editor.polytomous.list.cdmViewerContextMenu">
- </dynamic>
+ </dynamic>-->
<command
commandId="eu.etaxonomy.taxeditor.key.polytomous.command.refresh"
label="%command.label.25"
</handler>
<handler
class="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.DeleteNodeHandler"
- commandId="eu.etaxonomy.taxeditor.editor.key.polytomous.command.delete">
+ commandId="eu.etaxonomy.taxeditor.key.polytomous.command.delete">
<activeWhen>
- <with
+ <with
variable="activePartId">
<equals
value="eu.etaxonomy.taxeditor.editor.key">
</equals>
</with>
</activeWhen>
+ <enabledWhen>
+ <with
+ variable="selection">
+ <test
+ property="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester.isKeyNode">
+ </test>
+ </with>
+ </enabledWhen>
</handler>
<handler
class="eu.etaxonomy.taxeditor.editor.view.concept.handler.DeleteConceptRelationHandler"
<handler
class="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.RemotingCreateChildPolytomousKeyNodeHandler"
commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new.child">
- <activeWhen>
+ <activeWhen>
<reference
definitionId="isRemoting">
</reference>
</activeWhen>
</handler>
+ <handler
+ class="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.InsertNewNodeHandler"
+ commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new.node">
+ <enabledWhen>
+ <with
+ variable="selection">
+ <test
+ property="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester.isKeyNode">
+ </test>
+
+ </with>
+ </enabledWhen>
+ </handler>
<handler
class="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.RemotingCreateSiblingPolytomousKeyNodeHandler"
commandId="eu.etaxonomy.taxeditor.key.polytomous.command.new.sibling">
<activeWhen>
- <reference
- definitionId="isRemoting">
- </reference>
+ <with
+ variable="activePartId">
+ <equals
+ value="eu.etaxonomy.taxeditor.editor.key">
+ </equals>
+ </with>
</activeWhen>
+ <enabledWhen>
+ <with
+ variable="selection">
+ <test
+ property="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester.isKeyNode">
+ </test>
+
+ </with>
+ </enabledWhen>
</handler>
<handler
class="eu.etaxonomy.taxeditor.handler.defaultHandler.OpenReferencingObjectsView"
</and>
</activeWhen>
</handler>
+ <handler
+ class="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.RefreshNodeNumberingHandler"
+ commandId="eu.etaxonomy.taxeditor.key.polytomous.command.refresh">
+ <enabledWhen>
+ <with
+ variable="selection">
+ <test
+ property="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester.isKeyNode">
+ </test>
+ </with>
+ </enabledWhen>
+ </handler>
</extension>
<extension
name="%extension.name"
id="eu.etaxonomy.taxeditor.editor.name.createMisapplication"
name="%command.name.36">
</command>
- <!--command
+ <!-- <command
defaultHandler="eu.etaxonomy.taxeditor.editor.handler.MoveTaxonHandler"
id="eu.etaxonomy.taxeditor.editor.name.moveTaxon"
name="Move Taxon">
- </command-->
+ </command>-->
<command
categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.ChangeToSynonymHandler"
</category>
<command
categoryId="eu.etaxonomy.taxeditor.editor.key.category"
- defaultHandler="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.CreateChildNodeHandler"
+
id="eu.etaxonomy.taxeditor.key.polytomous.command.new.child"
name="%command.name.28">
</command>
- <command
+ <command
categoryId="eu.etaxonomy.taxeditor.editor.key.category"
- defaultHandler="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.CreateSiblingNodeHandler"
+
+ id="eu.etaxonomy.taxeditor.key.polytomous.command.new.node"
+ name="%command.name.58">
+ </command>
+ <command
+ categoryId="eu.etaxonomy.taxeditor.editor.key.category"
id="eu.etaxonomy.taxeditor.key.polytomous.command.new.sibling"
name="%command.name.29">
</command>
<command
categoryId="eu.etaxonomy.taxeditor.editor.key.category"
- defaultHandler="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.RefreshNodeNumberingHandler"
+
id="eu.etaxonomy.taxeditor.key.polytomous.command.refresh"
name="%command.name.30">
</command>
name="%command.name.31">
</command>
<command
- defaultHandler="eu.etaxonomy.taxeditor.editor.key.polytomous.handler.DeleteNodeHandler"
+ categoryId="eu.etaxonomy.taxeditor.editor.key.category"
id="eu.etaxonomy.taxeditor.key.polytomous.command.delete"
name="%command.name.50">
</command>
property="eu.etaxonomy.taxeditor.preference.CdmStorePropertyTester.isRemoting">
</test>
</definition>
+ <definition
+ id="isKeyNode">
+ <with
+ variable="selection">
+ <test
+ property="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester.isKeyNode">
+ </test>
+ </with>
+ </definition>
<definition
id="isSequence">
<with
id="eu.etaxonomy.taxeditor.editor.name.propertyTester"
namespace="eu.etaxonomy.taxeditor.editor.name.propertyTester"
properties="isAcceptedTaxon,isSynonym,isMisapplication,isTaxonBase,hasEmptyNames,isAcceptedAndHasNoHomotypicSynonyms,isNotHomotypicSynonymOfAcceptedTaxon,isSynonymInHomotypicalGroupWithMoreSynonyms,isOrphaned"
- type="org.eclipse.jface.viewers.IStructuredSelection">
+ type="java.lang.Object">
</propertyTester>
<propertyTester
class="eu.etaxonomy.taxeditor.editor.view.descriptive.handler.DescriptionsMenuPropertyTester"
properties="isLinkedWithTaxonSelection"
type="eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView">
</propertyTester>
+ <propertyTester
+ class="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester"
+ id="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester"
+ namespace="eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyPropertyTester"
+ properties="isKeyNode"
+ type="org.eclipse.jface.viewers.IStructuredSelection">
+ </propertyTester>
</extension>
<extension
point="org.eclipse.ui.bindings">
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.3.0</version>
+ <version>4.4.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
public static String DeleteTaxonBaseHandler_CONFIRM_DELETION;
public static String DeleteTaxonBaseHandler_ELEMENT_MUST_BE_SYNONYM_MISAPP_CONCEPT;
public static String DeleteTaxonBaseHandler_REALLY_DELETE_TAXON;
+ public static String DeleteTaxonBaseHandler_REALLY_DELETE_SYNONYM;
+ public static String DeleteTaxonBaseHandler_DELETE_SYNONYM_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS;
+ public static String DeleteTaxonBaseHandler_DELETE_MISAPPLIEDNAME_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS;
+
+
public static String DerivateDropListener_MOVE_TO;
public static String DerivateView_DERIVATIVE_EDITOR;
public static String DerivateView_SAVING_HIERARCHY;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.forms.editor.FormEditor;
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.model.common.CdmBase;
// commit the conversation and start a new transaction immediately
input.merge();
+
conversation.commit(true);
+ CdmApplicationState.getCurrentDataChangeService()
+ .fireChangeEvent(new CdmChangeEvent(Action.Update, input.getTaxonNode() , MultiPageTaxonEditor.class), true);
monitor.worked(1);
this.setDirty(false);
}else if(taxonBase instanceof Synonym){
Synonym synonym = (Synonym) taxonBase;
- Set<Taxon> taxa = synonym.getAcceptedTaxa();
+ Set<Taxon> taxa = new HashSet<>();
+ Taxon taxon = synonym.getAcceptedTaxon();
+ if (taxon != null){
+ taxa.add(taxon);
+ }
setInputForMultipleTaxa(conversation, taxa);
}
}
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
-import org.eclipse.ui.PartInitException;
-
-import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
/**
* <p>OpenParentHandler class.</p>
public static final String CREATE_CHILD_POLYTOMOUS_KEY_NODE_LABEL = "Create Child Polytomous Key Node";
public static final String CREATE_SIBLING_POLYTOMOUS_KEY_NODE_LABEL = "Create Sibling Polytomous Key Node";
+ public static final String INSERT_NODE_POLYTOMOUS_KEY_NODE_LABEL = "Insert Node Polytomous Key Node";
+ public static final String DELETE_NODE_POLYTOMOUS_KEY_NODE_LABEL = "Insert Node Polytomous Key Node";
public static final String NO_KEY_NODE_FOR_CHILD_SELECTED_MESSAGE = "No Key Node Selected.Please right-click on a specific key node to create a new child key node.";
public static final String NO_KEY_NODE_FOR_SIBLING_SELECTED_MESSAGE = "No Key Node Selected.Please right-click on a specific key node to create a new sibling key node.";
-}
+ public static final String NO_KEY_NODE_FOR_INSERT_NODE_SELECTED_MESSAGE = "No Key Node Selected.Please right-click on a specific key node to create a new key node.";
+ }
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.Viewer;
+import eu.etaxonomy.cdm.hibernate.HHH_9751_Util;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
/**
}
if (!node.getChildren().isEmpty()) {
result.addAll(node.getChildren());
+ HHH_9751_Util.removeAllNull(result);
for (PolytomousKeyNode internalNode : node.getChildren()) {
getChildrenBreadthFirst(result, internalNode);
}
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
PolytomousKey key = ((PolytomousKeyEditorInput) getEditorInput())
.getKey();
-
+ key = HibernateProxyHelper.deproxy(key, PolytomousKey.class);
+ key.setRoot(HibernateProxyHelper.deproxy(key.getRoot(), PolytomousKeyNode.class));
setPartName(key.getTitleCache());
viewer.setInput(getEditorInput());
public void changed(Object element) {
if(element != null) {
viewer.update(element, null);
+
}
if (element instanceof PolytomousKeyNode) {
viewer.update(child, null);
}
}
+
viewer.refresh();
+
}
/* (non-Javadoc)
--- /dev/null
+/**
+* Copyright (C) 2016 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.editor.key.polytomous;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+
+/**
+ * @author k.luther
+ * @date 23.11.2016
+ *
+ */
+public class PolytomousKeyPropertyTester extends PropertyTester {
+ private static final String KEYNODE = "isKeyNode";
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+ if(receiver instanceof IStructuredSelection){
+
+ IStructuredSelection selection = (IStructuredSelection) receiver;
+
+ Object selectedElement = selection.getFirstElement();
+ if(KEYNODE.equals(property)){
+ return isKeyNode(selectedElement);
+ }
+ }
+ return false;
+ }
+
+ private boolean isKeyNode(Object selectedElement) {
+ return (selectedElement instanceof PolytomousKeyNode) ? true : false;
+ }
+
+
+}
--- /dev/null
+/**
+* Copyright (C) 2016 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.editor.key.polytomous.handler;
+
+import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler;
+
+/**
+ * @author k.luther
+ * @date 24.11.2016
+ *
+ */
+public abstract class AbstractPolytomousKeyNodeHandler extends RemotingCdmHandler {
+
+
+ IPolytomousKeyEditorPage editorPage;
+
+ /**
+ * @param label
+ */
+ public AbstractPolytomousKeyNodeHandler(String label) {
+ super(label);
+ // TODO Auto-generated constructor stub
+ }
+
+
+
+
+}
// $Id$
/**
* Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy
+ * 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.editor.key.polytomous.handler;
-import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.core.commands.operations.AbstractOperation;
import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.handlers.HandlerUtil;
-import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
-import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorLabels;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListEditor;
import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.DeleteNodeOperation;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
-import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @author n.hoffmann
* @created Dec 6, 2010
* @version 1.0
*/
-public class DeleteNodeHandler extends AbstractHandler {
+public class DeleteNodeHandler extends AbstractPolytomousKeyNodeHandler {
+
+
+ PolytomousKeyNode nodeToBeDeleted;
+ /**
+ * @param label
+ */
+ public DeleteNodeHandler(String label) {
+ super(label);
+
+ }
+
+
+
+ public DeleteNodeHandler() {
+ super(PolytomousKeyEditorLabels.DELETE_NODE_POLYTOMOUS_KEY_NODE_LABEL);
+ }
/*
* (non-Javadoc)
- *
+ *
* @see
* org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.
* ExecutionEvent)
for (Object element : selection.toArray()) {
PolytomousKeyNode keyNode = HibernateProxyHelper.deproxy(element, PolytomousKeyNode.class);
-
+
AbstractPostOperation operation = new DeleteNodeOperation(
label, undoContext, keyNode, editorPage);
EditorUtil.executeOperation(operation);
MessageDialog.openInformation(
EditorUtil.getShell(),
"No Key Node Selected",
- "Please right-click on a specific key node to delete a key node.");
- }
+ "Please right-click on a specific key node to delete a key node.");
+ }
}
return null;
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public IStatus allowOperations(ExecutionEvent event) {
+ IEditorPart editor = HandlerUtil.getActiveEditor(event);
+
+ if (editor instanceof KeyEditor) {
+ editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor)
+ .getActiveEditor();
+
+ if (editorPage instanceof PolytomousKeyListEditor) {
+ PolytomousKeyListEditor klEditor = (PolytomousKeyListEditor) editorPage;
+ IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+ if (selection.getFirstElement() instanceof PolytomousKeyNode) {
+ nodeToBeDeleted = (PolytomousKeyNode) selection.getFirstElement();
+ } else {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ PolytomousKeyEditorLabels.NO_KEY_NODE_FOR_CHILD_SELECTED_MESSAGE);
+ }
+ }
+
+ }
+ return Status.OK_STATUS;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AbstractOperation prepareOperation(ExecutionEvent event) {
+ IUndoContext undoContext = EditorUtil.getUndoContext();
+ String label = "";
+ try {
+ label = event.getCommand().getName();
+ } catch (NotDefinedException e) {
+ MessagingUtils.warn(getClass(), "Command name not set.");
+ }
+ return new DeleteNodeOperation(label, undoContext, nodeToBeDeleted, editorPage);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onComplete() {
+ // TODO Auto-generated method stub
+
+ }
+
}
--- /dev/null
+/**
+* Copyright (C) 2016 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.editor.key.polytomous.handler;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.operations.AbstractOperation;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorLabels;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListEditor;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.InsertPolytomousKeyNodeOperation;
+
+/**
+ * @author k.luther
+ * @date 17.11.2016
+ *
+ */
+public class InsertNewNodeHandler extends AbstractPolytomousKeyNodeHandler{
+
+ private PolytomousKeyNode parentNode ;
+
+
+ public InsertNewNodeHandler() {
+ super(PolytomousKeyEditorLabels.INSERT_NODE_POLYTOMOUS_KEY_NODE_LABEL);
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public IStatus allowOperations(ExecutionEvent event) {
+ IEditorPart editor = HandlerUtil.getActiveEditor(event);
+
+ if (editor instanceof KeyEditor) {
+ editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor)
+ .getActiveEditor();
+
+ if (editorPage instanceof PolytomousKeyListEditor) {
+ PolytomousKeyListEditor klEditor = (PolytomousKeyListEditor) editorPage;
+ if(klEditor.getTableItemCount() == 0) {
+ PolytomousKey pk = klEditor.getViewerInputKey();
+ parentNode = pk.getRoot();
+
+ } else {
+ IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+ if (selection.getFirstElement() instanceof PolytomousKeyNode) {
+ parentNode = ((PolytomousKeyNode) selection.getFirstElement()).getParent();
+ } else {
+ return new Status(IStatus.ERROR,
+ "unknown",
+ PolytomousKeyEditorLabels.NO_KEY_NODE_FOR_CHILD_SELECTED_MESSAGE);
+ }
+ }
+ }
+ }
+ return Status.OK_STATUS;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AbstractOperation prepareOperation(ExecutionEvent event) {
+ return new InsertPolytomousKeyNodeOperation(event.getTrigger(), false, parentNode, editorPage);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onComplete() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorLabels;
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyListEditor;
import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.RemotingCreatePolytomousKeyNodeOperation;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler;
/**
* @author cmathew
* @date 21 Jul 2015
*
*/
-public class RemotingCreateChildPolytomousKeyNodeHandler extends RemotingCdmHandler {
+public class RemotingCreateChildPolytomousKeyNodeHandler extends AbstractPolytomousKeyNodeHandler {
private PolytomousKeyNode parentNode;
+ IPolytomousKeyEditorPage editorPage;
+
public RemotingCreateChildPolytomousKeyNodeHandler() {
super(PolytomousKeyEditorLabels.CREATE_CHILD_POLYTOMOUS_KEY_NODE_LABEL);
IEditorPart editor = HandlerUtil.getActiveEditor(event);
if (editor instanceof KeyEditor) {
- IPolytomousKeyEditorPage editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor)
+ editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor)
.getActiveEditor();
if (editorPage instanceof PolytomousKeyListEditor) {
*/
@Override
public AbstractOperation prepareOperation(ExecutionEvent event) {
- return new RemotingCreatePolytomousKeyNodeOperation(event.getTrigger(), false, parentNode);
+ return new RemotingCreatePolytomousKeyNodeOperation(event.getTrigger(), false, parentNode, editorPage);
}
/* (non-Javadoc)
*/
@Override
public void onComplete() {
- // TODO Auto-generated method stub
+
}
+
+
}
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.handlers.HandlerUtil;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.editor.key.KeyEditor;
+import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorLabels;
import eu.etaxonomy.taxeditor.editor.key.polytomous.operation.RemotingCreatePolytomousKeyNodeOperation;
-import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler;
/**
* @author cmathew
* @date 21 Jul 2015
*
*/
-public class RemotingCreateSiblingPolytomousKeyNodeHandler extends RemotingCdmHandler {
+public class RemotingCreateSiblingPolytomousKeyNodeHandler extends AbstractPolytomousKeyNodeHandler {
private PolytomousKeyNode parentNode;
+
public RemotingCreateSiblingPolytomousKeyNodeHandler() {
super(PolytomousKeyEditorLabels.CREATE_SIBLING_POLYTOMOUS_KEY_NODE_LABEL);
}
*/
@Override
public IStatus allowOperations(ExecutionEvent event) {
-
+ IEditorPart editor = HandlerUtil.getActiveEditor(event);
IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
-
+ editorPage = (IPolytomousKeyEditorPage) ((KeyEditor) editor)
+ .getActiveEditor();
if (selection.getFirstElement() instanceof PolytomousKeyNode) {
parentNode = (PolytomousKeyNode) selection.getFirstElement();
} else {
*/
@Override
public AbstractOperation prepareOperation(ExecutionEvent event) {
- return new RemotingCreatePolytomousKeyNodeOperation(event.getTrigger(), false, parentNode.getParent());
+ return new RemotingCreatePolytomousKeyNodeOperation(event.getTrigger(), false, parentNode.getParent(), editorPage);
}
/* (non-Javadoc)
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
* @author n.hoffmann
*
*/
-public class DeleteNodeOperation extends AbstractPostTaxonOperation {
+public class DeleteNodeOperation extends AbstractPostOperation<PolytomousKeyNode> {
private final PolytomousKeyNode parent;
private final PolytomousKeyNode node;
+
public DeleteNodeOperation(String label, IUndoContext undoContext,
PolytomousKeyNode node, IPostOperationEnabled postOperationEnabled) {
- super(label, undoContext, postOperationEnabled);
+ super(label, undoContext, node, postOperationEnabled);
this.node = node;
this.parent = node.getParent();
}
} else{
result = service.delete(node.getUuid(), true);
}
-
+
if (!result.isOk() || result.getExceptions().size() > 0){
Exception t = new Exception();
if (result.getExceptions().size() >1){
--- /dev/null
+/**
+* Copyright (C) 2016 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.editor.key.polytomous.operation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmDefaultOperation;
+
+/**
+ * @author k.luther
+ * @date 17.11.2016
+ *
+ */
+public class InsertPolytomousKeyNodeOperation extends RemotingCdmDefaultOperation {
+
+ private final PolytomousKeyNode parentNode;
+
+ private final static String LABEL = "Insert new polytomous key node";
+
+ /**
+ *
+ */
+ protected IPostOperationEnabled postOperationEnabled;
+
+ /**
+ * @param label
+ * @param action
+ * @param source
+ * @param async
+ */
+ public InsertPolytomousKeyNodeOperation(Object source,
+ boolean async,
+ PolytomousKeyNode parentNode, IPostOperationEnabled postOperationEnabled) {
+ super(LABEL, Action.Create, source, async);
+ this.parentNode = parentNode;
+ this.postOperationEnabled = postOperationEnabled;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected CdmBase doSimpleExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
+ PolytomousKeyNode childNode = PolytomousKeyNode.NewInstance();
+ List<PolytomousKeyNode> newChildren = parentNode.getChildren();
+ List<PolytomousKeyNode> copy = new ArrayList<PolytomousKeyNode>();
+ for (PolytomousKeyNode node: newChildren) {
+ copy.add(node);
+ }
+ parentNode.addChild(childNode, 0);
+ for (PolytomousKeyNode node: copy){
+ childNode.addChild(node);
+ }
+ this.postOperationEnabled.postOperation(childNode);
+ return childNode;
+ }
+
+}
import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.operation.RemotingCdmDefaultOperation;
/**
public class RemotingCreatePolytomousKeyNodeOperation extends RemotingCdmDefaultOperation {
private final PolytomousKeyNode parentNode;
+ private PolytomousKeyNode childNode;
+ /**
+ *
+ */
+ protected IPostOperationEnabled postOperationEnabled;
+
+ public PolytomousKeyNode getChildNode() {
+ return childNode;
+ }
private final static String LABEL = "Create new polytomous key node";
public RemotingCreatePolytomousKeyNodeOperation(Object source,
boolean async,
- PolytomousKeyNode parentNode){
+ PolytomousKeyNode parentNode, IPostOperationEnabled postOperationEnabled){
super(LABEL, Action.Create, source, async);
this.parentNode = parentNode;
+ this.postOperationEnabled = postOperationEnabled;
}
/* (non-Javadoc)
*/
@Override
protected CdmBase doSimpleExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
- PolytomousKeyNode childNode = PolytomousKeyNode.NewInstance();
+ childNode = PolytomousKeyNode.NewInstance();
parentNode.addChild(childNode);
- return childNode;
+ if (postOperationEnabled.postOperation(childNode)){
+ return childNode;
+ }else {
+ return null;
+ }
}
+
+
+
+
+
}
package eu.etaxonomy.taxeditor.editor.name.dnd;
import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWTException;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTargetAdapter;
import org.eclipse.swt.dnd.DropTargetEvent;
import eu.etaxonomy.cdm.model.common.ICdmBase;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
-import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
import eu.etaxonomy.taxeditor.editor.IDropTargetable;
import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
import eu.etaxonomy.taxeditor.editor.name.container.AbstractHomotypicalGroupContainer;
-import eu.etaxonomy.taxeditor.editor.name.container.HomotypicalSynonymGroup;
import eu.etaxonomy.taxeditor.editor.name.container.MisappliedGroup;
import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptRelationshipTypeOperation;
import eu.etaxonomy.taxeditor.editor.name.operation.ChangeConceptToSynonymOperation;
.getLogger(ChangeSynonymToAcceptedTaxonHandler.class);
private MultiPageTaxonEditor editor;
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
/** {@inheritDoc} */
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
import org.eclipse.core.commands.IHandler;
import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.handlers.HandlerUtil;
-import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.DeleteResult;
+import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.Messages;
import eu.etaxonomy.taxeditor.editor.Page;
+import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
import eu.etaxonomy.taxeditor.editor.name.operation.DeleteMisapplicationOperation;
import eu.etaxonomy.taxeditor.editor.name.operation.DeleteSynonymOperation;
-import eu.etaxonomy.taxeditor.editor.name.operation.DeleteTaxonOperation;
+import eu.etaxonomy.taxeditor.editor.name.operation.DeleteTaxonBaseOperation;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.model.DeleteResultMessagingUtils;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
} catch (NotDefinedException e) {
MessagingUtils.error(getClass(), e);
}
-
+ IWorkbenchPage activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
// synonym
if(selectedElement instanceof Synonym){
- operation = new DeleteSynonymOperation(commandName, editor.getUndoContext(), editor.getTaxon(), (Synonym) selectedElement, editor);
+ if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), Messages.DeleteTaxonBaseHandler_CONFIRM_DELETION, Messages.DeleteTaxonBaseHandler_REALLY_DELETE_SYNONYM)){
+ return ;
+ }
+ operation = new DeleteSynonymOperation(commandName, editor.getUndoContext(), new SynonymDeletionConfigurator(), activePage, editor.getTaxon(), (Synonym) selectedElement,this, editor, (ICdmEntitySessionEnabled)editor.getEditorInput());
+
}
// misapplication
else if(selectedElement instanceof Taxon && ((Taxon) selectedElement).isMisapplication()){
operation = new DeleteMisapplicationOperation(commandName, editor.getUndoContext(), editor
.getTaxon(), (Taxon) selectedElement, editor);
}
- else if (selectedElement instanceof Taxon){
- //TODO: how to get the actual classification
- if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), Messages.DeleteTaxonBaseHandler_CONFIRM_DELETION, Messages.DeleteTaxonBaseHandler_REALLY_DELETE_TAXON)){
- return ;
- }
-
- IWorkbenchPage activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
-
- operation = new DeleteTaxonOperation(commandName,
- editor.getUndoContext(),
- (Taxon) selectedElement,
- new TaxonDeletionConfigurator(),
- null,
- activePage,
- this,
- editor,
- (ICdmEntitySessionEnabled)editor.getEditorInput());
- //editor.dispose();
-
- }
else {
throw new IllegalArgumentException(Messages.DeleteTaxonBaseHandler_ELEMENT_MUST_BE_SYNONYM_MISAPP_CONCEPT);
}
AbstractUtility.executeOperation(operation);
+ DeleteResult result = ((DeleteTaxonBaseOperation)operation).getResult();
+ if (result.isError()){
+ DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteDerivateOperation_DELETE_FAILED, TaxeditorEditorPlugin.PLUGIN_ID);
+ } else if (selectedElement instanceof Synonym){
+ this.editor.redraw();
+ if (!result.getUpdatedObjects().isEmpty()){
+ DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteTaxonBaseHandler_DELETE_SYNONYM_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS, TaxeditorEditorPlugin.PLUGIN_ID);
+ }
+ }else {
+ if (!result.getUpdatedObjects().isEmpty()){
+ DeleteResultMessagingUtils.messageDialogWithDetails(result, Messages.DeleteTaxonBaseHandler_DELETE_MISAPPLIEDNAME_SUCCESSFULL_BUT_REMAINING_RELATED_OBJECTS, TaxeditorEditorPlugin.PLUGIN_ID);
+ }
+ }
+
}
@Override
public boolean postOperation(CdmBase objectAffectedByOperation) {
- Display.getDefault().asyncExec(new Runnable(){
- @Override
- public void run() {
- AbstractUtility.close(editor.getMultiPageTaxonEditor());
- }
- });
return true;
}
@Override
public boolean onComplete() {
- // TODO Auto-generated method stub
+
return false;
}
package eu.etaxonomy.taxeditor.editor.name.handler;
-import java.util.Set;
-
import org.eclipse.core.expressions.PropertyTester;
import org.eclipse.jface.viewers.IStructuredSelection;
public NameEditorMenuPropertyTester() {
}
- /* (non-Javadoc)
- * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
- */
/** {@inheritDoc} */
@Override
public boolean test(Object receiver, String property, Object[] args,
private boolean isNotHomotypicSynonymOfAcceptedTaxon(Object selectedElement) {
if (isSynonym(selectedElement)){
Synonym synonym = (Synonym) selectedElement;
- for (Taxon taxon:synonym.getAcceptedTaxa()){
- if (taxon.getHomotypicGroup().equals(synonym.getHomotypicGroup())){
- return false;
- }
+ Taxon taxon = synonym.getAcceptedTaxon();
+ if (taxon != null &&
+ taxon.getHomotypicGroup().equals(synonym.getHomotypicGroup())){
+ return false;
}
}
return true;
return ((Taxon) selectedElement).isOrphaned();
}
else if(selectedElement instanceof Synonym){
- Set<Taxon> acceptedTaxa = ((Synonym) selectedElement).getAcceptedTaxa();
- for (Taxon taxon : acceptedTaxa) {
- if(!taxon.isOrphaned()){
- return false;
- }
- }
+ return ((Synonym) selectedElement).isOrphaned();
}
return false;
}
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
private TaxonRelationship taxonRelationship;
private TaxonRelationshipType oldRelationshipType;
- private SynonymRelationship newSynonymRelationship;
-
/**
* <p>Constructor for ChangeConceptToSynonymOperation.</p>
*
this.homotypicalGroup = homotypicalGroup != null ? homotypicalGroup : HomotypicalGroup.NewInstance();
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
return postExecute(synonym);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus redo(IProgressMonitor monitor, IAdaptable info)
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus undo(IProgressMonitor monitor, IAdaptable info)
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
+import eu.etaxonomy.cdm.model.taxon.SynonymType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
*
* @author n.hoffmann
* @created 19.01.2009
- * @version 1.0
*/
public class ChangeHomotypicGroupOperation extends AbstractPostTaxonOperation {
this.newHomotypicalGroup = newHomotypicalGroup != null ? newHomotypicalGroup : HomotypicalGroup.NewInstance();
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
monitor.worked(40);
newHomotypicalGroup = HibernateProxyHelper.deproxy(newHomotypicalGroup, HomotypicalGroup.class);
newHomotypicalGroup.addTypifiedName(synonymName);
-
- if(! synonym.getAcceptedTaxa().contains(element)){
- for(Taxon acceptedTaxon : synonym.getAcceptedTaxa()){
- acceptedTaxon.removeSynonym(synonym);
+
+ Taxon acc = synonym.getAcceptedTaxon();
+ if(acc == null || !acc.equals(element)){
+ if(acc != null){
+ acc.removeSynonym(synonym);
}
-
- SynonymRelationshipType type = SynonymRelationshipType.HETEROTYPIC_SYNONYM_OF();
+
+ SynonymType type = SynonymType.HETEROTYPIC_SYNONYM_OF();
if(newHomotypicalGroup.getTypifiedNames().contains(element.getName())){
- type = SynonymRelationshipType.HOMOTYPIC_SYNONYM_OF();
+ type = SynonymType.HOMOTYPIC_SYNONYM_OF();
}
element.addSynonym(synonym, type);
return postExecute(synonym);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus redo(IProgressMonitor monitor, IAdaptable info)
return execute(monitor, info);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus undo(IProgressMonitor monitor, IAdaptable info)
//this.namesInHomotypicGroup = namesInHomotypicalGroup;
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
+
/** {@inheritDoc} */
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
newNode = (TaxonNode) CdmStore.getService(ITaxonService.class).changeSynonymToAcceptedTaxon(synonym.getUuid(),
element.getUuid(),
parentNode.getUuid(),
- true,
- true,
- null,
- null).getCdmEntity();
+ true).getCdmEntity();
} catch (HomotypicalGroupChangeException e) {
MessagingUtils.warningDialog("Operation may lead to inconsistent data", getClass(), e.getMessage());
return postExecute(null);
return postExecute(newNode);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus redo(IProgressMonitor monitor, IAdaptable info)
return execute(monitor, info);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus undo(IProgressMonitor monitor, IAdaptable info)
import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
+import eu.etaxonomy.cdm.model.taxon.SynonymType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
private final Synonym synonym;
private Taxon misapplication;
- private Set<SynonymRelationshipType> synonymTypes;
+ private Set<SynonymType> synonymTypes;
/**
* <p>Constructor for ChangeSynonymToMisapplicationOperation.</p>
CdmStore.getService(ITaxonService.class).saveOrUpdate(misapplication);
monitor.worked(20);
- // store synonymRelationshipType for later undo operations
+ // store SynonymType for later undo operations
synonymTypes = synonym.getRelationType(element);
// remove synonym from taxon
element.removeTaxon(misapplication, TaxonRelationshipType.MISAPPLIED_NAME_FOR());
// add synonym to taxon
- for (SynonymRelationshipType synonymType : synonymTypes){
+ for (SynonymType synonymType : synonymTypes){
element.addSynonym(synonym, synonymType);
}
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
import eu.etaxonomy.cdm.model.name.NonViralName;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
*
* @author n.hoffmann
* @created 02.02.2009
- * @version 1.0
*/
public class CreateSynonymInExistingHomotypicalGroupOperation extends
AbstractPostTaxonOperation {
private final HomotypicalGroup group;
private final NonViralName newSynonymName;
- private SynonymRelationship synonymRelationship;
+ private Synonym synonym;
/**
* <p>Constructor for CreateSynonymInExistingHomotypicalGroupOperation.</p>
this.newSynonymName = newSynonymName;
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
// Create a new synonym for the taxon
// TODO add citations
if(group.equals(element.getHomotypicGroup())){
- synonymRelationship = element.addHomotypicSynonymName(newSynonymName, null, null);
+ synonym = element.addHomotypicSynonymName(newSynonymName);
}else{
- synonymRelationship = element.addHeterotypicSynonymName(newSynonymName);
+ synonym = element.addHeterotypicSynonymName(newSynonymName);
}
monitor.worked(40);
// }
// }
- return postExecute(synonymRelationship.getSynonym());
+ return postExecute(synonym);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus redo(IProgressMonitor monitor, IAdaptable info)
return execute(monitor, info);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus undo(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
- element.removeSynonymRelation(synonymRelationship);
+ element.removeSynonym(synonym);
return postExecute(null);
}
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
+import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
* @author p.ciardelli
* @author n.hoffmann
* @created 16.01.2009
- * @version 1.0
*/
public class CreateSynonymInNewGroupOperation extends AbstractPostTaxonOperation {
- // TODO replace this with TaxonNameBase
private final TaxonNameBase newSynonymName;
- private SynonymRelationship newSynonymRelationship;
+ private Synonym newSynonym;
/**
* <p>Constructor for CreateSynonymInNewGroupOperation.</p>
this.newSynonymName = newSynonymName;
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
monitor.worked(20);
HibernateProxyHelper.deproxy(element);
// Create a new synonym for the taxon
- newSynonymRelationship = element.addHeterotypicSynonymName(newSynonymName);
+ newSynonym = element.addHeterotypicSynonymName(newSynonymName);
monitor.worked(40);
- return postExecute(newSynonymRelationship.getSynonym());
+ return postExecute(newSynonym);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus redo(IProgressMonitor monitor, IAdaptable info)
return execute(monitor, info);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus undo(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
// Remove the synonym
- element.removeSynonymRelation(newSynonymRelationship);
- newSynonymRelationship = null;
+ element.removeSynonym(newSynonym);
+ newSynonym = null;
return postExecute(null);
}
package eu.etaxonomy.taxeditor.editor.name.operation;
-import java.util.Set;
-
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 org.eclipse.ui.IWorkbenchPage;
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.DeleteResult;
import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.api.service.config.TaxonBaseDeletionConfigurator;
import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
+import eu.etaxonomy.cdm.model.taxon.SynonymType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
-import eu.etaxonomy.taxeditor.model.DeleteResultMessagingUtils;
-import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
*
* @author p.ciardelli
* @created 14.01.2009
- * @version 1.0
*/
-public class DeleteSynonymOperation extends AbstractPostTaxonOperation {
+public class DeleteSynonymOperation extends DeleteTaxonBaseOperation {
private final Synonym synonym;
- private Set<SynonymRelationshipType> synonymTypes;
+ private SynonymType synonymType;
+
/**
* <p>Constructor for DeleteSynonymOperation.</p>
* @param synonym a {@link eu.etaxonomy.cdm.model.taxon.Synonym} object.
* @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
*/
- public DeleteSynonymOperation(String label, IUndoContext undoContext,
- Taxon taxon, Synonym synonym, IPostOperationEnabled postOperationEnabled) {
- super(label, undoContext, taxon, postOperationEnabled);
+ public DeleteSynonymOperation(String label, IUndoContext undoContext, TaxonBaseDeletionConfigurator configurator,IWorkbenchPage activePage,
+ Taxon taxon, Synonym synonym, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled,ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, configurator, activePage, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
this.synonym = synonym;
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
- // Store synonymRelationshipType for later undo operations
- synonymTypes = synonym.getRelationType(element);
- monitor.worked(20);
+ // Store SynonymType for later undo operations
+ synonymType = synonym.getType();
+ monitor.worked(20);
- // Remove synonym from taxon
+ // Remove synonym from taxon
+ ICdmApplicationConfiguration controller;
- ICdmApplicationConfiguration controller;
+ controller = CdmStore.getCurrentApplicationConfiguration();
- controller = CdmStore.getCurrentApplicationConfiguration();
+ ITaxonService service = controller.getTaxonService();
+ if (synonym.getId() == 0){
+ element.removeSynonym(synonym);
- ITaxonService service = controller.getTaxonService();
- if (synonym.getId() == 0){
- element.removeSynonym(synonym);
+ } else {
+ //TODO: this should be moved to the handler, the operations should not contain ui code
+ setResult(service.deleteSynonym(synonym.getUuid(), null));
- } else {
-//TODO: this should be moved to the handler, the operations should not contain ui code
- DeleteResult result = service.deleteSynonym(synonym.getUuid(), element.getUuid(), null);
- if (result.isError()){
- DeleteResultMessagingUtils.messageDialogWithDetails(result, "Delete failed", TaxeditorEditorPlugin.PLUGIN_ID);
- } else if (!result.getUpdatedObjects().isEmpty()){
- DeleteResultMessagingUtils.messageDialogWithDetails(result, "The Synonym could be deleted, but related object(s) could not be deleted", TaxeditorEditorPlugin.PLUGIN_ID);
- }
- }
- // taxon.removeSynonym(synonym);
+ }
+ // taxon.removeSynonym(synonym);
// CdmStore.getTaxonService().deleteSynonymRelationships(synonym);
// CdmStore.getTaxonService().delete(synonym);
- monitor.worked(40);
+ monitor.worked(40);
- // Redraw editor if exists
+ // Redraw editor if exists
- return postExecute(element);
+ return postExecute(element);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus redo(IProgressMonitor monitor, IAdaptable info)
return execute(monitor, info);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus undo(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
// Add synonym to taxon
- for (SynonymRelationshipType synonymType : synonymTypes){
- element.addSynonym(synonym, synonymType);
- }
+ element.addSynonym(synonym, synonymType);
// Redraw editor if exists
return postExecute(synonym);
}
+
+ /**
+ * @return the result
+ */
+ @Override
+ public DeleteResult getResult() {
+ return result;
+ }
+
+ /**
+ * @param result the result to set
+ */
+ public void setResult(DeleteResult result) {
+ this.result = result;
+ }
}
import org.eclipse.ui.IWorkbenchPage;\r
\r
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;\r
-import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;\r
+import eu.etaxonomy.cdm.api.service.DeleteResult;\r
+import eu.etaxonomy.cdm.api.service.config.TaxonBaseDeletionConfigurator;\r
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;\r
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;\r
\r
public class DeleteTaxonBaseOperation extends AbstractPersistentPostOperation {\r
\r
- protected TaxonDeletionConfigurator configurator;\r
+ protected TaxonBaseDeletionConfigurator configurator;\r
+ protected DeleteResult result;\r
\r
public DeleteTaxonBaseOperation(String label,\r
IUndoContext undoContext,\r
- TaxonDeletionConfigurator configurator,\r
+ TaxonBaseDeletionConfigurator configurator,\r
IWorkbenchPage activePage,\r
IPostOperationEnabled postOperationEnabled,\r
IConversationEnabled conversationEnabled,\r
// TODO Auto-generated method stub\r
return null;\r
}\r
+\r
+ public DeleteResult getResult(){\r
+ return result;\r
+ }\r
}\r
\r
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;\r
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;\r
-import eu.etaxonomy.cdm.api.service.DeleteResult;\r
import eu.etaxonomy.cdm.api.service.ITaxonService;\r
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;\r
import eu.etaxonomy.cdm.model.taxon.Classification;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
-import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;\r
-import eu.etaxonomy.taxeditor.model.DeleteResultMessagingUtils;\r
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;\r
import eu.etaxonomy.taxeditor.store.CdmStore;\r
\r
ITaxonService service = controller.getTaxonService();\r
\r
- DeleteResult result = service.deleteTaxon(element.getUuid(), configurator, classification.getUuid());\r
+ result = service.deleteTaxon(element.getUuid(), (TaxonDeletionConfigurator)configurator, classification.getUuid());\r
- if (result.isError()){\r
- DeleteResultMessagingUtils.messageDialogWithDetails(result, "Delete failed", TaxeditorEditorPlugin.PLUGIN_ID);\r
- } else if (!result.getUpdatedObjects().isEmpty()){\r
- DeleteResultMessagingUtils.messageDialogWithDetails(result, "The Taxon was deleted, but related object(s) could not be deleted", TaxeditorEditorPlugin.PLUGIN_ID);\r
- }\r
+\r
\r
monitor.worked(40);\r
\r
import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.taxeditor.editor.EditorUtil;\r
import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;\r
TaxonNameBase<?, ?> synonymName = synonym.getName();\r
monitor.worked(20);\r
\r
-\r
-\r
// Switch groups\r
\r
monitor.worked(40);\r
- SynonymRelationship synRel = synonym.getSynonymRelations().iterator().next();\r
-\r
-\r
\r
((TaxonNameEditor)EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor()).getConversationHolder().commit();\r
UpdateResult result;\r
\r
-\r
try {\r
- result = CdmStore.getService(ITaxonService.class).moveSynonymToAnotherTaxon(synRel,\r
+ result = CdmStore.getService(ITaxonService.class).moveSynonymToAnotherTaxon(synonym,\r
this.element.getUuid(),\r
true,\r
- synRel.getType(),\r
+ synonym.getType(),\r
null,\r
null,\r
true);\r
}\r
((TaxonNameEditor)EditorUtil.getActiveMultiPageTaxonEditor().getActiveEditor()).getConversationHolder().commit();\r
\r
-\r
-\r
// Redraw editor if it exists\r
- return postExecute(synRel.getSynonym());\r
+ return postExecute(synonym);\r
}\r
\r
@Override\r
import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
+import eu.etaxonomy.cdm.model.taxon.SynonymType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
*
* @author n.hoffmann
* @created 23.04.2009
- * @version 1.0
*/
public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation {
private final Synonym synonym;
// TODO store the old relationship for undo reasons
- private SynonymRelationshipType synonymRelationshipType;
+ private SynonymType synonymType;
/**
* <p>Constructor for SwapSynonymAndAcceptedOperation.</p>
this.synonym = synonym;
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
return postExecute(element);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus redo(IProgressMonitor monitor, IAdaptable info)
return execute(monitor, info);
}
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
- */
/** {@inheritDoc} */
@Override
public IStatus undo(IProgressMonitor monitor, IAdaptable info)
}
}
- if(columnIndex >2 || (!PreferencesUtil.isShowRankInChecklistEditor() && columnIndex > 1)){
+ if(columnIndex >2 || (!PreferencesUtil.isShowRankInChecklistEditor() && columnIndex > 0)){
for (TaxonDescription td : listTaxonDescriptions) {
for (DescriptionElementBase deb : td.getElements()) {
if (!PreferencesUtil.isShowIdInVocabularyInChecklistEditor()){
sameArea = column.getText().equalsIgnoreCase(term.getTitleCache());
} else{
- sameArea = column.getText().equalsIgnoreCase(term.getIdInVocabulary());
+ if (term.getIdInVocabulary() != null){
+ sameArea = column.getText().equalsIgnoreCase(term.getIdInVocabulary());
+ } else{
+ sameArea = column.getText().equalsIgnoreCase(term.getTitleCache());
+ }
}
if (sameArea) {
NamedArea area = (NamedArea) term;
}
Taxon taxon = (Taxon) element;
NonViralName<?> nonVirlaName = HibernateProxyHelper.deproxy(taxon.getName(), NonViralName.class);
- Reference reference = HibernateProxyHelper.deproxy(nonVirlaName.getNomenclaturalReference(), Reference.class);
- String rank = taxon.getName().getRank().toString();
+ // Reference reference = HibernateProxyHelper.deproxy(nonVirlaName.getNomenclaturalReference(), Reference.class);
+ // String rank = taxon.getName().getRank().toString();
//TaxonName
if (nonVirlaName.getNameCache()!=null && nonVirlaName.getNameCache().matches(searchString)) {
return true;
/**
- *
+ *
*/
package eu.etaxonomy.taxeditor.editor.view.concept.handler;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @version 1.0
*/
public abstract class AbstractDynamicConceptRelationMenu extends ContributionItem {
-
+
/*
* (non-Javadoc)
* @see org.eclipse.jface.action.ContributionItem#fill(org.eclipse.swt.widgets.Menu, int)
} catch (Exception e) {
EditorUtil.error(getClass(), "Error executing command", e);
}
- }
+ }
});
*/
for(final TaxonRelationshipType taxonRelationshipType: CdmStore.getTermManager().getPreferredTerms(TaxonRelationshipType.class)){
+ if (!taxonRelationshipType.equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())){
MenuItem menuItem = new MenuItem(menu, -1);
menuItem.setText(taxonRelationshipType.getTitleCache());
menuItem.setData(taxonRelationshipType);
menuItem.addSelectionListener(new SelectionListener(){
- public void widgetDefaultSelected(SelectionEvent e) {}
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {}
- public void widgetSelected(SelectionEvent ev) {
+ @Override
+ public void widgetSelected(SelectionEvent ev) {
Event event = new Event();
event.data = taxonRelationshipType;
try {
} catch (Exception e) {
MessagingUtils.error(getClass(), "Error executing command", e);
}
- }
+ }
});
+ }
}
}
-
+
/**
* <p>getCommandName</p>
*
+++ /dev/null
-// $Id$
-/**
-* Copyright (C) 2013 EDIT
-* European Distributed Institute of Taxonomy
-* http://www.e-taxonomy.eu
-*
-* The contents of this file are subject&n