package eu.etaxonomy.taxeditor.annotatedlineeditor;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
+
/**
* Performs the retrieving and saving of a list of entities edited by a <code>ListEditor</code>,
*
* @param entity a {@link java.lang.Object} object.
* @return a boolean.
+ * @throws ReferencedObjectUndeletableException
*/
- boolean delete(T entity);
+ boolean delete(T entity) throws ReferencedObjectUndeletableException;
}
import eu.etaxonomy.cdm.api.application.CdmApplicationController;
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.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService;
import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;
LineAnnotation annotation = (LineAnnotation) model.getAnnotation(object);
try {
+ CdmApplicationController controller;
+ controller = (CdmApplicationController) CdmStore.getCurrentApplicationConfiguration();
//persistenceService.delete(object);
if (object instanceof SpecimenOrObservationBase){
- CdmApplicationController controller;
-
- controller = (CdmApplicationController) CdmStore.getCurrentApplicationConfiguration();
IOccurrenceService service = controller.getOccurrenceService();
service.delete((SpecimenOrObservationBase)object);
+ } else if (object instanceof Reference){
+ IReferenceService service = controller.getReferenceService();
+ service.delete((Reference)object);
}
} catch (Exception e){
import java.util.List;
import java.util.UUID;
+import org.eclipse.core.commands.ExecutionException;
+
import eu.etaxonomy.cdm.api.service.IAgentService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
return CdmStore.getService(IAgentService.class).load(uuid, propertyPaths);
}
- /** {@inheritDoc} */
- public boolean delete(AgentBase entity) {
- return CdmStore.getService(IAgentService.class).delete(entity) != null;
+
+ public boolean delete(AgentBase entity) throws ReferencedObjectUndeletableException {
+
+ return CdmStore.getService(IAgentService.class).delete(entity) != null;
+
}
/** {@inheritDoc} */
import eu.etaxonomy.cdm.api.service.IGroupService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.model.common.Group;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.GroupCreator;
* @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#delete(java.lang.Object)
*/
@Override
- public boolean delete(Group entity) {
+ public boolean delete(Group entity) throws ReferencedObjectUndeletableException {
return CdmStore.getService(IGroupService.class).delete(entity) != null;
}
import eu.etaxonomy.cdm.api.service.INameService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
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} */
- public boolean delete(TaxonNameBase entity) {
+ /** {@inheritDoc}
+ * @throws ReferencedObjectUndeletableException */
+ public boolean delete(TaxonNameBase entity) throws ReferencedObjectUndeletableException {
return CdmStore.getService(INameService.class).delete(entity) != null;
}
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#delete(java.lang.Object)
*/
- /** {@inheritDoc} */
+ /** {@inheritDoc}
+ * @throws ReferencedObjectUndeletableException */
@Override
- public boolean delete(SpecimenOrObservationBase entity) {
+ public boolean delete(SpecimenOrObservationBase entity) throws ReferencedObjectUndeletableException {
return CdmStore.getService(IOccurrenceService.class).delete(entity) != null;
}
import eu.etaxonomy.cdm.api.service.IReferenceService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.model.common.MarkerType;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
return CdmStore.getService(IReferenceService.class).load(entityUuid, propertyPaths);
}
- /** {@inheritDoc} */
- public boolean delete(Reference entity) {
+ /** {@inheritDoc}
+ * @throws ReferencedObjectUndeletableException */
+ public boolean delete(Reference entity) throws ReferencedObjectUndeletableException {
return CdmStore.getService(IReferenceService.class).delete(entity) != null;
}
import eu.etaxonomy.cdm.api.service.IUserService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.model.common.User;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.UserCreator;
* @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#delete(java.lang.Object)
*/
@Override
- public boolean delete(User entity) {
+ public boolean delete(User entity) throws ReferencedObjectUndeletableException {
return CdmStore.getService(IUserService.class).delete(entity) != null;
}
class="eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart"
icon="icons/address-book-new.png"
id="eu.etaxonomy.taxeditor.editor.view.descriptive"
- name="Descriptive"
+ name="Factual Data"
restorable="true">
</view>
<view
</separator>
<command
commandId="org.eclipse.ui.views.showView"
- label="Descriptive"
+ label="Factual Data"
style="push">
<parameter
name="org.eclipse.ui.views.showView.viewId"
locationURI="popup:eu.etaxonomy.taxeditor.editor.view.descriptive">
<command
commandId="eu.etaxonomy.taxeditor.description.commands.adddescription"
- label="New Descriptive Data"
+ label="New Factual Data"
style="push">
</command>
<separator
</command>
<category
id="eu.etaxonomy.taxeditor.editor.view.descriptive.command.category"
- name="-- Descriptive">
+ name="-- Factual">
</category>
<command
categoryId="eu.etaxonomy.taxeditor.editor.view.descriptive.command.category"
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
bind();
- CdmStore.getService(IPolytomousKeyService.class).delete(key);
+ try{
+ CdmStore.getService(IPolytomousKeyService.class).delete(key);
+ }catch(ReferencedObjectUndeletableException e){
+ throw new ExecutionException(e.getMessage());
+ }
return postExecute(null);
}
import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.ITreeNode;
import eu.etaxonomy.cdm.model.taxon.Classification;
StoreUtil.warningDialog("Tree is not empty", this, "It is not possible to delete a Taxonomic Tree that " +
"is not empty. Please delete included taxa first");
}else{
+ try{
CdmStore.getService(IClassificationService.class).delete(taxonomicTree);
+ }catch(ReferencedObjectUndeletableException e){
+ throw new ExecutionException(e.getMessage());
+ }
}
} else {
try {
\r
import eu.etaxonomy.cdm.api.service.ITermService;\r
import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
+import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException;\r
+import eu.etaxonomy.cdm.model.common.DefinedTerm;\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
import eu.etaxonomy.cdm.model.common.TermBase;\r
import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
} \r
\r
definedEditorInput.getVocabularies().remove((TermVocabulary)termBase); \r
- CdmStore.getService(IVocabularyService.class).delete((TermVocabulary)termBase);\r
- \r
+ try{\r
+ CdmStore.getService(IVocabularyService.class).delete((TermVocabulary)termBase);\r
+ } catch (DataChangeNoRollbackException e) {\r
+ \r
+ throw new ExecutionException(e.getMessage());\r
+ \r
+ }\r
\r
} else if (termBase instanceof DefinedTermBase) {\r
\r
if(vocabulary != null){\r
vocabulary.removeTerm(definedTermBase);\r
}\r
- CdmStore.getService(ITermService.class).delete((DefinedTermBase)termBase);\r
- \r
+ try{\r
+ CdmStore.getService(ITermService.class).delete((DefinedTermBase)termBase);\r
+ } catch (DataChangeNoRollbackException e) {\r
+ \r
+ throw new ExecutionException(e.getMessage());\r
+ \r
+ }\r
}\r
\r
return postExecute(termBase);\r
import java.util.List;
+import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.swt.widgets.Text;
import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
+import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException;
import eu.etaxonomy.cdm.model.description.FeatureTree;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
/**
* <p>SelectFeatureTreeWizardPage class.</p>
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
for(Object element : selection.toArray()){
viewer.remove(element);
- CdmStore.getService(IFeatureTreeService.class).delete((FeatureTree) element);
+ try{
+ CdmStore.getService(IFeatureTreeService.class).delete((FeatureTree) element);
+ } catch (DataChangeNoRollbackException d) {
+
+ StoreUtil.warningDialog(
+ "Feature can not be removed",
+ this,
+ "The selected feature can not be removed from the feature tree.");
+
+ }
viewer.setSelection(new StructuredSelection(new Object[0]));
}
}
import java.util.Set;
import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.common.MarkerType;
import eu.etaxonomy.cdm.model.description.AbsenceTerm;
* <p>delete</p>
*
* @param selected a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase} object.
+ * @throws ReferencedObjectUndeletableException
*/
- public static void delete(DefinedTermBase selected) {
+ public static void delete(DefinedTermBase selected) throws ReferencedObjectUndeletableException {
CdmStore.getService(ITermService.class).delete(selected);
}
if (term.getTitleCache() != null) {
label = term.getTitleCache();
StoreUtil.warn(getClass(),
- "Term does not have a representation: " + term
+ "Term does not have a default language representation: " + label
+ ", " + term.getUuid());
} else {
label = "Unknown";
/*
* (non-Javadoc)
- *
- * @see
- * eu.etaxonomy.taxeditor.forms.IEnableableFormElement#setEnabled(boolean)
+ * @see eu.etaxonomy.taxeditor.forms.IEnableableFormElement#setEnabled(boolean)
*/
/** {@inheritDoc} */
public void setEnabled(boolean enabled) {
* @return a {@link java.lang.String} object.
*/
protected String getLabel(T term) {
- return term.getLabel(CdmStore.getDefaultLanguage());
+ if (term == null){
+ return "";
+ }else{
+ return term.getLabel(CdmStore.getDefaultLanguage());
+ }
}
/**