Bundle-ManifestVersion: 2
Bundle-Name: Application
Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
-Bundle-Version: 4.2.0
+Bundle-Version: 4.3.0
Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
Bundle-Vendor: EDIT
Bundle-Localization: OSGI-INF/l10n/plugin
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: Bulkeditor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.bulkeditor;singleton:=true
-Bundle-Version: 4.2.0
+Bundle-Version: 4.3.0
Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
</visibleWhen>
</menu>
<separator
- name="taxeditor-bulkeditor.separator4"\r
- visible="true">\r
+ name="taxeditor-bulkeditor.separator4"
+ visible="true">
</separator>
<command
commandId="bulkeditor.commands.setmergetarget"
</reference>
</visibleWhen>
</command>
- <separator\r
- name="eu.etaxonomy.taxeditor.bulkeditor.separator1"\r
- visible="true">\r
- </separator>\r
+ <separator
+ name="eu.etaxonomy.taxeditor.bulkeditor.separator1"
+ visible="true">
+ </separator>
<command
commandId="eu.etaxonomy.taxeditor.bulkeditor.convertTeam2Person"
label="%command.label.5"
allPopups="false"
locationURI="menu:eu.etaxonomy.taxeditor.menu.showView?after=org.eclipse.ui.views.showView.supplemental">
<command
- commandId="eu.etaxonomy.taxeditor.openReferencingObjectsView"
+ commandId="eu.etaxonomy.taxeditor.openReferencingObjectsViewFromMenu"
label="%command.label.OPEN_REFERENCING_OBJECTS_VIEW"
style="push">
+ <visibleWhen
+ checkEnabled="true">
+ <reference
+ definitionId="isCdmStoreConnected">
+ </reference>
+ </visibleWhen>
</command>
</menuContribution>
</extension>
name="%command.name.10">
</command>
<command
- defaultHandler="eu.etaxonomy.taxeditor.handler.defaultHandler.OpenReferencingObjectsView"
id="eu.etaxonomy.taxeditor.openReferencingObjectsView"
name="%command.name.OPEN_REFERENCING_OBJECTS_VIEW">
</command>
id="eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForTaxonNode"
name="%command.name.OPEN_BULK_EDITOR_FOR_TAXON_NODE">
</command>
+ <command
+ id="eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForIdentifiableEntity"
+ name="Open bulk editor for identifiable entity">
+ <commandParameter
+ id="eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForIdentifiableEntity.uuid"
+ name="Identifiable Entity UUID"
+ optional="true"
+ typeId="eu.etaxonomy.taxeditor.uuidParameterType">
+ </commandParameter>
+ </command>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.handler.defaultHandler.OpenReferencingObjectsView"
+ id="eu.etaxonomy.taxeditor.openReferencingObjectsViewFromMenu"
+ name="%command.name.OPEN_REFERENCING_OBJECTS_VIEW">
+ </command>
<!--command
defaultHandler="eu.etaxonomy.taxeditor.bulkeditor.handler.NewEntityHandler"
id="eu.etaxonomy.taxeditor.bulkeditor.command.new"
</test>
</with>
</definition>
+ <definition
+ id="isBulkEditorSupported">
+ <with
+ variable="selection">
+ <test
+ property="eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorSelectionPropertyTester.isBulkEditorSupported">
+ </test>
+ </with>
+ </definition>
+ <definition
+ id="isGroupEditor">
+ <with
+ variable="activeEditor">
+ <test
+ property="taxeditor-bulkeditor.propertyTester.isGroupEditor">
+ </test>
+ </with>
+ </definition>
</extension>
<extension
point="org.eclipse.core.expressions.propertyTesters">
properties="isTeam, isPerson"
type="java.lang.Object">
</propertyTester>
+ <propertyTester
+ class="eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorSelectionPropertyTester"
+ id="eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorSelectionPropertyTester"
+ namespace="eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorSelectionPropertyTester"
+ properties="isBulkEditorSupported"
+ type="org.eclipse.jface.viewers.IStructuredSelection">
+ </propertyTester>
</extension>
<extension
point="org.eclipse.ui.handlers">
class="eu.etaxonomy.taxeditor.bulkeditor.handler.ConvertPerson2TeamHandler"
commandId="eu.etaxonomy.taxeditor.bulkeditor.convertPerson2Team">
</handler>
+ <handler
+ class="eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler.OpenBulkEditorForIdentifiableEntity"
+ commandId="eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForIdentifiableEntity">
+ <activeWhen>
+ <reference
+ definitionId="isBulkEditorSupported">
+ </reference>
+ </activeWhen>
+ </handler>
</extension>
<extension
selection="eu.etaxonomy.cdm.model.taxon.TaxonNode"
viewerName="%viewCommandMapping.viewerName.BULK_EDITOR">
</viewCommandMapping>
+ <viewCommandMapping
+ commandId="eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForIdentifiableEntity"
+ selection="eu.etaxonomy.cdm.model.common.IdentifiableEntity"
+ viewerName="%viewCommandMapping.viewerName.BULK_EDITOR">
+ </viewCommandMapping>
</extension>
<!-- start set marker -->
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.texteditor.AbstractDocumentProvider;
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
private ILineDisplayStrategy lineDisplayStrategy;
private final IEditorInput input;
+ private ConversationHolder conversation;
+
+ /**
+ * @return the conversation
+ */
+ public ConversationHolder getConversation() {
+ return conversation;
+ }
+
+ /**
+ * @param conversation the conversation to set
+ */
+ public void setConversation(ConversationHolder conversation) {
+ this.conversation = conversation;
+ }
/**
* <p>Constructor for AnnotatedLineDocumentProvider.</p>
*/
public AnnotatedLineDocumentProvider(IEditorInput input){
this.input = input;
+ this.conversation = ((AbstractBulkEditorInput)input).getConversation();
}
/** {@inheritDoc} */
// Get new containers from annotation model
LineAnnotationModel model = (LineAnnotationModel) getAnnotationModel(element);
Iterator iterator = model.getAnnotationIterator();
+ if (!this.conversation.isBound()){
+ this.conversation.bind();
+ }
+
while (iterator.hasNext()) {
Annotation annotation = (Annotation) iterator.next();
if (annotation instanceof IEntityContainer<?>) {
IEntityContainer<?> container = (IEntityContainer<?>) annotation;
+
if (container.isMarkedAsNew() || container.isDirty()) {
+
Object entity = persistenceService.save(container.getEntity()); // save
container.setEntity(entity);
container.setDirty(false);
}
}
}
+ this.conversation.commit(true);
for (LineAnnotation annotation : model.getDeletedAnnotations()) {
if (annotation.isMarkedAsNew()) {
continue;
protected void doSetInput(IEditorInput input) throws CoreException {
AnnotatedLineDocumentProvider provider = new AnnotatedLineDocumentProvider(input);
-
+
provider.setLineDisplayStrategy(lineDisplayStrategy, input);
setDocumentProvider(provider);
public LineAnnotation createAnnotatedLine(Object entity) {
IEditorInput input = getEditorInput();
+ this.conversation.close();
+ this.conversation = ((AbstractBulkEditorInput)input).getConversation();
AnnotatedLineDocumentProvider provider = (AnnotatedLineDocumentProvider) getDocumentProvider();
LineAnnotation annotation = null;
package eu.etaxonomy.taxeditor.bulkeditor;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.commands.operations.UndoContext;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.dialogs.MessageDialog;
private boolean isDirty;
+ private IUndoContext undoContext;
+
public BulkEditor() {
super(CdmStore.createConversation());
+ undoContext = new UndoContext();
}
/** {@inheritDoc} */
@Override
public void setFocus() {
conversation.bind();
- searchBar.setFocus();
// TODO find a better place to put this - this dialog should be shown after initial contents of
// Editor are displayed
isInitialFocus = false;
}
super.setFocus();
+ searchBar.setFocus();
}
private void displayWarningDialog() {
// TODO check if dirty, prompt save
if (isDirty()) {
- boolean proceed = MessageDialog.openQuestion(getEditorSite().getShell(),
- "Save changes", "You have made changes that must be saved before this query can be executed. Would you like to proceed?");
- if (proceed) {
+ String[] labels = {"Save (and Search)", "Don't save (and Search)","Cancel"};
+ MessageDialog dialog =new MessageDialog(getEditorSite().getShell(), "Save changes", null, "You have made changes that must be saved before this query can be executed. Would you like to proceed?", MessageDialog.QUESTION,labels, 0);
+ int result = dialog.open();
+ //MessageDialog.openQuestion(getEditorSite().getShell(),
+ //"Save changes", "You have made changes that must be saved before this query can be executed. Would you like to proceed?");
+ if (result == 0) {
doSave(null);
- } else {
+ } else if (result == 2){
return;
}
}
conversation.clear();
conversation.commit(true);
-
+
getEditorInput().dispose();
- initializeEditor();
+ getEditorInput().bind();
getEditorInput().performSearch(query);
refresh();
public boolean canAttachMedia() {
return getEditorInput() instanceof TaxonEditorInput?true:false;
}
+
+ public IUndoContext getUndoContext() {
+ return undoContext;
+ }
}
/** {@inheritDoc} */
@Override
public String getEmptyCacheMessage(Object entity) {
- if (entity instanceof Reference) {
- return "No reference title cache";
- }
- if (entity instanceof TaxonNameBase) {
- return "No name title cache";
- }
- if (entity instanceof AgentBase) {
- return "No title cache";
- }
- return "";
+ return entity.toString();
}
/* (non-Javadoc)
import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonEditorInput;
/**
- * <p>BulkEditorPropertyTester class.</p>
- *
* @author p.ciardelli
* @created 21.09.2009
* @version 1.0
public static final String IS_PERSON = "isPerson";
public static final String IS_TEAM = "isTeam";
public static final String IS_MEDIA_EDITOR = "isMediaEditor";
- /* (non-Javadoc)
- * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
- */
- /** {@inheritDoc} */
+
+ /** {@inheritDoc} */
@Override
public boolean test(Object receiver, String property, Object[] args,
Object expectedValue) {
BulkEditor bulkEditor = null;
-
bulkEditor = (BulkEditor) receiver;
if (IS_MERGING_ENABLED.equals(property)) {
IEditorInput input = bulkEditor.getEditorInput();
}
else if(IS_TAXON_EDITOR.equals(property)){
return bulkEditor.getEditorInput() instanceof TaxonEditorInput;
- } else if(IS_MEDIA_EDITOR.equals(property)){
+ }
+ else if(IS_MEDIA_EDITOR.equals(property)){
return bulkEditor.getEditorInput() instanceof MediaEditorInput;
}
-
-// if (("isPublishFlagEditingEnabled").equals(property)) {
-// IEditorInput input = bulkEditor.getEditorInput();
-// if (input instanceof NameEditorInput) {
-// return ((NameEditorInput) input).isPublishFlagEnabled();
-// }
-// }
return false;
}
}
--- /dev/null
+package eu.etaxonomy.taxeditor.bulkeditor.command;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInputType;
+
+public class BulkEditorSelectionPropertyTester extends PropertyTester {
+
+ public static final String IS_BULK_EDITOR_SUPPORTED = "isBulkEditorSupported";
+
+ @Override
+ public boolean test(Object receiver, String property, Object[] args,
+ Object expectedValue) {
+ if(IS_BULK_EDITOR_SUPPORTED.equals(property)){
+ if(receiver instanceof IStructuredSelection){
+ IStructuredSelection selection = (IStructuredSelection) receiver;
+ Object selectedElement = selection.getFirstElement();
+ if(selectedElement!=null){
+ if(selectedElement instanceof UuidAndTitleCache){
+ return BulkEditorInputType.getByType(((UuidAndTitleCache) selectedElement).getType())!=null;
+ }
+ return BulkEditorInputType.getByType(selectedElement.getClass())!=null;
+ }
+ }
+ }
+ return false;
+ }
+
+}
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
import eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInputType;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* <p>OpenBulkEditorHandler class.</p>
--- /dev/null
+package eu.etaxonomy.taxeditor.bulkeditor.handler.defaultHandler;
+
+import java.util.UUID;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.ui.PartInitException;
+
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditorUtil;
+import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+public class OpenBulkEditorForIdentifiableEntity extends DefaultOpenHandlerBase<IdentifiableEntity> {
+
+ @Override
+ protected IdentifiableEntity getEntity(UUID uuid) {
+ return CdmStore.getCommonService().find(IdentifiableEntity.class, uuid);
+ }
+
+ @Override
+ protected void open(ExecutionEvent event, IdentifiableEntity entity) {
+ try {
+ BulkEditorUtil.openEditor(entity);
+ } catch (PartInitException e) {
+ MessagingUtils.error(this.getClass(), "Bulk Editor could not be opened for "+entity, e);
+ }
+ }
+
+
+}
package eu.etaxonomy.taxeditor.bulkeditor.input;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IPersistableElement;
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
- * <p>Abstract AbstractBulkEditorInput class.</p>
- *
* @author p.ciardelli
* @created 25.06.2009
* @version 1.0
private List<T> model;
private IEntityCreator<T> entityCreator;
-
- private static Class serviceClass;
+ private final ConversationHolder conversation;
public AbstractBulkEditorInput() {
super(true);
+ this.conversation = CdmStore.createConversation();
}
- /**
- * <p>NewInstance</p>
- *
- * @param inputType a {@link eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInputTypeValues.BulkEditorInputType} object.
- * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
- */
static public AbstractBulkEditorInput NewInstance(BulkEditorInputType inputType) {
return BulkEditorInputType.getInput(inputType);
}
- /**
- * <p>NewInstance</p>
- *
- * @param entity a {@link eu.etaxonomy.cdm.model.common.IdentifiableEntity} object.
- * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
- */
public static AbstractBulkEditorInput NewInstance(IdentifiableEntity entity) {
-
BulkEditorInputType inputType = BulkEditorInputType.getByType(entity.getClass());
AbstractBulkEditorInput editorInput = NewInstance(inputType);
return editorInput;
}
- /**
- * <p>listEntities</p>
- *
- * @param configurator a {@link eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator} object.
- * @return a {@link java.util.List} object.
- */
protected abstract List<T> listEntities(IIdentifiableEntityServiceConfigurator configurator);
- /**
- * <p>loadEntity</p>
- *
- * @param entityUuid a {@link java.util.UUID} object.
- * @return a T object.
- */
- protected T loadEntity(UUID entityUuid) {
- List<String> propertyPaths = Arrays.asList(new String[]{});
- return (T) CdmStore.getService(serviceClass).load(entityUuid, propertyPaths);
- }
+ protected abstract T loadEntity(UUID entityUuid);
private void setEntityUuid(UUID entityUuid){
this.entityUuid = entityUuid;
}
- /**
- * <p>Getter for the field <code>entityUuid</code>.</p>
- *
- * @return a {@link java.util.UUID} object.
- */
public UUID getEntityUuid() {
return entityUuid;
}
-
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#exists()
- */
- /**
- * <p>exists</p>
- *
- * @return a boolean.
- */
@Override
public boolean exists() {
// TODO Auto-generated method stub
return false;
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
- */
- /**
- * <p>getImageDescriptor</p>
- *
- * @return a {@link org.eclipse.jface.resource.ImageDescriptor} object.
- */
@Override
public ImageDescriptor getImageDescriptor() {
// TODO Auto-generated method stub
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.ui.IEditorInput#getPersistable()
- */
- /**
- * <p>getPersistable</p>
- *
- * @return a {@link org.eclipse.ui.IPersistableElement} object.
- */
@Override
public IPersistableElement getPersistable() {
return null;
}
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
/** {@inheritDoc} */
@Override
@SuppressWarnings("unchecked")
return null;
}
- /**
- * <p>Setter for the field <code>query</code>.</p>
- *
- * @param bulkEditorQuery a {@link eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorQuery} object.
- */
public void performSearch(final BulkEditorQuery bulkEditorQuery) {
List<T> entityList = new ArrayList<T>();
model = entityList;
}
- /**
- * <p>isMergingEnabled</p>
- *
- * @return a boolean.
- */
public boolean isMergingEnabled() {
return false;
}
- /**
- * <p>isMergingEnabled</p>
- *
- * @return a boolean.
- */
public boolean isConvertingEnabled() {
return false;
}
- /**
- * <p>isMarkerTypeEditingEnabled</p>
- *
- * @param markerType a {@link eu.etaxonomy.cdm.model.common.MarkerType} object.
- * @return a boolean.
- */
+
public boolean isMarkerTypeEditingEnabled(MarkerType markerType) {
return false;
}
return entityCreator;
}
- /**
- * @return
- */
protected abstract IEntityCreator<T> createEntityCreator();
/**
return entity.getClass().getSimpleName();
}
- /**
- * @param entity
- * @return
- */
public String getText(T entity) {
if(entity instanceof IdentifiableEntity){
IdentifiableEntity identifiableEntity = (IdentifiableEntity) HibernateProxyHelper.deproxy(entity);
return "No text. Implement in subclass";
}
- /**
- * @return
- */
public List<T> getModel() {
return model;
}
}
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
- */
@Override
public List<T> getRootEntities() {
return getModel();
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
- */
@Override
public Map<Object, List<String>> getPropertyPathsMap() {
// TODO Auto-generated method stub
return null;
}
+
+ public ConversationHolder getConversation() {
+ return conversation;
+ }
}
*/
package eu.etaxonomy.taxeditor.bulkeditor.input;
+import java.util.Arrays;
import java.util.List;
+import java.util.UUID;
import eu.etaxonomy.cdm.api.service.IAgentService;
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.agent.AgentBase;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
@Override
public TeamOrPersonBase save(TeamOrPersonBase entity) {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- return (TeamOrPersonBase) CdmStore.getService(IAgentService.class).merge(entity, true).getMergedEntity();
- } else {
- CdmStore.getService(IAgentService.class).saveOrUpdate(entity) ;
- return entity;
- }
+ return (TeamOrPersonBase) CdmStore.getService(IAgentService.class).merge(entity, true).getMergedEntity();
+
}
@Override
}
+ @Override
+ protected TeamOrPersonBase loadEntity(UUID entityUuid) {
+ List<String> propertyPaths = Arrays.asList(new String[]{});
+ return HibernateProxyHelper.deproxy(CdmStore.getService(IAgentService.class).load(entityUuid, propertyPaths), TeamOrPersonBase.class);
+ }
+
+
+
}
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
public enum BulkEditorInputType {
return GROUP;
} else if (User.class.isAssignableFrom(clazz)) {
return USER;
- } else if (Taxon.class.isAssignableFrom(clazz)){
+ } else if (TaxonBase.class.isAssignableFrom(clazz)){
return TAXON;
} else if (Media.class.isAssignableFrom(clazz)){
return MEDIA;
package eu.etaxonomy.taxeditor.bulkeditor.input;
+import java.util.Arrays;
import java.util.List;
+import java.util.UUID;
+import eu.etaxonomy.cdm.api.service.IAgentService;
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.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.Group;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.GroupCreator;
*/
@Override
public Group save(Group entity) {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- return CdmStore.getService(IGroupService.class).merge(entity, true).getMergedEntity();
- } else {
- CdmStore.getService(IGroupService.class).saveOrUpdate(entity);
- return entity;
- }
+ return CdmStore.getService(IGroupService.class).merge(entity, true).getMergedEntity();
+
}
/* (non-Javadoc)
}
+ @Override
+ protected Group loadEntity(UUID entityUuid) {
+ List<String> propertyPaths = Arrays.asList(new String[]{});
+ return HibernateProxyHelper.deproxy(CdmStore.getService(IAgentService.class).load(entityUuid, propertyPaths), Group.class);
+ }
+
}
*/
package eu.etaxonomy.taxeditor.bulkeditor.input;
+import java.util.Arrays;
import java.util.List;
+import java.util.UUID;
import eu.etaxonomy.cdm.api.service.IMediaService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
@Override
public Media save(Media entity) {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- return CdmStore.getService(IMediaService.class).merge(entity, true).getMergedEntity();
- } else {
- CdmStore.getService(IMediaService.class).saveOrUpdate(entity) ;
- return entity;
- }
+ return CdmStore.getService(IMediaService.class).merge(entity, true).getMergedEntity();
+
}
@Override
return sortProviders;
}
+
+ @Override
+ protected Media loadEntity(UUID entityUuid) {
+ List<String> propertyPaths = Arrays.asList(new String[]{});
+ return CdmStore.getService(IMediaService.class).load(entityUuid, propertyPaths);
+ }
+
}
package eu.etaxonomy.taxeditor.bulkeditor.input;
+import java.util.Arrays;
import java.util.List;
+import java.util.UUID;
import eu.etaxonomy.cdm.api.service.INameService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
/** {@inheritDoc} */
@Override
public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
- return CdmStore.getSearchManager().findNames(configurator);
+
+ configurator.setPropertyPaths(getPropertyPaths());
+ return CdmStore.getSearchManager().findNames(configurator, this.getConversation());
}
/** {@inheritDoc}
/** {@inheritDoc} */
@Override
public TaxonNameBase save(TaxonNameBase entity) {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- return CdmStore.getService(INameService.class).merge(entity, true).getMergedEntity();
- } else {
- CdmStore.getService(INameService.class).saveOrUpdate(entity);
- return entity;
- }
+ TaxonNameBase mergedName = null;
+ mergedName = CdmStore.getService(INameService.class).merge(entity, true).getMergedEntity();
+ return mergedName;
+
}
/* (non-Javadoc)
}
+ @Override
+ protected TaxonNameBase loadEntity(UUID entityUuid) {
+ List<String> propertyPaths = Arrays.asList(new String[]{});
+ return CdmStore.getService(INameService.class).load(entityUuid, getPropertyPaths());
+ }
+
+
+ private List<String> getPropertyPaths(){
+ List<String> nameBasePropertyPaths = Arrays.asList(new String[] {
+ "name.descriptions",
+ "name.typeDesignations",
+ "name.status",
+ "name.nomenclaturalReference.inReference",
+ "name.taxonBases.taxonNodes",
+ "name.relationsFromThisName",
+ "name.relationsToThisName",
+ "name.homotypicalGroup.typifiedNames.taxonBases.synonymRelations.synonym.name.status",
+ "name.homotypicalGroup.typifiedNames.relationsToThisName.fromName"});
+
+ return nameBasePropertyPaths;
+ }
}
package eu.etaxonomy.taxeditor.bulkeditor.input;
+import java.util.Arrays;
import java.util.List;
+import java.util.UUID;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
/** {@inheritDoc} */
@Override
public SpecimenOrObservationBase<IIdentifiableEntityCacheStrategy> save(SpecimenOrObservationBase entity) {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- return CdmStore.getService(IOccurrenceService.class).merge(entity, true).getMergedEntity();
- } else {
- CdmStore.getService(IOccurrenceService.class).save(entity);
- return entity;
- }
+ return CdmStore.getService(IOccurrenceService.class).merge(entity, true).getMergedEntity();
+
}
public void merge() {
}
+
+ @Override
+ protected SpecimenOrObservationBase loadEntity(UUID entityUuid) {
+ List<String> propertyPaths = Arrays.asList(new String[]{});
+ return CdmStore.getService(IOccurrenceService.class).load(entityUuid, propertyPaths);
+ }
+
}
/** {@inheritDoc} */
@Override
public Reference save(Reference entity) {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- return CdmStore.getService(IReferenceService.class).merge(entity, true).getMergedEntity();
- } else {
- CdmStore.getService(IReferenceService.class).saveOrUpdate(entity);
- return entity;
- }
+ return CdmStore.getService(IReferenceService.class).merge(entity, true).getMergedEntity();
}
/* (non-Javadoc)
}\r
@Override\r
public TaxonBase save(TaxonBase entity) {\r
- if(CdmStore.getCurrentSessionManager().isRemoting()) {\r
- return CdmStore.getService(ITaxonService.class).merge(entity, true).getMergedEntity();\r
- } else {\r
- CdmStore.getService(ITaxonService.class).saveOrUpdate(entity);\r
- return entity;\r
- }\r
+ return CdmStore.getService(ITaxonService.class).merge(entity, true).getMergedEntity();\r
}\r
\r
\r
package eu.etaxonomy.taxeditor.bulkeditor.input;
+import java.util.Arrays;
import java.util.List;
+import java.util.UUID;
import eu.etaxonomy.cdm.api.service.IUserService;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
*/
@Override
public User save(User entity) {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- return CdmStore.getService(IUserService.class).merge(entity, true).getMergedEntity();
- } else {
- CdmStore.getService(IUserService.class).saveOrUpdate(entity);
- return entity;
- }
-
+ return CdmStore.getService(IUserService.class).merge(entity, true).getMergedEntity();
}
/* (non-Javadoc)
public void merge() {
}
+
+
+ @Override
+ protected User loadEntity(UUID entityUuid) {
+ List<String> propertyPaths = Arrays.asList(new String[]{});
+ return CdmStore.getService(IUserService.class).load(entityUuid, propertyPaths);
+ }
+
}
public User createEntity(Object key, String text) {
try{
User user = User.NewInstance(text, text);
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IUserService.class).createUser(user);
- user = CdmStore.getService(IUserService.class).loadWithUpdate(user.getUuid());
- } else {
- CdmStore.getService(IUserService.class).createUser(user);
- }
+ CdmStore.getService(IUserService.class).createUser(user);
+ user = CdmStore.getService(IUserService.class).loadWithUpdate(user.getUuid());
return user;
} catch (AccessDeniedException e){
MessagingUtils.messageDialog("Access denied", getClass(), e.getMessage(), e);
referencedObject = CdmStore.getService(IUserService.class).load(entity, null);
} else if (Group.class.isAssignableFrom(objectClass)){
referencedObject = CdmStore.getService(IGroupService.class).load(entity, null);
+ }
+ else if(CdmBase.class.isAssignableFrom(objectClass)){
+ referencedObject = CdmStore.getCommonService().find(objectClass, entity);
}
//referencedObject =(CdmBase) CdmStore.getService(IIdentifiableEntityService.class).load(referencedObject.getUuid());
Set<CdmBase> setOfReferencingObjects = null;
}
+ @Override
+ protected String getViewName() {
+ return "Referencing Objects";
+ }
+
}
<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.2.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-4.2.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-4.2.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-model-4.2.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-4.2.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-print-4.2.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-remote-4.2.0.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-services-4.2.0.jar" sourcepath="C:/Users/k.luther/.m2/repository/eu/etaxonomy/cdmlib-services/4.1.0-SNAPSHOT/cdmlib-services-4.2.0-sources.jar"/>\r
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-test-4.2.0.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
Bundle-ManifestVersion: 2
Bundle-Name: CDM Library Dependencies Plugin
Bundle-SymbolicName: eu.etaxonomy.taxeditor.cdmlib;singleton:=true
-Bundle-Version: 4.2.0
+Bundle-Version: 4.3.0
Eclipse-BundleShape: dir
Export-Package: com.google.api,
com.google.api.detect,
eu.etaxonomy.cdm.io.specimen,
eu.etaxonomy.cdm.io.specimen.abcd206.in,
eu.etaxonomy.cdm.io.specimen.excel.in,
+ eu.etaxonomy.cdm.io.specimen.gbif.in,
eu.etaxonomy.cdm.io.taxonx,
eu.etaxonomy.cdm.io.tcsxml,
eu.etaxonomy.cdm.io.tcsxml.in,
lib/batik-util-1.7.jar,
lib/batik-xml-1.7.jar,
lib/c3p0-0.9.5.2.jar,
- lib/cdmlib-commons-4.2.0.jar,
- lib/cdmlib-ext-4.2.0.jar,
- lib/cdmlib-io-4.2.0.jar,
- lib/cdmlib-model-4.2.0.jar,
- lib/cdmlib-persistence-4.2.0.jar,
- lib/cdmlib-print-4.2.0.jar,
- lib/cdmlib-remote-4.2.0.jar,
- lib/cdmlib-services-4.2.0.jar,
- lib/cdmlib-test-4.2.0.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/cglib-3.2.0.jar,
lib/cglib-nodep-3.2.0.jar,
lib/classmate-1.3.1.jar,
lib/batik-util-1.7.jar,\
lib/batik-xml-1.7.jar,\
lib/c3p0-0.9.5.2.jar,\
- lib/cdmlib-commons-4.2.0.jar,\
- lib/cdmlib-ext-4.2.0.jar,\
- lib/cdmlib-io-4.2.0.jar,\
- lib/cdmlib-model-4.2.0.jar,\
- lib/cdmlib-persistence-4.2.0.jar,\
- lib/cdmlib-print-4.2.0.jar,\
- lib/cdmlib-remote-4.2.0.jar,\
- lib/cdmlib-services-4.2.0.jar,\
- lib/cdmlib-test-4.2.0.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/cglib-3.2.0.jar,\
lib/cglib-nodep-3.2.0.jar,\
lib/classmate-1.3.1.jar,\
<parent>\r
<groupId>eu.etaxonomy</groupId>\r
<artifactId>taxeditor-parent</artifactId>\r
- <version>4.2.0</version>\r
+ <version>4.3.0</version>\r
</parent>\r
<modelVersion>4.0.0</modelVersion>\r
<artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>\r
<version>${cdmlib.version}</version>\r
</dependency>\r
\r
- <!-- <dependency> -->\r
- <!-- <groupId>org.eclipse.jetty</groupId> -->\r
- <!-- <artifactId>jetty-server</artifactId> -->\r
- <!-- <version>9.1.3.v20140225</version> -->\r
- <!-- </dependency> -->\r
- <!-- <dependency> -->\r
- <!-- <groupId>org.eclipse.jetty</groupId> -->\r
- <!-- <artifactId>jetty-util</artifactId> -->\r
- <!-- <version>9.1.3.v20140225</version> -->\r
- <!-- </dependency> -->\r
- <!-- <dependency> -->\r
- <!-- <groupId>org.eclipse.jetty</groupId> -->\r
- <!-- <artifactId>jetty-xml</artifactId> -->\r
- <!-- <version>9.1.3.v20140225</version> -->\r
- <!-- </dependency> -->\r
- <!-- <dependency> -->\r
- <!-- <groupId>org.eclipse.jetty</groupId> -->\r
- <!-- <artifactId>jetty-servlet</artifactId> -->\r
- <!-- <version>9.1.3.v20140225</version> -->\r
- <!-- </dependency> -->\r
- <!-- <dependency> -->\r
- <!-- <groupId>org.eclipse.jetty</groupId> -->\r
- <!-- <artifactId>jetty-webapp</artifactId> -->\r
- <!-- <version>9.1.3.v20140225</version> -->\r
- <!-- </dependency> -->\r
- <!-- <dependency> -->\r
- <!-- <groupId>org.eclipse.jetty</groupId> -->\r
- <!-- <artifactId>jetty-security</artifactId> -->\r
- <!-- <version>9.1.3.v20140225</version> -->\r
- <!-- </dependency> -->\r
- <!-- <dependency> -->\r
- <!-- <groupId>org.eclipse.jetty</groupId> -->\r
- <!-- <artifactId>jetty-http</artifactId> -->\r
- <!-- <version>${jetty.version}</version> -->\r
- <!-- </dependency> -->\r
- <!-- <dependency> -->\r
- <!-- <groupId>org.eclipse.jetty</groupId> -->\r
- <!-- <artifactId>jetty-io</artifactId> -->\r
- <!-- <version>${jetty.version}</version> -->\r
- <!-- </dependency> -->\r
- <!-- <dependency> -->\r
- <!-- <groupId>javax.servlet</groupId> -->\r
- <!-- <artifactId>javax.servlet-api</artifactId> -->\r
- <!-- <version>3.1.0</version> -->\r
- <!-- </dependency> -->\r
-\r
- <!-- <dependency> -->\r
- <!-- <groupId>javax.servlet</groupId> -->\r
- <!-- <artifactId>jsp-api</artifactId> -->\r
- <!-- <version>2.0</version> -->\r
- <!-- </dependency> -->\r
-\r
<dependency>\r
<groupId>net.sf.ehcache</groupId>\r
<artifactId>ehcache-core</artifactId>\r
<artifactId>hamcrest-core</artifactId>\r
<version>1.3</version>\r
</dependency>\r
- <dependency>\r
- <groupId>com.mchange</groupId>\r
- <artifactId>c3p0</artifactId>\r
- <version>${c3p0.version}</version>\r
- </dependency>\r
<dependency>\r
<groupId>org.jboss.spec.javax.transaction</groupId>\r
<artifactId>jboss-transaction-api_1.1_spec</artifactId>\r
</dependency>\r
\r
<!-- For Unit Tests Start -->\r
+ <!-- still needed? -->\r
\r
- <dependency>\r
- <groupId>org.unitils</groupId>\r
- <artifactId>unitils-core</artifactId>\r
- <version>3.4.2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.unitils</groupId>\r
- <artifactId>unitils-spring</artifactId>\r
- <version>3.4.2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.unitils</groupId>\r
- <artifactId>unitils-database</artifactId>\r
- <version>3.4.2</version>\r
- </dependency>\r
<dependency>\r
<groupId>commons-dbcp</groupId>\r
<artifactId>commons-dbcp</artifactId>\r
<artifactId>commons-pool</artifactId>\r
<version>1.5.4</version>\r
</dependency>\r
- <dependency>\r
- <groupId>org.unitils</groupId>\r
- <artifactId>unitils-dbmaintainer</artifactId>\r
- <version>3.4.2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>com.h2database</groupId>\r
- <artifactId>h2</artifactId>\r
- <version>1.4.181</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.unitils</groupId>\r
- <artifactId>unitils-dbunit</artifactId>\r
- <version>3.4.2</version>\r
- </dependency>\r
- <dependency>\r
- <groupId>org.dbunit</groupId>\r
- <artifactId>dbunit</artifactId>\r
- <version>2.4.9</version>\r
- </dependency>\r
+\r
+ \r
<!-- For Unit Tests End -->\r
\r
<!-- For Hibernate Mapping Start -->\r
<version>5.5.8</version>\r
<scope>compile</scope>\r
</dependency>\r
- \r
\r
</dependencies>\r
</project>\r
import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;\r
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;\r
+import eu.etaxonomy.cdm.api.service.IPreferenceService;\r
import eu.etaxonomy.cdm.api.service.IProgressMonitorService;\r
import eu.etaxonomy.cdm.api.service.IReferenceService;\r
import eu.etaxonomy.cdm.api.service.IService;\r
public IGroupService getGroupService(){\r
return (IGroupService) getService(IGroupService.class, "/remoting/group.service", new CdmServiceRequestExecutor());\r
}\r
+ \r
+ @Override\r
+ public IPreferenceService getPreferenceService(){\r
+ return (IPreferenceService) getService(IPreferenceService.class, "/remoting/preference.service", new CdmServiceRequestExecutor());\r
+ }\r
\r
\r
@Override\r
} else if (obj instanceof Collection) {
return (T) load((Collection<T>)obj, recursive, update);
} else if(obj instanceof Pager) {
- load(((Pager)obj).getRecords(), recursive, update);
- return obj;
+ load(((Pager)obj).getRecords(), recursive, update);
+ return obj;
} else if(obj instanceof MergeResult) {
return (T) load((MergeResult<CdmBase>)obj, recursive, update);
}
return map;
}
- public <T extends Object> Collection<T> load(Collection<T> collection, boolean recursive, boolean update){
+ public <T extends Object> Collection<T> load(Collection<T> collection, boolean recursive, boolean update){
Collection<T> loadedCollection;
if(isRecursiveEnabled && recursive) {
return;
}
- int originalMapSize = map.size();
-
Iterator<Map.Entry<T,T>> iter = map.entrySet().iterator();
- int i=0;
while ( iter.hasNext() ) {
Map.Entry<T,T> e = iter.next();
CdmEntityInfo childCei = new CdmEntityInfo(e);
private <T extends Object> void debug(Collection<T> collection,
List<CdmEntityInfo> alreadyVisitedEntities,
CdmEntityInfo cei) {
- int length = collection.size();
- Object[] result = new Object[length];
Iterator<T> collectionItr = collection.iterator();
while(collectionItr.hasNext()) {
Object obj = collectionItr.next();
- CdmEntityInfo childCei = new CdmEntityInfo(ProxyUtils.deproxy(obj));
- cei.addChild(childCei);
- debugRecursive(obj, alreadyVisitedEntities, childCei);
+ boolean alreadyVisited = false;
+ for (CdmEntityInfo entityInfo: alreadyVisitedEntities) {
+ if(obj.equals(entityInfo.getObject())){
+ alreadyVisited = true;
+ break;
+ }
+ }
+ if(!alreadyVisited){
+ CdmEntityInfo childCei = new CdmEntityInfo(ProxyUtils.deproxy(obj));
+ cei.addChild(childCei);
+ debugRecursive(obj, alreadyVisitedEntities, childCei);
+ }
}
// retrieve the actual object corresponding to the field.
// this object will be either a CdmBase or a Collection / Map
// with CdmBase as the generic type
- String f = field;
CdmEntityInfo childCei = getDebugCdmBaseTypeFieldValue(cdmEntity, field, alreadyVisitedEntities, cei);
if(!childCei.isProxy()) {
Object object = childCei.getObject();
o = ProxyUtils.deproxy(o);
CdmBase cdmEntityInSubGraph = null;
- boolean isHibernateProxy = false;
- boolean isPersistentCollection = false;
-
childCei = new CdmEntityInfo(o);
cei.addChild(childCei);
childCei.setField(field);
for(CdmEntityInfo cei : ceiSet) {
if(cei.getObject() == objectToCompare) {
foundIdentical = true;
- } else if(objectToCompare.equals(cei.getObject())) {
- return false;
}
+// } else if(objectToCompare.equals(cei.getObject())) {
+// return false;
+// }
}
}
return foundIdentical;
Bundle-ManifestVersion: 2
Bundle-Name: Editor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
-Bundle-Version: 4.2.0
+Bundle-Version: 4.3.0
Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
Bundle-Vendor: %Bundle-Vendor.0
Bundle-Localization: OSGI-INF/l10n/plugin
Export-Package: eu.etaxonomy.taxeditor.editor,
eu.etaxonomy.taxeditor.editor.handler,
+ eu.etaxonomy.taxeditor.editor.handler.defaultHandler,
eu.etaxonomy.taxeditor.editor.internal,
eu.etaxonomy.taxeditor.editor.key.polytomous,
eu.etaxonomy.taxeditor.editor.name,
SingleReadSequenceContextMenu_REUSE_FOR_SEQUENCE=Reuse for other Sequence
SingleReadSequenceContextMenu_REUSE_SINGLE_READ_HERE=Reuse SingleRead here
-DerivateView_DERIVATIVE_EDITOR=Derivative Editor
+DerivateView_DERIVATIVE_EDITOR=Specimen Editor
DerivateView_SAVING_HIERARCHY=Saving hierarchy
DerivateView_UNSAVED_CHANGES=View has unsaved changes
DerivateView_YOU_NEED_TO_SAVE=You need to save before performing this action
MoveDerivateOperation_MOVE_NOT_POSSIBLE=Moving derivatives not possible\!
MoveDerivateOperation_MOVE_TO_NOT_POSSIBLE=Moving "%s" to "%s" is not possible\!
-OpenDerivateEditorForTaxonHandler_COULD_NOT_OPEN_EDITOR=Could not open Derivative Editor
+OpenDerivateEditorForTaxonHandler_COULD_NOT_OPEN_EDITOR=Could not open Specimen Editor
OpenDerivateEditorForTaxonHandler_FAILED_TO_OPEN=Failed to open Editor
OpenDerivateEditorForTaxonHandler_HIERARCHY_CORRUPTED=The derivative hierarchy is corrupted\!
OpenDerivateEditorForTaxonHandler_NO_DERIVATIVES_FOUND=No Derivatives found
DescriptiveViewPart_EXPAND_ALL=Expand All
DescriptiveViewPart_FACTUAL_DATA=Factual Data
DescriptiveViewPart_SHOW_ALL_DATA=Show all factual data
+
+ConceptGraphView_VIEWER_NAME=Concept Graph
+ConceptViewPart_VIEWER_NAME=Concept Relations
+UsesViewPart_VIEWER_NAME=Uses
SingleReadSequenceContextMenu_REUSE_FOR_SEQUENCE=Für andere Sequenz verwenden
SingleReadSequenceContextMenu_REUSE_SINGLE_READ_HERE=SingleRead hier verwenden
-DerivateView_DERIVATIVE_EDITOR=Derivat-Editor
+DerivateView_DERIVATIVE_EDITOR=Specimen-Editor
DerivateView_SAVING_HIERARCHY=Speichere Hierarchie
DerivateView_UNSAVED_CHANGES=Ungepeicherte Änderungen
DerivateView_YOU_NEED_TO_SAVE=Sie müssen speichern, um diese Aktion auszuführen
MoveDerivateOperation_MOVE_NOT_POSSIBLE=Verschieben von Derivaten nicht möglich\!
MoveDerivateOperation_MOVE_TO_NOT_POSSIBLE=Verschieben von "%s" nach "%s" nicht möglich\!
-OpenDerivateEditorForTaxonHandler_COULD_NOT_OPEN_EDITOR=Konnte Derivat-Editor nicht öffnen
+OpenDerivateEditorForTaxonHandler_COULD_NOT_OPEN_EDITOR=Konnte Specimen-Editor nicht öffnen
OpenDerivateEditorForTaxonHandler_FAILED_TO_OPEN=Öffnen des Editors fehlgeschlagen
OpenDerivateEditorForTaxonHandler_HIERARCHY_CORRUPTED=Die Derivathierarchie ist korrumpiert\!
OpenDerivateEditorForTaxonHandler_NO_DERIVATIVES_FOUND=Keine Derivate gefunden
DescriptiveViewPart_EXPAND_ALL=Alles ausklappen
DescriptiveViewPart_FACTUAL_DATA=Faktendaten
DescriptiveViewPart_SHOW_ALL_DATA=Zeige alle Faktendaten
+
+ConceptGraphView_VIEWER_NAME=Konzeptgraph
+ConceptViewPart_VIEWER_NAME=Konzeptrelationen
+UsesViewPart_VIEWER_NAME=Nutzung
editor.name.2 = Polytomous Key Graph Editor\r
editor.name.3 = Polytomous Key List Editor\r
editor.name.4 = Cdm Authority Editor\r
-editor.name.5 = Derivative Editor\r
+editor.name.5 = Specimen Editor\r
view.name = Factual Data\r
view.name.0 = Uses\r
view.name.1 = Media\r
command.name.33 = Open Related Concept\r
category.name.7 = -- Group\r
command.name.34 = Edit CDM Authorities\r
-command.name.35 = Open Derivative Editor\r
+command.name.35 = Open Specimen Editor\r
scheme.description = The default key binding scheme for the Taxonomic Editor\r
scheme.name = Taxonomic Editor Default Key Bindings\r
editor.name.6 = Specimen Import Editor\r
editor.name.7 = Gbif Import Editor\r
-editor.name.8 = Checklist Editor\r
+editor.name.8 = Distribution Editor\r
view.name.4 = Specimen Import\r
view.name.5 = GBIF Specimen Import\r
command.label.46 = Name\r
command.label.50 = Use Existing Image\r
command.name.36 = Create Misapplication\r
command.name.37 = Use Existing Image\r
-command.name.38 = Open Checklist Editor\r
+command.name.38 = Open Distribution Editor\r
command.name.39 = New Datasource\r
wizard.name = Specimen Search/Import\r
wizard.description = Queries data provider for specimens with specified parameters.\nNote: Query results are currently limited to 100.\r
command.name.44 = Deep Delete\r
command.name.46 = Move Synonym (Homotypical Group) to another Accepted Taxon\r
command.label.56 = Move Synonym (Homotypical Group) to another Accepted Taxon\r
+command.name.57 = Set as Basionym of Homotypical Group\r
+command.label.57 = Set as Basionym of Homotypical Group\r
+\r
markerContentGenerator.name = Validation Problems Marker Generator\r
command.name.45 = Delete\r
command.name.47 = Delete\r
command.name.50 = delete\r
command.name.51 = delete
\r
-editor.name.DERIVATIVE_EDITOR = Derivative Editor\r
-command.label.DERIVATIVE_EDITOR = Derivative Editor\r
+editor.name.DERIVATIVE_EDITOR = Specimen Editor\r
+command.label.DERIVATIVE_EDITOR = Specimen Editor\r
command.label.LINK_WITH_TAXON_SELECTION = Link with taxon selection\r
command.label.UNLINK_FROM_TAXON_SELECTION = Unlink from taxon selection\r
command.label.REUSE_SINGLE_READ_HERE = Reuse single read here\r
command.label.REMOVE_SINGLE_READ_FROM_THIS_SEQUENCE = Remove from this sequence\r
command.label.LINK_WITH_TAXON_SELECTIO = Link with Taxon Selection\r
command.name.OPEN_NAME_EDITOR_FOR_TAXON_NODE = Open Taxon Editor for taxonnode\r
-command.name.OPEN_DERIVATIVE_EDITOR = Open Derivative Editor\r
+command.name.OPEN_DERIVATIVE_EDITOR = Open Specimen Editor\r
command.name.LINK_WITH_TAXON_SELECTION = Link with taxon selection\r
command.name.COPY_SINGLE_READ_TO_CLIPBOARD = Copy SingleRead to clipboard\r
command.name.REUSE_SINGLE_READ = Reuse SingleRead\r
command.name.TOGGLE_LINK_WITH_TAXON_SELECTION = Toggle link with taxon selection\r
\r
viewCommandMapping.viewerName.NAME_EDITOR = Name Editor\r
-viewCommandMapping.viewerName.SPECIMEN_EDITOR = Derivative Editor\r
+viewCommandMapping.viewerName.SPECIMEN_EDITOR = Specimen Editor\r
+viewCommandMapping.viewerName.CHECKLIST_EDITOR = Distribution Editor
\ No newline at end of file
command.label.6 = Konzeptrelationen
command.label.7 = Konzeptgraph
command.label.8 = \u00d6ffne Parent
-menu.label = Neue
+menu.label = Neu
command.label.9 = Heterotypisches Synonym
command.label.10 = Homotypisches Synonym
command.label.11 = Synonym in Homotypischer Gruppe
command.label.43 = \u00d6ffne verbundenes Konzept
command.label.44 = L\u00f6schen
command.label.45 = Bearbeite Rechte
+command.label.57 = Setze als Basionym der homotypischen Gruppe
extension.name = Namensbefehle
category.name.0 = -- Namenseditor
command.name = \u00d6ffne Elter
scheme.name = Taxonomic Editor Standard Tastenkombinationen
editor.name.6 = Specimen Import Editor
editor.name.7 = GBIF Import Editor
-editor.name.8 = Checklist Editor
+editor.name.8 = Verbreitungs-Editor
view.name.4 = Specimen Import
view.name.5 = GBIF Specimen Import
command.label.46 = Name
command.label.50 = Benutze vorhandenes Bild
command.name.36 = Erstelle Misapplication
command.name.37 = Benutze vorhandenes Bild
-command.name.38 = \u00d6ffne Checklist Editor
+command.name.38 = \u00d6ffne Verbreitungs-Editor
command.name.39 = Neue Datenquelle
wizard.name = Specimen Suche/Import
wizard.description = Sendet eine Anfrage mit den eingegebenen Parametern an den Datenprovider.\nHinweis: Die Anzahl der Anfrageergebnisse sind auf 100 begrenzt.
command.name.42 = \u00d6ffne Taxon Editor
command.name.43 = Neue Field Unit
command.name.44 = L\u00f6schen (mit Kindern)
-command.name.46 = Verschiebe Synonym(Homotypische Gruppe) zu neuem Akzeptierten Taxon
-command.label.56 = Verschiebe Synonym(Homotypische Gruppe) zu neuem Akzeptierten Taxon
+command.name.46 = Verschiebe Synonym (homotypische Gruppe) zu neuem akzeptiertem Taxon
+command.label.56 = Verschiebe Synonym (homotypische Gruppe) zu neuem akzeptiertem Taxon
markerContentGenerator.name = Validation Problems Marker Generator
command.name.45 = L\u00f6schen
command.name.47 = L\u00f6schen
command.name.49 = L\u00f6schen
command.name.50 = L\u00f6schen
command.name.51 = L\u00f6schen
+command.name.57 = Setze als Basionym der homotypischen Gruppe
editor.name.DERIVATIVE_EDITOR = Specimen-Editor
command.label.DERIVATIVE_EDITOR = Specimen-Editor
command.name.TOGGLE_LINK_WITH_TAXON_SELECTION = De-/Aktiviere Verknüpfung mit Taxonauswahl
viewCommandMapping.viewerName.NAME_EDITOR = Namenseditor
-viewCommandMapping.viewerName.SPECIMEN_EDITOR = Specimen-Editor
\ No newline at end of file
+viewCommandMapping.viewerName.SPECIMEN_EDITOR = Specimen-Editor
+viewCommandMapping.viewerName.CHECKLIST_EDITOR = Verbreitungs-Editor
\ No newline at end of file
definitionId="isSynonym">
</reference>
</visibleWhen>
+ </command>
+ <command
+ commandId="eu.etaxonomy.taxeditor.editor.name.setAsBasionym"
+ label="%command.label.57"
+ style="push">
+ <visibleWhen>
+ <reference
+ definitionId="isSynonymInHomotypicalGroupWithMoreSynonyms">
+ </reference>
+ </visibleWhen>
</command>
<command
commandId="eu.etaxonomy.taxeditor.editor.name.moveSynonymToAnotherAcceptedTaxon"
</with>
</activeWhen>
</handler>
- <handler
- class="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistEditorHandler"
- commandId="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistEditorHandler">
- </handler>
<handler
class="eu.etaxonomy.taxeditor.editor.view.derivate.handler.DeleteDerivateHandler"
commandId="org.eclipse.ui.edit.delete">
</with>
</activeWhen>
</handler>
+ <handler
+ class="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistEditorHandler"
+ commandId="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler">
+ <activeWhen>
+ <and>
+ <reference
+ definitionId="isChecklistEditorEnabled">
+ </reference>
+ <or>
+ <reference
+ definitionId="isTaxonNode">
+ </reference>
+ <reference
+ definitionId="isClassification">
+ </reference>
+ </or>
+ </and>
+ </activeWhen>
+ </handler>
</extension>
<extension
name="%extension.name"
defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.SwapSynonymAndAcceptedHandler"
id="eu.etaxonomy.taxeditor.editor.name.swapSynonymAndAccepted"
name="%command.name.6">
+ </command>
+ <command
+ categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
+ defaultHandler="eu.etaxonomy.taxeditor.editor.name.handler.SetBasionymHandler"
+ id="eu.etaxonomy.taxeditor.editor.name.setAsBasionym"
+ name="%command.name.57">
</command>
<command
categoryId="eu.etaxonomy.taxeditor.editor.taxon.name.command.category"
name="%command.name.34">
</command>
<command
- defaultHandler="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistEditorHandler"
id="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler"
name="%command.name.38">
+ <commandParameter
+ id="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler.uuid"
+ name="taxonNodeUuid"
+ optional="true"
+ typeId="eu.etaxonomy.taxeditor.uuidParameterType">
+ </commandParameter>
</command>
<command
categoryId="eu.etaxonomy.taxeditor.editor.new.category"
name="%command.name.41">
</command>
<command
- defaultHandler="eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenTaxonEditorForTaxonHandler"
id="eu.etaxonomy.taxeditor.editor.openTaxonEditorForTaxon"
name="%command.name.42">
<commandParameter
id="eu.etaxonomy.taxeditor.editor.derivative.toggleLinkWithTaxonSelection"
name="%command.name.TOGGLE_LINK_WITH_TAXON_SELECTION">
</command>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenSpecimenEditorForTypeSpecimenHandler"
+ id="eu.etaxonomy.taxeditor.openSpecimenEditorForTypeSpecimen"
+ name="Open specimen editor for type specimen">
+ </command>
</extension>
<extension
property="eu.etaxonomy.taxeditor.editor.name.propertyTester.isNotHomotypicSynonymOfAcceptedTaxon">
</test>
</with>
+ </definition>
+ <definition
+ id="isSynonymInHomotypicalGroupWithMoreSynonyms">
+ <with
+ variable="selection">
+ <test
+ property="eu.etaxonomy.taxeditor.editor.name.propertyTester.isSynonymInHomotypicalGroupWithMoreSynonyms">
+ </test>
+ </with>
</definition>
<definition
id="isSynonym">
</test>
</with>
</definition>
- <definition
- id="isGroupEditor">
- <with
- variable="activeEditor">
- <test
- property="taxeditor-bulkeditor.propertyTester.isGroupEditor">
- </test>
- </with>
- </definition>
<definition
id="isIndividualsAssociation">
<with
</test>
</with>
</definition>
+ <definition
+ id="isOrphanedTaxon">
+ <with
+ variable="selection">
+ <test
+ forcePluginActivation="true"
+ property="eu.etaxonomy.taxeditor.editor.name.propertyTester.isOrphaned">
+ </test>
+ </with>
+ </definition>
</extension>
<extension
point="org.eclipse.core.expressions.propertyTesters">
class="eu.etaxonomy.taxeditor.editor.name.handler.NameEditorMenuPropertyTester"
id="eu.etaxonomy.taxeditor.editor.name.propertyTester"
namespace="eu.etaxonomy.taxeditor.editor.name.propertyTester"
- properties="isAcceptedTaxon,isSynonym,isMisapplication,isTaxonBase,hasEmptyNames,isAcceptedAndHasNoHomotypicSynonyms,isNotHomotypicSynonymOfAcceptedTaxon"
+ properties="isAcceptedTaxon,isSynonym,isMisapplication,isTaxonBase,hasEmptyNames,isAcceptedAndHasNoHomotypicSynonyms,isNotHomotypicSynonymOfAcceptedTaxon,isSynonymInHomotypicalGroupWithMoreSynonyms,isOrphaned"
type="org.eclipse.jface.viewers.IStructuredSelection">
</propertyTester>
<propertyTester
properties="isMedia,isDescription,isDescriptionElement,isDeletable,isFeatureNodeContainer,isImageGallery,isTaxonEditor,isBulkEditor,isDerivateEditor, isIndividualsAssociation"
type="org.eclipse.jface.viewers.TreeSelection">
</propertyTester>
- <propertyTester
- class="eu.etaxonomy.taxeditor.bulkeditor.command.BulkEditorPropertyTester"
- id="taxeditor-bulkeditor.PropertyTester"
- namespace="taxeditor-bulkeditor.propertyTester"
- properties="isGroupEditor"
- type="eu.etaxonomy.taxeditor.bulkeditor.BulkEditor">
- </propertyTester>
<propertyTester
class="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester"
id="eu.etaxonomy.taxeditor.editor.handler.SpecimenPropertyTester"
selection="eu.etaxonomy.cdm.model.taxon.TaxonNode"
viewerName="%viewCommandMapping.viewerName.SPECIMEN_EDITOR">
</viewCommandMapping>
+ <viewCommandMapping
+ commandId="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler"
+ selection="eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode"
+ viewerName="%viewCommandMapping.viewerName.CHECKLIST_EDITOR">
+ </viewCommandMapping>
+ <viewCommandMapping
+ commandId="eu.etaxonomy.taxeditor.openSpecimenEditorForTypeSpecimen"
+ selection="eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation"
+ viewerName="Specimen Editor">
+ </viewCommandMapping>
</extension>
</plugin>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
*/
public class Messages extends NLS {
private static final String BUNDLE_NAME = "OSGI-INF/l10n/messages"; //$NON-NLS-1$
- public static String CreateDerivateContextMenu_ADD;
+ public static String ConceptGraphView_VIEWER_NAME;
+ public static String ConceptViewPart_VIEWER_NAME;
+ public static String CreateDerivateContextMenu_ADD;
public static String CreateDerivateContextMenu_DNA_SAMPLE;
public static String CreateDerivateContextMenu_MEDIA;
public static String CreateDerivateContextMenu_MEDIA_EXISTING;
public static String SingleReadSequenceContextMenu_REMOVE_FROM_SEQUENCE;
public static String SingleReadSequenceContextMenu_REUSE_FOR_SEQUENCE;
public static String SingleReadSequenceContextMenu_REUSE_SINGLE_READ_HERE;
+ public static String UsesViewPart_VIEWER_NAME;
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
public boolean equals(Object obj) {
if (TaxonEditorInput.class.equals(obj.getClass())
&& getTaxon() != null
- && getTaxon().equals(((TaxonEditorInput) obj).getTaxon())){
- if(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase() != null){
+ && getTaxon().equals(((TaxonEditorInput) obj).getTaxon())) {
+ if (((TaxonEditorInput) obj).getInitiallySelectedTaxonBase() != null){
setInitiallySelectedTaxonBase(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase());
}
return true;
*/
@Override
public void merge() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true);
- }
+ CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true);
+
}
@Override
*/
@Override
public void merge() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- group = CdmStore.getService(IGroupService.class).merge(group, true).getMergedEntity();
- }
+ group = CdmStore.getService(IGroupService.class).merge(group, true).getMergedEntity();
+
}
}
package eu.etaxonomy.taxeditor.editor.handler;
-import org.apache.log4j.Logger;
-import org.eclipse.core.commands.AbstractHandler;
+import java.util.UUID;
+
+import org.apache.commons.lang.StringUtils;
import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.handlers.HandlerUtil;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.model.taxon.Classification;
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.view.checklist.ChecklistEditorInput;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
-public class OpenChecklistEditorHandler extends AbstractHandler {
+public class OpenChecklistEditorHandler extends DefaultOpenHandlerBase<ITaxonTreeNode> {
- private static final Logger logger = Logger.getLogger(OpenChecklistEditorHandler.class);
+ @Override
+ protected ITaxonTreeNode getEntity(UUID uuid) {
+ ITaxonTreeNode taxonTreeNode = CdmStore.getService(ITaxonNodeService.class).load(uuid);
+ if(taxonTreeNode==null){
+ taxonTreeNode = CdmStore.getService(IClassificationService.class).load(uuid);
+ }
+ return taxonTreeNode;
+ }
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.
- * ExecutionEvent)
- */
- @Override
- public Object execute(ExecutionEvent event) throws ExecutionException {
- boolean isChecklistEditorActivated = PreferencesUtil.getPreferenceStore().getBoolean(
- IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE);
- if (isChecklistEditorActivated) {
- ISelection currentSelection = HandlerUtil.getCurrentSelection(event);
- if (currentSelection instanceof IStructuredSelection) {
- Object selectedElement = ((IStructuredSelection) currentSelection).getFirstElement();
- if (selectedElement instanceof Classification) {
- ChecklistEditorInput input = new ChecklistEditorInput(((Classification) selectedElement));
- try {
- EditorUtil.open(input);
- } catch (PartInitException e) {
- MessagingUtils.error(OpenChecklistEditorHandler.class, "Could not open ChecklistView", e);
- } catch (NullPointerException npe) {
- MessagingUtils.messageDialog("Failed to open Editor", OpenChecklistEditorHandler.class,
- "Could not open ChecklistView. The hierarchy is corrupted!", npe);
- }
- } else if (selectedElement instanceof TaxonNode) {
- ChecklistEditorInput input = new ChecklistEditorInput(((TaxonNode) selectedElement));
- try {
- EditorUtil.open(input);
- } catch (PartInitException e) {
- MessagingUtils.error(OpenChecklistEditorHandler.class, "Could not open ChecklistView", e);
- } catch (NullPointerException npe) {
- MessagingUtils.messageDialog("Failed to open Editor", OpenChecklistEditorHandler.class,
- "Could not open ChecklistView. The hierarchy is corrupted!", npe);
- }
- }
- }
- }
- return null;
- }
+ @Override
+ protected void open(ExecutionEvent event, ITaxonTreeNode entity) {
+ if (PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE)) {
+ if (StringUtils.isBlank(PreferencesUtil.getPreferenceStore().getString(IPreferenceKeys.DISTRIBUTION_AREA_OCCURENCE_STATUS) )){
+ MessagingUtils.informationDialog("No Areas to display", "Please choose the areas you want to display. "
+ + "For this go to the preferences, choose the Checklist Editor and choose the areas in the Distribution Selection Wizard.");
+ this.dispose();
+ return;
+ }
+ if (entity instanceof Classification) {
+ ChecklistEditorInput input = new ChecklistEditorInput(((Classification) entity));
+ try {
+ EditorUtil.open(input);
+ } catch (PartInitException e) {
+ MessagingUtils.error(OpenChecklistEditorHandler.class, "Could not open Distribution Editor", e);
+ } catch (NullPointerException npe) {
+ MessagingUtils.messageDialog("Failed to open Editor", OpenChecklistEditorHandler.class,
+ "Could not open Distribution Editor. The hierarchy is corrupted!", npe);
+ }
+ } else if (entity instanceof TaxonNode) {
+ ChecklistEditorInput input = new ChecklistEditorInput((TaxonNode) entity);
+ try {
+ EditorUtil.open(input);
+ } catch (PartInitException e) {
+ MessagingUtils.error(OpenChecklistEditorHandler.class, "Could not open Distribution Editor", e);
+ } catch (NullPointerException npe) {
+ MessagingUtils.messageDialog("Failed to open Editor", OpenChecklistEditorHandler.class,
+ "Could not open Distribution Editor. The hierarchy is corrupted!", npe);
+ }
+ }
+ }
+ }
}
*/
public class OpenParentHandler extends AbstractHandler implements IHandler {
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
/** {@inheritDoc} */
public Object execute(ExecutionEvent event) throws ExecutionException {
- Taxon parent = EditorUtil.getActiveMultiPageTaxonEditor().getTaxon().getTaxonomicParent();
-
- if(parent != null){
- try {
- EditorUtil.openTaxonNode(parent.getUuid());
- } catch (PartInitException e) {
- throw new RuntimeException("Error opening parent taxon", e);
- } catch (Exception e) {
- MessagingUtils.warningDialog("Could not create Taxon", this, e.getMessage());
- }
- }
-
- return null;
+ throw new RuntimeException("Open parent not supported anymore");
+// Taxon parent = EditorUtil.getActiveMultiPageTaxonEditor().getTaxon().getTaxonomicParent();
+//
+// if(parent != null){
+// try {
+// EditorUtil.openTaxonNode(parent.getUuid());
+// } catch (PartInitException e) {
+// throw new RuntimeException("Error opening parent taxon", e);
+// } catch (Exception e) {
+// MessagingUtils.warningDialog("Could not create Taxon", this, e.getMessage());
+// }
+// }
+//
+// return null;
}
}
--- /dev/null
+package eu.etaxonomy.taxeditor.editor.handler.defaultHandler;
+import java.util.UUID;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.ui.PartInitException;
+
+import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateViewEditorInput;
+import eu.etaxonomy.taxeditor.handler.defaultHandler.DefaultOpenHandlerBase;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+
+public class DefaultOpenSpecimenEditorForTypeSpecimenHandler extends
+ DefaultOpenHandlerBase<SpecimenTypeDesignation> {
+
+ @Override
+ protected SpecimenTypeDesignation getEntity(UUID uuid) {
+ return CdmStore.getCommonService().find(SpecimenTypeDesignation.class, uuid);
+ }
+
+ @Override
+ protected void open(ExecutionEvent event, SpecimenTypeDesignation entity) {
+ try {
+ EditorUtil.open(new DerivateViewEditorInput(entity.getUuid()));
+ } catch (PartInitException e) {
+ MessagingUtils.error(DefaultOpenSpecimenEditorForTypeSpecimenHandler.class, "Derivative Editor could not be opened", e);
+ }
+ }
+
+}
import eu.etaxonomy.taxeditor.store.CdmStore;
-public class DefaultOpenTaxonEditorForTaxonHandler extends DefaultOpenHandlerBase<TaxonBase> {
+public class DefaultOpenTaxonEditorForTaxonBaseHandler extends DefaultOpenHandlerBase<TaxonBase> {
@Override
protected TaxonBase getEntity(UUID uuid) {
try {
EditorUtil.openTaxonBase(entity.getUuid());
} catch (PartInitException e) {
- MessagingUtils.error(DefaultOpenTaxonEditorForTaxonHandler.class, "Could not open taxon editor for taxon/synonym "+entity, e);
+ MessagingUtils.error(DefaultOpenTaxonEditorForTaxonBaseHandler.class, "Could not open taxon editor for taxon/synonym "+entity, e);
}
}
*/
@Override
public void merge() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- key = CdmStore.getService(IPolytomousKeyService.class).merge(key,true).getMergedEntity();
- }
+ key = CdmStore.getService(IPolytomousKeyService.class).merge(key,true).getMergedEntity();
+
}
@Override
* @created Mar 30, 2011
* @version 1.0
*/
-class PolytomousKeyContentProvider implements IGraphContentProvider {
+class PolytomousKeyGraphContentProvider implements IGraphContentProvider {
private List<PolytomousKeyRelationship> relations;
@Override
protected IContentProvider getContentProvider() {
- return new PolytomousKeyContentProvider();
+ return new PolytomousKeyGraphContentProvider();
}
}
AbstractGroupedContainer.this.handleSplitText(text);
}
- @Override
- public void keyPressed(KeyEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void keyReleased(KeyEvent e) {
- // TODO Auto-generated method stub
-
- }
};
getNameViewer().getTextWidget().addVerifyListener(lineBreakListener);
- getNameViewer().getTextWidget().addKeyListener(lineBreakListener);
+
}
abstract class LabelEllipsisListener extends ControlAdapter {
* @created 19.05.2008
* @version 1.0
*/
-public abstract class LineBreakListener implements VerifyListener, KeyListener {
+
+public abstract class LineBreakListener implements VerifyListener{
+
private static String LINE_BREAK = System.getProperty("line.separator");
+++ /dev/null
-/**
- *
- */
-package eu.etaxonomy.taxeditor.editor.name.handler;
-
-import org.apache.log4j.Logger;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CompoundContributionItem;
-import org.eclipse.ui.menus.CommandContributionItem;
-import org.eclipse.ui.menus.CommandContributionItemParameter;
-
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.name.NameRelationshipType;
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.labels.ILabelImageStrategy;
-import eu.etaxonomy.taxeditor.labels.LabelImageProvider;
-
-/**
- * <p>GroupBasionymContributionItem class.</p>
- *
- * @author p.ciardelli
- * @version $Id: $
- */
-public class GroupBasionymContributionItem extends CompoundContributionItem {
- @SuppressWarnings("unused")
- private static final Logger logger = Logger.getLogger(GroupBasionymContributionItem.class);
-
- /**
- * <p>Constructor for GroupBasionymContributionItem.</p>
- */
- public GroupBasionymContributionItem() {}
-
- /**
- * <p>Constructor for GroupBasionymContributionItem.</p>
- *
- * @param id a {@link java.lang.String} object.
- */
- public GroupBasionymContributionItem(String id) {
- super(id);
- }
-
-
- /** {@inheritDoc} */
- @Override
- protected IContributionItem[] getContributionItems() {
-
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-
- ISelectionService selectionService = window.getSelectionService();
-
- ISelection selection = selectionService.getSelection();
-
- if(selection instanceof IStructuredSelection){
- Object selectedObject = ((IStructuredSelection) selection).getFirstElement();
-
- if(selectedObject != null && selectedObject instanceof TaxonBase){
-
- TaxonNameBase name = (TaxonNameBase) HibernateProxyHelper.deproxy(((TaxonBase) selectedObject).getName());
-
- if(name != null && name.getHomotypicalGroup().getTypifiedNames().size() > 1){
-
- CommandContributionItemParameter parameter =
- new CommandContributionItemParameter(
- window, null, getCommand(name), SWT.NONE);
-
- parameter.label = getLabel(name);
-
- return new IContributionItem[] {
- new CommandContributionItem(parameter)
- };
- }
-
- }
- }
-
- return new IContributionItem[]{};
- }
-
- /**
- * @param name
- * @return
- */
- private String getCommand(TaxonNameBase name) {
- if(name.isGroupsBasionym()){
- return "eu.etaxonomy.taxeditor.editor.name.removeBasionym" ;
- }
- return "eu.etaxonomy.taxeditor.editor.name.setBasionym";
- }
-
- /**
- * @param name
- * @return
- */
- private String getLabel(TaxonNameBase name) {
- ILabelImageStrategy strategy = LabelImageProvider.getLabelStrategy(name);
- LabelImageProvider labelProvider = new LabelImageProvider(strategy);
- return (name.isGroupsBasionym() ? "Remove" : "Set")
- + " as " + labelProvider.getNameRelationTypeDescription(NameRelationshipType.BASIONYM()) + " for Homotypic Group";
- }
-}
package eu.etaxonomy.taxeditor.editor.name.handler;
+import java.util.Set;
+
+import org.eclipse.core.expressions.PropertyTester;
import org.eclipse.jface.viewers.IStructuredSelection;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.editor.Page;
import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* <p>NameEditorMenuPropertyTester class.</p>
* @created Jun 22, 2010
* @version 1.0
*/
-public class NameEditorMenuPropertyTester extends org.eclipse.core.expressions.PropertyTester {
+public class NameEditorMenuPropertyTester extends PropertyTester {
private static final String ACCEPTED = "isAcceptedTaxon";
private static final String SYNONYM = "isSynonym";
private static final String EMPTY_NAMES = "hasEmptyNames";
private static final String ACCEPTED_AND_NO_HOMOTYPIC_SYNONYMS = "isAcceptedAndHasNoHomotypicSynonyms";
private static final String NOT_HOMOTYPIC_SYNONYM_OF_ACCEPTED = "isNotHomotypicSynonymOfAcceptedTaxon";
-
+ private static final String SYNONYM_WITH_HOMOTYPIC_SYNONYMS = "isSynonymInHomotypicalGroupWithMoreSynonyms";
+ private static final String IS_ORPHANED = "isOrphaned";
/**
* <p>Constructor for NameEditorMenuPropertyTester.</p>
IStructuredSelection selection = (IStructuredSelection) receiver;
Object selectedElement = selection.getFirstElement();
+ if(selectedElement instanceof UuidAndTitleCache){
+ UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache<?>)selectedElement;
+ CdmBase cdmBase = CdmStore.getCommonService().find(uuidAndTitleCache.getType(), uuidAndTitleCache.getUuid());
+ selectedElement = cdmBase;
+ }
if(ACCEPTED.equals(property)){
return isAccepted(selectedElement);
}
else if(ACCEPTED_AND_NO_HOMOTYPIC_SYNONYMS.equals(property)){
return isAcceptedAndHasNoHomotypicSynonyms(selectedElement);
- }else if (NOT_HOMOTYPIC_SYNONYM_OF_ACCEPTED.equals(property)){
+ }
+ else if (NOT_HOMOTYPIC_SYNONYM_OF_ACCEPTED.equals(property)){
return isNotHomotypicSynonymOfAcceptedTaxon(selectedElement);
}
+ else if (SYNONYM_WITH_HOMOTYPIC_SYNONYMS.equals(property)){
+ return isSynonymInHomotypicalGroupWithMoreSynonyms(selectedElement);
+ }
+ else if (IS_ORPHANED.equals(property)){
+ return isOrphaned(selectedElement);
+ }
}
return false;
}
+ private boolean isSynonymInHomotypicalGroupWithMoreSynonyms(Object selectedElement) {
+ if (isSynonym(selectedElement)){
+ Synonym synonym = (Synonym) selectedElement;
+ return synonym.getHomotypicGroup().getTypifiedNames().size()>1;
+ }
+ return false;
+ }
+
+
private boolean isNotHomotypicSynonymOfAcceptedTaxon(Object selectedElement) {
if (isSynonym(selectedElement)){
Synonym synonym = (Synonym) selectedElement;
private boolean isAccepted(Object selectedElement) {
return (selectedElement instanceof Taxon && ! ((Taxon) selectedElement).isMisapplication()) ? true : false;
}
+
+ private boolean isOrphaned(Object selectedElement) {
+ if(selectedElement instanceof Taxon){
+ 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 false;
+ }
}
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.preference.Resources;
import eu.etaxonomy.taxeditor.store.CdmStore;
selectionService.addSelectionListener(this);
viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
labelProvider = new ChecklistLabelProvider(this.viewer);
+
terms = labelProvider.getNamedAreas();
+ if (terms == null){
+ MessagingUtils.informationDialog("No Areas to display", "Please choose the areas you want to display. "
+ + "Therefore go to the preferences, choose the Checklist Editor and choose the areas in the Distribution Selection Wizard.");
+ this.dispose();
+ return;
+ }
filter = new ChecklistEditorFilter();
createTopComposite(parent);
loadDataInput();
private void createToolbarItems() {
dropListener = new ChecklistDropdownSelectionListener(toolItem, this, terms);
+
for (DefinedTermBase<DefinedTermBase> term : terms) {
if(term!=null){
dropListener.add(term);
/** {@inheritDoc} */
@Override
public void dispose() {
- this.checklistEditorInput.dispose();
-
+ this.checklistEditorInput.dispose();
+ super.dispose();
+
conversation.unregisterForDataStoreChanges(this);
- conversation.close();
- super.dispose();
+ conversation.unbind();
+
+ //conversation.close();
+ conversation = null;
}
/** {@inheritDoc} */
return conversation;
}
+
+
}
import org.eclipse.ui.IPersistableElement;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
* @param taxonNode
*/
public ChecklistEditorInput(TaxonNode taxonNode){
- super(true);
+ super(false);
this.conversation = CdmStore.createConversation();
- this.taxonNode = CdmStore.getCurrentApplicationConfiguration().getTaxonNodeService().load(taxonNode.getUuid());
+ this.taxonNode =CdmStore.getService(ITaxonNodeService.class).load(taxonNode.getUuid(), getTaxonNodePropertyPaths());
// getChildTaxa(taxonNode);
classification = taxonNode.getClassification();
+ initSession();
}
+
/**
* @param taxonNode2
public ConversationHolder getConversation() {
return conversation;
}
+
+ private List<String> getTaxonNodePropertyPaths() {
+ List<String> taxonNodePropertyPaths = new ArrayList<String>();
+ for(String propertyPath : getTaxonBasePropertyPaths()) {
+ taxonNodePropertyPaths.add("taxon." + propertyPath);
+ }
+ return taxonNodePropertyPaths;
+ }
+
+ private List<String> getTaxonBasePropertyPaths() {
+ List<String> taxonBasePropertyPaths = Arrays.asList(new String[] {
+ "sec",
+ "createdBy",
+ "updatedBy",
+ "annotations",
+ "markers",
+ "credits",
+ "extensions",
+ "rights",
+ "sources",
+ "descriptions",
+ "relationsToThisTaxon",
+ "relationsFromThisTaxon",
+ "taxonNodes",
+ "descriptions.descriptionElements.feature",
+ "descriptions.descriptionElements.area",
+ "descriptions.descriptionElements.status",
+ "descriptions.markers",
+ "name.descriptions",
+ "name.typeDesignations",
+ "name.status",
+ "name.nomenclaturalReference.inReference",
+ "name.taxonBases.taxonNodes",
+ "name.relationsFromThisName",
+ "name.relationsToThisName",
+ "name.homotypicalGroup.typifiedNames.taxonBases.synonymRelations.synonym.name.status",
+ "name.homotypicalGroup.typifiedNames.relationsToThisName.fromName",
+ "synonymRelations.synonym.name.status.type",
+ "synonymRelations.synonym.name.relationsToThisName.fromName",
+ "synonymRelations.synonym.name.nomenclaturalReference.inReference.authorship",
+ "synonymRelations.synonym.name.nomenclaturalReference.authorship",
+ "synonymRelations.synonym.name.homotypicalGroup.typifiedNames.taxonBases.synonymRelations"
+ });
+
+ return taxonBasePropertyPaths;
+ }
+
+// @Override
+// public void dispose(){
+// conversation.unbind();
+// conversation.close();
+// getCdmEntitySession().dispose();
+// super.dispose();
+// }
}
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.name.NonViralName;
import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
package eu.etaxonomy.taxeditor.editor.view.concept;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.HashMap;
+import java.util.Map;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.Viewer;
*/
public class ConceptContentProvider implements IStructuredContentProvider {
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IContentProvider#dispose()
- */
@Override
public void dispose() {
- // TODO Auto-generated method stub
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
- */
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- // TODO Auto-generated method stub
-
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
- */
@Override
public Object[] getElements(Object inputElement) {
+ Taxon taxon = null;
if(inputElement instanceof TaxonEditorInput){
- Taxon taxon = ((TaxonEditorInput) inputElement).getTaxon();
-
- Set<TaxonRelationship> filteredTaxonRelations = new HashSet<TaxonRelationship>();
+ taxon = ((TaxonEditorInput) inputElement).getTaxon();
+ }
+ else if(inputElement instanceof Taxon){
+ taxon = (Taxon) inputElement;
+ }
+ if(taxon!=null){
+ Map<TaxonRelationship, Taxon> taxonToTaxonRelationsMap = new HashMap<>();
for (TaxonRelationship relationship : taxon.getTaxonRelations()) {
if (! relationship.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR()) ||
relationship.getType().equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())) {
- filteredTaxonRelations.add(relationship);
+ taxonToTaxonRelationsMap.put(relationship, taxon);
}
}
-
- return filteredTaxonRelations.toArray();
+ return taxonToTaxonRelationsMap.entrySet().toArray();
}
return new Object[0];
}
package eu.etaxonomy.taxeditor.editor.view.concept;
+import java.util.Map.Entry;
+
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.swt.graphics.Image;
-import eu.etaxonomy.cdm.model.common.Language;
-import eu.etaxonomy.cdm.model.common.Representation;
-import eu.etaxonomy.cdm.model.reference.IReference;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
import eu.etaxonomy.taxeditor.model.ImageResources;
import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
-import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @author n.hoffmann
*/
public class ConceptLabelProvider extends LabelProvider implements IStyledLabelProvider {
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
- */
@Override
public Image getImage(Object element) {
- if(element instanceof TaxonRelationship){
- return getTaxonRelationshipImage((TaxonRelationship) element);
+ if(element instanceof Entry){
+ return getTaxonRelationshipImage((TaxonRelationship) ((Entry<TaxonRelationship, Taxon>) element).getKey());
}
return super.getImage(element);
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.ColumnLabelProvider#getText(java.lang.Object)
- */
@Override
public String getText(Object element) {
- if(element instanceof TaxonRelationship){
- return formatRelationship((TaxonRelationship) element);
+ if(element instanceof Entry){
+ return formatRelationship((Entry<TaxonRelationship, Taxon>) element);
}
return "";
/**
* Creates a string that holds a representation of the {@link TaxonRelationship} in relation to
- * the accepted taxon of the currently active {@link MultiPageTaxonEditor}.
+ * the currently selected and accepted taxon.
*
* @param relationship
* @return a formatted String representation of the relationship
*/
- private String formatRelationship(TaxonRelationship relationship){
- Taxon sourceTaxon = EditorUtil.getActiveMultiPageTaxonEditor().getTaxon();
- TaxonRelationshipTypeInverseContainer container = TaxonRelationshipTypeInverseContainer.CreateFromSource(sourceTaxon, relationship);
- Taxon relatedTaxon = TaxonRelationshipTypeInverseContainer.RelatedTaxon(sourceTaxon, relationship);
+ private String formatRelationship(Entry<TaxonRelationship, Taxon> entry){
+ Taxon sourceTaxon = entry.getValue();
+ TaxonRelationshipTypeInverseContainer container = TaxonRelationshipTypeInverseContainer.CreateFromSource(sourceTaxon, entry.getKey());
+ Taxon relatedTaxon = TaxonRelationshipTypeInverseContainer.RelatedTaxon(sourceTaxon, entry.getKey());
String string = String.format("%s %s", container.getAbbreviatedLabel(), relatedTaxon);
return string;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)
- */
@Override
public StyledString getStyledText(Object element) {
return new StyledString(getText(element), StyledString.QUALIFIER_STYLER);
package eu.etaxonomy.taxeditor.editor.view.concept;
+import java.util.Map.Entry;
+
import org.eclipse.jface.action.GroupMarker;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPart;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
+import eu.etaxonomy.taxeditor.editor.Messages;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
+import eu.etaxonomy.taxeditor.editor.TaxonEditorInput;
import eu.etaxonomy.taxeditor.editor.key.AbstractGraphKeyEditor;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
+import eu.etaxonomy.taxeditor.model.LineSelection;
import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
+import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
+import eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart;
/**
* @author n.hoffmann
* @created Jan 24, 2011
* @version 1.0
*/
-public class ConceptViewPart extends AbstractCdmEditorViewPart implements IPartContentHasDetails, IPartContentHasSupplementalData{
+public class ConceptViewPart extends AbstractCdmEditorViewPart
+implements IPartContentHasDetails, IPartContentHasSupplementalData{
- public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept";
+ public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept"; //$NON-NLS-1$
- private ListViewer viewer;
+ private ConceptRelationViewer viewer;
@Override
protected void selectionChanged_internal(IWorkbenchPart part, ISelection selection) {
+ if(part == this){
+ return;
+ }
if(AbstractUtility.getActiveEditor() == null){
showEmptyPage();
return;
}
-
- if(part instanceof BulkEditor){
- showEmptyPage();
+
+ if (part instanceof DetailsViewPart || part instanceof SupplementalDataViewPart) {
+ // do not show empty page as these views are also used to edit the
+ // description selected in this view
+ return;
+ }
+ else if(part instanceof BulkEditor && selection instanceof LineSelection){
+ if(((LineSelection) selection).getFirstElement() instanceof Taxon){
+ showViewer(part, (LineSelection) selection);
+ }
+ else{
+ showEmptyPage();
+ }
return;
}
-
- if(part instanceof AbstractGraphKeyEditor){
+ else if(part instanceof AbstractGraphKeyEditor){
showEmptyPage();
return;
}
-
- if(part instanceof MultiPageTaxonEditor){
+ else if(part instanceof MultiPageTaxonEditor){
if(! part.equals(this.part)){
IEditorInput input = ((IEditorPart) part).getEditorInput();
showViewer(part, new StructuredSelection(input));
}
- showViewer();
+ }
+ else {
+ showEmptyPage();
}
}
+
+ @Override
+ protected String createPartTitle(Object selectedObject) {
+ if(selectedObject instanceof TaxonEditorInput){
+ return super.createPartTitle(((TaxonEditorInput) selectedObject).getTaxon());
+ }
+ return super.createPartTitle(selectedObject);
+ }
@Override
public boolean onComplete() {
@Override
public void createViewer(Composite parent) {
- viewer = new ListViewer(parent);
+ viewer = new ConceptRelationViewer(parent);
viewer.setContentProvider(new ConceptContentProvider());
viewer.setLabelProvider(new ConceptLabelProvider());
super.changed(object);
}
+ private class ConceptRelationViewer extends ListViewer {
+
+ public ConceptRelationViewer(Composite parent) {
+ super(parent);
+ }
+
+ @Override
+ public ISelection getSelection() {
+ ISelection selection = super.getSelection();
+ if(selection instanceof IStructuredSelection && !selection.isEmpty()){
+ Object firstElement = ((IStructuredSelection) selection).getFirstElement();
+ TaxonRelationship taxonRelationship = ((Entry<TaxonRelationship, Taxon>)firstElement).getKey();
+ return new StructuredSelection(taxonRelationship);
+
+ }
+ return selection;
+ }
+
+ @Override
+ public void setSelection(ISelection selection) {
+ super.setSelection(selection);
+ }
+
+ }
+
+ @Override
+ protected String getViewName() {
+ return Messages.ConceptViewPart_VIEWER_NAME;
+ }
+
}
import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.editor.Messages;
import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
*/
public class ConceptGraphView extends AbstractCdmEditorViewPart {
- public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept.graph";
+ public static final String ID = "eu.etaxonomy.taxeditor.editor.view.concept.graph"; //$NON-NLS-1$
private GraphViewer viewer;
private LayoutAlgorithm layoutAlgoritm;
return layoutAlgoritm;
}
+ @Override
+ protected String getViewName() {
+ return Messages.ConceptGraphView_VIEWER_NAME;
+ }
+
}
// $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.
*/
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.IUndoContext;
import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.handlers.HandlerUtil;
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
-import eu.etaxonomy.taxeditor.editor.EditorUtil;
-import eu.etaxonomy.taxeditor.editor.Page;
-import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
+import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
+import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
import eu.etaxonomy.taxeditor.editor.view.concept.operation.CreateConceptRelationOperation;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonBaseSelectionDialog;
/**
- * <p>CreateConceptRelationHandler class.</p>
- *
* @author n.hoffmann
* @created 16.04.2009
* @version 1.0
*/
public class CreateConceptRelationHandler extends AbstractHandler {
-
- /* (non-Javadoc)
- * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
- */
+
/** {@inheritDoc} */
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
- TaxonNameEditor editor = (TaxonNameEditor) EditorUtil.getActiveEditorPage(
- Page.NAME);
-
- Taxon taxonToBeFiltered = editor.getTaxon();
-
- /* we need to get the activePart before calling TaxonBaseSelectionDialog.selectTaxon(), otherwise the
+ IUndoContext undoContext = null;
+ ConversationHolder conversationHolder = null;
+ Taxon taxon = null;
+ IEditorPart activeEditor = AbstractUtility.getActiveEditor();
+ if(activeEditor instanceof MultiPageTaxonEditor){
+ MultiPageTaxonEditor taxonEditor = (MultiPageTaxonEditor)activeEditor;
+ taxon = taxonEditor.getTaxon();
+ conversationHolder = taxonEditor.getConversationHolder();
+ undoContext = taxonEditor.getUndoContext();
+ }
+ else if(activeEditor instanceof BulkEditor){
+ BulkEditor bulkEditor = (BulkEditor)activeEditor;
+ ISelection selection = bulkEditor.getSelectionProvider().getSelection();
+ taxon = (Taxon) ((IStructuredSelection)selection).getFirstElement();
+ conversationHolder = bulkEditor.getConversationHolder();
+ undoContext = bulkEditor.getUndoContext();
+ }
+
+
+ /* we need to get the activePart before calling TaxonBaseSelectionDialog.selectTaxon(), otherwise the
* the variable of the parent applicationContext in event are overwritten during this method call
* this is Linux specific bugfix see: #2685 ([LINUX] Editing concept relationships does not work under linux)
*/
IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
- Taxon relatedConcept = TaxonBaseSelectionDialog.selectTaxon(HandlerUtil.getActiveShell(event), editor.getConversationHolder(), taxonToBeFiltered);
-
-
+ Taxon relatedConcept = TaxonBaseSelectionDialog.selectTaxon(HandlerUtil.getActiveShell(event), conversationHolder, taxon);
+
+
if(relatedConcept == null){
return Status.CANCEL_STATUS;
}
TaxonRelationshipType type = (TaxonRelationshipType) ((Event)event.getTrigger()).data;
boolean isInverse = type.getInverseLabel().isEmpty()?false:true;
TaxonRelationshipTypeInverseContainer typeInverseContainer =new TaxonRelationshipTypeInverseContainer(type, isInverse) ;
-
+
IPostOperationEnabled postOperationEnabled = (activePart instanceof IPostOperationEnabled) ? (IPostOperationEnabled) activePart : null;
-
+
try {
- AbstractPostOperation operation = new CreateConceptRelationOperation(event.getCommand().getName(),
- editor.getUndoContext(), editor.getTaxon(), relatedConcept, typeInverseContainer, postOperationEnabled);
+ AbstractPostOperation operation = new CreateConceptRelationOperation(event.getCommand().getName(),
+ undoContext, taxon, relatedConcept, typeInverseContainer, postOperationEnabled);
AbstractUtility.executeOperation(operation);
} catch (NotDefinedException e) {
MessagingUtils.warn(getClass(), "Command name not set");
}
-
+
return null;
}
}
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
+import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
+import eu.etaxonomy.cdm.api.service.dto.MarkedEntityDTO;
import eu.etaxonomy.cdm.api.service.pager.Pager;
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
import eu.etaxonomy.cdm.model.agent.Address;
};
@Override
- public <S extends AgentBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
+ public <S extends AgentBase> Pager<IdentifiedEntityDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
}
return defaultService.loadByIds(idSet, propertyPaths);
}
+ @Override
+ public <S extends AgentBase> Pager<MarkedEntityDTO<S>> findByMarker(
+ Class<S> arg0, MarkerType arg1, Boolean arg2, boolean arg3,
+ Integer arg4, Integer arg5, List<String> arg6) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
+import eu.etaxonomy.cdm.api.service.IPreferenceService;
import eu.etaxonomy.cdm.api.service.IProgressMonitorService;
import eu.etaxonomy.cdm.api.service.IReferenceService;
import eu.etaxonomy.cdm.api.service.IService;
public IMetadataService getMetadataService() {
return defaultApplicationConfiguration.getMetadataService();
}
+
+ @Override
+ public IPreferenceService getPreferenceService() {
+
+ return defaultApplicationConfiguration.getPreferenceService();
+ }
}
import eu.etaxonomy.cdm.api.service.DeleteResult;
import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.NodeSortMode;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.api.service.config.CreateHierarchyForClassificationConfigurator;
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
import eu.etaxonomy.cdm.api.service.dto.GroupedTaxonDTO;
+import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
+import eu.etaxonomy.cdm.api.service.dto.MarkedEntityDTO;
+import eu.etaxonomy.cdm.api.service.dto.TaxonInContextDTO;
import eu.etaxonomy.cdm.api.service.pager.Pager;
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
import eu.etaxonomy.cdm.model.common.Annotation;
return defaultService.loadChildNodesOfTaxonNode(taxonNode, propertyPaths);
}
- /**
- * @param classification
- * @return
- * @see eu.etaxonomy.cdm.api.service.IClassificationService#getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(eu.etaxonomy.cdm.model.taxon.Classification)
- */
- @Override
- public List<UuidAndTitleCache<TaxonNode>> getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(Classification classification, List<UUID> excludeTaxa) {
- return defaultService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classification, excludeTaxa);
- }
/**
* @param taxon
@Override
public DeleteResult isDeletable(Classification object,
DeleteConfiguratorBase config) {
-
+
return defaultService.isDeletable(object, config);
}
@Override
- public <S extends Classification> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
+ public <S extends Classification> Pager<IdentifiedEntityDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
}
@Override
public List<UuidAndTitleCache<TaxonNode>> getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(
- UUID classificationUuid, List<UUID> excludeTaxa) {
+ UUID classificationUuid) {
- return defaultService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classificationUuid, excludeTaxa);
+ return defaultService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classificationUuid);
}
/**
return defaultService.getUuidAndTitleCache(null, null);
}
- @Override
- public List<UuidAndTitleCache<TaxonNode>> getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(
- UUID classificationUuid, List<UUID> excludeTaxa, Integer limit,
- String pattern) {
- return defaultService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classificationUuid, excludeTaxa, limit, pattern);
- }
-
- @Override
- public List<UuidAndTitleCache<TaxonNode>> getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(
- Classification classification, List<UUID> excludeTaxa,
- Integer limit, String pattern) {
- return defaultService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classification, excludeTaxa, limit, pattern);
- }
-
@Override
public List<TaxonNode> listSiblingsOfTaxon(UUID taxonUuid,
UUID classificationUuid, Integer pageSize, Integer pageIndex,
List<String> propertyPaths) {
-
+
return defaultService.listSiblingsOfTaxon(taxonUuid, classificationUuid, pageSize, pageIndex, propertyPaths);
}
@Override
public List<Classification> loadByIds(List<Integer> idSet, List<String> propertyPaths) {
-
+
return defaultService.loadByIds(idSet, propertyPaths);
}
@Override
public ClassificationLookupDTO classificationLookup(Classification arg0) {
-
+
return defaultService.classificationLookup(arg0);
}
@Override
public DeleteResult delete(UUID arg0, TaxonDeletionConfigurator arg1) {
-
+
return defaultService.delete(arg0, arg1);
}
return defaultService.groupTaxaByHigherTaxon(taxonUuids, classificationUuid, minRank, maxRank);
}
+ @Override
+ public TaxonNode getRootNode(UUID arg0) {
+ return defaultService.getRootNode(arg0);
+ }
+
+ @Override
+ public List<UuidAndTitleCache<TaxonNode>> getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(
+ Classification classification) {
+ return defaultService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classification);
+
+ }
+
+ @Override
+ public List<UuidAndTitleCache<TaxonNode>> getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(
+ UUID classificationUuid, Integer limit, String pattern) {
+
+ return defaultService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classificationUuid, limit, pattern);
+ }
+
+ @Override
+ public List<UuidAndTitleCache<TaxonNode>> getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(
+ Classification classification, Integer limit, String pattern) {
+ // TODO Auto-generated method stub
+ return defaultService.getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(classification, limit, pattern);
+ }
+
+ @Override
+ public <S extends Classification> Pager<MarkedEntityDTO<S>> findByMarker(
+ Class<S> arg0, MarkerType arg1, Boolean arg2, boolean arg3,
+ Integer arg4, Integer arg5, List<String> arg6) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public UUID getTaxonNodeUuidByTaxonUuid(UUID arg0, UUID arg1) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public TaxonInContextDTO getTaxonInContext(UUID arg0, UUID arg1,
+ Boolean arg2, Boolean arg3, List<UUID> arg4, NodeSortMode arg5) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+
}
import eu.etaxonomy.cdm.api.service.ICollectionService;
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
+import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
+import eu.etaxonomy.cdm.api.service.dto.MarkedEntityDTO;
import eu.etaxonomy.cdm.api.service.pager.Pager;
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
import eu.etaxonomy.cdm.model.common.Annotation;
}
@Override
- public <S extends Collection> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
+ public <S extends Collection> Pager<IdentifiedEntityDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
}
return defaultService.loadByIds(idSet, propertyPaths);
}
+ @Override
+ public <S extends Collection> Pager<MarkedEntityDTO<S>> findByMarker(
+ Class<S> arg0, MarkerType arg1, Boolean arg2, boolean arg3,
+ Integer arg4, Integer arg5, List<String> arg6) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
+import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
+import eu.etaxonomy.cdm.api.service.dto.MarkedEntityDTO;
import eu.etaxonomy.cdm.api.service.pager.Pager;
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
import eu.etaxonomy.cdm.model.common.Annotation;
}
@Override
- public <S extends DescriptionBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
+ public <S extends DescriptionBase> Pager<IdentifiedEntityDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
}
return defaultService.loadByIds(idSet, propertyPaths);
}
+ @Override
+ public <S extends DescriptionBase> Pager<MarkedEntityDTO<S>> findByMarker(
+ Class<S> arg0, MarkerType arg1, Boolean arg2, boolean arg3,
+ Integer arg4, Integer arg5, List<String> arg6) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
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.api.service.dto.FindByIdentifierDTO;
+import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
+import eu.etaxonomy.cdm.api.service.dto.MarkedEntityDTO;
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
import eu.etaxonomy.cdm.api.service.pager.Pager;
import eu.etaxonomy.cdm.api.service.search.DocumentSearchResult;
import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
import eu.etaxonomy.cdm.model.common.RelationshipBase;
import eu.etaxonomy.cdm.model.common.RelationshipBase.Direction;
-import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.media.Rights;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
import eu.etaxonomy.cdm.model.name.HybridRelationship;
@Override
- public <S extends TaxonNameBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
+ public <S extends TaxonNameBase> Pager<IdentifiedEntityDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
}
@Override
public List<TaxonNameBase> loadByIds(List<Integer> idSet, List<String> propertyPaths) {
-
return defaultService.loadByIds(idSet, propertyPaths);
}
+ @Override
+ public <S extends TaxonNameBase> Pager<MarkedEntityDTO<S>> findByMarker(
+ Class<S> arg0, MarkerType arg1, Boolean arg2, boolean arg3,
+ Integer arg4, Integer arg5, List<String> arg6) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
}
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator;
import eu.etaxonomy.cdm.api.service.dto.FieldUnitDTO;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
+import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
+import eu.etaxonomy.cdm.api.service.dto.MarkedEntityDTO;
import eu.etaxonomy.cdm.api.service.dto.PreservedSpecimenDTO;
import eu.etaxonomy.cdm.api.service.pager.Pager;
import eu.etaxonomy.cdm.api.service.search.SearchResult;
}
@Override
- public <S extends SpecimenOrObservationBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
+ public <S extends SpecimenOrObservationBase> Pager<IdentifiedEntityDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
}
return defaultService.loadByIds(idSet, propertyPaths);
}
+ @Override
+ public <S extends SpecimenOrObservationBase> Pager<MarkedEntityDTO<S>> findByMarker(
+ Class<S> arg0, MarkerType arg1, Boolean arg2, boolean arg3,
+ Integer arg4, Integer arg5, List<String> arg6) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
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.dto.FindByIdentifierDTO;
+import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
+import eu.etaxonomy.cdm.api.service.dto.MarkedEntityDTO;
import eu.etaxonomy.cdm.api.service.pager.Pager;
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
import eu.etaxonomy.cdm.model.common.Annotation;
}
@Override
- public <S extends Reference> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
+ public <S extends Reference> Pager<IdentifiedEntityDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
}
return defaultService.loadByIds(idSet, propertyPaths);
}
+ @Override
+ public List<UuidAndTitleCache<Reference>> getUuidAndAbbrevTitleCache(
+ Integer limit, String pattern) {
+
+ return defaultService.getUuidAndAbbrevTitleCache(limit, pattern);
+ }
+
+ @Override
+ public <S extends Reference> Pager<MarkedEntityDTO<S>> findByMarker(
+ Class<S> arg0, MarkerType arg1, Boolean arg2, boolean arg3,
+ Integer arg4, Integer arg5, List<String> arg6) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
import eu.etaxonomy.cdm.api.service.config.MatchingTaxonConfigurator;
import eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator;
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
+import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
import eu.etaxonomy.cdm.api.service.dto.IncludedTaxaDTO;
+import eu.etaxonomy.cdm.api.service.dto.MarkedEntityDTO;
import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException;
import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
import eu.etaxonomy.cdm.api.service.pager.Pager;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.Marker;
import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
import eu.etaxonomy.cdm.model.common.RelationshipBase;
import eu.etaxonomy.cdm.model.common.RelationshipBase.Direction;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;
import eu.etaxonomy.cdm.persistence.dto.MergeResult;
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
-import eu.etaxonomy.cdm.persistence.fetch.CdmFetch;
import eu.etaxonomy.cdm.persistence.query.Grouping;
import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.cdm.persistence.query.OrderHint;
return defaultService.getSources(t, pageSize, pageNumber, propertyPaths);
}
- /**
- * @param sec
- * @param cdmFetch
- * @param onlyWithChildren
- * @return
- * @deprecated
- * @see eu.etaxonomy.cdm.api.service.ITaxonService#getRootTaxa(eu.etaxonomy.cdm.model.reference.Reference, eu.etaxonomy.cdm.persistence.fetch.CdmFetch, boolean)
- */
- @Deprecated
- @Override
- public List<Taxon> getRootTaxa(Reference sec, CdmFetch cdmFetch, boolean onlyWithChildren) {
- return defaultService.getRootTaxa(sec, cdmFetch, onlyWithChildren);
- }
-
/**
* @param uuid
* @return
return defaultService.find(uuid);
}
- /**
- * @param rank
- * @param sec
- * @param onlyWithChildren
- * @param withMisapplications
- * @param propertyPaths
- * @return
- * @deprecated
- * @see eu.etaxonomy.cdm.api.service.ITaxonService#getRootTaxa(eu.etaxonomy.cdm.model.name.Rank, eu.etaxonomy.cdm.model.reference.Reference, boolean, boolean, java.util.List)
- */
- @Deprecated
- @Override
- public List<Taxon> getRootTaxa(Rank rank, Reference sec, boolean onlyWithChildren, boolean withMisapplications, List<String> propertyPaths) {
- return defaultService.getRootTaxa(rank, sec, onlyWithChildren, withMisapplications, propertyPaths);
- }
-
/**
* @param id
* @return
return defaultService.findByTitle(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
}
- /**
- * @return
- * @deprecated
- * @see eu.etaxonomy.cdm.api.service.ITaxonService#getTaxonRelationshipTypeVocabulary()
- */
- @Deprecated
- @Override
- public OrderedTermVocabulary<TaxonRelationshipType> getTaxonRelationshipTypeVocabulary() {
- return defaultService.getTaxonRelationshipTypeVocabulary();
- }
-
/**
* @param name
* @param sec
return null;
}
- /**
- * @param syn
- * @param taxon
- * @return
- * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonymRelationships(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.Taxon)
- */
- @Override
- public long deleteSynonymRelationships(Synonym syn, Taxon taxon) {
- return defaultService.deleteSynonymRelationships(syn, taxon);
- }
-
/**
* @param newInstance
* @return
}
@Override
- public <S extends TaxonBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
+ public <S extends TaxonBase> Pager<IdentifiedEntityDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
}
* @see eu.etaxonomy.cdm.api.service.ITaxonService#findByIdentifier(java.lang.Class, java.lang.String, eu.etaxonomy.cdm.model.common.DefinedTerm, eu.etaxonomy.cdm.model.taxon.TaxonNode, eu.etaxonomy.cdm.persistence.query.MatchMode, boolean, java.lang.Integer, java.lang.Integer, java.util.List)
*/
@Override
- public <S extends TaxonBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier,
+ public <S extends TaxonBase> Pager<IdentifiedEntityDTO<S>> findByIdentifier(Class<S> clazz, String identifier,
DefinedTerm identifierType, TaxonNode subtreeFilter, MatchMode matchmode, boolean includeEntity,
Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
return defaultService.findByIdentifier(clazz, identifier, identifierType, subtreeFilter, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
return defaultService.loadByIds(idSet, propertyPaths);
}
+ @Override
+ public <S extends TaxonBase> Pager<MarkedEntityDTO<S>> findByMarker(
+ Class<S> clazz, MarkerType type, Boolean value, TaxonNode subtree,
+ boolean includeEntity, Integer size, Integer limit, List<String> path) {
+ return defaultService.findByMarker(clazz, type, value, subtree, includeEntity, size, limit, path);
+ }
+
+ @Override
+ public <S extends TaxonBase> Pager<MarkedEntityDTO<S>> findByMarker(
+ Class<S> arg0, MarkerType arg1, Boolean arg2, boolean arg3,
+ Integer arg4, Integer arg5, List<String> arg6) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.config.TermDeletionConfigurator;
-import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
+import eu.etaxonomy.cdm.api.service.dto.IdentifiedEntityDTO;
+import eu.etaxonomy.cdm.api.service.dto.MarkedEntityDTO;
import eu.etaxonomy.cdm.api.service.pager.Pager;
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
import eu.etaxonomy.cdm.model.common.Annotation;
@Override
- public <S extends DefinedTermBase> Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
+ public <S extends DefinedTermBase> Pager<IdentifiedEntityDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
}
return defaultService.loadByIds(idSet, propertyPaths);
}
+
+ @Override
+ public <S extends DefinedTermBase> Pager<MarkedEntityDTO<S>> findByMarker(
+ Class<S> arg0, MarkerType arg1, Boolean arg2, boolean arg3,
+ Integer arg4, Integer arg5, List<String> arg6) {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
// commit the conversation and start a new transaction immediately
conversation.commit(true);
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IOccurrenceService.class).merge(new ArrayList<SpecimenOrObservationBase>(rootElements), true);
- }
+ CdmStore.getService(IOccurrenceService.class).merge(new ArrayList<SpecimenOrObservationBase>(rootElements), true);
+
monitor.worked(1);
this.setDirty(false);
@Override
public void setFocus() {
- viewer.getControl().setFocus();
//make sure to bind again if maybe in another view the conversation was unbound
if(conversation!=null && !conversation.isBound()){
conversation.bind();
if(cdmEntitySession != null) {
cdmEntitySession.bind();
}
+ derivateSearchCompositeController.setFocusOnSearchField();
}
@Override
* Refreshes the derivate hierarchy tree
*/
public void refreshTree(){
- viewer.refresh();
+ if(!viewer.getTree().isDisposed()){
+ viewer.refresh();
+ }
}
//FIXME:Remoting hack to make this work for remoting
package eu.etaxonomy.taxeditor.editor.view.derivate;
import java.util.Collection;
+import java.util.Collections;
import java.util.UUID;
import org.eclipse.jface.resource.ImageDescriptor;
public DerivateViewEditorInput() {
}
+ public DerivateViewEditorInput(UUID derivativeUuid, UUID taxonUuid) {
+ this(Collections.singleton(derivativeUuid), taxonUuid);
+ }
+
public DerivateViewEditorInput(Collection<UUID> derivativeUuids, UUID taxonUuid) {
this.derivativeUuids = derivativeUuids;
this.taxonUuid = taxonUuid;
}
+ public DerivateViewEditorInput(UUID derivativeUuid) {
+ this(derivativeUuid, null);
+ }
+
public DerivateViewEditorInput(Collection<UUID> derivativeUuids) {
this(derivativeUuids, null);
}
new MenuItem(addMenu, SWT.SEPARATOR);
createMenuItem(addMenu, TISSUE_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample, DerivationEventType.PREPARATION());
createMenuItem(addMenu, DNA_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
- createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
+ createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
return;
}
//context menu for Specimen
createMenuItem(addMenu, TISSUE_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.TissueSample, DerivationEventType.PREPARATION());
createMenuItem(addMenu, DNA_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
- createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
+ createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
return;
}
//context menu for TissueSample
else if(selectedTreeNode.getValue() instanceof DnaSample && ((DnaSample)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.TissueSample){
createMenuItem(addMenu, DNA_SAMPLE, selectedTreeNode, DnaSample.class, SpecimenOrObservationType.DnaSample, DerivationEventType.DNA_EXTRACTION());
- createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
+ createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
return;
}
//context menu for DnaSample
else if(selectedTreeNode.getValue() instanceof DnaSample && ((DnaSample)selectedTreeNode.getValue()).getRecordBasis()==SpecimenOrObservationType.DnaSample){
createMenuItem(addMenu, CONSENSUS_SEQUENCE, selectedTreeNode, Sequence.class, null, null);
- createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.Media, DerivationEventType.ACCESSIONING());
+ createMenuItem(addMenu, MEDIA_SPECIMEN, selectedTreeNode, MediaSpecimen.class, SpecimenOrObservationType.StillImage, DerivationEventType.ACCESSIONING());
return;
}
//context menu for Sequence
}
private void createMenuItem(Menu menu, String menuLabel, final TreeNode selectedNode, Class<?> childClass, final SpecimenOrObservationType specimenType, final DerivationEventType derivationEventType) {
- if(specimenType!=null && specimenType.equals(SpecimenOrObservationType.Media)){
+ if(specimenType!=null && specimenType.equals(SpecimenOrObservationType.StillImage)){
//media submenu
MenuItem mediaItem = new MenuItem(menu, SWT.CASCADE);
mediaItem.setText(Messages.CreateDerivateContextMenu_MEDIA);
specimenOrObservationBase.addDerivationEvent(DerivationEvent.NewSimpleInstance(specimenOrObservationBase, mediaSpecimen, derivationEventType));
mediaSpecimen.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
mediaSpecimen.getTitleCache(); //update title cache
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IOccurrenceService.class).merge(specimenOrObservationBase, true);
- }
+ CdmStore.getService(IOccurrenceService.class).merge(specimenOrObservationBase, true);
+
}
//refresh view
Sequence newInstance = Sequence.NewInstance(dnaSample, "", 0); //$NON-NLS-1$
createdElement = newInstance;
}
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate, true);
- }
- }
- else if(selectedDerivate instanceof Sequence){
+ CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate, true);
+ } else if(selectedDerivate instanceof Sequence){
SingleRead newInstance = SingleRead.NewInstance();
((Sequence) selectedDerivate).addSingleRead(newInstance);
createdElement = newInstance;
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmApplicationState.getCurrentAppConfig().getSequenceService().merge((Sequence)selectedDerivate, true);
- }
+ CdmApplicationState.getCurrentAppConfig().getSequenceService().merge((Sequence)selectedDerivate, true);
+
}
if(selectedDerivate instanceof SpecimenOrObservationBase && DerivedUnit.class.isAssignableFrom(childClass)){
SpecimenOrObservationBase<?> specimenOrObservationBase = (SpecimenOrObservationBase<?>)selectedDerivate;
derivedUnit.setCacheStrategy(new DerivedUnitFacadeCacheStrategy());
derivedUnit.getTitleCache(); //update title cache
createdElement = derivedUnit;
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate, true);
- }
+ CdmStore.getService(IOccurrenceService.class).merge((SpecimenOrObservationBase) selectedDerivate, true);
+
}
//refresh view
description = TaxonDescription.NewInstance(taxon);
}
description.addElement(association);
- if(CdmStore.getCurrentSessionManager().isRemoting()){
- CdmStore.getService(ITaxonService.class).merge(taxon);
- }
- else{
- CdmStore.getService(ITaxonService.class).saveOrUpdate(taxon);
- }
+ CdmStore.getService(ITaxonService.class).merge(taxon);
+
derivateView.getConversationHolder().commit();
derivateView.addFieldUnit(fieldUnit);
SingleRead singleRead = (SingleRead)clipBoardTreeNode.getValue();
Sequence sequence = (Sequence)selectedTreeNode.getValue();
sequence.addSingleRead(singleRead);
- if(CdmStore.getCurrentSessionManager().isRemoting()){
- CdmStore.getService(ISequenceService.class).merge(sequence);
- }
- else{
- CdmStore.getService(ISequenceService.class).saveOrUpdate(sequence);
- }
+ CdmStore.getService(ISequenceService.class).merge(sequence);
+
if(activeEditor instanceof DerivateView) {
derivateView.getConversationHolder().commit();
derivateView.refreshTree();
selectedTreeNode.getValue() instanceof SingleRead && selectedTreeNode.getParent().getValue() instanceof Sequence) {
Sequence sequence = (Sequence) selectedTreeNode.getParent().getValue();
sequence.removeSingleRead((SingleRead) selectedTreeNode.getValue());
- if(CdmStore.getCurrentSessionManager().isRemoting()){
- CdmStore.getService(ISequenceService.class).merge(sequence);
- }
- else{
- CdmStore.getService(ISequenceService.class).saveOrUpdate(sequence);
- }
+ CdmStore.getService(ISequenceService.class).merge(sequence);
+
if(activeEditor instanceof DerivateView) {
derivateView.getConversationHolder().commit();
derivateView.refreshTree();
derivateSearchComposite.getComboTaxonAssignment().setEnabled(false);
}
}
+
+ public void setFocusOnSearchField(){
+ derivateSearchComposite.getSearchField().setFocus();
+ }
}
import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
import eu.etaxonomy.taxeditor.model.ImageResources;
-import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
import eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart;
@Override
protected void selectionChanged_internal(IWorkbenchPart part, ISelection selection) {
if(AbstractUtility.getActiveEditor() == null){
- setPartName(createPartTitle(null));
showEmptyPage();
return;
}
&& ((IStructuredSelection) selection).getFirstElement() instanceof IDescribable<?>
&& part instanceof IPartContentHasFactualData && !(((IStructuredSelection) selection).getFirstElement() instanceof SpecimenOrObservationBase && part instanceof BulkEditor)){
featureNodeContainerCache.clear();
- setPartName(createPartTitle(((IStructuredSelection) selection).getFirstElement()));
showViewer(part, (IStructuredSelection) selection);
return;
}
else{
- setPartName(createPartTitle(null));
showEmptyPage();
}
}
-
+
+ @Override
protected String getViewName(){
return Messages.DescriptiveViewPart_FACTUAL_DATA;
}
- private String createPartTitle(Object selectedObject){
- if(selectedObject!=null){
- return getViewName()+": "+selectedObject; //$NON-NLS-1$
- }
- return getViewName();
- }
-
/**
*
* @author n.hoffmann
}
if(part instanceof BulkEditor && !(object instanceof SpecimenOrObservationBase<?>)){
((BulkEditor) part).forceDirty();
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- IStructuredSelection selection = (IStructuredSelection) ((BulkEditor) part).getSelectionProvider().getSelection();
- ((BulkEditor) part).changed(selection.getFirstElement());
- }
+ IStructuredSelection selection = (IStructuredSelection) ((BulkEditor) part).getSelectionProvider().getSelection();
+ ((BulkEditor) part).changed(selection.getFirstElement());
+
}
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
-import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart;
import eu.etaxonomy.taxeditor.view.detail.DetailsViewPart;
import eu.etaxonomy.taxeditor.view.supplementaldata.SupplementalDataViewPart;
// take a look at ISaveblePart
if(part instanceof BulkEditor && !(object instanceof SpecimenOrObservationBase<?>)){
((BulkEditor) part).forceDirty();
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- IStructuredSelection selection = (IStructuredSelection) ((BulkEditor) part).getSelectionProvider().getSelection();
- ((BulkEditor) part).changed(selection.getFirstElement());
- }
+ IStructuredSelection selection = (IStructuredSelection) ((BulkEditor) part).getSelectionProvider().getSelection();
+ ((BulkEditor) part).changed(selection.getFirstElement());
+
}
super.changed(object);
}
public boolean onComplete() {
return true;
}
+
+ @Override
+ protected String getViewName() {
+ return "Media";
+ }
}
-/**\r
- * Copyright (C) 2011 EDIT\r
- * European Distributed Institute of Taxonomy\r
- * http://www.e-taxonomy.eu\r
- *\r
- * The contents of this file are subject to the Mozilla Public License Version 1.1\r
- * See LICENSE.TXT at the top of this package for the full license terms.\r
- */\r
-package eu.etaxonomy.taxeditor.editor.view.uses;\r
-\r
-import org.eclipse.jface.viewers.TreeViewer;\r
-import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.dnd.Transfer;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Tree;\r
-\r
-import eu.etaxonomy.cdm.model.common.CdmBase;\r
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDragListener;\r
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDropAdapter;\r
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementTransfer;\r
-import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;\r
-\r
-\r
-/**\r
- * The Class create a specific Use View to keep the taxonomic view clean\r
- * @author a.theys\r
- * @created mar 13, 2012\r
- * @version 1.0\r
- */\r
-public class UsesViewPart extends DescriptiveViewPart {\r
-\r
- public UsesViewPart() {\r
- super();\r
- }\r
-\r
- /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.uses"</code> */\r
- public static final String ID = "eu.etaxonomy.taxeditor.editor.view.uses";\r
- /** {@inheritDoc} */\r
- @Override\r
- public void createViewer(Composite parent) {\r
-\r
- viewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL\r
- | SWT.V_SCROLL | SWT.FULL_SELECTION));\r
- viewer.setContentProvider(new UsesContentProvider(featureNodeContainerCache));\r
- viewer.setLabelProvider(new UsesLabelProvider());\r
- viewer.setAutoExpandLevel(2);\r
-\r
-\r
-\r
- Transfer[] transfers = new Transfer[] { DescriptionElementTransfer.getInstance() };\r
- viewer.addDragSupport(dndOperations, transfers, new DescriptionElementDragListener(\r
- this));\r
- viewer.addDropSupport(dndOperations, transfers,\r
- new DescriptionElementDropAdapter(viewer));\r
-\r
- // Propagate selection from viewer\r
- getSite().setSelectionProvider(viewer);\r
-\r
- showAllElementsAction = new ToggleDescriptionAction(false);\r
- hideAllElementsAction = new ToggleDescriptionAction(true);\r
-\r
- // Add context menu to tree\r
- createMenu();\r
-\r
- createToolbar();\r
-\r
- }\r
-\r
- @Override\r
- protected String getViewName(){\r
- return "Uses";\r
- }\r
-\r
- /** {@inheritDoc} */\r
- @Override\r
- public boolean postOperation(CdmBase objectAffectedByOperation) {\r
- viewer.refresh();\r
- return super.postOperation(objectAffectedByOperation);\r
- }\r
-\r
-\r
-\r
-}\r
+/**
+ * Copyright (C) 2011 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.view.uses;
+
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Tree;
+
+import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.taxeditor.editor.Messages;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDragListener;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementDropAdapter;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptionElementTransfer;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.DescriptiveViewPart;
+
+
+/**
+ * The Class create a specific Use View to keep the taxonomic view clean
+ * @author a.theys
+ * @created mar 13, 2012
+ * @version 1.0
+ */
+public class UsesViewPart extends DescriptiveViewPart {
+
+ public UsesViewPart() {
+ super();
+ }
+
+ /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.uses"</code> */
+ public static final String ID = "eu.etaxonomy.taxeditor.editor.view.uses"; //$NON-NLS-1$
+ /** {@inheritDoc} */
+ @Override
+ public void createViewer(Composite parent) {
+
+ viewer = new TreeViewer(new Tree(parent, SWT.MULTI | SWT.H_SCROLL
+ | SWT.V_SCROLL | SWT.FULL_SELECTION));
+ viewer.setContentProvider(new UsesContentProvider(featureNodeContainerCache));
+ viewer.setLabelProvider(new UsesLabelProvider());
+ viewer.setAutoExpandLevel(2);
+
+
+
+ Transfer[] transfers = new Transfer[] { DescriptionElementTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new DescriptionElementDragListener(
+ this));
+ viewer.addDropSupport(dndOperations, transfers,
+ new DescriptionElementDropAdapter(viewer));
+
+ // Propagate selection from viewer
+ getSite().setSelectionProvider(viewer);
+
+ showAllElementsAction = new ToggleDescriptionAction(false);
+ hideAllElementsAction = new ToggleDescriptionAction(true);
+
+ // Add context menu to tree
+ createMenu();
+
+ createToolbar();
+
+ }
+
+ @Override
+ protected String getViewName(){
+ return Messages.UsesViewPart_VIEWER_NAME;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public boolean postOperation(CdmBase objectAffectedByOperation) {
+ viewer.refresh();
+ return super.postOperation(objectAffectedByOperation);
+ }
+
+
+
+}
public void testExecuteIProgressMonitorIAdaptable() throws ExecutionException {
operation.execute(monitor, info);
- Assert.assertEquals(newParentTaxon ,taxon.getTaxonomicParent());
- Assert.assertEquals(taxon, newParentTaxon.getTaxonomicChildren().toArray(new Taxon[0])[0]);
- Assert.assertTrue(oldParentTaxon.getTaxonomicChildrenCount() == 0);
+// Assert.assertEquals(newParentTaxon ,taxon.getTaxonomicParent());
+// Assert.assertEquals(taxon, newParentTaxon.getTaxonomicChildren().toArray(new Taxon[0])[0]);
+// Assert.assertTrue(oldParentTaxon.getTaxonomicChildrenCount() == 0);
}
public void testUndoIProgressMonitorIAdaptable() throws ExecutionException {
operation.undo(monitor, info);
- Assert.assertEquals(oldParentTaxon ,taxon.getTaxonomicParent());
- Assert.assertTrue(newParentTaxon.getTaxonomicChildren().size() == 0);
- Assert.assertEquals(taxon, oldParentTaxon.getTaxonomicChildren().toArray(new Taxon[0])[0]);
+// Assert.assertEquals(oldParentTaxon ,taxon.getTaxonomicParent());
+// Assert.assertTrue(newParentTaxon.getTaxonomicChildren().size() == 0);
+// Assert.assertEquals(taxon, oldParentTaxon.getTaxonomicChildren().toArray(new Taxon[0])[0]);
}
/**
public void testRedoIProgressMonitorIAdaptable() throws ExecutionException {
operation.redo(monitor, info);
- Assert.assertEquals(newParentTaxon ,taxon.getTaxonomicParent());
- Assert.assertEquals(taxon, newParentTaxon.getTaxonomicChildren().toArray(new Taxon[0])[0]);
- Assert.assertTrue(oldParentTaxon.getTaxonomicChildrenCount() == 0);
+// Assert.assertEquals(newParentTaxon ,taxon.getTaxonomicParent());
+// Assert.assertEquals(taxon, newParentTaxon.getTaxonomicChildren().toArray(new Taxon[0])[0]);
+// Assert.assertTrue(oldParentTaxon.getTaxonomicChildrenCount() == 0);
}
}
package eu.etaxonomy.taxeditor.editor.name.operation;
-import junit.framework.Assert;
-
import org.apache.log4j.Logger;
import org.eclipse.core.commands.ExecutionException;
+import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
import eu.etaxonomy.taxeditor.store.operations.AbstractTaxeditorOperationTestBase;
oldTaxonName = NonViralName.NewInstance(null);
taxon = Taxon.NewInstance(oldTaxonName, null);
- // Create its parent taxon
- parentTaxon = Taxon.NewInstance(NonViralName.NewInstance(null), null);
- parentTaxon.addTaxonomicChild(taxon, null, null);
-
- // Give it a child taxon
- childTaxon = Taxon.NewInstance(NonViralName.NewInstance(null), null);
- childTaxon.setTaxonomicParent(taxon, null, null);
+// // Create its parent taxon
+// parentTaxon = Taxon.NewInstance(NonViralName.NewInstance(null), null);
+// parentTaxon.addTaxonomicChild(taxon, null, null);
+//
+// // Give it a child taxon
+// childTaxon = Taxon.NewInstance(NonViralName.NewInstance(null), null);
+// childTaxon.setTaxonomicParent(taxon, null, null);
// Create a homotypic synonym for the accepted taxon
taxon.addHomotypicSynonymName(NonViralName.NewInstance(null), null, null);
// New taxon has correct name?
Assert.assertEquals(taxon.getName(), oldSynonymName);
- // New taxon has correct parent?
- Assert.assertEquals(taxon.getTaxonomicParent(), parentTaxon);
-
- // New taxon has correct child?
- Assert.assertTrue(taxon.getTaxonomicChildren().contains(childTaxon));
+// // New taxon has correct parent?
+// Assert.assertEquals(taxon.getTaxonomicParent(), parentTaxon);
+//
+// // New taxon has correct child?
+// Assert.assertTrue(taxon.getTaxonomicChildren().contains(childTaxon));
// New taxon has 2 synonyms?
Assert.assertEquals(taxon.getSynonyms().size(), 2);
// New taxon has misapplication?
Assert.assertTrue(taxon.getMisappliedNames().contains(misapplication));
- // New taxon has 1 concept relation?
- int conceptRelCount = 0;
- for (TaxonRelationship relation : taxon.getTaxonRelations()) {
- if (relation.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR()) ||
- relation.getType().equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())) {
- continue;
- }
- conceptRelCount++;
- }
- Assert.assertEquals(conceptRelCount, 1);
+// // New taxon has 1 concept relation?
+// int conceptRelCount = 0;
+// for (TaxonRelationship relation : taxon.getTaxonRelations()) {
+// if (relation.getType().equals(TaxonRelationshipType.MISAPPLIED_NAME_FOR()) ||
+// relation.getType().equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())) {
+// continue;
+// }
+// conceptRelCount++;
+// }
+// Assert.assertEquals(conceptRelCount, 1);
// New taxon has description?
taxon.getDescriptions().contains(description);
<feature
id="eu.etaxonomy.taxeditor.feature.jre.linux64"
label="Taxonomic Editor JRE Linux64"
- version="4.2.0"
+ version="4.3.0"
provider-name="EDIT"
plugin="eu.etaxonomy.taxeditor.application"
os="linux"
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature.jre.linux64</artifactId>
<feature
id="eu.etaxonomy.taxeditor.feature.platform"
label="Taxeditor Dependencies"
- version="4.2.0"
+ version="4.3.0"
os="linux,macosx,win32"
ws="cocoa,gtk,win32"
arch="x86,x86_64">
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature.platform</artifactId>
<feature
id="eu.etaxonomy.taxeditor.feature"
label="Taxonomic Editor"
- version="4.2.0"
+ version="4.3.0"
provider-name="EDIT"
plugin="eu.etaxonomy.taxeditor.application"
os="linux,macosx,win32"
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature</artifactId>
Bundle-ManifestVersion: 2
Bundle-Name: Help
Bundle-SymbolicName: eu.etaxonomy.taxeditor.help; singleton:=true
-Bundle-Version: 4.2.0
+Bundle-Version: 4.3.0
Bundle-Activator: eu.etaxonomy.taxeditor.help.Activator
Bundle-Vendor: EDIT
Require-Bundle: org.eclipse.ui,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
+ <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 exported="true" kind="lib" path="lib/bioinfweb-commons-bio-2.0.0-preview-1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-core-2.0.0-preview-1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/bioinfweb-commons-swing-2.0.0-preview-1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/sequencing-1.9.2-SNAPSHOT.jar"/>
<classpathentry exported="true" kind="lib" path="lib/tic-core-2.0.0-preview-1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/tic-swt-2.0.0-preview-1.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="output" path="target/classes"/>
</classpath>
Bundle-ManifestVersion: 2
Bundle-Name: eu.etaxonomy.taxeditor.molecular.lib
Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular.lib;singleton:=true
-Bundle-Version: 4.2.0
+Bundle-Version: 4.3.0
Bundle-ClassPath: .,
lib/bioinfweb-commons-bio-2.0.0-preview-1.jar,
lib/bioinfweb-commons-core-2.0.0-preview-1.jar,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<build>
Bundle-ManifestVersion: 2
Bundle-Name: Molecular Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular;singleton:=true
-Bundle-Version: 4.2.0
+Bundle-Version: 4.3.0
Bundle-Activator: eu.etaxonomy.taxeditor.molecular.TaxeditorMolecularPlugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
*/
@Override
public void merge() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(ISequenceService.class).merge(sequenceNode, true);
- }
+ CdmStore.getService(ISequenceService.class).merge(sequenceNode, true);
+
}
}
Bundle-ManifestVersion: 2
Bundle-Name: Navigation Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.navigation;singleton:=true
-Bundle-Version: 4.2.0
+Bundle-Version: 4.3.0
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.cdm,
eu.etaxonomy.taxeditor.navigation,
menu.label = New\r
command.label.2 = Taxon\r
command.label.3 = Classification\r
-command.label.4 = Open in Checklist Editor\r
command.label.5 = Edit\r
command.label.6 = Change accepted taxon to synonym\r
command.label.7 = Move taxon (with child taxa)\r
menu.label = Neu\r
command.label.2 = Taxon\r
command.label.3 = Klassifikation\r
-command.label.4 = \u00D6ffne im Checklisten Editor\r
command.label.5 = Bearbeiten\r
command.label.6 = Akzeptiertes Taxon zum Synonym umwandeln\r
command.label.7 = Verschiebe Taxon (mit Kindern)\r
</reference>
</visibleWhen>
</menu>
- <command
- commandId="eu.etaxonomy.taxeditor.editor.handler.OpenChecklistViewHandler"
- icon="icons/check.png"
- label="%command.label.4"
- style="push">
- <visibleWhen
- checkEnabled="true">
- <and>
- <reference
- definitionId="isChecklistEditorEnabled">
- </reference>
- <or>
- <reference
- definitionId="isClassification">
- </reference>
- <reference
- definitionId="isTaxonNode">
- </reference>
- </or>
- </and>
- </visibleWhen>
- </command>
<command
commandId="eu.etaxonomy.taxeditor.navigation.navigator.handler.OpenFixClassificationHierarchyHandler"
label="%command.label.fixClassificationHierarchy"
</reference>
</activeWhen>
</handler>
+ <handler
+ class="eu.etaxonomy.taxeditor.handler.defaultHandler.OpenReferencingObjectsView"
+ commandId="eu.etaxonomy.taxeditor.openReferencingObjectsView">
+ <activeWhen>
+ <with
+ variable="activePartId">
+ <equals
+ value="eu.etaxonomy.taxeditor.navigation.navigator">
+ </equals>
+ </with>
+ </activeWhen>
+ </handler>
+ <handler
+ class="eu.etaxonomy.taxeditor.editor.handler.defaultHandler.DefaultOpenTaxonEditorForTaxonBaseHandler"
+ commandId="eu.etaxonomy.taxeditor.editor.openTaxonEditorForTaxon">
+ <activeWhen>
+ <and>
+ <not>
+ <reference
+ definitionId="isOrphanedTaxon">
+ </reference>
+ </not>
+ </and>
+ </activeWhen>
+ </handler>
</extension>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
package eu.etaxonomy.taxeditor.navigation;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Set;
import java.util.UUID;
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.ParameterizedCommand;
+import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.core.commands.operations.IUndoContext;
import org.eclipse.core.commands.operations.UndoContext;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.commands.ICommandService;
+import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.ui.navigator.CommonViewer;
import eu.etaxonomy.cdm.api.service.IClassificationService;
else if(selectedObject instanceof TaxonNode){
EditorUtil.openTaxonNode(entityUuid);
}else if(selectedObject instanceof TaxonBase){
- EditorUtil.openTaxonBase(entityUuid);
+ TaxonBase taxonBase = (TaxonBase)selectedObject;
+ if(taxonBase.isOrphaned()){
+ openInBulkEditor(taxonBase);
+ }
+ else{
+ EditorUtil.openTaxonBase(entityUuid);
+ }
}else if(selectedObject instanceof TaxonNameBase){
- // TODO open bulk editor
- MessagingUtils.warningDialog("Not implemented yet", NavigationUtil.class, "You tried to open a name. This is not handled by the software yet. For open a pure name you can use the bulk editor");
+ openInBulkEditor(selectedObject);
}else if(selectedObject instanceof PolytomousKey){
EditorUtil.openPolytomousKey(entityUuid);
}else{
}
}
+ private static void openInBulkEditor(ICdmBase selectedObject) {
+ ICommandService commandService = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class);
+ IHandlerService handlerService = (IHandlerService)PlatformUI.getWorkbench().getService(IHandlerService.class);
+ String openInBulkEditorCommand = "eu.etaxonomy.taxeditor.bulkeditor.openBulkEditorForIdentifiableEntity";
+ Command command = commandService.getCommand(openInBulkEditorCommand);
+ if(command.isDefined()){
+ Map<String, UUID> params = new HashMap<String, UUID>();
+ params.put(openInBulkEditorCommand+".uuid", ((ICdmBase) selectedObject).getUuid()); //$NON-NLS-1$
+ ParameterizedCommand parameterizedCommand = ParameterizedCommand.generateCommand(command, params);
+ try {
+ if(parameterizedCommand!=null){
+ handlerService.executeCommand(parameterizedCommand, null);
+ return;
+ }
+ else{
+ handlerService.executeCommand(command.getId(), null);
+ return;
+ }
+ } catch (NotDefinedException nde) {
+ throw new RuntimeException("Could not find open command: " + command.getId()); //$NON-NLS-1$
+ } catch (Exception exception) {
+ MessagingUtils.error(NavigationUtil.class, "An exception occured while trying to execute "+command.getId(), exception); //$NON-NLS-1$
+ }
+ }
+ }
+
/**
* <p>openEmpty</p>
*
/** {@inheritDoc} */
@Override
public void fill(Menu parent, int index) {
- getRecentWindows().fill(parent, index);
+ // getRecentWindows().fill(parent, index);
}
/* (non-Javadoc)
+++ /dev/null
-/**
- *
- */
-package eu.etaxonomy.taxeditor.navigation.key.polytomous;
-
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-
-/**
- * @author n.hoffmann
- *
- */
-public class PolytomousKeyLabelProvider extends ColumnLabelProvider implements
- ILabelProvider {
-
-}
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.GroupMarker;
import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelection;
viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
viewer.setContentProvider(new PolytomousKeyContentProvider());
- viewer.setLabelProvider(new PolytomousKeyLabelProvider());
+ viewer.setLabelProvider(new ColumnLabelProvider());
viewer.addDoubleClickListener(new IDoubleClickListener() {
return Status.CANCEL_STATUS;
}
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, uuids, (TaxonNode)targetITaxonTreeNode, MovingType.CHILD);
- NavigationUtil.executeOperation(operation, null);
- } else {
- AbstractPostOperation operation = new MoveTaxonOperation
- ("Move Taxon", workspaceUndoContext, uuids, targetITaxonTreeNode, this, taxonNavigator, MovingType.CHILD);
- NavigationUtil.executeOperation(operation);
- }
+ AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, uuids, (TaxonNode)targetITaxonTreeNode, MovingType.CHILD);
+ NavigationUtil.executeOperation(operation, null);
+
logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
return Status.OK_STATUS;
return Status.CANCEL_STATUS;
}
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, uuids, (TaxonNode)targetITaxonTreeNode, MovingType.CHILD);
- NavigationUtil.executeOperation(operation, null);
- } else {
- AbstractPostOperation operation = new MoveTaxonOperation
- ("Move Taxon", workspaceUndoContext, uuids, targetITaxonTreeNode, this, taxonNavigator, MovingType.CHILD);
- NavigationUtil.executeOperation(operation);
- }
+ AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, uuids, (TaxonNode)targetITaxonTreeNode, MovingType.CHILD);
+ NavigationUtil.executeOperation(operation, null);
+
logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
return Status.OK_STATUS;
}
TaxonNode targetNode = (TaxonNode) targetITaxonTreeNode;
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, uuids, targetNode, MovingType.BEHIND);
- NavigationUtil.executeOperation(operation, null);
- } else {
- AbstractPostOperation operation = new MoveTaxonOperation
- ("Move Taxon", workspaceUndoContext, uuids, targetNode, this, taxonNavigator, MovingType.BEHIND);
- NavigationUtil.executeOperation(operation);
- }
+ AbstractOperation operation = new RemotingMoveTaxonOperation(taxonNavigator, false, uuids, targetNode, MovingType.BEHIND);
+ NavigationUtil.executeOperation(operation, null);
+
logger.info("Moved taxa to new parent " + targetITaxonTreeNode);
return Status.OK_STATUS;
// }else if (returnCode == 2){
taxonNavigator.refresh();
} catch (Exception e) {
MessagingUtils.messageDialog("Failed to open Editor", CreateClassificationHierarchyHandler.class,
- "Could not open ChecklistView. The hierarchy is corrupted!", e);
+ "Could not open distribution view. The hierarchy is corrupted!", e);
}
}
}
import org.eclipse.ui.handlers.HandlerUtil;
import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.api.service.config.NodeDeletionConfigurator.ChildHandling;
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
import eu.etaxonomy.cdm.api.service.config.TaxonNodeDeletionConfigurator;
-import eu.etaxonomy.cdm.api.service.config.NodeDeletionConfigurator.ChildHandling;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
private TaxonDeletionConfigurator config;
private Set<ITaxonTreeNode> treeNodes;
- /**
- * @param label
- */
public RemotingDeleteTaxonNodeHandler() {
super(TaxonNavigatorLabels.DELETE_TAXON_NODE_LABEL);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#allowOperations(org.eclipse.core.commands.ExecutionEvent)
- */
@Override
public IStatus allowOperations(ExecutionEvent event) {
TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
- Iterator selectionIterator = selection.iterator();
+ Iterator<?> selectionIterator = selection.iterator();
treeNodes = new HashSet<ITaxonTreeNode>();
while (selectionIterator.hasNext()){
}
TaxonNodeDeletionConfigurator configNodes = new TaxonNodeDeletionConfigurator();
- if (taxonNode instanceof Classification && taxonNode.hasChildNodes()){
- if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification? The tree has children, they will be deleted, too.")){
- return Status.CANCEL_STATUS;
- }
- } else if (taxonNode instanceof Classification && !taxonNode.hasChildNodes()){
- if(!DeleteConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification?")){
- return Status.CANCEL_STATUS;
- }
- } else {
+ if (taxonNode instanceof Classification) {
+ String message;
+ if (taxonNode.hasChildNodes()) {
+ message = "Do you really want to delete the classification? The tree has children, they will be deleted, too.";
+ } else {
+ message = "Do you really want to delete the classification?";
+ }
+ if (!DeleteConfiguratorDialog.openConfirm(
+ HandlerUtil.getActiveShell(event), "Confirm Deletion",
+ message)) {
+ return Status.CANCEL_STATUS;
+ }
+ }
+ else {
if (taxonNode.hasChildNodes()){
DeleteConfiguratorDialog dialog = new DeleteConfiguratorDialog(
return Status.OK_STATUS;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#prepareOperation(org.eclipse.core.commands.ExecutionEvent)
- */
@Override
public AbstractOperation prepareOperation(ExecutionEvent event) {
return new RemotingDeleteTaxonNodeOperation(event.getTrigger(),
config);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.operation.RemotingCdmHandler#onComplete()
- */
@Override
public void onComplete() {
- // TODO Auto-generated method stub
-
}
}
if(classification.getReference() == null){
Reference reference = ReferenceFactory.newGeneric();
- reference.setTitleCache(classification.getTitleCache(), true);
+ reference.setTitle(classification.getTitleCache());
classification.setReference(reference);
}
Bundle-ManifestVersion: 2
Bundle-Name: Printpublisher Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.printpublisher;singleton:=true
-Bundle-Version: 4.2.0
+Bundle-Version: 4.3.0
Require-Bundle: org.eclipse.osgi,
org.eclipse.ui,
eu.etaxonomy.taxeditor.cdmlib,
<parent>
<artifactId>taxeditor-parent</artifactId>
<groupId>eu.etaxonomy</groupId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: DataStore Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.store;singleton:=true
-Bundle-Version: 4.2.0
+Bundle-Version: 4.3.0
Bundle-Activator: eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.cdm,
colorDefinition.label.15 = Editor On Error\r
page.name.26 = Specimens and FieldUnits\r
page.name.27 = Media\r
-page.name.28 = Checklist Editor\r
+page.name.28 = Distribution Editor\r
page.name.29 = Editor Profile\r
page.name.30 = Language\r
page.name.32 = Taxon Navigator\r
command.name.CONNECT = Connect\r
command.name.RE_CONNECT = Re-Connect\r
command.name.OPEN_CLASSIFICATION_WIZARD = Open Classification Wizard\r
-command.name.OPEN_TAXONNODE_WIZARD = Open Taxon Node Wizard
+command.name.OPEN_TAXONNODE_WIZARD = Open Taxon Node Wizard\r
\r
command.name.INSPECT_ACTIVE_SESSIONS = Inspect Active Session\r
viewCommandMapping.viewerName.CLASSIFICATION_WIZARD = Classification Wizard\r
colorDefinition.label.15 = Editor fehlerhaft
page.name.26 = Specimens und Field Units
page.name.27 = Media
-page.name.28 = Checklisten Editor
+page.name.28 = Verbreitungs-Editor
page.name.29 = Editor Profil
page.name.30 = Sprache
page.name.32 = Taxon Navigator
page.name.35 = Gebiete für Verbreitungsdaten
command.label.clone = Klonen
command.label.openInSpecimenEditor = \u00d6ffnen im Specimen-Editor
-page.name.31 = Taxon-Node-Reihenfolge
+page.name.31 = Taxonknoten-Reihenfolge
extension.name.0 = Popup Menu Befehle
command.name.8 = Datenquelle klonen
command.name.9 = \u00d6ffne Feature Tree-Wizard
command.name.CONNECT = Verbinden
command.name.RE_CONNECT = Aktualisiere Verbindung
command.name.OPEN_CLASSIFICATION_WIZARD = \u00d6ffne Klassifikations-Wizard
-command.name.OPEN_TAXONNODE_WIZARD = \u00d6ffne Taxon Node-Wizard
+command.name.OPEN_TAXONNODE_WIZARD = \u00d6ffne Taxonknoten-Wizard
command.name.INSPECT_ACTIVE_SESSIONS = Aktive Session untersuchen
viewCommandMapping.viewerName.CLASSIFICATION_WIZARD = Klassifikations-Wizard
-viewCommandMapping.viewerName.TAXON_NODE_WIZARD = Taxnknoten-Wizard
+viewCommandMapping.viewerName.TAXON_NODE_WIZARD = Taxonknoten-Wizard
command.label.CHANGE_PASSWORD = Kennwort ändern
\ No newline at end of file
RemotingLoginDialog_LABEL_PORT=Port :
RemotingLoginDialog_LABEL_REFRESH=Refresh
RemotingLoginDialog_LABEL_REMEMBER_ME=Remember Me
-RemotingLoginDialog_LABEL_RETRIEVE_SERVER_INSTANCES=Retrieve Server Instances
+RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES=Retrieve Server Instances
RemotingLoginDialog_LABEL_SERVER_CDM_VERSION=Server CDM Version :
RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION=Server Cdmlib Version :
RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER=Stop Managed Server
PasswordWizardPage_PASSWORD_MIN_CHARACTER=Password has to have at least %s characters
PasswordWizardPage_PASSWORDS_DO_NOT_MATCH=The passwords do not match
PasswordWizardPage_REPEAT_PASSWORD=Repeat Password
+
+SearchManager_LARGE_RESULT_EXPECTED=Large result expected
+SearchManager_LONG_SEARCH_WARNING=The current search will return %s objects. This will take a long time and/or might render the editor unusable. Please consider refining your search.\nSearch anyway?
+
+SupplementalDataViewPart_VIEWER_NAME=Supplemental Data
+DetailsViewPart_VIEWER_NAME=Details
\ No newline at end of file
RemotingLoginDialog_LABEL_PORT=Port :
RemotingLoginDialog_LABEL_REFRESH=Aktualisieren
RemotingLoginDialog_LABEL_REMEMBER_ME=Login Daten merken
-RemotingLoginDialog_LABEL_RETRIEVE_SERVER_INSTANCES=Abrufen der Serverinstanzen
+RemotingLoginDialog_RETRIEVE_SERVER_INSTANCES=Abrufen der Serverinstanzen
RemotingLoginDialog_LABEL_SERVER_CDM_VERSION=Server CDM Version :
RemotingLoginDialog_LABEL_SERVER_CDMLIB_VERSION=Server Cdmlib Version :
RemotingLoginDialog_LABEL_STOP_MANAGED_SERVER=Beende internen CDM-Server
PasswordWizardPage_PASSWORD_MIN_CHARACTER=Kennwort muss mindesten %s Zeichen enthalten
PasswordWizardPage_PASSWORDS_DO_NOT_MATCH=Die Kennwörter stimmen nicht überein
PasswordWizardPage_REPEAT_PASSWORD=Kennwort wiederholen
+
+SearchManager_LARGE_RESULT_EXPECTED=Große Anzahl an Suchergebnissen
+SearchManager_LONG_SEARCH_WARNING=Die aktuelle Suche wird %s Objekte laden. Dies kann einige Zeit dauern und den Editor währenddessen unbedienbar machen. Bitte erstellen sie eine detailliertere Suche.\nTrotzdem suchen?
+
+SupplementalDataViewPart_VIEWER_NAME=Zusatzdaten
+DetailsViewPart_VIEWER_NAME=Details
name="%view.name"
restorable="true">
</view>
+ <view
+ allowMultiple="true"
+ class="eu.etaxonomy.taxeditor.view.dataimport.SpecimenImportView"
+ id="eu.etaxonomy.taxeditor.view.dataimport.SpecimenImportView"
+ name="%view.name.7">
+ </view>
+ <view
+ allowMultiple="true"
+ class="eu.etaxonomy.taxeditor.view.dataimport.GbifResponseImportView"
+ id="eu.etaxonomy.taxeditor.view.dataimport.GbifResponseImportView"
+ name="%view.name.8">
+ </view>
<view
name="%view.name.0"
category="org.eclipse.ui"
id="eu.etaxonomy.taxeditor.io.import.tcs"
name="%wizard.name">
</wizard>
+ <wizard
+ category="eu.etaxonomy.taxeditor.import.category.cdm"
+ class="eu.etaxonomy.taxeditor.view.dataimport.SpecimenSearchWizard"
+ id="eu.etaxonomy.taxeditor.view.dataimport.SpecimenSearchWizard"
+ name="%wizard.name.21">
+ <description>
+ %wizard.description
+ </description>
+ </wizard>
+
<!-- <wizard
category="eu.etaxonomy.taxeditor.import.category.cdm"
class="eu.etaxonomy.taxeditor.io.wizard.JaxbImportWizard"
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
public static String CdmViewerContextMenu_OPEN;
public static String CdmViewerContextMenu_OPEN_IN;
public static String ChangeConnectionHandler_ALREADY_CONNECTING;
- public static String ChangeConnectionHandler_CONFIRM_DATASOURCE;
public static String ChangeConnectionHandler_CURRENTLY_CONNECTING_ALREADY;
public static String ChangeConnectionHandler_CREATE_DATAMODEL;
public static String ChangeConnectionHandler_REALLY_CREATE_DATAMODEL;
public static String ChangeConnectionHandler_DATASOURCE_NOT_AVAILABLE;
- public static String ChangeConnectionHandler_REALLY_WANT_TO_CONNECT;
public static String ChangeConnectionHandler_NOT_AVAILABLE_REASONS;
public static String UriWithLabelElement_COULD_NOT_OPEN_BROWSER;
public static String UriWithLabelElement_INVALID_URL;
public static String CdmStoreConnector_SCHEME_NOT_COMPATIBLE;
public static String CdmStoreConnector_UPDATE_DATASOUREC_OR_CHOOSE_NEW_DATASOURCE;
public static String CdmStoreConnector_UPDATE_EDITOR_OR_CHOOSE_COMPATIBLE_DATASOURCE;
+ public static String DetailsViewPart_VIEWER_NAME;
public static String EditPasswordElement_PLEASE_CREATE_OR_SAVE_USER;
public static String EditPasswordElement_USERNAME_DOES_NOT_EXIST;
public static String PasswordWizard_COULD_NOT_CHANGE_PWD;
public static String RemotingLoginDialog_JOB_SERVER_LAUNCH;
public static String RemotingLoginDialog_STARTING_MGD_SERVER;
public static String RemotingLoginDialog_TASK_LAUNCHING_SERVER;
+ public static String SearchManager_LARGE_RESULT_EXPECTED;
+ public static String SearchManager_LONG_SEARCH_WARNING;
+ public static String SupplementalDataViewPart_VIEWER_NAME;
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
*/
public static ICdmDataSource createDefaultH2DataSource() {
ICdmDataSource h2DataSource = CdmDataSource.NewH2EmbeddedInstance(
- DEFAULT_DATASOURCE_NAME, "sa", "", PreferencesUtil.getPreferredNomenclaturalCode());
+ DEFAULT_DATASOURCE_NAME, "sa", "", PreferencesUtil.getPreferredNomenclaturalCode(true));
save(h2DataSource.getName(), h2DataSource);
return h2DataSource;
}
public static boolean setCurrentCdmSource(ICdmSource cdmSource) {
currentCdmSource = cdmSource;
NomenclaturalCode dataSourceNomenclaturalCode = cdmSource.getNomenclaturalCode();
- NomenclaturalCode applicationNomenclaturalCode = PreferencesUtil.getPreferredNomenclaturalCode();
+ NomenclaturalCode applicationNomenclaturalCode = PreferencesUtil.getPreferredNomenclaturalCode(true);
if( dataSourceNomenclaturalCode != null && ! dataSourceNomenclaturalCode.equals(applicationNomenclaturalCode)){
PreferencesUtil.setPreferredNomenclaturalCode(dataSourceNomenclaturalCode);
nomenclaturalCodeGroup = new Group(composite , SWT.NONE);
nomenclaturalCodeGroup.setLayout(new GridLayout());
- nomenclaturalCode = dataSource != null ? dataSource.getNomenclaturalCode() : PreferencesUtil.getPreferredNomenclaturalCode();
+ nomenclaturalCode = dataSource != null ? dataSource.getNomenclaturalCode() : PreferencesUtil.getPreferredNomenclaturalCode(true);
for (final NomenclaturalCode code : NomenclaturalCodeHelper.getSupportedCodes()) {
Button button = new Button(nomenclaturalCodeGroup, SWT.RADIO);
import org.eclipse.swt.graphics.TextStyle;\r
import org.eclipse.swt.widgets.Display;\r
\r
+import eu.etaxonomy.cdm.common.CdmUtils;\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.common.Representation;\r
return new StyledString(getText(element), StyledString.QUALIFIER_STYLER);\r
}\r
\r
- /*\r
- * (non-Javadoc)\r
- *\r
- * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)\r
- */\r
-\r
public String getText(Object element) {\r
\r
if (element instanceof DefinedTermBase) {\r
if ( rep == null){\r
rep = dtb.getPreferredRepresentation(new ArrayList<Language>());\r
}\r
- if (StringUtils.isNotBlank(dtb.getIdInVocabulary())) {\r
- return dtb.getIdInVocabulary() + " : " + rep.getLabel();\r
- } else {\r
- return rep.getLabel();\r
- }\r
+ String label = rep != null? rep.getLabel() : dtb.getTitleCache();\r
+ return CdmUtils.concat(" : ", dtb.getIdInVocabulary(), label);\r
\r
} else if (element instanceof TermBase) {\r
return ((TermBase) element).getTitleCache();\r
*/
@Override
public void merge() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IVocabularyService.class).merge(new ArrayList<TermVocabulary>(getRootEntities()), true);
- updateDefaultFeatureTree();
- }
+ CdmStore.getService(IVocabularyService.class).merge(new ArrayList<TermVocabulary>(getRootEntities()), true);
+ updateDefaultFeatureTree();
}
public static FeatureTree getDefaultFeatureTree() {
.getAdditionalFeatures();
for (Feature feature : additionalFeatures) {
FeatureNode child = FeatureNode.NewInstance(feature);
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IFeatureNodeService.class).merge(child, true);
- } else {
- CdmStore.getService(IFeatureNodeService.class).saveOrUpdate(child);
- }
+ CdmStore.getService(IFeatureNodeService.class).merge(child, true);
+
parent.addChild(child);
}
viewer.refresh();
public boolean performFinish() {
try{
if (selectedFeatureTree != null){
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IFeatureTreeService.class).merge(selectedFeatureTree, true);
- } else {
- CdmStore.getService(IFeatureTreeService.class).saveOrUpdate(selectedFeatureTree);
- }
+ CdmStore.getService(IFeatureTreeService.class).merge(selectedFeatureTree, true);
}
conversation.commit();
}finally{
featureTree.setTitleCache(text_title.getText(), true);
viewer.add(featureTree);
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IFeatureTreeService.class).merge(featureTree, true);
- } else {
- CdmStore.getService(IFeatureTreeService.class).saveOrUpdate(featureTree);
- }
+ CdmStore.getService(IFeatureTreeService.class).merge(featureTree, true);
+
text_title.setText("");
viewer.setSelection(new StructuredSelection(featureTree));
protected ICdmApplicationConfiguration applicationConfiguration;
public static enum TYPE {
- Jaxb, Tcs, Excel_Taxa, Endnote, Sdd, Abcd, SpecimenCdmExcel, Excel_Name, SpecimenSearch
+ Jaxb, Tcs, Excel_Taxa, Endnote, Sdd, Abcd, SpecimenCdmExcel, Excel_Name, SpecimenSearch, Gbif
}
/**
import java.io.File;
import java.io.InputStream;
+import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
+import java.util.Set;
import java.util.UUID;
import org.apache.commons.io.IOUtils;
import eu.etaxonomy.cdm.io.common.IImportConfigurator;
import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
import eu.etaxonomy.cdm.io.common.ImportResult;
+import eu.etaxonomy.cdm.io.dwca.in.DwcaImportConfigurator;
import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
import eu.etaxonomy.cdm.io.jaxb.JaxbImportConfigurator;
import eu.etaxonomy.cdm.io.reference.endnote.in.EndnoteImportConfigurator;
import eu.etaxonomy.cdm.io.sdd.in.SDDImportConfigurator;
import eu.etaxonomy.cdm.io.service.IIOService;
+import eu.etaxonomy.cdm.io.specimen.SpecimenImportConfiguratorBase;
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportState;
import eu.etaxonomy.cdm.io.specimen.excel.in.SpecimenCdmExcelImportConfigurator;
+import eu.etaxonomy.cdm.io.specimen.gbif.in.GbifImportConfigurator;
+import eu.etaxonomy.cdm.io.specimen.gbif.in.GbifImportState;
import eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
return SpecimenCdmExcelImportConfigurator.NewInstance(null, null);
case SpecimenSearch:
return Abcd206ImportConfigurator.NewInstance(null, null);
+ case Gbif:
+ return DwcaImportConfigurator.NewInstance(null, null);
default:
MessagingUtils.notImplementedMessage(this);
throw new IllegalArgumentException("Import not supported yet");
public SpecimenCdmExcelImportConfigurator SpecimenCdmExcelImportConfigurator() {
return (SpecimenCdmExcelImportConfigurator) getConfigurator(TYPE.SpecimenCdmExcel);
}
+
+ public DwcaImportConfigurator DwcaImportConfigurator() {
+ return (DwcaImportConfigurator) getConfigurator(TYPE.Gbif);
+ }
+
/**
* {@inheritDoc}
}
+ public Job createIOServiceJob(final GbifImportConfigurator<GbifImportState, InputStream> configurator) {
+ Assert.isNotNull(configurator, "Configuration may not be null");
+ final Display display = Display.getDefault();
+ Job job = new Job("Import: " + " Dwca") {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ monitor.beginTask("Importing data", IProgressMonitor.UNKNOWN);
+ IIOService ioService = CdmApplicationState.getIOService();
+
+ ImportResult result = ioService.importDataFromStream(configurator);
+ monitor.done();
+
+ display.asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ CdmStore.getContextManager().notifyContextRefresh();
+ }
+ });
+
+ return Status.OK_STATUS;
+ }
+ };
+
+ return job;
+
+ }
+
+ public Job createIOServiceJob(final Abcd206ImportConfigurator<Abcd206ImportState, InputStream> configurator) {
+ Assert.isNotNull(configurator, "Configuration may not be null");
+ final Display display = Display.getDefault();
+ Job job = new Job("Import: " + " Dwca") {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ monitor.beginTask("Importing data", IProgressMonitor.UNKNOWN);
+ IIOService ioService = CdmApplicationState.getIOService();
+
+ ImportResult result = ioService.importDataFromStream(configurator);
+ monitor.done();
+
+ display.asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ CdmStore.getContextManager().notifyContextRefresh();
+ }
+ });
+
+ return Status.OK_STATUS;
+ }
+ };
+
+ return job;
+
+ }
+
+ public Job createIOServiceJob(
+ final List<Abcd206ImportConfigurator> abcdConfigurators) {
+ Assert.isNotNull(abcdConfigurators, "Configuration may not be null");
+ final Display display = Display.getDefault();
+ Job job = new Job("Import: " + " Dwca") {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ monitor.beginTask("Importing data", IProgressMonitor.UNKNOWN);
+ IIOService ioService = CdmApplicationState.getIOService();
+
+ ImportResult result = ioService.importDataFromStream(abcdConfigurators);
+ monitor.done();
+
+ display.asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ CdmStore.getContextManager().notifyContextRefresh();
+ }
+ });
+
+ return Status.OK_STATUS;
+ }
+ };
+
+ return job;
+ }
+
+
+
}
configurator.setClassificationUuid(classificationChooserWizardPage.getClassification().getUuid());
}
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- //Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
- //CdmStore.getImportManager().run(job);
- CdmStore.getImportManager().runMoniteredOperation(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
- } else {
- try {
- configurator.setSource(new FileInputStream(new File(source)));
- } catch (FileNotFoundException e) {
- MessagingUtils.errorDialog("File not found.", this, "Import file was not found.", TaxeditorStorePlugin.PLUGIN_ID, e, false);
- logger.error("File not found!", e);
- return false;
- }
- CdmStore.getImportManager().run(configurator);
- }
+ CdmStore.getImportManager().runMoniteredOperation(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
+
return true;
}
}
- protected static ClassificationChooserWizardPage createPage(){
+ public static ClassificationChooserWizardPage createPage(){
return new ClassificationChooserWizardPage("Configure import destinations", "Note: Selecting no classification will create a default one.");
}
configurator.setLastChange(true);
}
}
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- // create job
- Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));
- // configure the job
- job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
- job.setUser(true);
- // schedule job
- job.schedule();
- } else {
-
- configurator.setDestination(new File(urlString));
- CdmStore.getExportManager().run(configurator);
- }
+
+ // create job
+ Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));
+ // configure the job
+ job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
+ job.setUser(true);
+ // schedule job
+ job.schedule();
+
return true;
}
+ page.getExportFileName();\r
\r
final Combo combo = page.getCombo();\r
-\r
- if(CdmStore.getCurrentSessionManager().isRemoting()) {\r
- // create job\r
- Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));\r
- // configure the job\r
- job.setProperty(IProgressConstants.KEEP_PROPERTY, true);\r
- job.setUser(true);\r
- // schedule job\r
- job.schedule();\r
- } else {\r
- configurator.setDestination(new File(urlString));\r
- CdmStore.getExportManager().run(configurator);\r
- }\r
+ configurator.setClassificationUUID(page.getSelectedClassificationUUID());\r
+ \r
+ // create job\r
+ Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));\r
+ // configure the job\r
+ job.setProperty(IProgressConstants.KEEP_PROPERTY, true);\r
+ job.setUser(true);\r
+ // schedule job\r
+ job.schedule();\r
+ \r
return true;\r
}\r
\r
+ page.getExportFileName();\r
\r
final Combo combo = page.getCombo();\r
- final List<Classification> listClassifications = CdmStore.getCurrentApplicationConfiguration().getClassificationService().listClassifications(null, null, null, null);\r
- if(combo != null){\r
- int selectionIndex = combo.getSelectionIndex();\r
- HashSet<UUID> set = new HashSet<UUID>();\r
- if(selectionIndex == -1){\r
- for(Classification c:listClassifications){\r
- set.add(c.getUuid());\r
- }\r
- }else{\r
- for(Classification c:listClassifications){\r
- if(c.getTitleCache().equalsIgnoreCase(combo.getItem(selectionIndex))){\r
- set.add(c.getUuid());\r
- }\r
- }\r
-\r
- configurator.setHasHeaderLines(true);\r
-\r
- }\r
- } else{\r
- configurator.setClassificationUUID(listClassifications.get(0).getUuid());\r
- }\r
-\r
- if(CdmStore.getCurrentSessionManager().isRemoting()) {\r
- // create job\r
- Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));\r
- // configure the job\r
- job.setProperty(IProgressConstants.KEEP_PROPERTY, true);\r
- job.setUser(true);\r
- // schedule job\r
- job.schedule();\r
- } else {\r
- configurator.setDestination(new File(urlString));\r
- CdmStore.getExportManager().run(configurator);\r
- }\r
+\r
+ \r
+ configurator.setClassificationUUID(page.getSelectedClassificationUUID());\r
+ // create job\r
+ Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));\r
+ // configure the job\r
+ job.setProperty(IProgressConstants.KEEP_PROPERTY, true);\r
+ job.setUser(true);\r
+ // schedule job\r
+ job.schedule();\r
+ \r
return true;\r
}\r
\r
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.ui.IWorkbench;
import eu.etaxonomy.cdm.database.DbSchemaValidation;
import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.store.CdmStore;
configurator.setSource(source);
configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
- CdmStore.getImportManager().run(job);
- } else {
- CdmStore.getImportManager().run(configurator);
- }
-
-
+ Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
+ CdmStore.getImportManager().run(job);
+
return true;
}
public void init(IWorkbench workbench, IStructuredSelection selection) {
super.init(workbench, selection);
configurator = CdmStore.getImportManager().NormalExplicitConfigurator();
+ if (selection instanceof TreeSelection && !selection.isEmpty()){
+ TaxonNode node = (TaxonNode)selection.getFirstElement();
+ configurator.setParentUUID(node.getTaxon().getUuid());
+ configurator.setClassificationUuid(node.getClassification().getUuid());
+ }
}
/* (non-Javadoc)
import java.text.SimpleDateFormat;
import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
+import java.util.UUID;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
import eu.etaxonomy.cdm.model.taxon.Classification;
import eu.etaxonomy.taxeditor.datasource.CdmDataSourceRepository;
import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceException;
* @created 15.06.2009
* @version 1.0
*/
-public class ExportToFileDestinationWizardPage extends WizardPage {
+public class ExportToFileDestinationWizardPage extends WizardPage implements SelectionListener {
/** Constant <code>DATE_FORMAT_NOW="yyyyMMddHHmm"</code> */
public static final String DATE_FORMAT_NOW = "yyyyMMddHHmm";
private final String extension;
- private Combo comboBox;
+ private Combo classificationSelectionCombo;
+
+ private List<Classification> classifications;
+
+ private Classification selectedClassification;
/**
* @param pageName
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 3;
composite.setLayout(gridLayout);
+ if(classifications == null){
+ classifications = CdmStore.getService(IClassificationService.class).list(null, null, null, null, null);
+ Collections.sort(classifications, new Comparator<Classification>() {
+
+ @Override
+ public int compare(Classification o1, Classification o2) {
+ return o1.getTitleCache().compareTo(o2.getTitleCache());
+ }
+ });
+
+ selectedClassification = classifications.iterator().next();
+ }
- if(csvExport){
+ if(csvExport || csvPrintExport){
Label comboBoxLabel = new Label(composite, SWT.NONE);
comboBoxLabel.setText("Classification");
- Combo comboBox = addComboBox(composite);
- comboBox.setLayoutData(new GridData(SWT.FILL, SWT.FILL,
+
+ createClassificationSelectionCombo(composite);
+ classificationSelectionCombo.setLayoutData(new GridData(SWT.FILL, SWT.FILL,
true, false, 2, 1));
}
return text_folder.getText();
}
- private Combo addComboBox(Composite composite){
+ private Control createClassificationSelectionCombo(Composite parent){
+// classifications = CdmStore.getTaxonTreeService().list(null, null, null, null, null);
- comboBox = new Combo(composite, SWT.DROP_DOWN);
- comboBox.setText("Choose Classification");
+ Composite classificationSelection = new Composite(parent, SWT.NULL);
+ classificationSelection.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
- final List<Classification> listClassifications = CdmStore.getCurrentApplicationConfiguration().getClassificationService().listClassifications(null, null, null, null);
+ GridLayout layout = new GridLayout();
+ classificationSelection.setLayout(layout);
- for(Classification c : listClassifications){
- comboBox.add(c.getTitleCache());
- }
+ Label label = new Label(classificationSelection, SWT.NULL);
+ // TODO not working is not really true but leave it here to remind everyone that this is under construction
+ label.setText("Select Classification");
+ classificationSelectionCombo = new Combo(classificationSelection, SWT.BORDER | SWT.READ_ONLY);
+ classificationSelectionCombo.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true));
+
+ for(Classification tree : classifications){
+ classificationSelectionCombo.add(tree.getName().getText(), classifications.indexOf(tree));
+
+ }
- return comboBox;
+ classificationSelectionCombo.select(classifications.indexOf(selectedClassification));
+
+ // TODO remember last selection
+ classificationSelectionCombo.addSelectionListener(this);
+
+
+
+ return classificationSelection;
}
public Combo getCombo(){
- return comboBox;
+ return classificationSelectionCombo;
+ }
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ selectedClassification = classifications.get(classificationSelectionCombo.getSelectionIndex());
+
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ //not needed here
+
+ }
+
+ public UUID getSelectedClassificationUUID() {
+
+ return selectedClassification.getUuid();
}
}
File exportFile = new File(page.getFolderText() + File.separator + page.getExportFileName());
URI urlString = exportFile.toURI();
configurator.setDestination(urlString);
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- // create job
- Job job = CdmStore.getExportManager().createIOServiceJob(configurator, exportFile);
- // configure the job
- job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
- job.setUser(true);
- // schedule job
- job.schedule();
- } else {
- CdmStore.getExportManager().run(configurator);
- }
+
+ // create job
+ Job job = CdmStore.getExportManager().createIOServiceJob(configurator, exportFile);
+ // configure the job
+ job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
+ job.setUser(true);
+ // schedule job
+ job.schedule();
+
performFinish = true;
return performFinish;
}
final Group group = new Group(container, SWT.NONE);
group.setLayout(new GridLayout());
- NomenclaturalCode preferredCode = PreferencesUtil.getPreferredNomenclaturalCode();
+ NomenclaturalCode preferredCode = PreferencesUtil.getPreferredNomenclaturalCode(false);
// set preferred code as default
configurator.setNomenclaturalCode(preferredCode);
@Override
public boolean performFinish() {
File file = new File(page.getFolderText() + File.separator + page.getExportFileName());
-
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- // create job
- Job job = CdmStore.getExportManager().createIOServiceJob(configurator, file);
- // configure the job
- job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
- job.setUser(true);
- // schedule job
- job.schedule();
- } else {
- configurator.setDestination(file);
- CdmStore.getExportManager().run(configurator);
- }
+ // create job
+ Job job = CdmStore.getExportManager().createIOServiceJob(configurator, file);
+ // configure the job
+ job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
+ job.setUser(true);
+ // schedule job
+ job.schedule();
+
return true;
}
URI source = dataSourcePage.getUri();
configurator.setSource(source);
configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
-
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
- CdmStore.getImportManager().run(job);
- } else {
- CdmStore.getImportManager().run(configurator);
- }
-
+ Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
+ CdmStore.getImportManager().run(job);
+
return true;
}
configurator.setSource(source);
configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
- CdmStore.getImportManager().run(job);
- } else {
- CdmStore.getImportManager().run(configurator);
- }
-
+ Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.URI);
+ CdmStore.getImportManager().run(job);
+
return true;
}
public static final String AMPLIFICATION_DERIVATE = "amplification_derivate";
public static final String SINGLE_READ_DERIVATE = "single_read_derivate";
public static final String SINGLE_READ_DERIVATE_MULTILINK = "single_read_derivate_multilink";
+ public static final String DEFAULT_DERIVATIVE = "default_derivate";
public static final String CHARACTER_DATA_DERIVATE = "character_data_derivate";
"single_read_derivate_multilink-16x16-32.png");
registerImage(registry, CHARACTER_DATA_DERIVATE,
"character_data_derivate-16x16-32.png");
+ registerImage(registry, DEFAULT_DERIVATIVE,
+ "default_derivate-16x16-32.png");
registerImage(registry, WEB,
"web.gif");
/** {@inheritDoc} */
@Override
protected void saveEntity() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IAmplificationService.class).merge(getEntity(), true);
- } else {
- CdmStore.getService(IAmplificationService.class).save(getEntity());
- }
+ CdmStore.getService(IAmplificationService.class).merge(getEntity(), true);
+
}
/** {@inheritDoc} */
protected void saveEntity() {
//CdmStore.getService(IClassificationService.class).saveOrUpdate(getEntity());
Classification classification = getEntity();
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IClassificationService.class).merge(getEntity(), true);
- CdmApplicationState.getCurrentDataChangeService()
+ CdmStore.getService(IClassificationService.class).merge(getEntity(), true);
+ CdmApplicationState.getCurrentDataChangeService()
.fireChangeEvent(new CdmChangeEvent(Action.Create, classification, NewTaxonNodeWizard.class), true);
- } else {
- CdmStore.getService(IClassificationService.class).save(getEntity());
- }
+
}
/** {@inheritDoc} */
@Override
protected void saveEntity() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(ICollectionService.class).merge(getEntity(), true);
- } else {
- CdmStore.getService(ICollectionService.class).save(getEntity());
- }
+ CdmStore.getService(ICollectionService.class).merge(getEntity(), true);
+
}
/* (non-Javadoc)
/** {@inheritDoc} */
@Override
protected void saveEntity() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IOccurrenceService.class).merge(getEntity(), true);
- } else {
- CdmStore.getService(IOccurrenceService.class).save(getEntity());
- }
+ setEntity(CdmStore.getService(IOccurrenceService.class).merge(getEntity()));
+
}
/** {@inheritDoc} */
@Override
protected void saveEntity() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IOccurrenceService.class).merge(getEntity(), true);
- } else {
- CdmStore.getService(IOccurrenceService.class).save(getEntity());
- }
+ CdmStore.getService(IOccurrenceService.class).merge(getEntity(), true);
+
}
@Override
*/
@Override
protected void saveEntity() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IGrantedAuthorityService.class).merge(getEntity(), true);
- } else {
- CdmStore.getService(IGrantedAuthorityService.class).save(getEntity());
- }
+ CdmStore.getService(IGrantedAuthorityService.class).merge(getEntity(), true);
+
}
/* (non-Javadoc)
*/
@Override
protected void saveEntity() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IGroupService.class).merge(getEntity(), true);
- } else {
- CdmStore.getService(IGroupService.class).save(getEntity());
- }
+ CdmStore.getService(IGroupService.class).merge(getEntity(), true);
+
}
/* (non-Javadoc)
*/
@Override
protected void saveEntity() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IAgentService.class).merge(getEntity(), true);
- } else {
- CdmStore.getService(IAgentService.class).save(getEntity());
- }
+ CdmStore.getService(IAgentService.class).merge(getEntity(), true);
}
/* (non-Javadoc)
/** {@inheritDoc} */
@Override
protected void saveEntity() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(INameService.class).merge(getEntity(), true);
- } else {
- CdmStore.getService(INameService.class).save(getEntity());
- }
+ CdmStore.getService(INameService.class).merge(getEntity(), true);
}
@Override
/** {@inheritDoc} */
@Override
protected void saveEntity() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IAgentService.class).merge(getEntity(), true);
- } else {
- CdmStore.getService(IAgentService.class).save(getEntity());
- }
+ CdmStore.getService(IAgentService.class).merge(getEntity(), true);
}
@Override
@Override
protected void saveEntity() {
if(!polytomousKeyPage.getPolytomousKeyName().equals("")) {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IPolytomousKeyService.class).merge(getEntity(), true);
- } else {
- CdmStore.getService(IPolytomousKeyService.class).save(getEntity());
- }
+ CdmStore.getService(IPolytomousKeyService.class).merge(getEntity(), true);
}
}
/** {@inheritDoc} */
@Override
protected void saveEntity() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IPrimerService.class).merge(getEntity(),true);
- } else {
- CdmStore.getService(IPrimerService.class).save(getEntity());
- }
+ CdmStore.getService(IPrimerService.class).merge(getEntity(),true);
+
}
/** {@inheritDoc} */
*/
package eu.etaxonomy.taxeditor.newWizard;
+import java.util.ArrayList;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import java.util.UUID;
import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
import eu.etaxonomy.cdm.api.service.IClassificationService;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeDetailElement;
import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeWizardPage;
/**
else{
parentNodeUuid = parent.getUuid();
}
- UpdateResult result = CdmStore.getService(ITaxonNodeService.class).createNewTaxonNode(parentNodeUuid, taxon, parent.getReference(), parent.getMicroReference());
-
- //TaxonNode taxonNode = parent.addChildTaxon(taxon, parent.getReference(), parent.getMicroReference());
-
- /* if(CdmStore.getCurrentSessionManager().isRemoting()) {
- taxonNode = CdmStore.getService(ITaxonNodeService.class).merge(taxonNode);
- } else {
- taxonNode = CdmStore.getService(ITaxonNodeService.class).save(taxonNode);
- }*/
- if (result.isOk()){
- generatedTaxonNodeUuid = result.getCdmEntity().getUuid();
- TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid);
- taxonNode.getTaxon().setSec(sec);
- CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true);
- Set<CdmBase> affectedObjects = new HashSet<CdmBase>();
- if (result.getUpdatedObjects().iterator().hasNext()){
- TaxonNode parentNode = (TaxonNode)result.getUpdatedObjects().iterator().next();
- if(parentNode.getParent() == null) {
- affectedObjects.add(taxonNode.getClassification());
- }
- affectedObjects.add(parentNode);
- }
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmApplicationState.getCurrentDataChangeService()
- .fireChangeEvent(new CdmChangeEvent(Action.Create, affectedObjects, NewTaxonNodeWizard.class), true);
- }
- }else{
- if (!result.isOk()){
- if (!result.getExceptions().isEmpty()){
- MessagingUtils.error(getClass(), "Taxon could not be created", result.getExceptions().iterator().next());
- }else{
- MessagingUtils.warn(getClass(), "Taxon could not be created");
- }
- }
- }
- }catch(IllegalArgumentException e){
+ UpdateResult result;
+
+ if (taxon.getId() == 0){
+ result = CdmStore.getService(ITaxonNodeService.class).createNewTaxonNode(parentNodeUuid, taxon, parent.getReference(), parent.getMicroReference());
+ }else{
+ result = CdmStore.getService(ITaxonNodeService.class).createNewTaxonNode(parentNodeUuid, taxon.getUuid(), parent.getReference(), parent.getMicroReference());
+ }
+ if (result.isOk()){
+ generatedTaxonNodeUuid = result.getCdmEntity().getUuid();
+ TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid);
+ taxonNode.getTaxon().setSec(sec);
+ CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true);
+ Set<CdmBase> affectedObjects = new HashSet<CdmBase>();
+ if (result.getUpdatedObjects().iterator().hasNext()){
+ TaxonNode parentNode = (TaxonNode)result.getUpdatedObjects().iterator().next();
+ if(parentNode.getParent() == null) {
+ affectedObjects.add(taxonNode.getClassification());
+ }
+ affectedObjects.add(parentNode);
+ }
+ CdmApplicationState.getCurrentDataChangeService()
+ .fireChangeEvent(new CdmChangeEvent(Action.Create, affectedObjects, NewTaxonNodeWizard.class), true);
+
+ }else{
+ if (!result.isOk()){
+ if (!result.getExceptions().isEmpty()){
+ MessagingUtils.error(getClass(), "Taxon could not be created", result.getExceptions().iterator().next());
+ }else{
+ MessagingUtils.warn(getClass(), "Taxon could not be created");
+ }
+ }
+ }
+ }catch(IllegalArgumentException e){
MessagingUtils.warningDialog("Taxon already exists in classfication", getClass(), e.getMessage());
}
}
return CdmStore.getService(IClassificationService.class).load(treeNode.getUuid());
}
else if(treeNode instanceof TaxonNode){
- return CdmStore.getService(ITaxonNodeService.class).load(treeNode.getUuid());
+
+ TaxonNode node = CdmStore.getService(ITaxonNodeService.class).load(treeNode.getUuid());
+ Taxon taxon = (Taxon) CdmStore.getService(ITaxonService.class).load(node.getTaxon().getUuid());
+ return node;
}
}
}
/** {@inheritDoc} */
@Override
protected void saveEntity() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IAgentService.class).merge(getEntity(), true);
- } else {
- CdmStore.getService(IAgentService.class).save(getEntity());
- }
+ CdmStore.getService(IAgentService.class).merge(getEntity(), true);
+
}
@Override
@Override
protected void saveEntity() {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmStore.getService(IUserService.class).merge(getEntity(), true);
- } else {
- CdmStore.getService(IUserService.class).save(getEntity());
- }
+ CdmStore.getService(IUserService.class).merge(getEntity(), true);
+
}
@Override
*/
package eu.etaxonomy.taxeditor.preference;
+import java.util.Iterator;
import java.util.List;
+import org.eclipse.jface.preference.FieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.RadioGroupFieldEditor;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.IPreferenceService;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
import eu.etaxonomy.taxeditor.model.NomenclaturalCodeHelper;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
/**
setPreferenceStore(TaxeditorStorePlugin.getDefault()
.getPreferenceStore());
setDescription("Choose which nomenclatural code you would like to use for scientific names unless otherwise specified.");
+ PreferencesUtil.setPreferredNomenclaturalCode(null);
}
+
+ @Override
+ public boolean performOk() {
+
+ boolean result = super.performOk();
+ if (result){
+ String value = getPreferenceStore().getString(IPreferenceKeys.PREFERRED_NOMENCLATURAL_CODE_KEY);
+ CdmPreference pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.NomenclaturalCode, value);
+ ICdmApplicationConfiguration controller = CdmStore.getCurrentApplicationConfiguration();
+ IPreferenceService service = controller.getPreferenceService();
+ service.set(pref);
+ }
+ return result;
+ }
+
+
}
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeConfigurator;
import eu.etaxonomy.cdm.api.service.IFeatureTreeService;
+import eu.etaxonomy.cdm.api.service.IPreferenceService;
import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.api.service.config.FindTaxaAndNamesConfiguratorImpl;
import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
import eu.etaxonomy.cdm.model.common.MarkerType;
import eu.etaxonomy.cdm.model.common.TermBase;
import eu.etaxonomy.cdm.model.description.FeatureTree;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
import eu.etaxonomy.cdm.strategy.match.DefaultMatchStrategy;
import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
*/
public static void setPreferredNomenclaturalCode(
NomenclaturalCode preferredCode) {
+ ICdmApplicationConfiguration controller;
+ controller = CdmStore.getCurrentApplicationConfiguration();
+ PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
+ CdmPreference preference = null;
+ if (preferredCode == null){
+ preference = controller.getPreferenceService().find(key);
+ if (preference == null){
+ return;
+ } else{
+ int index = StringUtils.lastIndexOf(preference.getValue(), ".");
+ UUID uuid = UUID.fromString(preference.getValue().substring(index +1, preference.getValue().length()));
+ preferredCode = NomenclaturalCode.getByUuid(uuid);
+ }
+ } else{
+ preference = CdmPreference.NewInstance(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode, preferredCode.getKey());
+ controller.getPreferenceService().set(preference);
+ }
+
+
getPreferenceStore().setValue(PREFERRED_NOMENCLATURAL_CODE_KEY,
- getPreferenceKey(preferredCode));
+ getPreferenceKey(preferredCode));
}
+ public static NomenclaturalCode getPreferredNomenclaturalCode(){
+ return getPreferredNomenclaturalCode(false);
+ }
+
/**
* <p>
* getPreferredNomenclaturalCode
*
* @return a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
*/
- public static NomenclaturalCode getPreferredNomenclaturalCode() {
-
- for (NomenclaturalCode code : NomenclaturalCodeHelper.getAllCodes()) {
- String preferredCode = getPreferenceStore().getString(
+ public static NomenclaturalCode getPreferredNomenclaturalCode(boolean preConnected) {
+ ICdmApplicationConfiguration controller;
+ CdmPreference pref = null;
+ if (!preConnected){
+ try{
+ controller = CdmStore.getCurrentApplicationConfiguration();
+ PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
+ pref = controller.getPreferenceService().find(key);
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+
+ String preferredCode;
+ if(pref == null){
+ preferredCode = getPreferenceStore().getString(
PREFERRED_NOMENCLATURAL_CODE_KEY);
+ }else{
+ preferredCode = pref.getValue();
+ }
+
+ for (NomenclaturalCode code : NomenclaturalCodeHelper.getAllCodes()) {
+// String preferredCode = getPreferenceStore().getString(
+// PREFERRED_NOMENCLATURAL_CODE_KEY);
if (getPreferenceKey(code).equals(preferredCode)) {
return code;
}
// First time Editor is opened, no nomenclatural code has been set
- if (PreferencesUtil.getPreferredNomenclaturalCode() == null) {
+ if (PreferencesUtil.getPreferredNomenclaturalCode(true) == null) {
PreferencesUtil.setPreferredNomenclaturalCode(NomenclaturalCode.ICNAFP);
/*
IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
String checkedValues = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS);
String grayedValues = preferenceStore.getString(PreferencesUtil.DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED);
- setTitle("Select areas for ChecklistEditor");
+ setTitle("Select areas for Distribution Editor");
setDescription("In order to be able to modify and see the distribution status of taxa,\n"
+ "you have to select the areas which you like to see.");
Composite composite = new Composite(parent, SWT.NULL);
static void setInstance(ICdmApplicationConfiguration applicationController,
ICdmSource cdmSource) {
instance = new CdmStore(applicationController, cdmSource);
- if(getCurrentSessionManager().isRemoting()) {
- CdmApplicationState.setCdmServiceCacher(new CdmServiceCacher());
- }
+ CdmApplicationState.setCdmServiceCacher(new CdmServiceCacher());
+
}
private CdmStore(ICdmApplicationConfiguration applicationController,
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Display;
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
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.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.Messages;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
public static final List NO_RESULTS = Arrays.asList(new Object[]{});
- public static final String WILDCARD = "*";
+ public static final String WILDCARD = "*"; //$NON-NLS-1$
public static int NO_COUNT = -1;
+
// TODO make this configurable via preferences
private static final int MAX_RESULTS_BEFORE_WARNING = 500;
- public List<TaxonNameBase> findNames(IIdentifiableEntityServiceConfigurator configurator){
+ public List<TaxonNameBase> findNames(IIdentifiableEntityServiceConfigurator configurator, ConversationHolder conversation){
+
if(checkLargeResult(CdmStore.getService(INameService.class).countByTitle(configurator))){
List<TaxonNameBase> records = CdmStore.getService(INameService.class).findByTitle(configurator).getRecords();
addUuidSearchResults(records, configurator, INameService.class);
String titleSearchString = configurator.getTitleSearchString();
try {
UUID uuid = UUID.fromString(titleSearchString);
- T foundRecord = CdmStore.getService(service).find(uuid);
+ T foundRecord = CdmStore.getService(service).load(uuid, configurator.getPropertyPaths());
if(foundRecord!=null){
records.add(foundRecord);
}
public List<SpecimenOrObservationBase> findOccurrences(IIdentifiableEntityServiceConfigurator<SpecimenOrObservationBase> configurator, boolean showFieldUnits){
List<SpecimenOrObservationBase> records = new ArrayList<SpecimenOrObservationBase>();
final List<String> BASE_OCCURRENCE_INIT_STRATEGY = Arrays.asList(new String[] {
- "collection",
- "descriptions",
- "identifiers",
- "derivationEvents.originals",
- "derivedFrom.originals",
- "gatheringEvent.country.representations",
- "gatheringEvent.collector",
- "gatheringEvent.locality",
- "descriptions.descriptionElements",
- "kindOfUnit",
- "amplificationResults",
- "sequences.singleReadAlignments",
- "mediaSpecimen"
+ "collection", //$NON-NLS-1$
+ "descriptions", //$NON-NLS-1$
+ "identifiers", //$NON-NLS-1$
+ "derivationEvents.originals", //$NON-NLS-1$
+ "derivedFrom.originals", //$NON-NLS-1$
+ "gatheringEvent.country.representations", //$NON-NLS-1$
+ "gatheringEvent.collector", //$NON-NLS-1$
+ "gatheringEvent.locality", //$NON-NLS-1$
+ "descriptions.descriptionElements", //$NON-NLS-1$
+ "kindOfUnit", //$NON-NLS-1$
+ "amplificationResults", //$NON-NLS-1$
+ "sequences.singleReadAlignments", //$NON-NLS-1$
+ "mediaSpecimen" //$NON-NLS-1$
});
List<String> occurrencePropertyPaths = new ArrayList<String>();
occurrencePropertyPaths.addAll(BASE_OCCURRENCE_INIT_STRATEGY);
for(String propertyPath:BASE_OCCURRENCE_INIT_STRATEGY) {
- occurrencePropertyPaths.add("derivationEvents.derivatives." + propertyPath);
+ occurrencePropertyPaths.add("derivationEvents.derivatives." + propertyPath); //$NON-NLS-1$
}
configurator.setPropertyPaths(occurrencePropertyPaths);
private boolean checkLargeResult(int count, int maxBeforWarning) {
if(count > maxBeforWarning){
- return MessageDialog.openConfirm(Display.getDefault().getActiveShell(), "Large result expected",
- String.format("The current search will return %s objects. This will " +
- "take a long time and/or might render the editor unusable. Please consider refining your search.", count));
+ return MessageDialog.openConfirm(Display.getDefault().getActiveShell(), Messages.SearchManager_LARGE_RESULT_EXPECTED,
+ String.format(Messages.SearchManager_LONG_SEARCH_WARNING, count));
}else{
return true;
}
}
private String sqlizeTitleSearchString(IIdentifiableEntityServiceConfigurator configurator){
- return configurator.getTitleSearchString().replace(WILDCARD, "%");
+ return configurator.getTitleSearchString().replace(WILDCARD, "%"); //$NON-NLS-1$
}
public List findTaxa(IIdentifiableEntityServiceConfigurator configurator) {
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
import eu.etaxonomy.taxeditor.ui.element.RootElement;
+import eu.etaxonomy.taxeditor.webapp.ICDMServerError;
/**
* @author pplitzner
* @date Mar 30, 2016
*
*/
-public abstract class AbstractEntityCollectionElementWizardPage extends WizardPage implements
+public abstract class AbstractEntityCollectionElementWizardPage extends WizardPage implements
IPropertyChangeListener {
protected CdmFormFactory formFactory;
+
protected RootElement rootElement;
protected AbstractEntityCollectionElementWizardPage(String pageName) {
super(pageName);
+
}
/**
public void dispose() {
rootElement.removeElements();
formFactory.removePropertyChangeListener(this);
+
super.dispose();
}
if(authenticatedUser == null) {
text = "Not logged in " ;
} else {
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- CdmRemoteSource source = (CdmRemoteSource) CdmStore.getActiveCdmSource();
- String loginInfo = authenticatedUser.getUsername() + "@" + source.getName() + ":" + source.getContextPath();
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setText(ApplicationUtil.getTitle() + " " + loginInfo);
- }
+ CdmRemoteSource source = (CdmRemoteSource) CdmStore.getActiveCdmSource();
+ String loginInfo = authenticatedUser.getUsername() + "@" + source.getName() + ":" + source.getContextPath();
+ PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setText(ApplicationUtil.getTitle() + " " + loginInfo);
+
text = "Logged in as: " + authenticatedUser.getUsername() + " ";
}
--- /dev/null
+// $Id$
+/**
+* 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.ui.combo;
+
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
+import eu.etaxonomy.taxeditor.ui.element.ISelectable;
+import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
+
+/**
+ * @author pplitzner
+ * @date Aug 11, 2016
+ *
+ */
+public abstract class AbstractComboElement<T> extends
+AbstractCdmFormElement implements SelectionListener,
+IEnableableFormElement, ISelectable,
+DisposeListener {
+
+ protected static final int DEFAULT_VISIBLE_ITEMS = 10;
+
+ protected T selection;
+
+ protected Label label;
+
+ protected final Combo combo;
+
+
+ public AbstractComboElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+ super(formFactory, formElement);
+
+ label = formFactory.createLabel(getLayoutComposite(), "");
+ addControl(label);
+
+ // create combo
+ ComboViewer viewer = new ComboViewer(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY );
+ combo = viewer.getCombo();
+ addControl(combo);
+ TableWrapData fill_HORIZONTALLY = LayoutConstants.FILL_HORIZONTALLY();
+ combo.setLayoutData(fill_HORIZONTALLY);
+ fill_HORIZONTALLY.maxWidth = 50;
+ combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setBackground(Color color) {
+ if (label != null) {
+ label.setBackground(color);
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setIrrelevant(boolean irrelevant) {
+ String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT
+ : Resources.COLOR_COMPOSITE_BACKGROUND;
+
+ Color color = AbstractUtility.getColor(colorId);
+ combo.setBackground(color);
+ }
+
+ public void setVisibleItemCount(int count){
+ combo.setVisibleItemCount(count);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setSelected(boolean selected) {
+ setBackground(selected ? SELECTED : getPersistentBackground());
+ }
+
+ public T getSelection() {
+ return selection;
+ }
+
+ public void addSelectionListener(SelectionListener listener) {
+ combo.addSelectionListener(listener);
+ }
+
+ public void removeSelectionListener(SelectionListener listener) {
+ combo.removeSelectionListener(listener);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void widgetDisposed(DisposeEvent e) {
+ PreferencesUtil.getPreferenceStore().removePropertyChangeListener(this);
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return combo.isEnabled();
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void setEnabled(boolean enabled) {
+ combo.setEnabled(enabled);
+ }
+
+ public abstract void setSelection(T selection);
+}
import java.util.List;
import java.util.Map.Entry;
-import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Label;
import eu.etaxonomy.cdm.model.common.IEnumTerm;
import eu.etaxonomy.cdm.model.common.OriginalSourceType;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
import eu.etaxonomy.cdm.model.reference.ReferenceType;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.preference.Resources;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
-import eu.etaxonomy.taxeditor.ui.element.ISelectable;
-import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
/**
- * <p>
- * Abstract AbstractEnumComboElement class.
- * </p>
- *
* @author n.hoffmann
* @created Mar 16, 2010
* @version 1.0
*/
public class EnumComboElement<T extends IEnumTerm<T>> extends
- AbstractCdmFormElement implements SelectionListener,
- IEnableableFormElement, ISelectable {
+ AbstractComboElement<T> {
//TODO RL
public void setVisible(boolean b){
combo.setVisible(b);
}
-
+
private static CdmEnumDataHolder[] cdmEnumDataHolders = {
new CdmEnumDataHolder<NomenclaturalCode>(){
};
- private static final int DEFAULT_VISIBLE_ITEMS = 10;
-
- protected T selection;
-
protected List<T> elementTypeList = new ArrayList<T>();
- private final Label label;
- protected Combo combo;
-
private final Class<T> enumType;
- /**
- * <p>
- * Constructor for AbstractEnumComboElement.
- * </p>
- *
- * @param formFactory
- * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
- * object.
- * @param parentElement
- * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
- * object.
- * @param labelString
- * a {@link java.lang.String} object.
- * @param <T>
- * a T object.
- */
public EnumComboElement(CdmFormFactory formFactory,
ICdmFormElement parentElement, Class<T> enumType, int style) {
super(formFactory, parentElement);
this.enumType = enumType;
- label = formFactory.createLabel(getLayoutComposite(), getDefaultLabelString());
- addControl(label);
-
- // create combo
- combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY);
- addControl(combo);
- combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
- setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
+ label.setText(getDefaultLabelString());
populateTypes();
return "No Label";
}
- /**
- * <p>
- * populateTypes
- * </p>
- */
private void populateTypes(){
Collection<T> elementsForClass = getElementsForClass(enumType);
// special hierarchical order for specimens
}
}
- /**
- * <p>
- * Setter for the field <code>selection</code>.
- * </p>
- *
- * @param selection
- * the selection to set
- */
- public void setSelection(T selection) {
+ @Override
+ public void setSelection(T selection) {
this.selection = selection;
combo.select(elementTypeList.indexOf(selection));
}
-
- /**
- * <p>
- * addSelectionListener
- * </p>
- *
- * @param listener
- * a {@link org.eclipse.swt.events.SelectionListener} object.
- */
- public void addSelectionListener(SelectionListener listener) {
- combo.addSelectionListener(listener);
- }
-
- /**
- * <p>
- * removeSelectionListener
- * </p>
- *
- * @param listener
- * a {@link org.eclipse.swt.events.SelectionListener} object.
- */
- public void removeSelectionListener(SelectionListener listener) {
- combo.removeSelectionListener(listener);
- }
-
- /** {@inheritDoc} */
- @Override
- public void setSelected(boolean selected) {
- setBackground(selected ? SELECTED : getPersistentBackground());
- }
-
- /**
- * <p>
- * Getter for the field <code>selection</code>.
- * </p>
- *
- * @return the selection
- */
- public T getSelection() {
- return selection;
- }
-
- /** {@inheritDoc} */
- @Override
- public void setEnabled(boolean enabled) {
- combo.setEnabled(enabled);
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled()
- */
- @Override
- public boolean isEnabled() {
- return combo.isEnabled();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt
- * .events.SelectionEvent)
- */
/** {@inheritDoc} */
@Override
public void widgetSelected(SelectionEvent e) {
firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
}
- /** {@inheritDoc} */
- @Override
- public void setIrrelevant(boolean irrelevant) {
- String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT
- : Resources.COLOR_COMPOSITE_BACKGROUND;
-
- Color color = StoreUtil.getColor(colorId);
- combo.setBackground(color);
- }
-
- /** {@inheritDoc} */
- @Override
- public void setBackground(Color color) {
- label.setBackground(color);
- }
-
- /** {@inheritDoc} */
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-
- public void setVisibleItemCount(int visibleItems){
- combo.setVisibleItemCount(visibleItems);
- }
-
private Collection<T> getElementsForClass(Class<T> clazz){
CdmEnumDataHolder<T> dataHolder = getCdmEnumDataHolderForClass(clazz);
if (dataHolder != null) {
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.Resources;
import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.store.TermManager;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
-import eu.etaxonomy.taxeditor.ui.element.ISelectable;
-import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
/**
- * <p>
- * Abstract AbstractTermComboElement class.
- * </p>
- *
* @author n.hoffmann
* @created Nov 5, 2009
* @version 1.0
* @param <T>
*/
public class TermComboElement<T extends DefinedTermBase>
- extends AbstractCdmFormElement implements SelectionListener,
- DisposeListener, IEnableableFormElement, ISelectable {
-
- private static final int DEFAULT_VISIBLE_ITEMS = 10;
-
- private T selection;
+ extends AbstractComboElement<T> {
private T emptyElement;
private static String EMPTY_ELEMENT_LABEL = "";
- protected Label label;
- private final Combo combo;
-
private ArrayList<T> terms;
private Comparator<T> termComparator;
this.addEmptyElement = addEmptyElement;
if (labelString != null) {
- label = formFactory.createLabel(getLayoutComposite(), labelString);
- addControl(label);
+ label.setText(labelString);
}
- // create combo
- combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY );//FIXME: removed this parameter seems break windows version: | style
- addControl(combo);
- combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
- combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
-
if(termType!=null){
//TODO try to remove generic T and avoid classes to be used
populateTerms((List<T>) getTermManager().getPreferredTerms(termType));
}
}
- /**
- * <p>
- * Getter for the field <code>selection</code>.
- * </p>
- *
- * @return a T object.
- */
- public T getSelection() {
- return selection;
- }
-
/**
* <p>Sets the selection of the combo to the given T object.</p>
* <p>Passing <code>null</code> to this method will set the selection to
* @param selection
* a T object or <code>null</code> to clear the selection
*/
- public void setSelection(T selection) {
+ @Override
+ public void setSelection(T selection) {
this.selection = selection;
Listener[] listeners = combo.getListeners(SWT.Selection);
combo.select(index);
}
- /*
- * (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.forms.IEnableableFormElement#setEnabled(boolean)
- */
- /** {@inheritDoc} */
- @Override
- public void setEnabled(boolean enabled) {
- combo.setEnabled(enabled);
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled()
- */
- @Override
- public boolean isEnabled() {
- return combo.isEnabled();
- }
-
- /**
- * <p>
- * preferredTerms
- * </p>
- *
- * @return a {@link java.util.List} object.
- */
protected List<T> getPreferredTerms(){
List<T> preferredTerms = new ArrayList<T>();
if (customPreferredTerms != null){
populateTerms(preferredTerms);
}
- /**
- * <p>
- * addSelectionListener
- * </p>
- *
- * @param listener
- * a {@link org.eclipse.swt.events.SelectionListener} object.
- */
- public void addSelectionListener(SelectionListener listener) {
- combo.addSelectionListener(listener);
- }
-
- /**
- * <p>
- * removeSelectionListener
- * </p>
- *
- * @param listener
- * a {@link org.eclipse.swt.events.SelectionListener} object.
- */
- public void removeSelectionListener(SelectionListener listener) {
- combo.removeSelectionListener(listener);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt
- * .events.SelectionEvent)
- */
/** {@inheritDoc} */
@Override
public void widgetSelected(SelectionEvent e) {
firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
}
- /*
- * (non-Javadoc)
- *
- * @see java.beans.PropertyChangeListener#propertyChange(java.beans.
- * PropertyChangeEvent)
- */
/** {@inheritDoc} */
@Override
public void propertyChange(PropertyChangeEvent event) {
}
}
- /** {@inheritDoc} */
- @Override
- public void setSelected(boolean selected) {
- setBackground(selected ? SELECTED : getPersistentBackground());
- }
-
- /** {@inheritDoc} */
- @Override
- public void widgetDisposed(DisposeEvent e) {
- PreferencesUtil.getPreferenceStore().removePropertyChangeListener(this);
- }
-
- // not used
- /** {@inheritDoc} */
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-
- /** {@inheritDoc} */
- @Override
- public void setIrrelevant(boolean irrelevant) {
- String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT
- : Resources.COLOR_COMPOSITE_BACKGROUND;
-
- Color color = StoreUtil.getColor(colorId);
- combo.setBackground(color);
- }
-
- /** {@inheritDoc} */
- @Override
- public void setBackground(Color color) {
- if (label != null) {
- label.setBackground(color);
- }
- }
-
- /**
- *
- */
protected TermManager getTermManager() {
return CdmStore.getTermManager();
}
- /**
- *
- * @return
- */
public int getVisibleItemCount(){
return combo.getVisibleItemCount();
}
- /**
- *
- * @param count
- */
- public void setVisibleItemCount(int count){
- combo.setVisibleItemCount(count);
- }
-
/**
* <p>A {@link List} of term objects may be passed to this combo box. In this case, the default behaviour
* of displaying the preferred terms for the T type will be overridden and the combo will only display the
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import eu.etaxonomy.cdm.api.service.IVocabularyService;
import eu.etaxonomy.cdm.model.common.TermVocabulary;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.Resources;
import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.store.TermManager;
-import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
-import eu.etaxonomy.taxeditor.ui.element.ISelectable;
-import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
/**
- * <p>
- * Abstract AbstractTermComboElement class.
- * </p>
- *
* @author n.hoffmann
* @created Nov 5, 2009
* @version 1.0
* @param <VOC>
*/
public class VocabularyComboElement<TERM extends DefinedTermBase<TERM>, VOC extends TermVocabulary<TERM>>
- extends AbstractCdmFormElement implements SelectionListener,
- DisposeListener, IEnableableFormElement, ISelectable {
-
- private static final int DEFAULT_VISIBLE_ITEMS = 10;
-
- private VOC selection;
+ extends AbstractComboElement<VOC> {
private VOC emptyElement;
private static String EMPTY_ELEMENT_LABEL = "";
- protected Label label;
- private final Combo combo;
-
private ArrayList<VOC> terms;
private Comparator<VOC> vocComparator;
this.termType = termType;
- if (labelString != null) {
- label = formFactory.createLabel(getLayoutComposite(), labelString);
- addControl(label);
- }
-
- // create combo
- combo = new Combo(getLayoutComposite(), SWT.BORDER | SWT.READ_ONLY );//FIXME: removed this parameter seems break windows version: | style
- addControl(combo);
- combo.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
- combo.setVisibleItemCount(DEFAULT_VISIBLE_ITEMS);
-
populateTerms(getVocabularies());
combo.addSelectionListener(this);
}
}
- /**
- * <p>
- * Getter for the field <code>selection</code>.
- * </p>
- *
- * @return a T object.
- */
- public VOC getSelection() {
- return selection;
- }
-
/**
* <p>Sets the selection of the combo to the given T object.</p>
* <p>Passing <code>null</code> to this method will set the selection to
* @param selection
* a T object or <code>null</code> to clear the selection
*/
- public void setSelection(VOC selection) {
+ @Override
+ public void setSelection(VOC selection) {
this.selection = selection;
this.selection = selection;
combo.select(index);
}
- /*
- * (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.forms.IEnableableFormElement#setEnabled(boolean)
- */
- /** {@inheritDoc} */
- @Override
- public void setEnabled(boolean enabled) {
- combo.setEnabled(enabled);
- }
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled()
- */
- @Override
- public boolean isEnabled() {
- return combo.isEnabled();
- }
-
- /**
- * <p>
- * preferredTerms
- * </p>
- *
- * @return a {@link java.util.List} object.
- */
protected List<VOC> getVocabularies(){
List<TermVocabulary<TERM>> list = CdmStore.getService(IVocabularyService.class).<TERM>findByTermType(termType);
return (List<VOC>) list;
}
}
- /**
- *
- *
- * @param term
- */
private void createTermNotInPreferredTerms(VOC term) {
List<VOC> preferredTerms = getVocabularies();
populateTerms(preferredTerms);
}
- /**
- * <p>
- * addSelectionListener
- * </p>
- *
- * @param listener
- * a {@link org.eclipse.swt.events.SelectionListener} object.
- */
- public void addSelectionListener(SelectionListener listener) {
- combo.addSelectionListener(listener);
- }
-
- /**
- * <p>
- * removeSelectionListener
- * </p>
- *
- * @param listener
- * a {@link org.eclipse.swt.events.SelectionListener} object.
- */
- public void removeSelectionListener(SelectionListener listener) {
- combo.removeSelectionListener(listener);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt
- * .events.SelectionEvent)
- */
/** {@inheritDoc} */
@Override
public void widgetSelected(SelectionEvent e) {
firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
}
- /*
- * (non-Javadoc)
- *
- * @see java.beans.PropertyChangeListener#propertyChange(java.beans.
- * PropertyChangeEvent)
- */
/** {@inheritDoc} */
@Override
public void propertyChange(PropertyChangeEvent event) {
}
}
- /** {@inheritDoc} */
- @Override
- public void setSelected(boolean selected) {
- setBackground(selected ? SELECTED : getPersistentBackground());
- }
-
- /** {@inheritDoc} */
- @Override
- public void widgetDisposed(DisposeEvent e) {
- PreferencesUtil.getPreferenceStore().removePropertyChangeListener(this);
- }
-
- // not used
- /** {@inheritDoc} */
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-
- /** {@inheritDoc} */
- @Override
- public void setIrrelevant(boolean irrelevant) {
- String colorId = irrelevant ? Resources.COLOR_COMPOSITE_IRRELEVANT
- : Resources.COLOR_COMPOSITE_BACKGROUND;
-
- Color color = StoreUtil.getColor(colorId);
- combo.setBackground(color);
- }
-
- /** {@inheritDoc} */
- @Override
- public void setBackground(Color color) {
- if (label != null) {
- label.setBackground(color);
- }
- }
-
- /**
- *
- */
protected TermManager getTermManager() {
return CdmStore.getTermManager();
}
- /**
- *
- * @return
- */
public int getVisibleItemCount(){
return combo.getVisibleItemCount();
}
- /**
- *
- * @param count
- */
- public void setVisibleItemCount(int count){
- combo.setVisibleItemCount(count);
- }
-
public void removeEmptyElement(){
terms.remove(emptyElement);
combo.remove(EMPTY_ELEMENT_LABEL);
btnRememberMe = new Button(loginComposite, SWT.CHECK);
btnRememberMe.setSelection(true);
GridData gd_btnRememberMe = new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1);
- gd_btnRememberMe.widthHint = 107;
btnRememberMe.setLayoutData(gd_btnRememberMe);
btnRememberMe.setText(Messages.RemotingLoginDialog_LABEL_REMEMBER_ME);
new Label(loginComposite, SWT.NONE);
this.configurator = configurator;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.MessageDialog#createCustomArea(org.eclipse.swt.widgets.Composite)
- */
@Override
protected Control createCustomArea(Composite parent) {
DeleteConfiguratorComposite composite = new DeleteConfiguratorComposite(parent, NONE);
return dialog.open() == 0;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.dialogs.Dialog#isResizable()
- */
@Override
protected boolean isResizable() {
return true;
}
- /**
- * @param kind
- * @return
- */
protected static String[] getButtonLabels(int kind) {
String[] dialogButtonLabels;
switch (kind) {
private final Set<T> transientCdmObjects = new HashSet<T>();
private final String settings;
protected final int limitOfInitialElements = 100;
-
+
protected T cdmBaseToBeFiltered;
initModel();
shell.setCursor(cursor);
String objectTitle = getTitle(cdmObject);
- if (objectTitle != null) {
- setInitialPattern(objectTitle);
- }
+// if (objectTitle != null) {
+// setInitialPattern(objectTitle);
+// }
setListLabelProvider(createListLabelProvider());
setDetailsLabelProvider(createDetailsLabelProvider());
*
*/
protected static final String TEAM = "Team";
+
+ protected static boolean selectTeamMember;
/**
* <p>select</p>
* @param entity a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
* @return a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
*/
- public static AgentBase select(Shell shell, ConversationHolder conversation, AgentBase entity) {
+ public static AgentBase select(Shell shell, ConversationHolder conversation, AgentBase entity, boolean selectTeamMember) {
AgentSelectionDialog dialog = new AgentSelectionDialog(shell, conversation,
- "Choose Agent", false, AgentSelectionDialog.class.getCanonicalName(), entity);
+ "Choose Agent", false, AgentSelectionDialog.class.getCanonicalName(), entity, selectTeamMember);
return getSelectionFromDialog(dialog);
}
* @param multi a boolean.
* @param settings a {@link java.lang.String} object.
*/
- protected AgentSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, String settings, AgentBase agent) {
+ protected AgentSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, String settings, AgentBase agent, boolean selectTeamMember) {
super(shell, conversation, title, multi, settings, agent);
+ this.selectTeamMember = selectTeamMember;
}
/** {@inheritDoc} */
@Override
protected String getNewWizardLinkText() {
+ if (this.selectTeamMember){
+ return String.format("Create a new <a>%1s</a>", PERSON);
+ }
return String.format("Create a new <a>%1s</a> or <a>%2s</a>", TEAM, PERSON);
}
public void keyTraversed(TraverseEvent e) {
if (e.detail == SWT.TRAVERSE_MNEMONIC && e.doit) {
e.detail = SWT.TRAVERSE_NONE;
- list.getTable().setFocus();
+ getList().getTable().setFocus();
}
}
});
* @since 3.5
*/
protected void fillContextMenu(IMenuManager menuManager) {
- List selectedElements= ((StructuredSelection)list.getSelection()).toList();
+ List selectedElements= ((StructuredSelection)getList().getSelection()).toList();
Object item= null;
}
});
- final Table table = list.getTable();
+ final Table table = getList().getTable();
Menu menu= contextMenuManager.createContextMenu(table);
table.setMenu(menu);
}
final Label listLabel = createLabels(content);
- list = new TableViewer(content, (multi ? SWT.MULTI : SWT.SINGLE)
- | SWT.BORDER | SWT.V_SCROLL | SWT.VIRTUAL);
- list.getTable().getAccessible().addAccessibleListener(
+ setList(new TableViewer(content, (multi ? SWT.MULTI : SWT.SINGLE)
+ | SWT.BORDER | SWT.V_SCROLL | SWT.VIRTUAL));
+ getList().getTable().getAccessible().addAccessibleListener(
new AccessibleAdapter() {
@Override
public void getName(AccessibleEvent e) {
}
}
});
- list.setContentProvider(contentProvider);
- list.setLabelProvider(getItemsListLabelProvider());
- list.setInput(new Object[0]);
- list.setItemCount(contentProvider.getNumberOfElements());
+ getList().setContentProvider(contentProvider);
+ getList().setLabelProvider(getItemsListLabelProvider());
+ getList().setInput(new Object[0]);
+ getList().setItemCount(contentProvider.getNumberOfElements());
gd = new GridData(GridData.FILL_BOTH);
- applyDialogFont(list.getTable());
- gd.heightHint= list.getTable().getItemHeight() * 15;
- list.getTable().setLayoutData(gd);
+ applyDialogFont(getList().getTable());
+ gd.heightHint= getList().getTable().getItemHeight() * 15;
+ getList().getTable().setLayoutData(gd);
createPopupMenu();
@Override
public void keyPressed(KeyEvent e) {
if (e.keyCode == SWT.ARROW_DOWN) {
- if (list.getTable().getItemCount() > 0) {
- list.getTable().setFocus();
+ if (getList().getTable().getItemCount() > 0) {
+ getList().getTable().setFocus();
}
}
}
});
- list.addSelectionChangedListener(new ISelectionChangedListener() {
+ getList().addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
StructuredSelection selection = (StructuredSelection) event
}
});
- list.addDoubleClickListener(new IDoubleClickListener() {
+ getList().addDoubleClickListener(new IDoubleClickListener() {
@Override
public void doubleClick(DoubleClickEvent event) {
handleDoubleClick();
}
});
- list.getTable().addKeyListener(new KeyAdapter() {
+ getList().getTable().addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.keyCode == SWT.DEL) {
- List selectedElements = ((StructuredSelection) list
+ List selectedElements = ((StructuredSelection) getList()
.getSelection()).toList();
Object item = null;
if (e.keyCode == SWT.ARROW_UP && (e.stateMask & SWT.SHIFT) != 0
&& (e.stateMask & SWT.CTRL) != 0) {
- StructuredSelection selection = (StructuredSelection) list
+ StructuredSelection selection = (StructuredSelection) getList()
.getSelection();
if (selection.size() == 1) {
Object element = selection.getFirstElement();
- if (element.equals(list.getElementAt(0))) {
+ if (element.equals(getList().getElementAt(0))) {
pattern.setFocus();
}
- if (list.getElementAt(list.getTable()
+ if (getList().getElementAt(getList().getTable()
.getSelectionIndex() - 1) instanceof ItemsListSeparator) {
- list.getTable().setSelection(
- list.getTable().getSelectionIndex() - 1);
+ getList().getTable().setSelection(
+ getList().getTable().getSelectionIndex() - 1);
}
- list.getTable().notifyListeners(SWT.Selection,
+ getList().getTable().notifyListeners(SWT.Selection,
new Event());
}
&& (e.stateMask & SWT.SHIFT) != 0
&& (e.stateMask & SWT.CTRL) != 0) {
- if (list
- .getElementAt(list.getTable().getSelectionIndex() + 1) instanceof ItemsListSeparator) {
- list.getTable().setSelection(
- list.getTable().getSelectionIndex() + 1);
+ if (getList()
+ .getElementAt(getList().getTable().getSelectionIndex() + 1) instanceof ItemsListSeparator) {
+ getList().getTable().setSelection(
+ getList().getTable().getSelectionIndex() + 1);
}
- list.getTable().notifyListeners(SWT.Selection, new Event());
+ getList().getTable().notifyListeners(SWT.Selection, new Event());
}
}
IStatus status = new Status(IStatus.OK, PlatformUI.PLUGIN_ID,
IStatus.OK, EMPTY_STRING, null);
- Object[] lastSelection = currentSelection;
+ Object[] lastSelection = getCurrentSelection();
- currentSelection = selection.toArray();
+ setCurrentSelection(selection.toArray());
if (selection.size() == 0) {
status = new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID,
if (lastSelection != null
&& getListSelectionLabelDecorator() != null) {
- list.update(lastSelection, null);
+ getList().update(lastSelection, null);
}
- currentSelection = null;
+ setCurrentSelection(null);
} else {
status = new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID,
if (lastSelection != null
&& getListSelectionLabelDecorator() != null) {
- list.update(lastSelection, null);
+ getList().update(lastSelection, null);
}
if (getListSelectionLabelDecorator() != null) {
- list.update(currentSelection, null);
+ getList().update(getCurrentSelection(), null);
}
}
* Refreshes the dialog - has to be called in UI thread.
*/
public void refresh() {
- if (list != null && !list.getTable().isDisposed()) {
+ if (getList() != null && !getList().getTable().isDisposed()) {
- List lastRefreshSelection = ((StructuredSelection) list
+ List lastRefreshSelection = ((StructuredSelection) getList()
.getSelection()).toList();
- list.getTable().deselectAll();
+ getList().getTable().deselectAll();
- list.setItemCount(contentProvider.getNumberOfElements());
- list.refresh();
+ getList().setItemCount(contentProvider.getNumberOfElements());
+ getList().refresh();
- if (list.getTable().getItemCount() > 0) {
+ if (getList().getTable().getItemCount() > 0) {
// preserve previous selection
if (refreshWithLastSelection && lastRefreshSelection != null
&& lastRefreshSelection.size() > 0) {
- list.setSelection(new StructuredSelection(
+ getList().setSelection(new StructuredSelection(
lastRefreshSelection));
} else {
refreshWithLastSelection = true;
- list.getTable().setSelection(0);
- list.getTable().notifyListeners(SWT.Selection, new Event());
+ getList().getTable().setSelection(0);
+ getList().getTable().notifyListeners(SWT.Selection, new Event());
}
} else {
- list.setSelection(StructuredSelection.EMPTY);
+ getList().setSelection(StructuredSelection.EMPTY);
}
}
* available
*/
public void reloadCache(boolean checkDuplicates, IProgressMonitor monitor) {
- if (list != null && !list.getTable().isDisposed()
+ if (getList() != null && !getList().getTable().isDisposed()
&& contentProvider != null) {
contentProvider.reloadCache(checkDuplicates, monitor);
}
@Override
protected void computeResult() {
- List selectedElements = ((StructuredSelection) list.getSelection())
+ List selectedElements = ((StructuredSelection) getList().getSelection())
.toList();
List objectsToReturn = new ArrayList();
*/
protected StructuredSelection getSelectedItems() {
- StructuredSelection selection = (StructuredSelection) list
+ StructuredSelection selection = (StructuredSelection) getList()
.getSelection();
List selectedItems = selection.toList();
*/
@Override
public void run() {
- List selectedElements = ((StructuredSelection) list.getSelection())
+ List selectedElements = ((StructuredSelection) getList().getSelection())
.toList();
removeSelectedItems(selectedElements);
}
}
- private static boolean showColoredLabels() {
+ protected static boolean showColoredLabels() {
return PlatformUI.getPreferenceStore().getBoolean(IWorkbenchPreferenceConstants.USE_COLORED_LABELS);
}
}
private boolean isSelected(Object element) {
- if (element != null && currentSelection != null) {
- for (int i = 0; i < currentSelection.length; i++) {
- if (element.equals(currentSelection[i])) {
+ if (element != null && getCurrentSelection() != null) {
+ for (int i = 0; i < getCurrentSelection().length; i++) {
+ if (element.equals(getCurrentSelection()[i])) {
return true;
}
}
}
private String getSeparatorLabel(String separatorLabel) {
- Rectangle rect = list.getTable().getBounds();
+ Rectangle rect = getList().getTable().getBounds();
- int borderWidth = list.getTable().computeTrim(0, 0, 0, 0).width;
+ int borderWidth = getList().getTable().computeTrim(0, 0, 0, 0).width;
int imageWidth = WorkbenchImages.getImage(
IWorkbenchGraphicConstants.IMG_OBJ_SEPARATOR).getBounds().width;
int width = rect.width - borderWidth - imageWidth;
- GC gc = new GC(list.getTable());
- gc.setFont(list.getTable().getFont());
+ GC gc = new GC(getList().getTable());
+ gc.setFont(getList().getTable().getFont());
int fSeparatorWidth = gc.getAdvanceWidth('-');
int fMessageLength = gc.textExtent(separatorLabel).x;
* Used in ItemsListContentProvider, separates history and non-history
* items.
*/
- private class ItemsListSeparator {
+ protected class ItemsListSeparator {
private final String name;
@Override
public void updateElement(int index) {
- CdmFilteredItemsSelectionDialog.this.list.replace((lastFilteredItems
+ CdmFilteredItemsSelectionDialog.this.getList().replace((lastFilteredItems
.size() > index) ? lastFilteredItems.get(index) : null,
index);
// the TableViewer's root (the input) is treated as parent
- lastFilteredItems = Arrays.asList(getFilteredItems(list.getInput(),
+ lastFilteredItems = Arrays.asList(getFilteredItems(getList().getInput(),
monitor != null ? new SubProgressMonitor(monitor, 100)
: null));
if (filters != null && filteredElements != null) {
for (Iterator iter = filters.iterator(); iter.hasNext();) {
ViewerFilter f = (ViewerFilter) iter.next();
- filteredElements = f.filter(list, parent, filteredElements);
+ filteredElements = f.filter(getList(), parent, filteredElements);
monitor.worked(ticks);
}
}
*/
abstract protected void initModel();
+ public Object[] getCurrentSelection() {
+ return currentSelection;
+ }
+
+ public void setCurrentSelection(Object[] currentSelection) {
+ this.currentSelection = currentSelection;
+ }
+
+ public TableViewer getList() {
+ return list;
+ }
+
+ public void setList(TableViewer list) {
+ this.list = list;
+ }
+
}
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
}else{
selectedVocabularies.remove(vocabulary);
}
+ PreferencesUtil.getPreferenceStore().setValue(getPrefKey(vocabulary), isChecked());
initModel();
}
}
protected NamedAreaSelectionDialog(Shell shell, ConversationHolder conversation, String title, boolean multi, NamedArea namedArea, UUID... preselectedVocabularyUuids) {
super(shell, conversation, title, multi, NamedAreaSelectionDialog.class.getCanonicalName(), namedArea);
- if(preselectedVocabularyUuids.length>0){
- preselectedVocabularies = new ArrayList<TermVocabulary>();
- for(int i=0;i<preselectedVocabularyUuids.length;i++){
- TermVocabulary preselectedVocabulary = CdmStore.getService(IVocabularyService.class).find(preselectedVocabularyUuids[i]);
- preselectedVocabularies.add(preselectedVocabulary);
- }
- selectedVocabularies.retainAll(preselectedVocabularies);
- initModel();//re-init to consider pre-selected vocabularies
+ preselectedVocabularies = new ArrayList<TermVocabulary>();
+ for(int i=0;i<preselectedVocabularyUuids.length;i++){
+ TermVocabulary preselectedVocabulary = CdmStore.getService(IVocabularyService.class).find(preselectedVocabularyUuids[i]);
+ preselectedVocabularies.add(preselectedVocabulary);
}
+ Collection<TermVocabulary> tempSelectedVocabularies = new HashSet<>();
+ for(TermVocabulary vocabulary:selectedVocabularies){
+ if(preselectedVocabularies.contains(vocabulary)
+ || PreferencesUtil.getPreferenceStore().getBoolean(getPrefKey(vocabulary))){
+ tempSelectedVocabularies.add(vocabulary);
+ }
+ }
+ selectedVocabularies = tempSelectedVocabularies;
+ initModel();//re-init to consider pre-selected vocabularies
}
/** {@inheritDoc} */
for(TermVocabulary<NamedArea> vocabulary : getAvailableVocabularies()){
IncludeNamedAreaVocabulary action = new IncludeNamedAreaVocabulary(vocabulary);
menuManager.add(action);
- if(preselectedVocabularies==null || preselectedVocabularies.isEmpty() || preselectedVocabularies.contains(vocabulary)) {
+ if(preselectedVocabularies.contains(vocabulary)) {
action.setChecked(true);
}
+ else{
+ action.setChecked(PreferencesUtil.getPreferenceStore().getBoolean(getPrefKey(vocabulary)));
+ }
}
}
+
+ private String getPrefKey(TermVocabulary vocabulary){
+ return NamedAreaSelectionDialog.class.toString()+vocabulary.getUuid();
+ }
/** {@inheritDoc} */
@Override
@Override
protected void init() {
selectedVocabularies = getAvailableVocabularies();
+ for(TermVocabulary vocabulary:selectedVocabularies){
+ PreferencesUtil.getPreferenceStore().setDefault(getPrefKey(vocabulary), true);
+ }
}
private List<TermVocabulary> getAvailableVocabularies(){
+import java.text.Collator;
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.ListenerList;
+import org.eclipse.jface.viewers.IColorProvider;
+import org.eclipse.jface.viewers.IFontProvider;
+import org.eclipse.jface.viewers.ILabelDecorator;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.StyledCellLabelProvider;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
+import org.eclipse.ui.internal.WorkbenchImages;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.IAgentService;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
import eu.etaxonomy.taxeditor.newWizard.NewPersonWizard;
import eu.etaxonomy.taxeditor.newWizard.NewTeamWizard;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog.FilteredCdmResourceLabelProvider;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialog.ItemsFilter;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialog.ItemsListSeparator;
/**
* @author k.luther
* @param agent
*/
protected NomenclaturalAuthorSelectionDialog(Shell shell, ConversationHolder conversation, String title,
- boolean multi, String settings, AgentBase agent) {
- super(shell, conversation, title, multi, settings, agent);
+ boolean multi, String settings, AgentBase agent, boolean teamMemberSelection) {
+ super(shell, conversation, title, multi, settings, agent, teamMemberSelection);
// TODO Auto-generated constructor stub
}
throw new IllegalArgumentException("Could not determine the desired wizard.");
}
}
-
+ /**
+ *
+ * @return
+ */
+ @Override
+ protected ILabelProvider createListLabelProvider() {
+ return new FilteredCdmResourceAbbrevLabelProvider();
+ }
/**
* <p>select</p>
* @param entity a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
* @return a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
*/
- public static AgentBase select(Shell shell, ConversationHolder conversation, AgentBase entity) {
+ public static AgentBase select(Shell shell, ConversationHolder conversation, AgentBase entity, boolean teamMemberSelection) {
NomenclaturalAuthorSelectionDialog dialog = new NomenclaturalAuthorSelectionDialog(shell, conversation,
- "Choose Agent", false, NomenclaturalAuthorSelectionDialog.class.getCanonicalName(), entity);
+ "Choose Agent", false, NomenclaturalAuthorSelectionDialog.class.getCanonicalName(), entity, teamMemberSelection);
return getSelectionFromDialog(dialog);
}
" supports cdmObject of type IIdentifiableEntity." +
" Please implement specific method in subclass.");
}
+
+
+
+ public class FilteredCdmResourceAbbrevLabelProvider extends LabelProvider {
+ @Override
+ public String getText(Object element) {
+ if (element == null) {
+ return null;
+ }
+ UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache) element;
+ String titleCache = uuidAndTitleCache.getTitleCache();
+ String abbrevTitleCache = uuidAndTitleCache.getAbbrevTitleCache();
+ if (!titleCache.equals(abbrevTitleCache)){
+ abbrevTitleCache += " - " + titleCache;
+ }
+ if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_ID_IN_ENTITY_SELECTION_DIAOLOG)){
+ abbrevTitleCache += " ["+uuidAndTitleCache.getId()+"]";
+ }
+ return abbrevTitleCache;
+ }
+ };
+
+ /** {@inheritDoc} */
+ @Override
+ protected ItemsFilter createFilter() {
+ return new ItemsFilter() {
+
+ /**
+ * Always returns false to enforce refiltering even if the pattern is equal
+ */
+ @Override
+ public boolean equalsFilter(ItemsFilter filter) {
+ return false;
+ }
+
+ @Override
+ public boolean isConsistentItem(Object item) {
+ return false;
+ }
+
+ @Override
+ public boolean matchItem(Object item) {
+ String textTitleCache = null;
+ String abbrevTitleCache = null;
+ if(item instanceof UuidAndTitleCache){
+ if (((UuidAndTitleCache) item).getAbbrevTitleCache() != null){
+ abbrevTitleCache = ((UuidAndTitleCache) item).getAbbrevTitleCache();
+ }
+ if (((UuidAndTitleCache) item).getTitleCache() != null ){
+ textTitleCache = ((UuidAndTitleCache) item).getTitleCache();
+ }
+ }else if(item instanceof String){
+ textTitleCache = (String) item;
+ }
+
+ return (matches(textTitleCache) || matches(abbrevTitleCache)) ;
+
+ }
+
+ };
+ }
+
+ @Override
+ protected Comparator getItemsComparator() {
+ return new Comparator<UuidAndTitleCache>() {
+ @Override
+ public int compare(UuidAndTitleCache entity1,
+ UuidAndTitleCache entity2) {
+ Collator collator = Collator.getInstance();
+ String compareString1 = "";
+ if (entity1.getAbbrevTitleCache() != null){
+ compareString1 = entity1.getAbbrevTitleCache();
+ }
+ if (entity1.getTitleCache() != null){
+ compareString1 += entity1.getTitleCache();
+ }
+
+
+ String compareString2 = "";
+ if (entity2.getAbbrevTitleCache() != null){
+ compareString2 = entity2.getAbbrevTitleCache();
+ }
+ if (entity2.getTitleCache() != null){
+ compareString2 += entity2.getTitleCache();
+ }
+
+
+ return collator.compare(compareString1, compareString2);
+ }
+ };
+ }
+
}
* @param agent
*/
protected NomenclaturalPersonAuthorSelectionDialog(Shell shell, ConversationHolder conversation, String title,
- boolean multi, String settings, AgentBase agent) {
- super(shell, conversation, title, multi, settings, agent);
+ boolean multi, String settings, AgentBase agent, boolean teamMemberSelection) {
+ super(shell, conversation, title, multi, settings, agent, teamMemberSelection);
// TODO Auto-generated constructor stub
}
* @param entity a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
* @return a {@link eu.etaxonomy.cdm.model.agent.AgentBase} object.
*/
- public static AgentBase select(Shell shell, ConversationHolder conversation, AgentBase entity) {
+ public static AgentBase select(Shell shell, ConversationHolder conversation, AgentBase entity, boolean teamMemberSelection) {
NomenclaturalPersonAuthorSelectionDialog dialog = new NomenclaturalPersonAuthorSelectionDialog(shell, conversation,
- "Choose Agent", false, NomenclaturalAuthorSelectionDialog.class.getCanonicalName(), entity);
+ "Choose Agent", false, NomenclaturalAuthorSelectionDialog.class.getCanonicalName(), entity,teamMemberSelection);
return getSelectionFromDialog(dialog);
}
--- /dev/null
+package eu.etaxonomy.taxeditor.ui.dialog.selection;
+
+import java.text.Collator;
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.ListenerList;
+import org.eclipse.jface.viewers.IColorProvider;
+import org.eclipse.jface.viewers.IFontProvider;
+import org.eclipse.jface.viewers.ILabelDecorator;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.StyledCellLabelProvider;
+import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
+import org.eclipse.ui.internal.WorkbenchImages;
+
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IReferenceService;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialog.ItemsFilter;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.CdmFilteredItemsSelectionDialog.ItemsListSeparator;
+
+public class NomenclaturalReferenceSelectionDialog extends
+ ReferenceSelectionDialog {
+
+ protected NomenclaturalReferenceSelectionDialog(Shell shell,
+ ConversationHolder conversation, String title, boolean multi,
+ Reference reference) {
+ super(shell, conversation, title, multi, reference);
+ // TODO Auto-generated constructor stub
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.dialogs.AbstractFilteredCdmResourceSelectionDialog#initModel()
+ */
+ /** {@inheritDoc} */
+ @Override
+ protected void initModel() {
+ Control control = getPatternControl();
+ String pattern = null;
+ if (control != null){
+ pattern = ((Text)control).getText();
+ }
+
+
+ model = CdmStore.getService(IReferenceService.class).getUuidAndAbbrevTitleCache(limitOfInitialElements, pattern);
+ }
+
+ /**
+ *
+ * @return
+ */
+ @Override
+ protected ILabelProvider createListLabelProvider() {
+ return new FilteredCdmResourceAbbrevLabelProvider();
+ }
+
+ /**
+ * <p>select</p>
+ *
+ * @param reference a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
+ * @param shell a {@link org.eclipse.swt.widgets.Shell} object.
+ * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+ * @return a {@link eu.etaxonomy.cdm.model.reference.ReferenceBase} object.
+ */
+
+ public static Reference select(Shell shell, ConversationHolder conversation, Reference reference) {
+ NomenclaturalReferenceSelectionDialog dialog = new NomenclaturalReferenceSelectionDialog(shell, conversation,
+ "Choose a reference", false, reference);
+ return getSelectionFromDialog(dialog);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog#createFilter()
+ */
+ /** {@inheritDoc} */
+ @Override
+ protected ItemsFilter createFilter() {
+ return new ItemsFilter() {
+
+ /**
+ * Always returns false to enforce refiltering even if the pattern is equal
+ */
+ @Override
+ public boolean equalsFilter(ItemsFilter filter) {
+ return false;
+ }
+
+ @Override
+ public boolean isConsistentItem(Object item) {
+ return false;
+ }
+
+ @Override
+ public boolean matchItem(Object item) {
+ return true;
+// String text = null;
+// if(item instanceof UuidAndTitleCache){
+// if (((UuidAndTitleCache) item).getAbbrevTitleCache() != null){
+// text = ((UuidAndTitleCache) item).getAbbrevTitleCache();
+// } else{
+// text = ((UuidAndTitleCache) item).getTitleCache();
+// }
+// }else if(item instanceof String){
+// text = (String) item;
+// }
+// return text != null ? matches(text) : false;
+ }
+
+ };
+ }
+
+
+
+ public class FilteredCdmResourceAbbrevLabelProvider extends LabelProvider {
+ @Override
+ public String getText(Object element) {
+ if (element == null) {
+ return null;
+ }
+ UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache) element;
+ String titleCache = uuidAndTitleCache.getTitleCache();
+ String abbrevTitleCache = uuidAndTitleCache.getAbbrevTitleCache();
+ if (!abbrevTitleCache.equals(titleCache)){
+ abbrevTitleCache += " - " + titleCache;
+ }
+ if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SHOW_ID_IN_ENTITY_SELECTION_DIAOLOG)){
+ abbrevTitleCache += " ["+uuidAndTitleCache.getId()+"]";
+ }
+ return abbrevTitleCache;
+ }
+ };
+
+ @Override
+ protected Comparator getItemsComparator() {
+ return new Comparator<UuidAndTitleCache>() {
+ @Override
+ public int compare(UuidAndTitleCache entity1,
+ UuidAndTitleCache entity2) {
+ Collator collator = Collator.getInstance();
+ String compareString1 = "";
+ if (entity1.getAbbrevTitleCache() != null){
+ compareString1 = entity1.getAbbrevTitleCache();
+ }
+ if (entity1.getTitleCache() != null){
+ compareString1 += entity1.getTitleCache();
+ }
+ String compareString2 = "";
+ if (entity2.getAbbrevTitleCache() != null){
+ compareString2 = entity2.getAbbrevTitleCache();
+ }
+ if (entity2.getTitleCache() != null){
+ compareString2 += entity2.getTitleCache();
+ }
+ return collator.compare(compareString1, compareString2);
+ }
+ };
+ }
+
+
+
+}
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
import eu.etaxonomy.taxeditor.ui.section.agent.TeamMemberElement;
-import eu.etaxonomy.taxeditor.ui.section.description.detail.DistributionDetailElement;
import eu.etaxonomy.taxeditor.ui.section.name.AuthorshipDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailElement;
/**
* @author n.hoffmann
if(clazz.equals(TaxonNode.class)){
return (T) TaxonNodeSelectionDialog.select(shell, conversation, null, null, (TaxonNode) currentSelection, ((TaxonNode) currentSelection).getClassification());
}
+ if(clazz.equals(Reference.class) && parentElement instanceof NomenclaturalReferenceDetailElement){
+ return (T) NomenclaturalReferenceSelectionDialog.select(shell, conversation, (Reference) currentSelection);
+ }
if(clazz.equals(Reference.class)){
return (T) ReferenceSelectionDialog.select(shell, conversation, (Reference) currentSelection);
}
+
if(clazz.equals(TaxonNameBase.class)){
return (T) NameSelectionDialog.select(shell, conversation, (TaxonNameBase) currentSelection);
}
return (T) TeamSelectionDialog.select(shell, conversation, (Team) currentSelection);
}
if(clazz.equals(TeamOrPersonBase.class) && parentElement instanceof AuthorshipDetailElement){
- return (T) NomenclaturalAuthorSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
+ return (T) NomenclaturalAuthorSelectionDialog.select(shell, conversation, (AgentBase) currentSelection, false);
}else if(clazz.equals(TeamOrPersonBase.class)){
//TODO: add TeamOrPersonBaseSelectionDialog (see ticket #4545)
- return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
+ return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection, false);
}
if(clazz.equals(Person.class) && parentElement instanceof TeamMemberElement){
- return (T) NomenclaturalPersonAuthorSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
+ return (T) NomenclaturalPersonAuthorSelectionDialog.select(shell, conversation, (AgentBase) currentSelection, true);
}
if(clazz.equals(AgentBase.class)){
- return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection);
+ return (T) AgentSelectionDialog.select(shell, conversation, (AgentBase) currentSelection, false);
}
if(clazz.equals(Feature.class)){
return (T) FeatureSelectionDialog.select(shell, conversation, (Feature) currentSelection);
return (T) SpecimenOrObservationBaseSelectionDialog.select(shell, conversation, (SpecimenOrObservationBase) currentSelection);
}
if(clazz.equals(NamedArea.class)){
- if(parentElement instanceof DistributionDetailElement){
-// return (T) NamedAreaSelectionForDistributionDialog.select(shell, conversation, (NamedArea) currentSelection, CdmStore.getTermManager().getPreferredVocabulary(TermType.NamedArea));
- return (T) NamedAreaSelectionDialog.select(shell, conversation, (NamedArea) currentSelection, Country.uuidCountryVocabulary);
- }else if(parentElement instanceof IEntityElement && ((IEntityElement) parentElement).getEntity() instanceof DerivedUnitFacade){
+ if(parentElement instanceof IEntityElement && ((IEntityElement) parentElement).getEntity() instanceof DerivedUnitFacade){
return (T) NamedAreaSelectionDialog.select(shell, conversation, (NamedArea) currentSelection, Country.uuidCountryVocabulary);
}
else{
//FIXME prelim
pattern = pattern + "*";
- model = CdmStore.getService(IClassificationService.class).getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(selectedClassification.getUuid(), excludeTaxa, limitOfInitialElements, pattern);
+ model = CdmStore.getService(IClassificationService.class).getTaxonNodeUuidAndTitleCacheOfAcceptedTaxaByClassification(selectedClassification.getUuid(), limitOfInitialElements, pattern);
}
/** {@inheritDoc} */
import org.eclipse.swt.widgets.TypedListener;
import org.eclipse.swt.widgets.Widget;
import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.events.IExpansionListener;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
import org.eclipse.ui.forms.widgets.ToggleHyperlink;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
/**
* <p>
*/
public void setEntity(ENTITY entity) {
this.entity = entity;
+ addExpandListener();
}
/*
}
/** {@inheritDoc} */
-
@Override
public void update(CdmDataChangeMap changeEvents) {
}
+
+ private class ExpandListener implements IExpansionListener{
+ @Override
+ public void expansionStateChanging(ExpansionEvent e) {
+ }
+ @Override
+ public void expansionStateChanged(ExpansionEvent e) {
+ PreferencesUtil.getPreferenceStore().setValue(getPrefKey(), e.getState());
+ }
+ }
+
+ /**
+ * Adds a custom implementation of IExpansionListener to this section
+ * which stores the expansion state in the preferences
+ */
+ private void addExpandListener() {
+ PreferencesUtil.getPreferenceStore().setDefault(getPrefKey(), isExpanded());
+ setExpanded(PreferencesUtil.getPreferenceStore().getBoolean(getPrefKey()));
+ addExpansionListener(new ExpandListener());
+ }
+
+ private String getPrefKey() {
+ return this.getClass().getCanonicalName()+";"+entity.getClass().getCanonicalName();
+ }
}
import eu.etaxonomy.cdm.model.common.MultilanguageTextHelper;
import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
+import eu.etaxonomy.taxeditor.model.ImageResources;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
import eu.etaxonomy.taxeditor.ui.translation.TranslationWizard;
/**
protected LanguageStringWithLabelElement element_languageString;
private Button button;
+
+// private Button removeRepresentation;
private Map<Language, LanguageString> multilanguageText;
combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement,
"", null, style);
combo_language.addSelectionListener(this);
+// removeRepresentation = formFactory.createButton(getLayoutComposite(), null,
+// SWT.PUSH);
+// removeRepresentation.setImage(ImageResources
+// .getImage(ImageResources.TRASH_ICON));
+// removeRepresentation.setToolTipText("Remove representation");
+// addControl(removeRepresentation);
+// removeRepresentation.addSelectionListener(new DeleteListener(this));
addControl(formFactory.createLabel(getLayoutComposite(), ""));
button = formFactory.createButton(getLayoutComposite(),
"Open In Translation Editor", SWT.PUSH);
firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
}
}
+
+
}
import java.util.List;
import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Button;
import eu.etaxonomy.cdm.model.common.TermBase;
import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
+import eu.etaxonomy.taxeditor.model.ImageResources;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
+
public class RepresentationElement extends AbstractCdmFormElement implements
SelectionListener{
protected TextWithLabelElement element_text;
protected Button button;
- //protected Button deleteButton;
-
+
protected Representation selectedRepresentation;
protected TermBase term;
+ private Button removeRepresentation;
+
// protected final boolean isTranslationWizard;
protected void createRepresentationEditingElements(
ICdmFormElement formElement, int style) {
-
+ removeRepresentation = formFactory.createButton(getLayoutComposite(), null,
+ SWT.PUSH);
+ removeRepresentation.setImage(ImageResources
+ .getImage(ImageResources.TRASH_ICON));
+ removeRepresentation.setToolTipText("Remove representation");
+ removeRepresentation.addSelectionListener(new DeleteListener(this));
+ addControl(removeRepresentation);
+
combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement,
- "", null, true, style);
+ "", null, false, style);
combo_language.addSelectionListener(this);
-
- addControl(formFactory.createLabel(getLayoutComposite(), ""));
+
+ //addControl(formFactory.createLabel(getLayoutComposite(), ""));
}
public List<Language> getLanguages() {
element_Label.setText(selectedRepresentation.getLabel());
element_abbrevLabel.setText(selectedRepresentation.getAbbreviatedLabel());
element_text.setText(selectedRepresentation.getDescription());
-
+
}else {
+
element_Label.setEnabled(false);
element_abbrevLabel.setEnabled(false);
element_text.setEnabled(false);
if (selectedRepresentation != null) {
combo_language.setTerms(getLanguages());
+
} else{
element_Label.setEnabled(false);
element_abbrevLabel.setEnabled(false);
element_text.setEnabled(false);
+ if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+ removeRepresentation.setEnabled(false);
+ }
}
if (update){
updateControls();
selectedRepresentation = preferredRepresentation;
if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
combo_language.setSelection(preferredRepresentation == null?CdmStore.getDefaultLanguage():preferredRepresentation.getLanguage());
+ boolean removePossible = term.getRepresentations().size() > 1 ;
+ removeRepresentation.setEnabled(removePossible);
+
}
}
element_Label.setEnabled(true);
element_abbrevLabel.setEnabled(true);
element_text.setEnabled(true);
+ boolean removePossible = term.getRepresentations().size() > 1 ;
+ removeRepresentation.setEnabled(removePossible);
} else{
element_Label.setEnabled(false);
element_abbrevLabel.setEnabled(false);
element_text.setEnabled(false);
+ removeRepresentation.setEnabled(false);
}
firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
}
}
this.selectedRepresentation = selectedRepresentation;
}
+
+ private class DeleteListener extends SelectionAdapter {
+
+ private final RepresentationElement element;
+
+ public DeleteListener(RepresentationElement element) {
+ this.element = element;
+ }
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ term.removeRepresentation(selectedRepresentation);
+ firePropertyChangeEvent(new CdmPropertyChangeEvent(
+ this, e));
+ updateControls();
+ }
+ }
}
import eu.etaxonomy.cdm.model.common.Representation;
import eu.etaxonomy.cdm.model.common.TermBase;
+import eu.etaxonomy.cdm.model.common.TermType;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermTranslationWizard;
public TranslatableRepresentationElement(CdmFormFactory formFactory, ICdmFormElement formElement,
Representation representation, TermBase term, Integer textHeight, int style, boolean fill) {
super(formFactory, formElement, representation, term, textHeight, style, fill);
+
}
}
@Override
protected void createRepresentationEditingElements(ICdmFormElement formElement, int style) {
- super.createRepresentationEditingElements(formElement, style);
+ super.createRepresentationEditingElements(formElement, style );
button = formFactory.createButton(getLayoutComposite(),
"Open In Translation Editor", SWT.PUSH);
addControl(button);
* Override in subclasses if you want to have a different behaviour.
*/
protected void setSectionTitle() {
- if(getCollection(getEntity()) != null && getCollection(getEntity()).size() > 0){
+ Collection<ELEMENT> collection = getCollection(getEntity());
+ if(collection != null && collection.size() > 0){
this.setText(getTitleString() + " +");
}else{
this.setText(getTitleString());
selection_reuseExistingName.setEnabled(enabled);
if (!enabled){
setTaxon(selection_reuseExistingTaxon.getEntity());
- }
- if (isCreateNew()){
- textNewTaxonName.setEnabled(enabled);
- if (!enabled){
- setTaxon(selection_reuseExistingTaxon.getEntity());
- } else{
- textNewTaxonName.setText(null);
- }
-
- complete = !textNewTaxonName.getText().isEmpty();
- }
+ }else{
+ textNewTaxonName.setText(null);
+ }
+ complete = !textNewTaxonName.getText().isEmpty();
+
} else if (eventSource == selection_reuseExistingName) {
boolean enabled = selection_reuseExistingName.getEntity() == null;
selection_reuseExistingTaxon.setEnabled(enabled);
textNewTaxonName.setEnabled(enabled);
- setTaxon(selection_reuseExistingName.getEntity());
+ //setTaxon(selection_reuseExistingName.getEntity());
complete = !textNewTaxonName.getText().isEmpty();
} else if (eventSource == textNewTaxonName) {
public String getTaxonName() {
return textNewTaxonName.getText();
}
+ public Taxon getTaxon() {
+ return taxon;
+ }
public Reference getReference(){
return selection_SecRef.getSelection();
}
public Taxon createTaxon() {
- String taxonName = ((TaxonNodeDetailElement) getDetailElement()).getTaxonName();
- Reference reference = ((TaxonNodeDetailElement) getDetailElement()).getReference();
- NonViralName parseReferencedName = ParseHandler.parseReferencedName(taxonName, null);
- return Taxon.NewInstance(parseReferencedName, reference);
+ if (((TaxonNodeDetailElement) getDetailElement()).getTaxon() == null){
+ String taxonName = ((TaxonNodeDetailElement) getDetailElement()).getTaxonName();
+ Reference reference = ((TaxonNodeDetailElement) getDetailElement()).getReference();
+ NonViralName parseReferencedName = ParseHandler.parseReferencedName(taxonName, null);
+ return Taxon.NewInstance(parseReferencedName, reference);
+ } else{
+ return ((TaxonNodeDetailElement) getDetailElement()).getTaxon();
+ }
}
/*
import org.eclipse.swt.SWT;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.description.TaxonInteraction;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.store.CdmStore;
interactionDescription = formFactory.createMultiLineTextWithLabel(this,
"Relationship to the taxon:", 200, SWT.WRAP);
+ entity = HibernateProxyHelper.deproxy(entity, TaxonInteraction.class);
interactionDescription.setText(entity.getDescription(CdmStore
.getDefaultLanguage()));
}
int width = image.calculateWidth();
IEditGeoService editGeoService;
List<Language> languages = Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()});
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- editGeoService = ((CdmApplicationRemoteController)CdmStore.getCurrentApplicationConfiguration()).getEditGeoService();
- }else{
- editGeoService =(IEditGeoService) CdmStore.getCurrentApplicationConfiguration().getBean(
- "editGeoService");
- }
-
+ editGeoService = ((CdmApplicationRemoteController)CdmStore.getCurrentApplicationConfiguration()).getEditGeoService();
+
String parameter = editGeoService.getDistributionServiceRequestParameterString(
getTaxonDescriptions(),
false,
EntitySelectionElement.ALL, style);
addElement(selectionBasionymAuthor);
selectionExBasionymAuthor = formFactory.createSelectionElementWithAbbreviatedTitle(TeamOrPersonBase.class, getConversationHolder(),
- formElement, "Ex Basionym Author", entity.getExBasionymAuthorship(),
+ formElement, "Ex Basionym Author",entity.getExBasionymAuthorship(),
EntitySelectionElement.ALL, style);
addElement(selectionExBasionymAuthor);
}
private void createInfragenerericEpithetControls(ICdmFormElement element, NonViralName nonViralName, int style){
- if(nonViralName.getRank() != null && nonViralName.getRank().isLower(Rank.GENUS()) && !nonViralName.getRank().isSpeciesAggregate()){
- text_infragenericEpithet = formFactory.createTextWithLabelElement(element, "Infrageneric Epithet", nonViralName.getInfraGenericEpithet(), style);
+ if (nonViralName.getNomenclaturalCode().equals(NomenclaturalCode.ICZN)){
+ if(nonViralName.getRank() != null && nonViralName.getRank().isLower(Rank.GENUS()) ){
+ text_infragenericEpithet = formFactory.createTextWithLabelElement(element, "Infrageneric Epithet", nonViralName.getInfraGenericEpithet(), style);
+ }
+ } else{
+ if((nonViralName.getRank() != null && nonViralName.getRank().isLower(Rank.GENUS())) && !nonViralName.getRank().isLower(Rank.SPECIES()) && !nonViralName.getRank().isSpeciesAggregate()){
+ text_infragenericEpithet = formFactory.createTextWithLabelElement(element, "Infrageneric Epithet", nonViralName.getInfraGenericEpithet(), style);
+ }
}
}
package eu.etaxonomy.taxeditor.ui.section.name;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
import org.eclipse.jface.wizard.Wizard;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.name.NameRelationship;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* <p>NameRelationshipWizard class.</p>
* @created Jun 1, 2010
* @version 1.0
*/
-public class NameRelationshipWizard extends Wizard implements IConversationEnabled{
+public class NameRelationshipWizard extends Wizard implements IConversationEnabled, ICdmEntitySessionEnabled{
private static NameRelationshipDetailSection callingSection;
+ private ICdmEntitySession cdmEntitySession;
+ private ICdmEntitySession previousCdmEntitySession;
+ private CdmBase rootElement;
+
/**
* <p>Constructor for NameRelationshipWizard.</p>
*
*/
public NameRelationshipWizard(NameRelationshipDetailSection callingSection) {
NameRelationshipWizard.callingSection = callingSection;
+ rootElement = callingSection.getEntity();
+ if (CdmStore.isActive()) {
+ previousCdmEntitySession = CdmStore.getCurrentSessionManager().getActiveSession();
+ cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+ cdmEntitySession.bind();
+ }
}
private NameRelationshipWizardPage page;
return page.isPageComplete();
}
-
+ @Override
+ public void dispose() {
+ super.dispose();
+ if(cdmEntitySession != null) {
+ cdmEntitySession.dispose();
+ }
+ if(previousCdmEntitySession!=null){
+ previousCdmEntitySession.bind();
+ }
+ }
/**
* <p>getNameRelationship</p>
/** {@inheritDoc} */
public void update(CdmDataChangeMap changeEvents) {}
+
+ @Override
+ public ICdmEntitySession getCdmEntitySession() {
+ return cdmEntitySession;
+ }
+
+ @Override
+ public java.util.Collection<CdmBase> getRootEntities() {
+ return Collections.singleton(rootElement);
+ }
+
+ @Override
+ public Map<Object, List<String>> getPropertyPathsMap() {
+ return null;
+ }
}
Action chooseNameAction = new Action("Choose Name", IAction.AS_PUSH_BUTTON){
@Override
public void run() {
- TaxonNameBase taxonName = NameSelectionDialog.select(getShell(), getConversationHolder(), null);
+ TaxonNameBase taxonName = NameSelectionDialog.select(getShell(), getConversationHolder(), getEntity());
if(taxonName!=null){
if(taxonName.isInstanceOf(NonViralName.class)){
CdmStore.getService(ITaxonNodeService.class).list(TaxonNode.class, null, null, null, null);
import java.util.ArrayList;
import java.util.Collection;
import java.util.Set;
-import java.util.UUID;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IParameter;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.Parameterization;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
+import eu.etaxonomy.taxeditor.view.CdmViewerChooser;
/**
* @author pplitzner
/** {@inheritDoc} */
@Override
protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
-
- //TODO add context menu for deleting associations
-
Collection<TaxonBase<?>> associatedTaxa = CdmStore.getService(IOccurrenceService.class).listIndividualsAssociationTaxa(entity.innerDerivedUnit(), null, null, null, null);
Collection<SpecimenTypeDesignation> typeDesignations = CdmStore.getService(IOccurrenceService.class).listTypeDesignations(entity.innerDerivedUnit(), null, null, null, null);
Collection<DeterminationEvent> determinationEvents = CdmStore.getService(IOccurrenceService.class).listDeterminationEvents(entity.innerDerivedUnit(), null, null, null, null);
+ Collection<CdmBase> associations = new ArrayList<>();
+ associations.addAll(associatedTaxa);
+ associations.addAll(typeDesignations);
+ associations.addAll(determinationEvents);
+
+ TableWrapLayout layout = (TableWrapLayout) getLayoutComposite().getLayout();
+ layout.bottomMargin = 0;
+ layout.topMargin = 0;
+
if(associatedTaxa.isEmpty() && typeDesignations.isEmpty() && determinationEvents.isEmpty()){
Label label = formFactory.createLabel(getLayoutComposite(), "No associations");
label.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
return;
}
- if(!associatedTaxa.isEmpty()){
- TableViewer viewer = new TableViewer(getLayoutComposite(), SWT.FULL_SELECTION);
- viewer.getTable().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
- viewer.setContentProvider(new ArrayContentProvider());
- viewer.setLabelProvider(new LabelProvider(){
+ for (CdmBase cdmBase : associations) {
+ final StyledText styledTextWidget = new StyledText(getLayoutComposite(), SWT.WRAP);
+ styledTextWidget.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ styledTextWidget.setText(getLabelText(cdmBase));
+ styledTextWidget.setBackground(getLayoutComposite().getBackground());
+ styledTextWidget.setEditable(false);
+ //Set caret null this will hide caret
+ styledTextWidget.setCaret(null);
+
+ //TODO add context menu for deleting associations
+ //context menu
+ Menu menu = new Menu(styledTextWidget);
+ //copy menu
+ MenuItem copyItem = new MenuItem(menu, SWT.PUSH);
+ copyItem.setText("Copy");
+ copyItem.addSelectionListener(new SelectionListener() {
+
@Override
- public String getText(Object element) {
- return "Associated with "+element.toString();
+ public void widgetSelected(SelectionEvent e) {
+ Object[] data = new Object[]{styledTextWidget.getText()};
+ Clipboard clipboard = new Clipboard(styledTextWidget.getDisplay());
+ clipboard.setContents(data, new Transfer[]{TextTransfer.getInstance()});
}
- });
- viewer.setInput(associatedTaxa);
- viewer.addDoubleClickListener(this);
- }
- if(!typeDesignations.isEmpty()){
- TableViewer viewer = new TableViewer(getLayoutComposite(), SWT.FULL_SELECTION);
- viewer.getTable().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
- viewer.setContentProvider(new ArrayContentProvider());
- viewer.setLabelProvider(new LabelProvider(){
@Override
- public String getText(Object element) {
- SpecimenTypeDesignation typeDesignation = (SpecimenTypeDesignation)element;
- String label = typeDesignation.getTypeStatus()!=null?typeDesignation.getTypeStatus().getLabel()+" of ":"Type of ";
- Set<TaxonNameBase> typifiedNames = typeDesignation.getTypifiedNames();
- for (TaxonNameBase taxonNameBase : typifiedNames) {
- label += taxonNameBase+", ";
- }
- if(label.endsWith(", ")){
- label = label.substring(0, label.length()-2);
- }
- return label;
+ public void widgetDefaultSelected(SelectionEvent e) {
}
});
- viewer.setInput(typeDesignations);
- viewer.addDoubleClickListener(this);
- }
- if(!determinationEvents.isEmpty()){
- TableViewer viewer = new TableViewer(getLayoutComposite(), SWT.FULL_SELECTION);
- viewer.getTable().setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
- viewer.setContentProvider(new ArrayContentProvider());
- viewer.setLabelProvider(new LabelProvider(){
- @Override
- public String getText(Object element) {
- DeterminationEvent determinationEvent = (DeterminationEvent)element;
- if(determinationEvent.getTaxon()!=null){
- return "Determined as taxon "+determinationEvent.getTaxon();
- }
- if(determinationEvent.getTaxonName()!=null){
- return "Determined as name "+determinationEvent.getTaxonName();
- }
- return element.toString();
- }
+ //"Open in..." menu
+ MenuItem openInItem = new MenuItem(menu, SWT.PUSH);
+ openInItem.setText("Open");
+ if(cdmBase.isInstanceOf(SpecimenTypeDesignation.class)){
+ openInItem.setData(HibernateProxyHelper.deproxy(cdmBase, SpecimenTypeDesignation.class));
+ }
+ openInItem.setData(cdmBase);
+ openInItem.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ new CdmViewerChooser(TaxonAssociationDetailElement.this.getLayoutComposite().getShell()).chooseViewer(e.widget.getData());
+ }
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
});
- viewer.setInput(determinationEvents);
- viewer.addDoubleClickListener(this);
+ styledTextWidget.setMenu(menu);
+ }
+ }
+
+ private String getLabelText(Object element) {
+ if(element instanceof TaxonBase){
+ return "Associated with "+element.toString();
+ }
+ else if(element instanceof DeterminationEvent){
+ DeterminationEvent determinationEvent = (DeterminationEvent)element;
+ if(determinationEvent.getTaxon()!=null){
+ return "Determined as taxon "+determinationEvent.getTaxon();
+ }
+ if(determinationEvent.getTaxonName()!=null){
+ return "Determined as name "+determinationEvent.getTaxonName();
+ }
+ }
+ else if(element instanceof SpecimenTypeDesignation){
+ SpecimenTypeDesignation typeDesignation = (SpecimenTypeDesignation)element;
+ String label = typeDesignation.getTypeStatus()!=null?typeDesignation.getTypeStatus().getLabel()+" of ":"Type of ";
+ Set<TaxonNameBase> typifiedNames = typeDesignation.getTypifiedNames();
+ for (TaxonNameBase taxonNameBase : typifiedNames) {
+ label += taxonNameBase+", ";
+ }
+ if(label.endsWith(", ")){
+ label = label.substring(0, label.length()-2);
+ }
+ return label;
}
+ return "";
}
/** {@inheritDoc} */
public void doubleClick(DoubleClickEvent event) {
if(event.getSelection() instanceof IStructuredSelection){
Object firstElement = ((IStructuredSelection) event.getSelection()).getFirstElement();
- UUID taxonToOpenUuid = null;
- if(firstElement instanceof TaxonBase<?>){
- taxonToOpenUuid = ((TaxonBase<?>)firstElement).getUuid();
- }
- else if(firstElement instanceof SpecimenTypeDesignation){
- //TODO how to open an editor for all typed names?
+ if(firstElement instanceof SpecimenTypeDesignation){
+ SpecimenTypeDesignation typeDesignation = (SpecimenTypeDesignation)firstElement;
+ Set<TaxonNameBase> typifiedNames = typeDesignation.getTypifiedNames();
+ if(typifiedNames.size()==1){
+ firstElement = typifiedNames.iterator().next();
+ }
+ if(typifiedNames.size()==0 || typifiedNames.size()>=2){
+ MessagingUtils.informationDialog("Could not open name", "Type designation has either 0 or more than 1 names associated");
+ }
}
else if(firstElement instanceof DeterminationEvent){
if(((DeterminationEvent) firstElement).getTaxon()!=null){
- taxonToOpenUuid = ((DeterminationEvent) firstElement).getTaxon().getUuid();
+ firstElement = ((DeterminationEvent) firstElement).getTaxon();
}
else if(((DeterminationEvent) firstElement).getTaxonName()!=null){
- //TODO how to open editor for taxon name
- }
- }
- if(taxonToOpenUuid!=null){
- String commandId = "eu.etaxonomy.taxeditor.editor.openTaxonEditor";
-
-
- ArrayList parameters = new ArrayList();
- IParameter iparam = null;
-
- //get the command from plugin.xml
- IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- ICommandService cmdService = (ICommandService)window.getService(ICommandService.class);
- Command cmd = cmdService.getCommand(commandId);
-
- //get the parameter
- try {
- iparam = cmd.getParameter("eu.etaxonomy.taxeditor.editor.taxonParameter");
- } catch (NotDefinedException e1) {
- MessagingUtils.error(this.getClass(), "Command not defined", e1);
- }
- Parameterization params = new Parameterization(iparam, taxonToOpenUuid.toString());
- parameters.add(params);
-
- //build the parameterized command
- ParameterizedCommand pc = new ParameterizedCommand(cmd, (Parameterization[]) parameters.toArray(new Parameterization[parameters.size()]));
-
- //execute the command
- IHandlerService handlerService = (IHandlerService)window.getService(IHandlerService.class);
- try {
- handlerService.executeCommand(pc, null);
- } catch (ExecutionException e) {
- MessagingUtils.error(TaxonAssociationDetailElement.class, e);
- } catch (NotDefinedException e) {
- MessagingUtils.error(TaxonAssociationDetailElement.class, e);
- } catch (NotEnabledException e) {
- MessagingUtils.error(TaxonAssociationDetailElement.class, e);
- } catch (NotHandledException e) {
- MessagingUtils.error(TaxonAssociationDetailElement.class, e);
+ firstElement = ((DeterminationEvent) firstElement).getTaxonName();
}
}
+ new CdmViewerChooser(event.getViewer().getControl().getShell()).chooseViewer(firstElement);
}
}
}
import java.util.Collections;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IMediaService;
import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.cdm.model.molecular.Sequence;
-import eu.etaxonomy.cdm.model.molecular.SingleRead;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
/**
public void addElement(Media element) {
if(getEntity().getContigFile()==null){
getEntity().setContigFile(element);
+ /*
+ * merge to avoid duplicate key exception
+ * the exception seems to be caused by the two links to the Media object:
+ * - Sequence->contigFile (used to be not in the cache after saving)
+ * - MediaRepresentationPart->media
+ * Invoking merge() solves this problem
+ */
+ CdmStore.getService(IMediaService.class).merge(element);
}
}
import java.util.Collections;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.IMediaService;
import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.cdm.model.molecular.SingleRead;
+import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
public void addElement(Media element) {
if(getEntity().getPherogram()==null){
getEntity().setPherogram(element);
+ /*
+ * merge to avoid duplicate key exception
+ * the exception seems to be caused by the two links to the Media object:
+ * - SingleRead->pherogram (used to be not in the cache after saving)
+ * - MediaRepresentationPart->media
+ * Invoking merge() solves this problem
+ */
+ CdmStore.getService(IMediaService.class).merge(element);
}
}
private CdmBase rootElement;
public EditFromSelectionWizard(EntitySelectionElement selectionElement) {
- if (CdmStore.isActive() && CdmStore.getCurrentSessionManager().isRemoting()) {
+ if (CdmStore.isActive()) {
previousCdmEntitySession = CdmStore.getCurrentSessionManager().getActiveSession();
cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
cdmEntitySession.bind();
import java.util.Observer;
import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.MessageDialog;
+
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
text_source = formFactory.createRepresentationElement(element, preferredRepresentation,term, TEXT_HEIGHT, SWT.NULL, true);
text_source.setTerm(term, true);
-
}
/**
*/
private void createRightControls(ICdmFormElement element){
text_target = formFactory.createRepresentationElement(element, null, term, TEXT_HEIGHT, SWT.NULL, false);
+
}
* @return
*/
public static boolean isStable() {
- return !getVersion().startsWith("[");
+ return !getVersion().startsWith(BETA_PREFIX);
}
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
import eu.etaxonomy.taxeditor.view.detail.CdmSectionPart;
/**
- * <p>Abstract AbstractCdmDataViewer class.</p>
- *
* @author n.hoffmann
* @created Feb 9, 2010
* @version 1.0
private final AbstractCdmViewPart viewPart;
- /**
- * <p>Constructor for AbstractCdmDataViewer.</p>
- *
- * @param parent a {@link org.eclipse.swt.widgets.Composite} object.
- * @param viewPart a {@link eu.etaxonomy.taxeditor.view.AbstractCdmViewPart} object.
- */
public AbstractCdmDataViewer(Composite parent, AbstractCdmViewPart viewPart) {
this.viewPart = viewPart;
managedForm = new ManagedForm(parent){
- /* (non-Javadoc)
- * @see org.eclipse.ui.forms.ManagedForm#dirtyStateChanged()
- */
@Override
public void dirtyStateChanged() {
markViewPartDirty();
rootElement = new RootElement(formFactory, body);
}
- /**
- * <p>createFormFactory</p>
- */
protected void createFormFactory() {
if(formFactory != null){
formFactory.dispose();
viewPart.changed(input);
}
-
- /**
- * @return
- */
protected AbstractCdmViewPart getViewPart() {
return viewPart;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.Viewer#getControl()
- */
/** {@inheritDoc} */
@Override
public Control getControl() {
return body;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.Viewer#setInput(java.lang.Object)
- */
/** {@inheritDoc} */
@Override
public void setInput(Object input) {
refresh();
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.Viewer#getInput()
- */
/** {@inheritDoc} */
@Override
public Object getInput() {
return input;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.viewers.Viewer#refresh()
- */
/** {@inheritDoc} */
@Override
public void refresh() {
managedForm.reflow(true);
}
-
- /**
- * <p>layout</p>
- */
public void layout(){
body.layout();
}
- /**
- * <p>showParts</p>
- */
protected abstract void showParts();
-
- /**
- * <p>destroySections</p>
- */
protected void destroySections() {
for (IFormPart formPart : managedForm.getParts()){
- removePart((CdmSectionPart) formPart);
+ removePart((CdmSectionPart<?>) formPart);
}
managedForm.setInput(null);
}
}
-
- /**
- * <p>setFocus</p>
- */
public void setFocus(){
// we have to set focus to a control of this viewer
// otherwise, after opening a dialog from the details, the focus will not be
}
}
- /**
- * <p>reflow</p>
- */
public void reflow(){
managedForm.reflow(true);
}
- /**
- * <p>removePart</p>
- *
- * @param sectionPart a {@link eu.etaxonomy.taxeditor.view.detail.CdmSectionPart} object.
- */
- protected void removePart(CdmSectionPart sectionPart){
+ protected void removePart(CdmSectionPart<?> sectionPart){
managedForm.removePart(sectionPart);
formFactory.removePropertyChangeListener(sectionPart);
}
- /**
- * <p>addPart</p>
- *
- * @param section a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
- */
- protected void addPart(AbstractFormSection section){
- CdmSectionPart sectionPart = new CdmSectionPart(section);
+ protected void addPart(AbstractFormSection<?> section){
+ CdmSectionPart<?> sectionPart = new CdmSectionPart<>(section);
managedForm.addPart(sectionPart);
formFactory.addPropertyChangeListener(sectionPart);
}
- /**
- * <p>getConversationHolder</p>
- *
- * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
- */
@Override
public ConversationHolder getConversationHolder() {
return viewPart.getConversationHolder();
}
- /** {@inheritDoc} */
- @Override
- public void update(CdmDataChangeMap changeEvents) {}
-
}
* <p>showEmptyPage</p>
*/
public void showEmptyPage(){
+ setPartName(createPartTitle(null));
pageBook.showPage(emptySelectionLabel);
}
if (getViewer().getControl()==null || getViewer().getControl().isDisposed()){
return;
}
+
+ setPartName(createPartTitle(element));
getViewer().setInput(element);
showViewer();
}
// TODO Auto-generated method stub
return null;
}
+
+ protected String createPartTitle(Object selectedObject){
+ if(selectedObject!=null){
+ return getViewName()+": "+selectedObject; //$NON-NLS-1$
+ }
+ return getViewName();
+ }
+
+ protected abstract String getViewName();
}
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.actions.CompoundContributionItem;
import org.eclipse.ui.handlers.IHandlerService;
-import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.Messages;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
@Override
public void fill(Menu menu, int index) {
final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- final ISelection selection = window.getActivePage().getSelection();
- if(selection instanceof IStructuredSelection){
- Object firstElement = ((IStructuredSelection) selection).getFirstElement();
- Map<Command, String> enabledCommands = CdmViewerUtil.getAvailableViewers(firstElement);
+ IWorkbenchPage activePage = window.getActivePage();
+ if(activePage!=null){
+ final ISelection selection = activePage.getSelection();
+ if(selection instanceof IStructuredSelection){
+ Object firstElement = ((IStructuredSelection) selection).getFirstElement();
+ Map<Command, String> enabledCommands = CdmViewerUtil.getAvailableViewers(firstElement);
- //check if only one or multiple viewers/commands are available
- if(enabledCommands.size()==1){
- Entry<Command, String> entry = enabledCommands.entrySet().iterator().next();
- final Command command = entry.getKey();
- String viewerName = entry.getValue();
+ //check if only one or multiple viewers/commands are available
+ if(enabledCommands.size()==1){
+ Entry<Command, String> entry = enabledCommands.entrySet().iterator().next();
+ final Command command = entry.getKey();
+ String viewerName = entry.getValue();
- MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
- addItem.setText(String.format(Messages.CdmViewerContextMenu_OPEN, viewerName));
- addItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
- }
- else if(enabledCommands.size()>1){
- MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
- addItem.setText(Messages.CdmViewerContextMenu_OPEN_IN);
- Menu addMenu = new Menu(menu);
- addItem.setMenu(addMenu);
- for(Entry<Command, String> entry:enabledCommands.entrySet()){
- final Command command = entry.getKey();
- String viewerName = entry.getValue();
+ MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
+ addItem.setText(String.format(Messages.CdmViewerContextMenu_OPEN, viewerName));
+ addItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
+ }
+ else if(enabledCommands.size()>1){
+ MenuItem addItem = new MenuItem(menu, SWT.CASCADE);
+ addItem.setText(Messages.CdmViewerContextMenu_OPEN_IN);
+ Menu addMenu = new Menu(menu);
+ addItem.setMenu(addMenu);
+ for(Entry<Command, String> entry:enabledCommands.entrySet()){
+ final Command command = entry.getKey();
+ String viewerName = entry.getValue();
- MenuItem menuItem = new MenuItem(addMenu, SWT.NONE);
- menuItem.setText(viewerName);
- menuItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
- }
- }
+ MenuItem menuItem = new MenuItem(addMenu, SWT.NONE);
+ menuItem.setText(viewerName);
+ menuItem.addSelectionListener(new CommandInvoker(command, firstElement)) ;
+ }
+ }
+ }
}
}
Map<String, UUID> params = new HashMap<String, UUID>();
//for generic UuidAndTitleCache objects try to load the object
if (selectedObject instanceof UuidAndTitleCache){
- UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache)selectedObject;
- Class type = uuidAndTitleCache.getType();
- if(type == Taxon.class || type == Synonym.class){
- selectedObject = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid());
- }
- else if(SpecimenOrObservationBase.class.isAssignableFrom(type)){
- selectedObject = CdmStore.getService(IOccurrenceService.class).load(uuidAndTitleCache.getUuid());
- }
+ selectedObject = CdmStore.getCommonService().find(CdmBase.class, ((UuidAndTitleCache)selectedObject).getUuid());
}
if(selectedObject instanceof ICdmBase){
params.put(command.getId()+".uuid", ((ICdmBase) selectedObject).getUuid()); //$NON-NLS-1$
} catch (NotDefinedException nde) {
throw new RuntimeException("Could not find open command: " + command.getId()); //$NON-NLS-1$
} catch (Exception exception) {
- MessagingUtils.error(getClass(), "An exception occured while trying execute "+command.getId(), exception); //$NON-NLS-1$
+ MessagingUtils.error(getClass(), "An exception occured while trying to execute "+command.getId(), exception); //$NON-NLS-1$
}
- PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getSelection();
}
}
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.commands.ICommandService;
-import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.api.service.ITaxonService;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.CdmStore;
//for generic UuidAndTitleCache objects try to load the object
if (input instanceof UuidAndTitleCache){
UuidAndTitleCache uuidAndTitleCache = (UuidAndTitleCache)input;
- Class type = uuidAndTitleCache.getType();
- if(type == Taxon.class || type == Synonym.class){
- input = CdmStore.getService(ITaxonService.class).load(uuidAndTitleCache.getUuid());
- }
- else if(SpecimenOrObservationBase.class.isAssignableFrom(type)){
- input = CdmStore.getService(IOccurrenceService.class).load(uuidAndTitleCache.getUuid());
- }
+ input = CdmStore.getCommonService().find(uuidAndTitleCache.getType(), uuidAndTitleCache.getUuid());
}
if(selectionClass.isAssignableFrom(input.getClass())){
ICommandService commandService = (ICommandService)PlatformUI.getWorkbench().getService(ICommandService.class);
Command command = commandService.getCommand(commandId);
- //TODO: maybe pass the command directly instead of just the command id
if(command.isEnabled()){
commandViewerNameMap.put(command, viewerName);
}
//FIXME move ABCD import to cdmlib -> this will also get rid of the transient services
InputStream resultStream;
resultStream = new BioCaseQueryServiceWrapper().query(query, endPoint);
- Abcd206ImportConfigurator configurator = Abcd206ImportConfigurator.NewInstance(resultStream, null, false);
+ Abcd206ImportConfigurator configurator = Abcd206ImportConfigurator.NewInstance(endPoint, null, false);
/* TransientCdmRepository repo =
new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration());
configurator.setCdmAppController(repo);
package eu.etaxonomy.taxeditor.view.dataimport;
import java.io.IOException;
+import java.util.HashSet;
+import java.util.Set;
import org.apache.http.client.ClientProtocolException;
import org.apache.log4j.Logger;
public void handleEvent(Event event) {
try{
DataSetResponse response = new GbifQueryServiceWrapper().queryOriginalDataSet(gbifResponse);
- final BioCaseEditorInput input = new BioCaseEditorInput(new OccurenceQuery(response.getUnitId()), response.getEndpoint());
+ Set<String[]> unitIds = new HashSet<String[]>();
+ String[] tripleId = {response.getUnitId()};
+ unitIds.add(tripleId);
+ /* final BioCaseEditorInput input = new BioCaseEditorInput(new OccurenceQuery(unitIds), response.getEndpoint());
// EditorUtil.open(input);
Job queryJob = new Job("Querying for original record...") {
return Status.OK_STATUS;
}
};
- queryJob.schedule();
+ queryJob.schedule();*/
} catch (ClientProtocolException e) {
logger.error("Query for single record failed.", e);
} catch (IOException e) {
--- /dev/null
+package eu.etaxonomy.taxeditor.view.dataimport;
+
+import java.util.Comparator;
+
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifDataSetProtocol;
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
+
+public class GbifResponseComparator implements Comparator<GbifResponse> {
+
+ @Override
+ public int compare(GbifResponse response1, GbifResponse response2) {
+ if (response1 == response2){
+ return 0;
+ }
+ if (response1 == null){
+ return -1;
+ }
+ if (response2 == null){
+ return 1;
+ }
+
+ if (!response1.getDataSetProtocol().equals(response2.getDataSetProtocol())){
+ if (response1.getDataSetProtocol().equals(GbifDataSetProtocol.DWC_ARCHIVE) && response2.getDataSetProtocol().equals(GbifDataSetProtocol.BIOCASE)){
+ return -1;
+ }
+ if (response2.getDataSetProtocol().equals(GbifDataSetProtocol.DWC_ARCHIVE) && response1.getDataSetProtocol().equals(GbifDataSetProtocol.BIOCASE)){
+ return 1;
+ }
+ if (response1.getDataSetProtocol() == null){
+ return -1;
+ }
+ if (response2.getDataSetProtocol() == null){
+ return 1;
+ }
+ } else{
+ if (response1.getDataSetUri() == response2.getDataSetUri()){
+ return 0;
+ }
+ if (response1.getDataSetUri() == null){
+ return -1;
+ }
+ if (response2.getDataSetUri() == null){
+ return -2;
+ }
+ if (response1.getDataSetProtocol().equals(GbifDataSetProtocol.BIOCASE)){
+
+ return response1.getDataSetUri().compareTo(response2.getDataSetUri());
+ }
+ if (response1.getDataSetProtocol().equals(GbifDataSetProtocol.DWC_ARCHIVE)){
+ return response1.getDataSetUri().compareTo(response2.getDataSetUri());
+ }
+ }
+
+ return 0;
+ }
+
+}
package eu.etaxonomy.taxeditor.view.dataimport;
import java.io.IOException;
+import java.io.InputStream;
import java.net.URISyntaxException;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.Set;
import org.apache.http.client.ClientProtocolException;
+import org.eclipse.core.runtime.jobs.Job;
+import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifDataSetProtocol;
import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifQueryServiceWrapper;
import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
+import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
+import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
+import eu.etaxonomy.cdm.io.dwca.in.DwcaImportConfigurator;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* @author pplitzner
public void query() {
String errorMessage = "Could not execute query " + query;
try{
- Collection<GbifResponse> results = new GbifQueryServiceWrapper().query(query);
- setResults(results);
- } catch (ClientProtocolException e) {
- logger.error(errorMessage, e);
- } catch (IOException e) {
- logger.error(errorMessage, e);
- } catch (URISyntaxException e) {
- logger.error(errorMessage, e);
+ //Collection<GbifResponse> results = new GbifQueryServiceWrapper().query(query);
+ //setResults(results);
+
+ // String errorMessage = "Could not execute query " + query;
+
+ // Collection<SpecimenOrObservationBase<?>> results = new ArrayList<SpecimenOrObservationBase<?>>();
+ Collection<GbifResponse> results = new GbifQueryServiceWrapper().query(query);
+
+ setResults(results);
+
+
+//
+ // results = repo.getUnits();
+
+ } catch (ClientProtocolException e) {
+ logger.error(errorMessage, e);
+ } catch (IOException e) {
+ logger.error(errorMessage, e);
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
}
- }
+// setResults(results);
+//
+// }
+// } catch (ClientProtocolException e) {
+// logger.error(errorMessage, e);
+// } catch (IOException e) {
+// logger.error(errorMessage, e);
+// } catch (URISyntaxException e) {
+// logger.error(errorMessage, e);
+// }
+
+ // }
+
+
+
+
+
}
package eu.etaxonomy.taxeditor.view.dataimport;
+import java.io.IOException;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.http.client.ClientProtocolException;
import org.apache.log4j.Logger;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.action.Action;
+import org.eclipse.jface.text.source.Annotation;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.ui.IWorkbenchPart;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
+import eu.etaxonomy.cdm.ext.occurrence.gbif.DataSetResponse;
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifDataSetProtocol;
+import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifQueryServiceWrapper;
import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
+import eu.etaxonomy.cdm.io.specimen.gbif.in.*;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.common.ICdmBase;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
public class SaveImportedSpecimenAction extends Action {
private final Logger logger = Logger.getLogger(SaveImportedSpecimenAction.class);
+
+ private Comparator<GbifResponse> comparator;
/* (non-Javadoc)
* @see org.eclipse.jface.action.Action#run()
if(activePart instanceof DataImportView<?>){
DataImportView<?> dataImportView = (DataImportView<?>)activePart;
Table table = dataImportView.getTable();
+ Collection<GbifResponse> checkedResults = new HashSet<GbifResponse>();
+ Object data;
+ Set<String[]> unitIdsGbif = new HashSet<String[]>();
+ Set<String[]> unitIdsBioCase = new HashSet<String[]>();
+ List<GbifResponse> biocaseResponses = new ArrayList<GbifResponse>();
+
for(TableItem item:table.getItems()){
if(item.getChecked()){
//Save Specimen
- Object data = item.getData();
- if(data instanceof GbifResponse){
- data = ((GbifResponse) item.getData()).getDerivedUnitFacade().innerFieldUnit();
- }
- if(data instanceof SpecimenOrObservationBase){
- ConversationHolder conversation = dataImportView.getConversationHolder();
- SpecimenOrObservationBase<?> specimen = (SpecimenOrObservationBase<?>) data;
- conversation.bind();
- IOccurrenceService occurrenceService = CdmStore.getService(IOccurrenceService.class);
- for(ICdmBase cdmEntity:occurrenceService.getNonCascadedAssociatedElements(specimen)){
- if(cdmEntity instanceof DefinedTermBase){
- persistTerm((DefinedTermBase<?>) cdmEntity, CdmStore.getService(ITermService.class), conversation);
- }
- else if(cdmEntity instanceof TaxonNameBase){
- //user interaction
- }
- }
- occurrenceService.saveOrUpdate(specimen);
- dataImportView.getConversationHolder().commit(true);
- }
+ data = item.getData();
+ if(data instanceof GbifResponse){
+ checkedResults.add((GbifResponse)item.getData());
+ }
}
+ }
+ String[] tripleId ;
+ for (GbifResponse response:checkedResults){
+ if (response != null){
+ tripleId = response.getTripleID();
+
+ if (response.getDataSetProtocol().equals(GbifDataSetProtocol.BIOCASE)){
+ biocaseResponses.add(response);
+
+ }else{
+ unitIdsGbif.add(tripleId);
+ }
+
+
+ }
+ }
+ Collections.sort(biocaseResponses, getComparator());
+ URI dataSetUri = null;
+ Abcd206ImportConfigurator configuratorAbcd;
+
+ List<Abcd206ImportConfigurator> abcdConfigurators = new ArrayList<Abcd206ImportConfigurator>();
+ DataSetResponse dataSetResponse;
+ OccurenceQuery bioCaseOccurrenceQuery = null;
+ for (GbifResponse response: biocaseResponses){
+ try {
+ dataSetResponse = new GbifQueryServiceWrapper().queryOriginalDataSet(response);
+ dataSetUri = dataSetResponse.getEndpoint();
+ } catch (ClientProtocolException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if (!response.getDataSetUri().equals(dataSetUri)){
+ configuratorAbcd = Abcd206ImportConfigurator.NewInstance(dataSetUri, null, false);
+ configuratorAbcd.addMediaAsMediaSpecimen(true);
+ if (configuratorAbcd != null){
+ abcdConfigurators.add(configuratorAbcd);
+ }
+ unitIdsBioCase = new HashSet<String[]>();
+ bioCaseOccurrenceQuery = new OccurenceQuery(unitIdsBioCase);
+ configuratorAbcd.setOccurenceQuery(bioCaseOccurrenceQuery);
+ }
+ tripleId = response.getTripleID();
+ unitIdsBioCase.add(tripleId);
+ }
+
+ OccurenceQuery query = new OccurenceQuery(unitIdsGbif);
+ GbifImportConfigurator configurator = GbifImportConfigurator.newInstance(query);
+ configurator.setSourceReferenceTitle("Import Gbif data");
+
+
+
+ // configurator.setQuery(query);
+
+ Job bioCaseJob = CdmStore.getImportManager().createIOServiceJob(abcdConfigurators);
+ CdmStore.getImportManager().run(bioCaseJob);
+
+ Job gbifJob = CdmStore.getImportManager().createIOServiceJob(configurator);
+ CdmStore.getImportManager().run(gbifJob);
+
+
+
}
}
- }
+
private void persistTerm(DefinedTermBase<?> term, ITermService termService, ConversationHolder conversation){
if(term!=null){
}
}
}
-
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.action.Action#getText()
*/
public String getText() {
return "Import";
}
-
+
+ private Comparator<GbifResponse> getComparator(){
+ if (comparator == null){
+ comparator = new GbifResponseComparator();
+ }
+ return comparator;
+ }
+
+
}
// new TransientCdmRepository(CdmStore.getCurrentApplicationConfiguration());
//configurator.setCdmAppController(repo);
configurator.setAddMediaAsMediaSpecimen(true);
- if(CdmStore.getCurrentSessionManager().isRemoting()) {
- Job job = CdmStore.getImportManager().createIOServiceJob(configurator, resultStream, SOURCE_TYPE.INPUTSTREAM);
- CdmStore.getImportManager().run(job);
- } else {
- configurator.setSource(resultStream);
- CdmDefaultImport<Abcd206ImportConfigurator> importer = new CdmDefaultImport<Abcd206ImportConfigurator>();
- importer.invoke(configurator);
- }
- // results = repo.getUnits();
+ Job job = CdmStore.getImportManager().createIOServiceJob(configurator, resultStream, SOURCE_TYPE.INPUTSTREAM);
+ CdmStore.getImportManager().run(job);
+
setResults(results);
} catch (ClientProtocolException e) {
logger.error(errorMessage, e);
import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
import eu.etaxonomy.cdm.ext.occurrence.bioCase.BioCaseQueryServiceWrapper;
import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
-import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportReport;
+
import eu.etaxonomy.cdm.io.specimen.abcd206.in.AbcdParseUtility;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.SpecimenImportReport;
import eu.etaxonomy.cdm.io.specimen.abcd206.in.UnitAssociationWrapper;
-
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
Abcd206ImportConfigurator configurator = CdmStore.getImportManager().AbcdConfigurator();
configurator.setOccurenceQuery(query);
configurator.setSourceUri(providerSelectionPage.getEndPoint());
+ configurator.setAddMediaAsMediaSpecimen(true);
configurator.setDbSchemaValidation(DbSchemaValidation.CREATE);
- if(CdmStore.getCurrentSessionManager().isRemoting() ) {
- //Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
- //CdmStore.getImportManager().run(job);
- try {
- serviceWrapper = providerSelectionPage.getQueryServiceWrapper();
- InputStream stream = null;
-
- final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- IWorkbenchPage activePart = window.getActivePage();
- if (providerSelectionPage.getQueryType().equals(QueryType.BIOCASE)){
- stream =((BioCaseQueryServiceWrapper) serviceWrapper).query(query, configurator.getSourceUri());
- Abcd206ImportReport report = new Abcd206ImportReport();
- UnitAssociationWrapper unitNodesList = AbcdParseUtility.parseUnitsNodeList(stream, report);
- NodeList nodeList = unitNodesList.getAssociatedUnits();
- String prefix = unitNodesList.getPrefix();
- String associationType = unitNodesList.getAssociationType();
- URI uri =AbcdParseUtility.parseFirstUri(nodeList, report);
- String content = AbcdParseUtility.parseFirstTextContent(nodeList);
- System.out.println(content);
-
-
- SpecimenImportView specimenImportView = new SpecimenImportView();
- try {
- specimenImportView = (SpecimenImportView) activePart.showView(SpecimenImportView.ID);
- specimenImportView.setEndpoint(providerSelectionPage.getEndPoint());
- specimenImportView.setQuery(query);
- dataImportView = specimenImportView;
- } catch (PartInitException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
-
- }
-
- } else{
- try {
-
- dataImportView = (GbifResponseImportView) activePart.showView(GbifResponseImportView.ID, "query_"+query.toString().replaceAll(",", ""), IWorkbenchPage.VIEW_ACTIVATE);
-
- // (GbifResponseImportView) activePart.showView(GbifResponseImportView.ID);getWorkbench().getActiveWorkbenchWindow().getActivePage()
- // .showView(GbifResponseImportView.ID, "query_"+query.toString().replaceAll(",", ""),IWorkbenchPage.VIEW_ACTIVATE);
-
- } catch (PartInitException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+
+ //Job job = CdmStore.getImportManager().createIOServiceJob(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
+ //CdmStore.getImportManager().run(job);
+ try {
+ serviceWrapper = providerSelectionPage.getQueryServiceWrapper();
+ InputStream stream = null;
+
+ final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ IWorkbenchPage activePart = window.getActivePage();
+ if (providerSelectionPage.getQueryType().equals(QueryType.BIOCASE)){
+ stream =((BioCaseQueryServiceWrapper) serviceWrapper).query(query, configurator.getSourceUri());
+ SpecimenImportReport report = new SpecimenImportReport();
+ UnitAssociationWrapper unitNodesList = AbcdParseUtility.parseUnitsNodeList(stream, report);
+ NodeList nodeList = unitNodesList.getAssociatedUnits();
+ String prefix = unitNodesList.getPrefix();
+ String associationType = unitNodesList.getAssociationType();
+ URI uri =AbcdParseUtility.parseFirstUri(nodeList, report);
+ String content = AbcdParseUtility.parseFirstTextContent(nodeList);
+ System.out.println(content);
+
+
+ SpecimenImportView specimenImportView = new SpecimenImportView();
+ try {
+ specimenImportView = (SpecimenImportView) activePart.showView(SpecimenImportView.ID);
+ specimenImportView.setEndpoint(providerSelectionPage.getEndPoint());
+ specimenImportView.setQuery(query);
+ dataImportView = specimenImportView;
+ } catch (PartInitException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
}
+ } else{
+ try {
+
+ dataImportView = (GbifResponseImportView) activePart.showView(GbifResponseImportView.ID, "query_"+query.toString().replaceAll(",", ""), IWorkbenchPage.VIEW_ACTIVATE);
+ dataImportView.setQuery(query);
+ // (GbifResponseImportView) activePart.showView(GbifResponseImportView.ID);getWorkbench().getActiveWorkbenchWindow().getActivePage()
+ // .showView(GbifResponseImportView.ID, "query_"+query.toString().replaceAll(",", ""),IWorkbenchPage.VIEW_ACTIVATE);
+
+ } catch (PartInitException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
}
- // CdmStore.getImportManager().run(configurator);
+
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
}
+ // CdmStore.getImportManager().run(configurator);
+
// try {
// switch (providerSelectionPage.getQueryType()) {
// case BIOCASE:
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
+import eu.etaxonomy.cdm.common.CdmUtils;
import eu.etaxonomy.cdm.format.CdmFormatterFactory;
-import eu.etaxonomy.cdm.format.ICdmFormatter;
import eu.etaxonomy.cdm.format.ICdmFormatter.FormatKey;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.common.Identifier;
import eu.etaxonomy.cdm.model.molecular.DnaSample;
import eu.etaxonomy.cdm.model.molecular.Sequence;
private static Set<SingleRead> multiLinkSingleReads;
private static Map<DerivedUnit, Collection<SpecimenTypeDesignation>> typeDesignations;
-
+
private ConversationHolder conversation;
private static DefinedTerm photoTerm = null;
FormatKey.MEDIA_TITLE, FormatKey.SPACE,
FormatKey.MEDIA_ARTIST, FormatKey.SPACE
};
- return CdmFormatterFactory.format(element, formatKeys);
+ String text = CdmFormatterFactory.format(element, formatKeys);
+ if(element instanceof IdentifiableEntity){
+ IdentifiableEntity identifiableEntity = (IdentifiableEntity) element;
+ if(identifiableEntity.isProtectedTitleCache()){
+ text = identifiableEntity.getTitleCache();
+ }
+ }
+ if(CdmUtils.isBlank(text)){
+ return "[-]";
+ }
+ return text;
}
/** {@inheritDoc} */
}
return hasCharacterData?ImageResources.getImage(ImageResources.SPECIMEN_DERIVATE_CHARACTER_DATA):ImageResources.getImage(ImageResources.SPECIMEN_DERIVATE);
}
- else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.Media){
+ else if(derivedUnit.getRecordBasis().isKindOf(SpecimenOrObservationType.Media)){
if(derivedUnit.getKindOfUnit()!=null){
if(derivedUnit.getKindOfUnit().equals(getArtworkTerm())){
return hasCharacterData?ImageResources.getImage(ImageResources.ARTWORK_DERIVATE_CHARACTER_DATA):ImageResources.getImage(ImageResources.ARTWORK_DERIVATE);
}
}
}
- return super.getImage(element);
+ return ImageResources.getImage(ImageResources.DEFAULT_DERIVATIVE);
}
public static Identifier<DnaSample> getCurrentSampleDesignation(CdmBase entity) {
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.description.Feature;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.Messages;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
public class DetailsViewPart extends AbstractCdmEditorViewPart implements IPartContentHasSupplementalData{
/** Constant <code>ID="eu.etaxonomy.taxeditor.editor.forms.det"{trunked}</code> */
- public static String ID = "eu.etaxonomy.taxeditor.view.detail";
+ public static String ID = "eu.etaxonomy.taxeditor.view.detail"; //$NON-NLS-1$
private DetailsViewer viewer;
if((part instanceof IEditorPart) || (part instanceof IPartContentHasDetails)) {
if(structuredSelection.size() != 1){
- setPartName(createPartTitle(null));
showEmptyPage();
return;
}
// do show the map for distributions
Feature feature = ((FeatureNodeContainer) ((IStructuredSelection) selection).getFirstElement()).getFeature();
if(!feature.equals(Feature.DISTRIBUTION())){
- setPartName(createPartTitle(null));
showEmptyPage();
return;
}
}
-
-
- setPartName(createPartTitle(((IStructuredSelection) selection).getFirstElement()));
showViewer(part, structuredSelection);
}else{
- setPartName(createPartTitle(null));
showEmptyPage();
}
}
- private String getViewName(){
- return "Details";
+ @Override
+ protected String getViewName(){
+ return Messages.DetailsViewPart_VIEWER_NAME;
}
- private String createPartTitle(Object selectedObject){
+ @Override
+ protected String createPartTitle(Object selectedObject){
if(selectedObject!=null){
if(selectedObject instanceof TreeNode){
selectedObject = ((TreeNode) selectedObject).getValue();
}
if(selectedObject instanceof SpecimenOrObservationBase){
- return getViewName()+": "+HibernateProxyHelper.deproxy(selectedObject, SpecimenOrObservationBase.class).getRecordBasis();
+ return getViewName()+": "+HibernateProxyHelper.deproxy(selectedObject, SpecimenOrObservationBase.class).getRecordBasis(); //$NON-NLS-1$
}
if(selectedObject instanceof CdmBase){
- return getViewName()+": "+HibernateProxyHelper.deproxy(selectedObject, CdmBase.class).getClass().getSimpleName();
+ return getViewName()+": "+HibernateProxyHelper.deproxy(selectedObject, CdmBase.class).getClass().getSimpleName(); //$NON-NLS-1$
}
- return getViewName()+": "+selectedObject.getClass().getSimpleName();
+ return getViewName()+": "+selectedObject.getClass().getSimpleName(); //$NON-NLS-1$
}
return getViewName();
}
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
public class DetailsViewer extends AbstractCdmDataViewer {
private ISelection selection;
-
+
public DetailsViewer(Composite parent, AbstractCdmViewPart viewPart) {
super(parent, viewPart);
}
addPart(definedTermDetailSection);
}
+ @Override
+ public void update(CdmDataChangeMap arg0) {
+
+ }
+
}
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
+import eu.etaxonomy.taxeditor.Messages;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
import eu.etaxonomy.taxeditor.model.IPartContentHasSupplementalData;
public class SupplementalDataViewPart extends AbstractCdmEditorViewPart {
/** Constant <code>ID="eu.etaxonomy.taxeditor.editor.view.supp"{trunked}</code> */
- public static final String ID = "eu.etaxonomy.taxeditor.view.supplementalData";
+ public static final String ID = "eu.etaxonomy.taxeditor.view.supplementalData"; //$NON-NLS-1$
private SupplementalDataViewer viewer;
// TODO Auto-generated method stub
return false;
}
+
+
+ @Override
+ protected String getViewName() {
+ return Messages.SupplementalDataViewPart_VIEWER_NAME;
+ }
}
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
import eu.etaxonomy.cdm.model.common.VersionableEntity;
import eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity;
+import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
import eu.etaxonomy.taxeditor.model.IElementHasDetails;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
setInput(selection.getFirstElement());
}
}
+
+ @Override
+ public void update(CdmDataChangeMap arg0) {
+ }
}
Bundle-ManifestVersion: 2
Bundle-Name: eu.etaxonomy.taxeditor.test
Bundle-SymbolicName: eu.etaxonomy.taxeditor.test;singleton:=true
-Bundle-Version: 4.0.0.qualifier
+Bundle-Version: 4.3.0.qualifier
Bundle-ActivationPolicy: lazy
Bundle-Vendor: EDIT
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.0.0-SNAPSHOT</version>
+ <version>4.3.0-SNAPSHOT</version>
</parent>
<artifactId>eu.etaxonomy.taxeditor.test</artifactId>
<packaging>eclipse-test-plugin</packaging>
<daemon>true</daemon>
</configuration>
<dependencies>
- <dependency>
- <groupId>com.mchange</groupId>
- <artifactId>c3p0</artifactId>
- <!--
- IMPORTANT!!!
- this must exactly match the version as set in
- cdmlib-parent pom.xml
- -->
- <version>${c3p0.version}</version>
- </dependency>
- <!-- DATABASE DRIVER -->
- <dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- <version>${h2.version}</version>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>${mysql.version}</version>
- </dependency>
+ <dependency>
+ <groupId>eu.etaxonomy</groupId>
+ <artifactId>cdmlib-db</artifactId>
+ <version>${cdmlib.version}</version>
+ </dependency>
+ <!-- Do we still need this? If yes, should we move it to cdmlib-db? -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
-<!-- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.17</version>
- </dependency> -->
- <!--
- <dependency>
- <groupId>eu.etaxonomy</groupId>
- <artifactId>cdmlib-persistence</artifactId>
- <version>${project.version}</version>
- <exclusions>
- </exclusions>
- </dependency>
- -->
</dependencies>
<executions>
<execution>
rootChildNode.addChild(grandChildNode);
- polytomousKeyNodeService.merge(grandChildNode);
+ polytomousKeyNodeService.merge(grandChildNode, true);
Assert.assertFalse(pKey.getRoot().getChildAt(0).getChildAt(0).getId() == 0);
Taxon taxon = CdmBase.deproxy(taxonService.find(taxon1Uuid),Taxon.class);
pkeynode.getChildAt(1).setTaxon(taxon);
- polytomousKeyService.merge(pkey);
+ polytomousKeyService.merge(pkey, true);
pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
Assert.assertEquals(pkeynode.getChildAt(1).getTaxon(), taxon);
- polytomousKeyService.merge(pkey);
+ polytomousKeyService.merge(pkey, true);
pkey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
Assert.assertSame(subkey1, subkey2);
- polytomousKeyService.merge(pkey);
+ polytomousKeyService.merge(pkey, true);
}
@Test
Assert.assertSame(subkey1, subkey2);
- polytomousKeyService.merge(pkey);
+ polytomousKeyService.merge(pkey, true);
}
label2.size();
- polytomousKeyService.merge(pkey);
+ polytomousKeyService.merge(pkey, true);
}
@Test
newTerm.setLabel("CreateTest");
try {
- if(termService.findByRepresentationText("UpdateTest", Feature.class, null, null) != null) {
- Pager<Feature> terms = termService.findByRepresentationText("UpdateTest", Feature.class, null, null);
- if (!terms.getRecords().isEmpty()){
- termService.delete(terms.getRecords().get(0).getUuid());
+ List<Feature> features = termService.list(Feature.class, 100, 0, null, null);
+ List<UUID> updateTerms = new ArrayList<UUID>();
+ for (Feature feature:features){
+ if (feature.getLabel().equals("UpdateTest")){
+ updateTerms.add(feature.getUuid());
}
- }
+ }
+ termService.delete(updateTerms);
+
+// if(termService.findByRepresentationText("UpdateTest", Feature.class, null, null) != null) {
+// Pager<Feature> terms = termService.findByRepresentationText("UpdateTest", Feature.class, null, null);
+// if (!terms.getRecords().isEmpty()){
+// termService.delete(terms.getRecords().get(0).getUuid());
+// }
+// }
Assert.assertNotNull(newTerm);
TermVocabulary vocNameFeature = vocabularyService.find(vocNameFeatureUuid);
vocNameFeature.addTerm(newTerm);
- vocs = vocabularyService.merge(vocs);
- for(TermVocabulary voc : vocs) {
+ List<MergeResult<TermVocabulary>> mergeResults = vocabularyService.merge(vocs, true);
+
+ for(MergeResult<TermVocabulary> result : mergeResults){
+ TermVocabulary voc = result.getMergedEntity();
if(voc.getUuid().equals(vocNameFeatureUuid)) {
vocNameFeature = voc;
}
// Test for #5138
Person person = (Person) CdmApplicationState.getCurrentAppConfig().getAgentService().load(personUuid);
person.setFirstname("Me");
- CdmApplicationState.getCurrentAppConfig().getAgentService().merge(person);
+ CdmApplicationState.getCurrentAppConfig().getAgentService().merge(person, true);
}
person = (Person) CdmApplicationState.getCurrentAppConfig().getAgentService().merge(person);
person = (Person) CdmApplicationState.getCurrentAppConfig().getAgentService().load(person.getUuid());
person.setFirstname("Some");
- CdmApplicationState.getCurrentAppConfig().getAgentService().merge(person);
+ CdmApplicationState.getCurrentAppConfig().getAgentService().merge(person, true);
}
@Test
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
+ <classpathentry exported="true" kind="lib" path="lib/jdbc4-2.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/postgresql-9.4-1206-jdbc4.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/mysql-connector-java-5.1.38.jar"/>
<classpathentry exported="true" kind="lib" path="lib/h2-1.4.190.jar"/>
<classpathentry exported="true" kind="lib" path="lib/mchange-commons-java-0.2.11.jar"/>
<classpathentry exported="true" kind="lib" path="lib/c3p0-0.9.5.2.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/mysql-connector-java-5.1.24.jar"/>
<classpathentry exported="true" kind="lib" path="lib/javax.servlet-api-3.1.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jetty-all-9.2.9.v20150224.jar"/>
<classpathentry exported="true" kind="lib" path="lib/log4j-1.2.17.jar"/>
Bundle-ManifestVersion: 2
Bundle-Name: Webapp
Bundle-SymbolicName: eu.etaxonomy.taxeditor.webapp;singleton:=true
-Bundle-Version: 4.2.0
+Bundle-Version: 4.3.0
Require-Bundle: org.eclipse.core.runtime
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
lib/log4j-1.2.17.jar,
lib/jetty-all-9.2.9.v20150224.jar,
lib/javax.servlet-api-3.1.0.jar,
- lib/mysql-connector-java-5.1.24.jar,
lib/c3p0-0.9.5.2.jar,
lib/h2-1.4.190.jar,
- lib/mchange-commons-java-0.2.11.jar
+ lib/mchange-commons-java-0.2.11.jar,
+ lib/mysql-connector-java-5.1.38.jar,
+ lib/postgresql-9.4-1206-jdbc4.jar,
+ lib/jdbc4-2.0.jar
Bundle-Vendor: EDIT
Import-Package: org.eclipse.jface.resource,
org.eclipse.ui.plugin
.,\
lib/,\
lib/h2-1.4.190.jar,\
- lib/mchange-commons-java-0.2.11.jar
+ lib/mchange-commons-java-0.2.11.jar,\
+ lib/mysql-connector-java-5.1.38.jar,\
+ lib/postgresql-9.4-1206-jdbc4.jar,\
+ lib/jdbc4-2.0.jar
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.webapp</artifactId>
</goals>
<configuration>
<includeArtifactIds>
- c3p0,mchange-commons-java,h2,mysql-connector-java,log4j,javax.servlet-api,jetty-all
+ log4j,javax.servlet-api,jetty-all
</includeArtifactIds>
<outputDirectory>
${basedir}/lib
<excludeTransitive>true</excludeTransitive>
</configuration>
</execution>
+ <execution>
+ <id>copy-dependency-jars-transitive</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <includeArtifactIds>
+ c3p0,mchange-commons-java,h2,postgresql,mysql-connector-java,jdbc4
+ </includeArtifactIds>
+ <outputDirectory>
+ ${basedir}/lib
+ </outputDirectory>
+ <overWriteReleases>true</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <excludeTransitive>false</excludeTransitive>
+ </configuration>
+ </execution>
</executions>
</plugin>
<plugin>
<type>war</type>
</dependency>
<dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- <version>${h2.version}</version>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.24</version>
+ <groupId>eu.etaxonomy</groupId>
+ <artifactId>cdmlib-db</artifactId>
+ <version>${cdmlib.version}</version>
</dependency>
- <dependency>
- <groupId>com.mchange</groupId>
- <artifactId>c3p0</artifactId>
- <version>${c3p0.version}</version>
- </dependency>
- <dependency>
- <groupId>com.mchange</groupId>
- <artifactId>mchange-commons-java</artifactId>
- <version>${mchange-commons-java.version}</version>
- </dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.5"?><product application="eu.etaxonomy.taxeditor.application.application" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" includeLaunchers="true" name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" useFeatures="true" version="4.2.0">
+<?pde version="3.5"?><product application="eu.etaxonomy.taxeditor.application.application" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" includeLaunchers="true" name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product" useFeatures="true" version="4.3.0">
<aboutInfo>
<image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
<text>
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
-<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product.jre" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="4.2.0" useFeatures="true" includeLaunchers="true">
+<product name="EDIT Taxonomic Editor" uid="eu.etaxonomy.taxeditor.product.jre" id="eu.etaxonomy.taxeditor.application.eu_etaxonomy_taxeditor_product" application="eu.etaxonomy.taxeditor.application.application" version="4.3.0" useFeatures="true" includeLaunchers="true">
<aboutInfo>
<image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<unit id="org.eclipse.equinox.sdk.feature.group" version="3.7.1.R37x_v20110907-7M7W8i8eNV4WsRkue-4Vq4J6pCyW"/>
<unit id="org.eclipse.zest.sdk.feature.group" version="1.3.0.v20110425-2050-67C18COMPIAKSVKGQaRTQTiSN8WP"/>
<unit id="org.eclipse.pde.feature.group" version="3.7.2.v20120120-1420-7b7rFUOFEx2Xnqafnpz0E--0"/>
-<repository location="http://download.eclipse.org/releases/indigo"/>
+<repository location="http://download.eclipse.org/releases/indigo/"/>
</location>
<location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.nebula.widgets.compositetable.feature.feature.group" version="1.0.0.201409040043"/>
-<repository location="http://download.eclipse.org/technology/nebula/archives/Q32014/release/"/>
+<repository location="http://archive.eclipse.org/nebula/Q32014/release/"/>
</location>
</locations>
</target>
</prerequisites>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>4.2.0</version>
+ <version>4.3.0</version>
<name>EDIT Taxonomic Editor</name>
<description>The Taxonomic Editor for EDIT's platform for
cybertaxonomy
<properties>
<java.codelevel>1.7</java.codelevel>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <cdmlib.version>4.2.0</cdmlib.version>
+ <cdmlib.version>4.3.0</cdmlib.version>
<!-- TODO can we use project.version ????? -->
<tycho.version>0.22.0</tycho.version>
- <taxeditor.version>4.2.0</taxeditor.version>
+ <taxeditor.version>4.3.0</taxeditor.version>
<update.dir>snapshot</update.dir>
<unitils.version>3.4.2</unitils.version>
<log4j.version>1.2.17</log4j.version>
- <!-- data base driver related properties -->
- <mysql.version>5.1.38</mysql.version>
- <h2.version>1.4.190</h2.version>
- <!--
- IMPORTANT!!!
- c3p0.version must exactly match the version as
- set in cdmlib-parent pom.xml
- -->
- <c3p0.version>0.9.5.2</c3p0.version>
- <!-- mchange-commons-java needs to match the version as defined in the c3p0/pom.xml -->
- <mchange-commons-java.version>0.2.11</mchange-commons-java.version>
</properties>
<modules>
<module>eu.etaxonomy.taxeditor.cdmlib</module>
<repository>
<id>eclipse-nebula</id>
<layout>p2</layout>
- <url>http://download.eclipse.org/technology/nebula/archives/Q32014/release/
- </url>
+ <url>http://archive.eclipse.org/nebula/Q32014/release/</url>
</repository>
<repository>
<id>eclipse-swtbot</id>
<layout>p2</layout>
- <url>http://download.eclipse.org/releases/indigo</url>
+ <url>http://download.eclipse.org/releases/indigo/</url>
</repository>
</repositories>
<build>