Bundle-ManifestVersion: 2
Bundle-Name: Application
Bundle-SymbolicName: eu.etaxonomy.taxeditor.application;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
Bundle-Activator: eu.etaxonomy.taxeditor.TaxonomicEditorPlugin
Bundle-Vendor: EDIT
Bundle-Localization: OSGI-INF/l10n/plugin
<children xsi:type="menu:HandledMenuItem" xmi:id="_35iN8B7PEeeC-JvycL9ysA" elementId="org.eclipse.ui.main.menu.window.preferences" label="%command.label.12" command="_l9kXoB7PEeeC-JvycL9ysA"/>
</children>
<children xsi:type="menu:Menu" xmi:id="_KDFiMB6tEeePLJ5to5QrXQ" elementId="org.eclipse.ui.main.menu.admin" label="%menu.label.4">
- <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_QAx6wD8_EemTy7SLZkowuQ" coreExpressionId="hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_QAx6wD8_EemTy7SLZkowuQ" coreExpressionId="hasROLE_USER_MANAGER_OR_hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_RsV7EB-IEeeIA_2gwq7JKg" elementId="org.eclipse.ui.main.menu.admin.dbpreferences" label="%command.label.23" command="_JXXNIB-IEeeIA_2gwq7JKg">
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_ckfJUB-IEeeIA_2gwq7JKg" coreExpressionId="hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
</children>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.22.1</version>
+ <version>5.23.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: 5.22.1
+Bundle-Version: 5.23.0
Bundle-Activator: eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.taxeditor.annotatedlineeditor,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.22.1</version>
+ <version>5.23.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
import eu.etaxonomy.taxeditor.bulkeditor.input.GroupEditorInput;
import eu.etaxonomy.taxeditor.bulkeditor.input.TaxonEditorInput;
+import eu.etaxonomy.taxeditor.editor.IBulkEditor;
import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
*/
public class BulkEditorE4 implements IPartContentHasDetails, IConversationEnabled, IPostOperationEnabled,
IDirtyMarkable, IDerivedUnitFacadePart, IPartContentHasFactualData,
- IPartContentHasSupplementalData, IPartContentHasMedia, IE4SavablePart, ITaxonEditor {
+ IPartContentHasSupplementalData, IPartContentHasMedia, IE4SavablePart, ITaxonEditor, IBulkEditor {
@Inject
private MDirtyable dirty;
-// $Id$
/**
* Copyright (C) 2018 EDIT
* European Distributed Institute of Taxonomy
/**
* @author pplitzner
* @date 09.07.2018
- *
*/
final class CellSelectionListener extends E4SelectionListener<CdmBase> {
try {
UUID uuid = UUID.fromString(titleSearchString);
T entity = loadEntity(uuid);
- //UUID search found -> add entity to list and return
- model.add(entity);
+ //UUID search found -> add entity to list if not null and return
+ if (entity != null){
+ model.add(entity);
+ }
return;
} catch (IllegalArgumentException e) {
// search string was no UUID
private static final Logger logger = Logger.getLogger(ReferencingObjectsViewE4.class);
- public static final String IS_LOADING = "Loading ...";
-// public static final String CANCELED = "Canceled ...";
-
private static final List<ReferencingObjectDto> EMPTY_LIST = Arrays.asList(); //immutable empty list
private static final RefObjectDtoComparator COMPARATOR = new RefObjectDtoComparator();
bin
/target/
+/dev-linked-projects/*-classes
Bundle-ManifestVersion: 2
Bundle-Name: CDM Library Dependencies Plugin
Bundle-SymbolicName: eu.etaxonomy.taxeditor.cdmlib;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
Eclipse-BundleShape: dir
Export-Package: com.sun.istack.internal.tools,
com.sun.istack.internal.ws,
eu.etaxonomy.cdm.api.service.longrunningService,
eu.etaxonomy.cdm.api.service.lsid,
eu.etaxonomy.cdm.api.service.lsid.impl,
+ eu.etaxonomy.cdm.api.service.media,
eu.etaxonomy.cdm.api.service.molecular,
eu.etaxonomy.cdm.api.service.name,
eu.etaxonomy.cdm.api.service.pager,
Bundle-ClassPath: .,
lib/apache-log4j-extras-1.2.17.jar,
lib/aspectjrt-1.9.6.jar,
- lib/cdmlib-commons-5.22.0.jar,
- lib/cdmlib-ext-5.22.0.jar,
- lib/cdmlib-io-5.22.0.jar,
- lib/cdmlib-model-5.22.0.jar,
- lib/cdmlib-persistence-5.22.0.jar,
- lib/cdmlib-cache-5.22.0.jar,
- lib/cdmlib-services-5.22.0.jar,
+ lib/cdmlib-commons-5.23.0.jar,
+ lib/cdmlib-ext-5.23.0.jar,
+ lib/cdmlib-io-5.23.0.jar,
+ lib/cdmlib-model-5.23.0.jar,
+ lib/cdmlib-persistence-5.23.0.jar,
+ lib/cdmlib-cache-5.23.0.jar,
+ lib/cdmlib-services-5.23.0.jar,
lib/commons-beanutils-1.9.4.jar,
lib/commons-codec-1.15.jar,
lib/commons-collections-3.2.2.jar,
lib/apache-log4j-extras-1.2.17.jar,\
lib/aspectjrt-1.9.6.jar,\
lib/aspectjweaver-1.9.6.jar,\
- lib/cdmlib-commons-5.22.0.jar,\
- lib/cdmlib-ext-5.22.0.jar,\
- lib/cdmlib-io-5.22.0.jar,\
- lib/cdmlib-model-5.22.0.jar,\
- lib/cdmlib-persistence-5.22.0.jar,\
- lib/cdmlib-services-5.22.0.jar,\
+ lib/cdmlib-commons-5.23.0.jar,\
+ lib/cdmlib-ext-5.23.0.jar,\
+ lib/cdmlib-io-5.23.0.jar,\
+ lib/cdmlib-model-5.23.0.jar,\
+ lib/cdmlib-persistence-5.23.0.jar,\
+ lib/cdmlib-services-5.23.0.jar,\
lib/commons-beanutils-1.9.4.jar,\
lib/commons-codec-1.15.jar,\
lib/commons-collections-3.2.2.jar,\
lib/lucene-analyzers-common-5.4.1.jar,\
lib/lucene-sandbox-5.4.1.jar,\
lib/lucene-suggest-5.4.1.jar,\
- lib/cdmlib-cache-5.22.0.jar,\
+ lib/cdmlib-cache-5.23.0.jar,\
lib/org.swtchart_0.10.0.v20160212.jar,\
lib/commons-collections4-4.4.jar,\
lib/commons-math3-3.6.1.jar,\
<parent>\r
<groupId>eu.etaxonomy</groupId>\r
<artifactId>taxeditor-parent</artifactId>\r
- <version>5.22.1</version>\r
+ <version>5.23.0</version>\r
</parent>\r
<modelVersion>4.0.0</modelVersion>\r
<artifactId>eu.etaxonomy.taxeditor.cdmlib</artifactId>\r
import eu.etaxonomy.cdm.api.service.IUserService;\r
import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
import eu.etaxonomy.cdm.api.service.longrunningService.ILongRunningTasksService;\r
+import eu.etaxonomy.cdm.api.service.media.MediaInfoFactory;\r
import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;\r
import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;\r
import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;\r
return (IEntityConstraintViolationService) getService(IEntityConstraintViolationService.class, "/remoting/entityconstraintviolation.service", new AuthenticatingHttpInvokerRequestExecutor());\r
}\r
\r
+ @Override\r
+ public MediaInfoFactory getMediaInfoFactory(){ // TODO use interface\r
+ return (MediaInfoFactory) getService(MediaInfoFactory.class, "/remoting/mediainfofactory.service", new AuthenticatingHttpInvokerRequestExecutor());\r
+ }\r
+\r
@Override\r
public ICdmPermissionEvaluator getPermissionEvaluator(){\r
\r
Bundle-ManifestVersion: 2
Bundle-Name: Editor Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.editor;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
Bundle-Activator: eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin
Bundle-Vendor: %Bundle-Vendor.0
Bundle-Localization: OSGI-INF/l10n/plugin
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.22.1</version>
+ <version>5.23.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Collection<MPart> parts = partService.getParts();
//check if part is already opened
+ MPart alreadyOpenInOtherClassification = null;
for (MPart part : parts) {
if(part.getObject() instanceof TaxonNameEditorE4
&& ((TaxonNameEditorE4) part.getObject()).getTaxon()!=null
&& ((TaxonNameEditorE4) part.getObject()).getTaxon().getUuid().equals(input.getTaxon().getUuid())){
- if (part.isDirty()){
- forceUserSaveE4Editor(((TaxonNameEditorE4) part.getObject()), getShell());
+
+ UUID inputNode = input.getTaxonNode().getUuid();
+ UUID editorNode = ((TaxonNameEditorE4) part.getObject()).getTaxonNode().getUuid();
+ if (!inputNode.equals(editorNode)){
+ alreadyOpenInOtherClassification = part;
+ }else{
+ partService.activate(part, true);
+ return;
}
- partService.hidePart(part);
- break;
+
}
}
+ if (alreadyOpenInOtherClassification != null){
+ boolean doSave = forceUserSaveE4Editor(((TaxonNameEditorE4) alreadyOpenInOtherClassification.getObject()), getShell());
+ if (doSave){
+ input = TaxonEditorInputE4.NewInstance(input.getTaxonNode().getUuid());
+ partService.hidePart(alreadyOpenInOtherClassification);
+ }else {
+ return;
+ }
+ }
+
MPart part = showPart(NAME_EDITOR_ID, modelService, partService, application);
TaxonNameEditorE4 editor = (TaxonNameEditorE4) part.getObject();
-
+/**
+ * Copyright (C) 2007 EDIT
+ * European Distributed Institute of Taxonomy
+ * http://www.e-taxonomy.eu
+ *
+ * The contents of this file are subject to the Mozilla Public License Version 1.1
+ * See LICENSE.TXT at the top of this package for the full license terms.
+ */
package eu.etaxonomy.taxeditor.editor.descriptiveDataSet.handler;
import java.util.Iterator;
import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.operation.IFeedbackGenerator;
import eu.etaxonomy.taxeditor.store.CdmStore;
import eu.etaxonomy.taxeditor.ui.dialog.configurator.deleteConfigurator.DeleteConfiguratorDialog;
this.partService = partService;
Object object = activePart.getObject();
if(!selection.isEmpty() && object instanceof DescriptiveDataSetNavigator){
- Iterator iterator = selection.iterator();
+ Iterator<?> iterator = selection.iterator();
while(iterator.hasNext()){
Object next = iterator.next();
if(next instanceof DescriptiveDataSet){
if (!DeleteConfiguratorDialog.openConfirmWithConfigurator(deleteConfig, shell, Messages.DeleteDescriptiveDataSetHandler_DELETE_TITLE, Messages.DeleteDescriptiveDataSetHandler_DELETE_MESSAGE)){
return;
}
-// IDescriptiveDataSetService descriptiveDataSetService = CdmStore.getService(IDescriptiveDataSetService.class);
-// descriptiveDataSetService.delete(((DescriptiveDataSet) next).getUuid());
- deleteDescriptiveDataSet(((DescriptiveDataSet) next).getUuid(), deleteConfig);
- DescriptiveDataSetNavigator navigator = (DescriptiveDataSetNavigator) object;
- navigator.removeDescriptiveDataSet((DescriptiveDataSet) next);
- navigator.getConversationHolder().commit();
- navigator.getSelService().setSelection(null);
-
- }
- else{
- MessagingUtils.errorDialog(Messages.DeleteDescriptiveDataSetHandler_DELETE_FAILED_TITLE, DeleteDescriptiveDataSetHandler.class, Messages.DeleteDescriptiveDataSetHandler_DELETE_FAILED_MESSAGE, TaxeditorEditorPlugin.PLUGIN_ID, null, false);
- return;
- }
+// IDescriptiveDataSetService descriptiveDataSetService = CdmStore.getService(IDescriptiveDataSetService.class);
+// descriptiveDataSetService.delete(((DescriptiveDataSet) next).getUuid());
+ deleteDescriptiveDataSet(((DescriptiveDataSet) next).getUuid(), deleteConfig);
+ DescriptiveDataSetNavigator navigator = (DescriptiveDataSetNavigator) object;
+ navigator.removeDescriptiveDataSet((DescriptiveDataSet) next);
+ navigator.getConversationHolder().commit();
+ navigator.getSelService().setSelection(null);
+ }else{
+ MessagingUtils.errorDialog(Messages.DeleteDescriptiveDataSetHandler_DELETE_FAILED_TITLE, DeleteDescriptiveDataSetHandler.class, Messages.DeleteDescriptiveDataSetHandler_DELETE_FAILED_MESSAGE, TaxeditorEditorPlugin.PLUGIN_ID, null, false);
+ return;
+ }
}
}
}
monitorUuid,
50,
null,
- (List)null,
+ (List<IFeedbackGenerator>)null,
subMonitor);
Object resultObject = remotingMonitor.getResult();
if(resultObject instanceof Exception){
.stream().map(ex->ex.toString())
.collect(Collectors.joining("\n"))));
}
-
-
}
} catch (InterruptedException e) {
return;
job.schedule();
}
-
-
-
-
}
\ No newline at end of file
* @date Aug 24, 2017
*/
public class ConceptContainerE4 extends AbstractGroupedContainerE4<Taxon> {
- TaxonRelationship relationship;
- TaxonRelationshipFormatter misappliedFormatter;
- ConceptType conceptType;
+
+ private TaxonRelationship relationship;
+ private TaxonRelationshipFormatter misappliedFormatter;
+ private ConceptType conceptType;
public ConceptContainerE4(AbstractGroupE4 group, Taxon misappliedName, ConceptType conceptType) {
super(group, misappliedName);
this.conceptType = conceptType;
- misappliedFormatter = new TaxonRelationshipFormatter();
+ misappliedFormatter = TaxonRelationshipFormatter.INSTANCE();
}
@Override
*/
package eu.etaxonomy.taxeditor.editor.name.e4.dnd;
+import java.util.UUID;
+
import org.eclipse.core.runtime.Assert;
import org.eclipse.e4.ui.di.UISynchronize;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTargetEvent;
import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
+import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
/**
* @author pplitzner
} else{
getEditor().getConversationHolder().commit();
((TaxonNameEditorE4) target).getConversationHolder().commit();
-
- return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonNameEditorE4) target).getTaxon(), (TaxonNameEditorE4) target, (TaxonNameEditorE4) target);
+ UUID newSecUuid = null;
+ try{
+ newSecUuid = getNewSecRef(synonym);
+ }catch (Exception e){
+ return null;
+ }
+ return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonNameEditorE4) target).getTaxon(), newSecUuid, (TaxonNameEditorE4) target, (TaxonNameEditorE4) target);
}
} else{
getEditor().getConversationHolder().commit();
((TaxonNameEditorE4) target).getConversationHolder().commit();
-
- return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonNameEditorE4) target).getTaxon(), (TaxonNameEditorE4) target, (TaxonNameEditorE4) target);
+ UUID newSecUuid = null;
+ try{
+ newSecUuid = getNewSecRef(synonym);
+ }catch (Exception e){
+ return null;
+ }
+ return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonNameEditorE4) target).getTaxon(), newSecUuid, (TaxonNameEditorE4) target, (TaxonNameEditorE4) target);
}
}
return null;
}
+ public UUID getNewSecRef(Synonym synonym) throws Exception{
+ Reference synSecRef = synonym.getSec();
+ UUID newSecUuid = null;
+ SecReferenceHandlingEnum secHandling = PreferencesUtil.getSecReferenceHandlingPreference();
+ Reference parentSecRef = ((AbstractHomotypicalGroupContainerE4) target).getEditor().getTaxon() != null? ((AbstractHomotypicalGroupContainerE4) target).getEditor().getTaxon().getSec():null;
+ if ((synSecRef != parentSecRef && secHandling.equals(SecReferenceHandlingEnum.KeepWhenSame) )|| secHandling.equals(SecReferenceHandlingEnum.WarningSelect)){
+
+ if ((parentSecRef != synSecRef && secHandling.equals(SecReferenceHandlingEnum.KeepWhenSame) )|| secHandling.equals(SecReferenceHandlingEnum.WarningSelect)){
+ int result = MessagingUtils.confirmDialog(Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title, Messages.MoveSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message,
+ new String[]{Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Keep, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Parent, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Select});
+ if (result == 2){
+ Reference sec = ReferenceSelectionDialog.select(null, null);
+ newSecUuid = sec != null? sec.getUuid(): null;
+ }else if (result == 1){
+ newSecUuid = parentSecRef != null? parentSecRef.getUuid(): null;
+ }else if (result == 0){
+ newSecUuid = synSecRef != null? synSecRef.getUuid(): null;
+ }else{
+ return null;
+ }
+
+ }
+
+ }
+ return newSecUuid;
+ }
+
@Override
public void dropAccept(DropTargetEvent event) {
// pass
* @since Aug 28, 2017
*/
public class ChangeSynonymToAcceptedTaxonHandlerE4 implements IPostOperationEnabled {
- private static final Logger logger = Logger
- .getLogger(ChangeSynonymToAcceptedTaxonHandlerE4.class);
+
+ private static final Logger logger = Logger.getLogger(ChangeSynonymToAcceptedTaxonHandlerE4.class);
private TaxonNameEditorE4 editor;
private EPartService partService;
TaxonNode newParentNode = TaxonNodeSelectionDialog.select(shell,// editor.getConversationHolder(),
Messages.ChangeSynonymToAcceptedTaxonHandler_SELECT_PARENT, null, null, input.getTaxonNode().getClassification().getUuid(), true);
- Reference parentSecRef = newParentNode.getTaxon() != null? newParentNode.getTaxon().getSec(): null;
if(newParentNode != null){
+ Reference parentSecRef = newParentNode.getTaxon() != null? newParentNode.getTaxon().getSec(): null;
// TODO get synonyms from homotypical group and add them as homotypic synonyms to new accepted taxon
// apply confirmation dialog
}
if(newParentNode!=null){
MoveSynonymToAnotherAcceptedTaxonOperationE4 operation = new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.MoveSynonymToAnotherAcceptedTaxonHandler_CHANGE_ACC_TAXON, EditorUtil.getUndoContext(),
- synonym.getUuid(), newParentNode.getTaxon(), this, editor);
+ synonym.getUuid(), newParentNode.getTaxon(),newSecUuid, this, editor);
AbstractUtility.executeOperation(operation, sync);
}
*/
private final Synonym synonym;
private IConversationEnabled conversationEnabled;
+ private UUID newSecUuid;
public MoveSynonymToAnotherAcceptedTaxonOperationE4(String label, IUndoContext undoContext, UUID synonymUUID,
- Taxon taxon, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
+ Taxon taxon, UUID newSecRefUuid, IPostOperationEnabled postOperationEnabled, IConversationEnabled conversationEnabled) {
super(label, undoContext, taxon, postOperationEnabled);
List<String> propertyPaths = new ArrayList<String>();
this.conversationEnabled = conversationEnabled;
this.element = (Taxon) CdmStore.getService(ITaxonService.class).load(taxon.getUuid(),propertyPaths);
this.synonym = (Synonym) CdmStore.getService(ITaxonService.class).load(synonymUUID);
+ this.newSecUuid = newSecRefUuid;
if(synonym == null){
throw new IllegalArgumentException(
"A null synonym was provided."); //$NON-NLS-1$
// Switch groups
monitor.beginTask("Move synonym to another taxon", 40);
Taxon oldAccepted = synonym.getAcceptedTaxon();
-
+// Reference secRef = CdmStore.getService(IReferenceService.class).load(newSecUuid);
conversationEnabled.getConversationHolder().commit();
+
UpdateResult result = null;
try {
result = CdmStore.getService(ITaxonService.class).moveSynonymToAnotherTaxon(synonym,
this.element.getUuid(),
true,
synonym.getType(),
- null,
+ newSecUuid,
null,
true);
} catch (HomotypicalGroupChangeException e) {
* 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.name.operation;
import java.util.ArrayList;
import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.model.taxon.Synonym;
-import eu.etaxonomy.cdm.model.taxon.SynonymType;
import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.AbstractPostTaxonOperation;
public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation {
private final Synonym synonym;
- // TODO store the old relationship for undo reasons
- private SynonymType synonymType;
-
- private List<TaxonNode> nodes;
private boolean setNameInSource;
super(Messages.SwapSynonymAndAcceptedOperation_SWAP_SYN_ACC_TAXON, undoContext, taxon, postOperationEnabled, cdmEntitySessionEnabled);
this.setNameInSource = setNameInSource;
this.synonym = synonym;
- this.nodes = new ArrayList<TaxonNode>(taxon.getTaxonNodes());
-
}
@Override
monitor.worked(20);
- UpdateResult result = CdmStore.getService(ITaxonService.class).swapSynonymAndAcceptedTaxon(synonym.getUuid(), element.getUuid(), setNameInSource);//TODO
+ UpdateResult result = CdmStore.getService(ITaxonService.class).swapSynonymAndAcceptedTaxon(synonym.getUuid(), element.getUuid(), setNameInSource, false);//TODO
element = (Taxon)result.getCdmEntity();
List<String> propertyPath = new ArrayList<>();
propertyPath.add("synonyms");
@Override
public IStatus redo(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
- // TODO Auto-generated method stub
return execute(monitor, info);
}
import eu.etaxonomy.cdm.compare.term.OrderedTermComparator;
import eu.etaxonomy.cdm.compare.term.TermIdInVocabularyComparator;
import eu.etaxonomy.cdm.compare.term.TermLanguageComparator;
+import eu.etaxonomy.cdm.compare.term.TermSymbol1Comparator;
+import eu.etaxonomy.cdm.compare.term.TermSymbol2Comparator;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.Distribution;
return result;
}
+ public <T extends DefinedTermBase<T>> SortedSet<T> getTermsOrderedBySymbol(List<T> namedAreas) {
+ TermSymbol1Comparator<T> comp = new TermSymbol1Comparator<>();
+
+ SortedSet<T> result = new TreeSet<>(comp);
+ if(namedAreas != null){
+ result.addAll(namedAreas);
+ }
+ return result;
+ }
+
+ public <T extends DefinedTermBase<T>> SortedSet<T> getTermsOrderedBySymbol2(List<T> namedAreas) {
+ TermSymbol2Comparator<T> comp = new TermSymbol2Comparator<>();
+
+ SortedSet<T> result = new TreeSet<>(comp);
+ if(namedAreas != null){
+ result.addAll(namedAreas);
+ }
+ return result;
+ }
+
public <T extends DefinedTermBase<T>> SortedSet<T> getTermsOrderedByVocabularyOrder(List<T> listAreas){
OrderedTermComparator<T> comp = new OrderedTermComparator<>();
boolean allOrderedTerms = true;
}
}
if (allOrderedTerms){
- SortedSet<T> result = new TreeSet<>(comp.reversed());
+ SortedSet<T> result = new TreeSet<>(comp);
result.addAll(listAreas);
return result;
}else{
import eu.etaxonomy.cdm.compare.term.OrderedTermComparator;
import eu.etaxonomy.cdm.compare.term.TermIdInVocabularyComparator;
import eu.etaxonomy.cdm.compare.term.TermLanguageComparator;
+import eu.etaxonomy.cdm.compare.term.TermSymbol1Comparator;
+import eu.etaxonomy.cdm.compare.term.TermSymbol2Comparator;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
import eu.etaxonomy.cdm.model.location.NamedArea;
/**
* @author k.luther
* @since 05.12.2018
- *
*/
public class StatusComboBoxDataProvider implements IComboBoxDataProvider {
// }
// }
return getValues(pref);
-
}
-
public static List<?> getValues(CdmPreference pref){
List<StatusHelper> inputAll = new ArrayList<>();
PresenceAbsenceTerm noneTerm = PresenceAbsenceTerm.NewInstance();
Comparator<DefinedTermBase> comp = new OrderedTermComparator<>();
//check the status order preference
- TermOrder order = TermOrder.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.StatusSortedInDistributionEditor.getKey()));
+ TermOrder order = null;
+ try{
+ order = TermOrder.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.StatusSortedInDistributionEditor.getKey()));
+ }catch (IllegalArgumentException e){
+ order = TermOrder.Label;
+ }
if (order.equals(TermOrder.IdInVoc)){
- comp = new TermIdInVocabularyComparator<DefinedTermBase>();
+ comp = new TermIdInVocabularyComparator<>();
}else if(order.equals(TermOrder.Label)){
- comp = new TermLanguageComparator<DefinedTermBase>(Language.DEFAULT(), Language.DEFAULT());
+ comp = new TermLanguageComparator<>(Language.DEFAULT(), Language.DEFAULT());
+ }else if(order.equals(TermOrder.Symbol1)){
+ comp = new TermSymbol1Comparator<>();
+ }else if(order.equals(TermOrder.Symbol2)){
+ comp = new TermSymbol2Comparator<>();
}
Collections.sort(inputList, comp);
// Collections.sort(inputList, Collections.reverseOrder());
result = ((TermComboEnum) PreferencePredicate.DisplayOfStatusInCombo.getDefaultValue()).getKey();
}
TermComboEnum comboDisplay = TermComboEnum.byKey(result);
+ label = term.getTitleCache();
if(term.getTitleCache().trim().equals("-")){
label = term.getTitleCache();
- }else if (comboDisplay.equals(TermComboEnum.IdInVocabulary) && term.getIdInVocabulary() != null){
+ }else if (comboDisplay.equals(TermComboEnum.IdInVocabulary) && !StringUtils.isBlank(term.getIdInVocabulary())){
label = term.getIdInVocabulary();
- }else if (comboDisplay.equals(TermComboEnum.Symbol1) && term.getSymbol() != null){
- label = term.getSymbol();
- } else if (comboDisplay.equals(TermComboEnum.Symbol2) && term.getSymbol2() != null){
+ }else if (comboDisplay.equals(TermComboEnum.Symbol1) && !StringUtils.isBlank(term.getSymbol())){
+ if (term.getSymbol() != null){
+ label = term.getSymbol();
+ }
+ } else if (comboDisplay.equals(TermComboEnum.Symbol2) && !StringUtils.isBlank(term.getSymbol2())){
label = term.getSymbol2();
- } else if (comboDisplay.equals(TermComboEnum.Title) && term.getLabel() != null){
+ } else if (comboDisplay.equals(TermComboEnum.Title) && !StringUtils.isBlank(term.getLabel())){
label = term.getLabel();
} else if (comboDisplay.equals(TermComboEnum.TermDisplayPlusTitle)){
if (display.equals(TermDisplayEnum.IdInVocabulary)){
/**
* @author pplitzner
* @date 18.03.2014
- *
*/
public class DerivateDropListener extends EditViewerDropAdapter {
return LocalSelectionTransfer.getTransfer().isSupportedType(transferType) && target instanceof TreeNode;
}
- /**
- * {@inheritDoc}
- */
@Override
public void dragOver(DropTargetEvent event) {
super.dragOver(event);
event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL;
}
-
-}
+}
\ No newline at end of file
//taxon assignment or derivative type are set
if(derivates!=null && !derivateSearchCompositeController.isDefaultSearch()){
List<TreeNode> nodesToSelect = new ArrayList<>();
- for (SpecimenOrObservationBase specimenOrObservationBase : derivates) {
+ for (SpecimenOrObservationBase<?> specimenOrObservationBase : derivates) {
nodesToSelect.add(new TreeNode(specimenOrObservationBase));
}
setSelection(new StructuredSelection(nodesToSelect));
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
import org.eclipse.jface.viewers.StyledString;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
+import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.DescriptionType;
import eu.etaxonomy.taxeditor.editor.descriptiveDataSet.matrix.MatrixUtility;
import eu.etaxonomy.taxeditor.model.DescriptionHelper;
+import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
import eu.etaxonomy.taxeditor.model.ImageResources;
/**
@Override
public StyledString getStyledText(Object element) {
- return new StyledString(getText(element), StyledString.QUALIFIER_STYLER);
+ return new StyledString(getText(element), StyledString.QUALIFIER_STYLER);
}
@Override
public Image getImage(Object element) {
if(element instanceof DescriptionBase){
DescriptionBase<?> description = (DescriptionBase<?>)element;
- if(description.getTypes().contains(DescriptionType.AGGREGATED_STRUC_DESC)){
+ if(description.isComputed()){
return MatrixUtility.getAggregatedDescriptionIcon();
}
else if(description.getTypes().contains(DescriptionType.SECONDARY_DATA)){
}
return null;
}
+
+ @Override
+ public Color getForeground(Object element) {
+ DescriptionBase desc = null;
+ if (element instanceof DescriptionBase){
+ desc = (DescriptionBase)element;
+ }else if (element instanceof DescriptionElementBase){
+ desc = ((DescriptionElementBase)element).getInDescription();
+ }else if (element instanceof FeatureNodeContainer){
+ desc = ((FeatureNodeContainer)element).getDescription();
+ }
+ if (desc.isComputed()){
+ return Display.getCurrent().getSystemColor(SWT.COLOR_GRAY);
+ }
+ return null;
+ }
+
}
public boolean canExecute(MHandledMenuItem menuItem,
@Named(IServiceConstants.ACTIVE_SELECTION)IStructuredSelection selection){
boolean canExecute = false;
- canExecute = selection.size()==1
- &&
- (selection.getFirstElement() instanceof DescriptionBase
- || selection.getFirstElement() instanceof DescriptionElementBase
- || selection.getFirstElement() instanceof FeatureNodeContainer);
+ DescriptionBase description = null;
+ Object object = selection.getFirstElement();
+ if(object instanceof FeatureNodeContainer){
+ description = ((FeatureNodeContainer) object).getDescription();
+ }
+ else if(object instanceof DescriptionElementBase){
+ DescriptionElementBase elementBase = HibernateProxyHelper.deproxy(object, DescriptionElementBase.class);
+ description = elementBase.getInDescription();
+ }
+ else if (object instanceof DescriptionBase) {
+ description = HibernateProxyHelper.deproxy(object, DescriptionBase.class);
+ }
+ if (description.isComputed()){
+ canExecute = false;
+ menuItem.getParent().setVisible(false);
+ }else{
+ canExecute = selection.size()==1
+ &&
+ (selection.getFirstElement() instanceof DescriptionBase
+ || selection.getFirstElement() instanceof DescriptionElementBase
+ || selection.getFirstElement() instanceof FeatureNodeContainer);
+ }
menuItem.setVisible(canExecute);
return canExecute;
MHandledMenuItem menuItem){
FactualDataPartE4 factualDataPart = (FactualDataPartE4) activePart.getObject();
ISelection selection = factualDataPart.getViewer().getSelection();
- boolean canExecute = selection instanceof IStructuredSelection && !selection.isEmpty() && !(((IStructuredSelection)selection).getFirstElement() instanceof FeatureNodeContainer);
+ boolean canExecute = true;
+ if (selection instanceof IStructuredSelection && !selection.isEmpty()){
+ IStructuredSelection sel = (IStructuredSelection) selection;
+ if (sel.getFirstElement() instanceof FeatureNodeContainer){
+ canExecute = false;
+ }
+
+ }
+ canExecute &= selection instanceof IStructuredSelection && !selection.isEmpty() && !(((IStructuredSelection)selection).getFirstElement() instanceof FeatureNodeContainer);
menuItem.setVisible(canExecute);
return canExecute;
Object selectedElement = selection.getFirstElement();
if (selectedElement instanceof DescriptionBase<?>) {
+ if (((DescriptionBase<?>) selectedElement).isComputed()){
+ items.remove(menu);
+ return;
+ }
TermTree<?> featureTree = getFeatureTree((DescriptionBase<?>) selectedElement);
for (TermNode<?> childNode : featureTree.getRootChildren()) {
createMenuItem(menu, childNode.getTerm(), globalLanguage);
}
} else if (selectedElement instanceof FeatureNodeContainer) {
+ if (((FeatureNodeContainer) selectedElement).getDescription().isComputed()){
+ items.remove(menu);
+ return;
+ }
TermNode<?> featureNode = ((FeatureNodeContainer) selectedElement)
.getFeatureNode();
}
} else if (selectedElement instanceof DescriptionElementBase) {
+ if (((DescriptionElementBase) selectedElement).getInDescription().isComputed()){
+ items.remove(menu);
+ return;
+ }
Feature feature = ((DescriptionElementBase) selectedElement)
.getFeature();
createMenuItem(menu, feature, globalLanguage);
if(selection instanceof IStructuredSelection){
boolean selectionProviding = factualDataPart.getSelectionProvidingPart().getObject() instanceof TaxonNameEditorE4;
Object firstElement = ((IStructuredSelection) selection).getFirstElement();
- canExecute = (firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getContainerTree().getDescription() instanceof TaxonNameDescription))
- || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription() instanceof TaxonNameDescription)) ;
+
+ canExecute = ((firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getContainerTree().getDescription() instanceof TaxonNameDescription))
+ || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription() instanceof TaxonNameDescription)))
+ && ((firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getDescription().isComputed()))
+ || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription().isComputed()))) ;
menuItem.setVisible(canExecute);
}
}
if(selection instanceof IStructuredSelection){
boolean selectionProviding = factualDataPart.getSelectionProvidingPart().getObject() instanceof TaxonNameEditorE4;
Object firstElement = ((IStructuredSelection) selection).getFirstElement();
- canExecute = (firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getContainerTree().getDescription() instanceof TaxonNameDescription))
- || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription() instanceof TaxonNameDescription)) ;
+ canExecute = ((firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getContainerTree().getDescription() instanceof TaxonNameDescription))
+ || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription() instanceof TaxonNameDescription)))
+ && ((firstElement instanceof FeatureNodeContainer && !(((FeatureNodeContainer)firstElement).getDescription().isComputed()))
+ || (firstElement instanceof DescriptionElementBase && !(((DescriptionElementBase)firstElement).getInDescription().isComputed()))) ;
menuItem.setVisible(canExecute);
}
}
if(selection instanceof IStructuredSelection){
Object firstElement = ((IStructuredSelection) selection).getFirstElement();
canExecute = ((IStructuredSelection) selection).size()==1
- && firstElement instanceof DescriptionBase && !(firstElement instanceof TaxonNameDescription);
+ && firstElement instanceof DescriptionBase && !(firstElement instanceof TaxonNameDescription) && !((DescriptionBase)firstElement).isComputed();
menuItem.setVisible(canExecute);
}
}
if(selection instanceof IStructuredSelection){
Object firstElement = ((IStructuredSelection) selection).getFirstElement();
canExecute = ((IStructuredSelection) selection).size()==1
- && firstElement instanceof DescriptionBase && !(firstElement instanceof TaxonNameDescription);
+ && firstElement instanceof DescriptionBase && !(firstElement instanceof TaxonNameDescription) && !((DescriptionBase)firstElement).isComputed();
menuItem.setVisible(canExecute);
}
}
* 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.media;
-import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.SpecimenDescription;
import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
MessagingUtils.error(getClass(), "Taxon is null", null); //$NON-NLS-1$
return NO_CHILDREN;
}
- HashSet<DescriptionBase<?>> imageGalleries = new HashSet<>();
+ Set<DescriptionBase<?>> imageGalleries = new HashSet<>();
for(DescriptionBase<?> description : taxon.getDescriptions()){
if(description.isImageGallery()){
imageGalleries.add(description);
}
}
- else if (parentElement instanceof DerivedUnit){
- try {
- DerivedUnitFacade facade = DerivedUnitFacade.NewInstance((DerivedUnit) parentElement);
-
- SpecimenDescription derivedUnitImageGallery = facade.getDerivedUnitImageGallery(false);
-
- if(derivedUnitImageGallery != null){
- return Collections.singleton(derivedUnitImageGallery).toArray();
- }
-
- } catch (DerivedUnitFacadeNotSupportedException e) {
- MessagingUtils.error(this.getClass(), "DerivedUnitFacadeNotSupportedException when trying to instantiate DerivedUnitFacade", e); //$NON-NLS-1$
- }
- }
- else if (parentElement instanceof FieldUnit){
- DerivedUnitFacade facade = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit) parentElement);
-
- SpecimenDescription fieldObjectImageGallery = facade.getFieldObjectImageGallery(false);
-
- if(fieldObjectImageGallery != null){
- return Collections.singleton(fieldObjectImageGallery).toArray();
- }
+ else if (parentElement instanceof SpecimenOrObservationBase){
+ SpecimenOrObservationBase<?> sob = (SpecimenOrObservationBase<?>)parentElement;
+ return sob.getSpecimenDescriptionImageGallery().toArray();
}
return NO_CHILDREN;
}
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {}
- private List<Media> getImages(DescriptionBase description){
+ private List<Media> getImages(DescriptionBase<?> description){
Assert.isTrue(description.isImageGallery(), "Description should have the imageGallery flag set."); //$NON-NLS-1$
Set<DescriptionElementBase> elements = description.getElements();
}
return null;
}
-
- private SpecimenDescription createDerivedUnitFacadeImageGallery(DerivedUnitFacade facade){
- SpecimenDescription description = SpecimenDescription.NewInstance();
- description.setImageGallery(true);
- return description;
- }
}
<feature\r
id="eu.etaxonomy.taxeditor.feature.platform"\r
label="Taxeditor Dependencies"\r
- version="5.22.1"\r
+ version="5.23.0"\r
os="linux,macosx,win32"\r
ws="cocoa,gtk,win32"\r
arch="x86,x86_64">\r
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.22.1</version>
+ <version>5.23.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.feature.platform</artifactId>
<feature\r
id="eu.etaxonomy.taxeditor.feature"\r
label="Taxonomic Editor"\r
- version="5.22.1"\r
+ version="5.23.0"\r
provider-name="EDIT"\r
plugin="eu.etaxonomy.taxeditor.application"\r
os="linux,macosx,win32"\r
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.22.1</version>
+ <version>5.23.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: 5.22.1
+Bundle-Version: 5.23.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>5.22.1</version>
+ <version>5.23.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
Bundle-ManifestVersion: 2
Bundle-Name: Local
Bundle-SymbolicName: eu.etaxonomy.taxeditor.local;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.jface,
org.eclipse.ui.ide,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.22.1</version>
+ <version>5.23.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eu.etaxonomy.taxeditor.local</artifactId>
Bundle-ManifestVersion: 2
Bundle-Name: eu.etaxonomy.taxeditor.molecular.lib
Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular.lib;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
Bundle-ClassPath: .,
lib/owlapi-xmlutils-4.1.4.jar,
lib/commons-collections4-4.1.jar,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.22.1</version>
+ <version>5.23.0</version>
</parent>
<name>Molecular Library Dependencies Bundle</name>
Bundle-ManifestVersion: 2
Bundle-Name: Molecular Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.molecular;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.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>5.22.1</version>
+ <version>5.23.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import info.bioinfweb.libralign.pherogram.provider.ReverseComplementPherogramProvider;
import info.bioinfweb.tic.SWTComponentFactory;
-
-
/**
* Editor component to edit a contig alignment used to combine different overlapping pherograms from Sanger sequencing to
* a consensus sequence.
private MultipleAlignmentsContainer alignmentsContainer = null;
- private final Map<String, SingleReadAlignment> cdmMap = new TreeMap<String, SingleReadAlignment>(); //TODO Move this to ContigSequenceDataProvider
-
+ private final Map<String, SingleReadAlignment> cdmMap = new TreeMap<>(); //TODO Move this to ContigSequenceDataProvider
@Inject
private MDirtyable dirty;
public AlignmentEditorE4() {
}
-
private void refreshToolbarElement(String id) {
ICommandService commandService =
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getService(ICommandService.class);
}
}
-
private void registerEditSettingListener(MultipleAlignmentsContainer container) {
container.getEditSettings().addListener(new EditSettingsListener() {
@Override
});
}
-
private AlignmentArea createIndexArea(MultipleAlignmentsContainer container, AlignmentArea labeledArea) {
AlignmentArea result = new AlignmentArea(container);
result.setAllowVerticalScrolling(false);
return result;
}
-
private AlignmentArea createEditableAlignmentArea(MultipleAlignmentsContainer container, boolean allowVerticalScrolling) {
AlignmentArea result = new AlignmentArea(container);
result.setAllowVerticalScrolling(allowVerticalScrolling);
return result;
}
-
private AlignmentArea createConsensusHintArea(MultipleAlignmentsContainer container,
AlignmentArea labeledArea) {
return result;
}
-
private MultipleAlignmentsContainer getAlignmentsContainer() {
if (alignmentsContainer == null) {
alignmentsContainer = new MultipleAlignmentsContainer();
}
}
-
/**
* Checks whether the specified alignment area or one of its subcomponents currently has the
* focus.
return SWTUtils.childHasFocus((Composite)area.getToolkitComponent());
}
-
public boolean hasPherogram(String sequenceID) {
return getReadsArea().getDataAreas().getSequenceAreas(sequenceID).size() > PHEROGRAM_AREA_INDEX;
}
-
public PherogramArea getPherogramArea(String sequenceID) {
if (hasPherogram(sequenceID)) {
return (PherogramArea)getReadsArea().getDataAreas().getSequenceAreas(sequenceID).get(PHEROGRAM_AREA_INDEX);
}
}
-
private ConsensusSequenceArea getConsensusHintDataArea() {
return (ConsensusSequenceArea)getAlignmentsContainer().getAlignmentAreas().
get(CONSENSUS_HINT_AREA_INDEX).getDataAreas().getBottomAreas().
get(CONSENSUS_DATA_AREA_INDEX);
}
-
@Deprecated //TODO Remove as soon as testing period is over
private void createTestContents() {
// Just for testing:
}
}
-
- private void readCDMData(Sequence sequenceNode) {
+ private void readCdmData(Sequence sequenceNode) {
//TODO If called from somewhere else than createPartControl() the editorInput needs to be checked and previous contents need to be cleared (or updated).
// Add reads:
//TODO Can the consensus sequence also be null? / Should it be created here, if nothing is in the DB?
}
-
@PostConstruct
public void createPartControl(Composite parent) {
if (CdmStore.isActive()){
if(sequenceNode!=null && sequenceNode.getId()!=0){
sequenceNode = CdmStore.getService(ISequenceService.class).load(sequenceNode.getUuid());
}
- readCDMData(sequenceNode);
+ readCdmData(sequenceNode);
}
else {
createTestContents(); // This case will removed after the test phase and an exception should probably be thrown.
Bundle-ManifestVersion: 2
Bundle-Name: Navigation Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.navigation;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
Bundle-Activator: eu.etaxonomy.taxeditor.navigation.internal.TaxeditorNavigationPlugin
Bundle-Vendor: EDIT
Export-Package: eu.etaxonomy.taxeditor.navigation,
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.22.1</version>
+ <version>5.23.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
public static String SearchBar_8;
public static String SearchBar_9;
public static String SearchBar_10;
+ public static String SearchBar_11;
public static String SearchResultLabelProvider_NAME;
public static String SearchResultLabelProvider_SYNONYM;
public static String SearchResultLabelProvider_TAXON;
SearchBar_8=Names (without taxa)
SearchBar_9=Common Names
SearchBar_10=Unpublished taxa
+SearchBar_11=With authors
SearchResultLabelProvider_NAME=Name:
SearchResultLabelProvider_SYNONYM=Synonym:
SearchResultLabelProvider_TAXON=Taxon:
SearchBar_8=Namen (ohne Taxa)
SearchBar_9=Umgangsprachliche Namen
SearchBar_10=Unpublizierte Taxa
+SearchBar_11=Mit Autoren
SearchResultLabelProvider_NAME=Name:
SearchResultLabelProvider_SYNONYM=Synonym:
SearchResultLabelProvider_TAXON=Taxon:
}
}
- configurator = new SecundumForSubtreeConfigurator(taxonNode.getUuid());
+ configurator = new SecundumForSubtreeConfigurator(taxonNode.getUuid(), null, null, false);
SetSecundumForSubtreeConfigurationWizard wizard = new SetSecundumForSubtreeConfigurationWizard(configurator);
WizardDialog dialog = new WizardDialog(shell, wizard);
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
- EditorUtil.executeMoniteredOperation("Set Publish Flag for Subtree: ",
+ EditorUtil.executeMoniteredOperation("Set Publish Flag for Subtree",
uuid,
1000,
false,
import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.swt.widgets.Display;
-import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
import eu.etaxonomy.cdm.api.service.config.SecundumForSubtreeConfigurator;
import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
public void runMoniteredOperation() {
- ITaxonNodeService nodeService;
final UUID uuid = longRunningTaskService.monitLongRunningTask(config);
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
- EditorUtil.executeMoniteredOperation("Set Secundum Reference for Subtree: ",
+ AbstractUtility.executeMoniteredOperation("Set Secundum Reference for Subtree",
uuid,
1000,
false,
@Override
public void postOperation(IRemotingProgressMonitor monitor) {
// TODO Auto-generated method stub
-
}
}
case UNPUBLISHED:
configurator.setIncludeUnpublished(configurator.isIncludeUnpublished() ? false : true);
break;
+ case WITH_AUTHOR:
+ configurator.setDoIncludeAuthors(configurator.isDoIncludeAuthors() ? false : true);
+ break;
default:
break;
}
SYNONYM(Messages.SearchBar_7),
NAME(Messages.SearchBar_8),
COMMON_NAME(Messages.SearchBar_9),
- UNPUBLISHED(Messages.SearchBar_10);
+ UNPUBLISHED(Messages.SearchBar_10),
+ WITH_AUTHOR(Messages.SearchBar_11);
private final String label;
case UNPUBLISHED:
return PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED)? PreferencesUtil.getPreferenceStore().getBoolean(
IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED): true;
+ case WITH_AUTHOR:
+ return PreferencesUtil.getPreferenceStore().getBoolean(
+ IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS);
}
if(configurator.isDoTaxaByCommonNames()){
includedEntities.add(SearchOption.COMMON_NAME.getLabel());
}
+ if(configurator.isDoIncludeAuthors()){
+ includedEntities.add(SearchOption.WITH_AUTHOR.getLabel());
+ }
configurator.setMatchMode(MatchMode.LIKE);
String includedEntitiesString = ""; //$NON-NLS-1$
Bundle-ManifestVersion: 2
Bundle-Name: Printpublisher Bundle
Bundle-SymbolicName: eu.etaxonomy.taxeditor.printpublisher;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
Export-Package: eu.etaxonomy.cdm.print,
eu.etaxonomy.cdm.print.out,
eu.etaxonomy.cdm.print.out.odf,
eu.etaxonomy.taxeditor.editor,
eu.etaxonomy.taxeditor.store
Bundle-ClassPath: .,
- lib/cdmlib-print-5.22.0.jar,
- lib/cdmlib-remote-5.22.0.jar
+ lib/cdmlib-print-5.23.0.jar,
+ lib/cdmlib-remote-5.23.0.jar
Import-Package: org.apache.log4j,
org.eclipse.core.runtime,
org.eclipse.core.runtime.jobs,
bin.includes = META-INF/,\
.,\
plugin.xml,\
- lib/cdmlib-print-5.22.0.jar,\
- lib/cdmlib-remote-5.22.0.jar,\
+ lib/cdmlib-print-5.23.0.jar,\
+ lib/cdmlib-remote-5.23.0.jar,\
OSGI-INF/l10n/bundle.properties,\
OSGI-INF/l10n/bundle_de.properties,\
<parent>
<artifactId>taxeditor-parent</artifactId>
<groupId>eu.etaxonomy</groupId>
- <version>5.22.1</version>
+ <version>5.23.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: 5.22.1
+Bundle-Version: 5.23.0
Bundle-Activator: eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin
Bundle-Vendor: EDIT
Bundle-Localization: OSGI-INF/l10n/bundle
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.22.1</version>
+ <version>5.23.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
import eu.etaxonomy.cdm.api.application.ICdmRepository;
import eu.etaxonomy.cdm.api.service.IPreferenceService;
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
-import eu.etaxonomy.cdm.model.metadata.NamedAreaSearchField;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.TermSearchField;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.preference.SearchDialogPreferences;
import eu.etaxonomy.taxeditor.store.CdmStore;
filterCommonNameReferences = null;
filterCommonNameReferencesPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameReferencesWithMarker, null);
}
- if (this.searchNamedAreasByAbbrevPref != null){
- searchNamedAreasByAbbrev = searchNamedAreasByAbbrevPref.getValue() != null? NamedAreaSearchField.byKey(searchNamedAreasByAbbrevPref.getValue()): null;
+ if (this.searchTermsByAbbrevPref != null){
+ searchTermsByAbbrev = searchTermsByAbbrevPref.getValue() != null? TermSearchField.byKey(searchTermsByAbbrevPref.getValue()): null;
}else{
- searchNamedAreasByAbbrev = null;
- searchNamedAreasByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
+ searchTermsByAbbrev = null;
+ searchTermsByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
}
}
service.remove(filterCommonNameReferencesPref.getKey());
}
- if(searchNamedAreasByAbbrev != null || !searchNamedAreasByAbbrevPref.isAllowOverride()){
- pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, searchNamedAreasByAbbrev!= null? searchNamedAreasByAbbrev.getKey():null);
- pref.setAllowOverride(searchNamedAreasByAbbrevPref.isAllowOverride());
+ if(searchTermsByAbbrev != null || !searchTermsByAbbrevPref.isAllowOverride()){
+ pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, searchTermsByAbbrev!= null? searchTermsByAbbrev.getKey():null);
+ pref.setAllowOverride(searchTermsByAbbrevPref.isAllowOverride());
service.set(pref);
}else{
- service.remove(searchNamedAreasByAbbrevPref.getKey());
+ service.remove(searchTermsByAbbrevPref.getKey());
}
}
PreferencesUtil.updateDBPreferences();
--- /dev/null
+/**
+* Copyright (C) 2021 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;
+
+/**
+ * @author k.luther
+ * @since May 5, 2021
+ */
+public interface IBulkEditor {
+
+}
if(input!=null){
input.bind();
}
+
+ if (viewer.getSelection().isEmpty()){
+ viewer.setSelection(null);
+ }
}
@Override
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
-
package eu.etaxonomy.taxeditor.io;
import java.io.BufferedWriter;
import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
/**
- * <p>
- * ExportHandler class.
- * </p>
*
* @author n.hoffmann
* @created Sep 11, 2009
- * @version 1.0
*/
-public class ExportManager extends AbstractIOManager<IExportConfigurator> implements IPostMoniteredOperationEnabled {
-
- private final String successMessage = "The export was successful";
+public class ExportManager
+ extends AbstractIOManager<IExportConfigurator>
+ implements IPostMoniteredOperationEnabled {
private static final Logger logger = Logger.getLogger(ExportManager.class);
/** Constant <code>DATE_FORMAT_NOW="yyyyMMddHHmm"</code> */
public static final String DATE_FORMAT_NOW = "yyyyMMddHHmm";
- /**
- *
- * @param applicationConfiguration
- */
+
+ private final String successMessage = "The export was successful";
+
private ExportManager(ICdmRepository applicationConfiguration) {
super(applicationConfiguration);
}
- /**
- * <p>
- * NewInstance
- * </p>
- *
- * @param applicationConfiguration
- * a
- * {@link eu.etaxonomy.cdm.api.application.CdmApplicationController}
- * object.
- * @return a {@link eu.etaxonomy.taxeditor.io.ExportManager} object.
- */
public static ExportManager NewInstance(
ICdmRepository applicationConfiguration) {
return new ExportManager(applicationConfiguration);
}
- /**
- * <p>
- * createIOJob
- * </p>
- *
- * @param configurator
- * a {@link eu.etaxonomy.cdm.io.common.IExportConfigurator}
- * object.
- * @return a {@link org.eclipse.core.runtime.jobs.Job} object.
- */
@Override
protected Job createIOJob(final IExportConfigurator configurator) {
// monitor.worked(10);
- CdmDefaultExport<IExportConfigurator> exporter = new CdmDefaultExport<IExportConfigurator>();
+ CdmDefaultExport<IExportConfigurator> exporter = new CdmDefaultExport<>();
configurator.setProgressMonitor(CdmProgressMonitorAdapter
.CreateSubMonitor(monitor, 80));
exporter.setCdmAppController(applicationConfiguration);
+ "Please check error log for details.", e);
}
- display.asyncExec(new Runnable() {
-
- @Override
- public void run() {
- Object activePart = EventUtility.getActivePart();
- if (activePart instanceof IConversationEnabled) {
- // terminate any open transactions
- IConversationEnabled conversationEnabled = (IConversationEnabled) activePart;
- // restarting transaction and committing it to
- // trigger
- // change listener
- // TODO verify correct behaviour
-
- try{
- conversationEnabled.getConversationHolder()
- .startTransaction();
-
- conversationEnabled.getConversationHolder()
- .commit();
- }catch(RuntimeException e){
- MessagingUtils.messageDialog("Error starting conversation handling", this, "" +
- "Conversation Error: "+ e);
- }
+ display.asyncExec(()-> {
+ Object activePart = EventUtility.getActivePart();
+ if (activePart instanceof IConversationEnabled) {
+ // terminate any open transactions
+ IConversationEnabled conversationEnabled = (IConversationEnabled) activePart;
+ // restarting transaction and committing it to
+ // trigger
+ // change listener
+ // TODO verify correct behaviour
+
+ try{
+ conversationEnabled.getConversationHolder()
+ .startTransaction();
+
+ conversationEnabled.getConversationHolder()
+ .commit();
+ }catch(RuntimeException e){
+ MessagingUtils.messageDialog("Error starting conversation handling", this, "" +
+ "Conversation Error: "+ e);
}
}
});
return Status.OK_STATUS;
}
-
-
};
return job;
IIOService ioService = CdmApplicationState.getIOService();
UUID uuid = ioService.monitExportData(configurator);
IRemotingProgressMonitor remotingMonitor;
- List<IFeedbackGenerator> feedBackGeneratorList = new ArrayList<IFeedbackGenerator>();
+ List<IFeedbackGenerator> feedBackGeneratorList = new ArrayList<>();
try {
remotingMonitor = CdmStore.getProgressMonitorClientManager().pollMonitor("Export Data",
uuid,
subMonitor);
} catch (Exception ex) {
- return new Status(Status.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Operation Interrupted", ex);
+ return new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Operation Interrupted", ex);
}
ExportResult result = (ExportResult)remotingMonitor.getResult();
- ExportDataWrapper data = result.getExportData();
+ ExportDataWrapper<?> data = result.getExportData();
try{
if (result.getExportData().getType().equals(ExportResultType.BYTE_ARRAY) || result.getExportData().getType().equals(ExportResultType.LIST_BYTE_ARRAY)){
if (data.getExportData() instanceof byte[]){
}
}else if (data.getExportData() instanceof List<?>){
//TODO:This needs to be improved
- List<byte[]> exportData = (List<byte[]>)data.getExportData();
+ @SuppressWarnings("unchecked")
+ List<byte[]> exportData = (List<byte[]>)data.getExportData();
if(exportData != null){
FileOutputStream stream = new FileOutputStream(exportFile);
Writer out = new BufferedWriter(new OutputStreamWriter(
}
} else if (result.getExportData().getType().equals(ExportResultType.MAP_BYTE_ARRAY)){
+ @SuppressWarnings("unchecked")
Map<String, byte[]> resultMap = (Map<String, byte[]>)data.getExportData();
Set<String> keySet = resultMap.keySet();
- SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
- Calendar cal = Calendar.getInstance();
String fileEnding = ".zip";
if (configurator instanceof DwcaTaxExportConfigurator){
DwcaTaxExportConfigurator dwcaConfig = (DwcaTaxExportConfigurator)configurator;
};
return job;
}
- /**
- * @param jaxb
- * @return
- */
+
private IIoConfigurator getConfigurator(TYPE type) {
Assert.isNotNull(type, "Type should not be null");
}
}
- /**
- * <p>
- * JaxbConfigurator
- * </p>
- *
- * @return a {@link eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator} object.
- */
public final JaxbExportConfigurator JaxbConfigurator() {
return (JaxbExportConfigurator) getConfigurator(TYPE.Jaxb);
}
- /**
- * <p>
- * SddConfigurator
- * </p>
- *
- * @return a {@link eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator}
- * object.
- */
public final SDDExportConfigurator SddConfigurator() {
return (SDDExportConfigurator) getConfigurator(TYPE.Sdd);
}
- /**
- * @param configurator
- * @param urlString
- * @return
- */
public Job createIOServiceJob(CdmLightExportConfigurator configurator, String urlString) {
Assert.isNotNull(configurator, "Configuration may not be null");
final Display display = Display.getDefault();
configurator.setProgressMonitor(CdmProgressMonitorAdapter
.CreateSubMonitor(monitor, 80));
ExportResult result = ioService.export(configurator);
- ExportDataWrapper data = result.getExportData();
+ ExportDataWrapper<?> data = result.getExportData();
try{
if (result.getExportData().getType().equals(ExportResultType.BYTE_ARRAY) || result.getExportData().getType().equals(ExportResultType.LIST_BYTE_ARRAY)){
byte[] exportData = (byte[])data.getExportData();
stream.close();
}
} else if (result.getExportData().getType().equals(ExportResultType.MAP_BYTE_ARRAY)){
- Map<String, byte[]> resultMap = (Map<String, byte[]>)data.getExportData();
+ @SuppressWarnings("unchecked")
+ Map<String, byte[]> resultMap = (Map<String, byte[]>)data.getExportData();
Set<String> keySet = resultMap.keySet();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
Calendar cal = Calendar.getInstance();
null,
urlString,
isZip);
-
}
});
-
}
@Override
public void postOperation(IRemotingProgressMonitor monitor) {
- Display.getDefault().asyncExec(new Runnable() {
-
- @Override
- public void run() {
- CdmStore.getContextManager().notifyContextRefresh();
- }
- });
-
+ Display.getDefault().asyncExec(()-> {
+ CdmStore.getContextManager().notifyContextRefresh();
+ });
}
-
-}
+}
\ No newline at end of file
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.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
dialog.setTitle(configurator.getClass().getSimpleName()+" Report");
dialog.setReportText(reportText.toString());
dialog.open();
+
CdmStore.getContextManager().notifyContextRefresh();
+
}
});
}
});
showResult("Abcd Import", display, result, importSuccessMessage);
-
+ EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, true);
return Status.OK_STATUS;
}else{
configurator.setTaxonNodeFilter(TaxonNodeFilter.NewSubtreeInstance(selectedNode.getUuid()));
}
-
}
}
return configurator;
}
-
@Override
public boolean performFinish() {
String urlString = page.getFolderText() + File.separator ;
classificationSelectionCombo = new Combo(parent, SWT.BORDER| SWT.READ_ONLY);
classificationSelectionCombo.setLayoutData(gridData);
for(Classification tree : classifications){
- classificationSelectionCombo.add(tree.getName().getText(), classifications.indexOf(tree));
+ classificationSelectionCombo.add(tree.getTitleCache(), classifications.indexOf(tree));
}
classificationSelectionCombo.select(classifications.indexOf(selectedClassification));
public static String SetSecundumConfiguration_IncludeAcceptedTaxa;
public static String SetSecundumConfiguration_IncludeSynonyms;
- public static String SetSecundumConfiguration_OverwriteExistingAccepted;
- public static String SetSecundumConfiguration_OverwriteExistingSynonyms;
+ public static String SetSecundumConfiguration_IncludeMisapplications;
+ public static String SetSecundumConfiguration_IncludeProParteSynonyms;
public static String SetSecundumConfiguration_EmptySecundumDetail;
public static String SetSecundumConfiguration_IncludeSharedtaxa;
+ public static String SetSecundumConfiguration_OverwriteExisting;
public static String SetSecundumConfiguration_NewSecundum_Label;
public static String SetSecundumConfiguration_Description;
public static String SetSecundumConfiguration_Description_Configurator;
public static String CdmLightPreference_distributionString_tooltip;
public static String SecundumPreference_description;
+
+
public static String Tree;
SetSecundumConfiguration_IncludeAcceptedTaxa=Include accepted taxa
SetSecundumConfiguration_IncludeSynonyms=Include synonyms
-SetSecundumConfiguration_OverwriteExistingAccepted=Overwrite existing references for accepted taxa
-SetSecundumConfiguration_OverwriteExistingSynonyms=Overwrite existing references for synonyms
+SetSecundumConfiguration_IncludeMisapplications=Include misapplications (err. sec)
+SetSecundumConfiguration_IncludeProParteSynonyms=Include pro parte synonyms (syn. sec.)
+SetSecundumConfiguration_OverwriteExisting=Overwrite existing references
SetSecundumConfiguration_EmptySecundumDetail=Delete existing secundum reference details (recommended)
SetSecundumConfiguration_IncludeSharedtaxa=Include shared taxa
SetSecundumConfiguration_NewSecundum_Label=New secundum reference:
SetSecundumConfiguration_IncludeAcceptedTaxa=Anwenden auf akzeptierte Taxa
SetSecundumConfiguration_IncludeSynonyms=Anwenden auf Synonyme
-SetSecundumConfiguration_OverwriteExistingAccepted=Existierende Secundum Referenzen bei akzeptierten Taxa überschreiben
-SetSecundumConfiguration_OverwriteExistingSynonyms=Existierende Secundum Referenzen bei Synonymen überschreiben
+SetSecundumConfiguration_IncludeMisapplications=Anwenden auf Fehlanwendungen (err. sec)
+SetSecundumConfiguration_IncludeProParteSynonyms=Anwenden auf Pro Parte Synonyme (syn. sec.)
+SetSecundumConfiguration_OverwriteExisting=Existierende Secundum Referenzen überschreiben
SetSecundumConfiguration_EmptySecundumDetail=Existierende Secundum Referenz Details löschen (empfohlen)
SetSecundumConfiguration_IncludeSharedtaxa=Auch mehrfach verwendete Taxa mit einbeziehen
SetSecundumConfiguration_NewSecundum_Label=Neue Secundum Referenz:
import eu.etaxonomy.cdm.api.application.CdmApplicationState;
import eu.etaxonomy.cdm.api.service.IProgressMonitorService;
import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.api.service.dto.CdmEntityIdentifier;
+import eu.etaxonomy.cdm.common.CdmUtils;
+import eu.etaxonomy.cdm.common.SetMap;
import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
import eu.etaxonomy.cdm.io.common.ExportDataWrapper;
if (getClass() != obj.getClass()) {
return false;
}
- TermNode other = (TermNode) obj;
+ TermNode<?> other = (TermNode<?>) obj;
if (term == null) {
if (other.term != null) {
return false;
if (!taxaToUpdate.isEmpty() && updateNavigator){
refreshNavigator();
}
+ subMonitor.subTask("");
return Status.OK_STATUS;
}
private static Set<Taxon> getTaxaToUpdate(IRemotingProgressMonitor remotingMonitor) {
Set<Taxon> taxaToUpdate = new HashSet<>();
- if (remotingMonitor.getResult() instanceof UpdateResult){
+ if (remotingMonitor != null && remotingMonitor.getResult() instanceof UpdateResult){
for (CdmBase object: ((UpdateResult)remotingMonitor.getResult()).getUpdatedObjects()){
Taxon taxon = null;
}
return taxaToUpdate;
}
+
public static void createResult(String label, boolean showResult,
IRemotingProgressMonitor remotingMonitor) {
final StringBuilder reportSb = new StringBuilder();
- if (remotingMonitor.getResult() instanceof ExportResult) {
+ if (remotingMonitor == null){
+ reportSb.append("Something went wrong. No result returned from server.");
+ }else if (remotingMonitor.getResult() instanceof ExportResult) {
reportSb.append(((ExportResult)remotingMonitor.getResult()).createReport());
}else if (remotingMonitor.getResult() instanceof UpdateResult){
- if (((UpdateResult)remotingMonitor.getResult()).isOk()){
- int count = ((UpdateResult)remotingMonitor.getResult()).getUpdatedObjects().size();
- if (count == 0){
- count = ((UpdateResult)remotingMonitor.getResult()).getUpdatedCdmIds().size();
- }
-
- reportSb.append("Update successful. \n"+"Updated Objects: " +count);
- }
- if (!((UpdateResult)remotingMonitor.getResult()).getExceptions().isEmpty()){
- reportSb.append(((UpdateResult)remotingMonitor.getResult()).getExceptions().toString());
- }
+ UpdateResult result = (UpdateResult)remotingMonitor.getResult();
+ createUpdateResultReport(reportSb, result);
}else if (remotingMonitor.getReports()!= null){
for (String o:remotingMonitor.getReports()){
reportSb.append(o);
}
}
- if(showResult && !StringUtils.isBlank(reportSb.toString()) && reportSb.length() != 0) {
+ String report = reportSb.toString();
+ if(showResult && !StringUtils.isBlank(report)) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
// display reports with possibility to save
ReportTextDialog dialog = new ReportTextDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
dialog.setTitle(label + " Report");
- dialog.setReportText(reportSb.toString());
+ dialog.setReportText(report);
dialog.open();
}
});
}
}
+ public static void createUpdateResultReport(final StringBuilder reportSb, UpdateResult result) {
+ if (result.isOk() || result.isAbort()){
+ SetMap<Class<? extends CdmBase>, Integer> map = getUpdateResultStatistics(result);
+ reportSb.append("Update successful. \n"
+ + "Updated Objects: " + map.sizeAll() + "\n================\n");
+ for (Class<? extends CdmBase> clazz : map.keySet()){
+ reportSb.append( CdmUtils.userFriendlyClassName(clazz)+": " + map.get(clazz).size() + "\n");
+ }
+ }
+ if (!result.getExceptions().isEmpty()){
+ reportSb.append(result.getExceptions().toString());
+ }
+ }
+
+ //TODO move to cdmlib
+ public static SetMap<Class<? extends CdmBase>, Integer> getUpdateResultStatistics(UpdateResult result) {
+ SetMap<Class<? extends CdmBase>, Integer> map = new SetMap<>();
+ for (CdmBase cdmBase : result.getUpdatedObjects()){
+ map.putItem(cdmBase.getClass(), cdmBase.getId());
+ }
+ for (CdmEntityIdentifier entity : result.getUpdatedCdmIds()){
+ map.putItem(entity.getCdmClass(), entity.getId());
+ }
+
+ return map;
+ }
+
private static void createExportResult(final String label, String urlString, boolean createZip,
IRemotingProgressMonitor remotingMonitor) {
}
}
}
+
public static void updateNameEditors(Set<Taxon> taxaToUpdate){
for (Taxon tax: taxaToUpdate){
if (tax != null){
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
-
package eu.etaxonomy.taxeditor.model;
import java.util.ArrayList;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
/**
- * <p>NomenclaturalCodeHelper class.</p>
- *
* @author p.ciardelli
* @created 11.09.2009
- * @version 1.0
*/
public class NomenclaturalCodeHelper {
- /**
- * <p>getAllCodes</p>
- *
- * @return a {@link java.util.List} object.
- */
public static List<NomenclaturalCode> getAllCodes() {
return Arrays.asList(NomenclaturalCode.values());
}
-
- /**
- * <p>getSupportedCodes</p>
- *
- * @return a {@link java.util.List} object.
- */
public static List<NomenclaturalCode> getSupportedCodes() {
- List<NomenclaturalCode> supportedCodes = new ArrayList<NomenclaturalCode>();
+ List<NomenclaturalCode> supportedCodes = new ArrayList<>();
NomenclaturalCode nomenclaturalCode =PreferencesUtil.getPreferredNomenclaturalCode();
for (NomenclaturalCode code : getAllCodes()) {
if (isSupported(code)) {
return supportedCodes;
}
- /**
- * @param code
- * @return
- */
private static boolean isSupported(NomenclaturalCode code) {
if (code.equals(NomenclaturalCode.ICNAFP ) || code.equals(NomenclaturalCode.ICZN)) {
return true;
}
}
-
- /**
- * <p>getDescription</p>
- *
- * @param code a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
- * @return a {@link java.lang.String} object.
- */
public static String getDescription(NomenclaturalCode code) {
- if (code.equals(NomenclaturalCode.ICNB)) {
- return "International Code of Nomenclature of Bacteria (ICNB)";
+ if (code.equals(NomenclaturalCode.ICNP)) {
+ return "International Code of Nomenclature of Prokaryotes (ICNP)";
}
if (code.equals(NomenclaturalCode.ICNAFP )) {
return "International Code of Botanical Nomenclature (ICNAFP )";
return code.name();
}
- /**
- * <p>getDefaultCode</p>
- *
- * @return a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode} object.
- */
public static NomenclaturalCode getDefaultCode() {
return NomenclaturalCode.ICNAFP ;
}
-}
+}
\ No newline at end of file
}\r
} else {\r
if (overrideOrderStatus){\r
- orderStatus = TermOrder.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.StatusSortedInDistributionEditor.getKey()));\r
+ try{\r
+ orderStatus = TermOrder.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.StatusSortedInDistributionEditor.getKey()));\r
+ }catch (IllegalArgumentException e){\r
+ orderStatus = TermOrder.Label;\r
+ }\r
}else{\r
orderStatus = null;\r
}\r
public static final String TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED = "eu.etaxonomy.taxeditor.taxonServiceConfigurator.doUnpublishedTaxa";
+ public static final String TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS = "eu.etaxonomy.taxeditor.taxonServiceConfigurator.doWithAuthors";
/**
* Whether to show UUID and database id in the supplemental data view.
*/
IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_NAMES): true);
configurator.setDoTaxaByCommonNames(PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES)? PreferencesUtil.getPreferenceStore().getBoolean(
IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES): true);
+ configurator.setDoIncludeAuthors(PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS)? PreferencesUtil.getPreferenceStore().getBoolean(
+ IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS): false);
+ configurator.setIncludeUnpublished(PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED)? PreferencesUtil.getPreferenceStore().getBoolean(
+ IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED): true);
//configurator.setMatchMode(eu.etaxonomy.cdm.persistence.query.MatchMode.valueOf(getStringValue(TAXON_SERVICE_CONFIGURATOR_MATCH_MODE)));
return configurator;
configurator.setDoSynonyms(true);
configurator.setDoNamesWithoutTaxa(true);
configurator.setDoTaxaByCommonNames(true);
-
+ configurator.setIncludeUnpublished(true);
+ configurator.setDoIncludeAuthors(false);
configurator.setTaxonPropertyPath(Arrays.asList("$", "titleCache",
"name", "name.$", "relationsFromThisTaxon.$"));
configurator.isDoNamesWithoutTaxa());
getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES,
configurator.isDoTaxaByCommonNames());
+ getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS,
+ configurator.isDoIncludeAuthors());
+ getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED,
+ configurator.isIncludeUnpublished());
}
public static void firePreferencesChanged(Class clazz) {
getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_SYNONYMS, true);
getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_NAMES, true);
getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES, true);
+ getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS, false);
//Name Details
// getPreferenceStore().setDefault(createPreferenceString(PreferencePredicate.NameDetailsView.getKey()), new NameDetailsConfigurator(false).toString());
}else if (keyString.equals("getSiblings")){
config.setGetSiblings(Boolean.valueOf(valueString));
}else if (keyString.equals("classificationUUID")){
- config.setClassificationUuid(UUID.fromString(valueString));
+ if (valueString != null){
+ config.setClassificationUuid(UUID.fromString(valueString));
+ }
}else if (keyString.equals("classificationName")){
config.setClassificationName(valueString);
}else if (keyString.equals("dnaSource")){
try{
- config.setDnaSoure(URI.create(valueString));
+ if (StringUtils.isNotBlank(valueString)){
+ config.setDnaSoure(URI.create(valueString));
+ }
}catch(Exception e){
config.setDnaSoure(null);
}
import org.eclipse.swt.widgets.Label;
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
-import eu.etaxonomy.cdm.model.metadata.NamedAreaSearchField;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.TermSearchField;
import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
protected CdmPreference searchForIdentifierAndTitleCachePref;
protected CdmPreference sortTaxaByRankAndNamePref;
protected CdmPreference filterCommonNameReferencesPref;
- protected CdmPreference searchNamedAreasByAbbrevPref;
+ protected CdmPreference searchTermsByAbbrevPref;
protected Boolean showIdInSelectionDialog;
protected Boolean searchForIdentifierAndTitleCache;
protected Boolean sortTaxaByRankAndName;
protected Boolean filterCommonNameReferences;
- protected NamedAreaSearchField searchNamedAreasByAbbrev;
+ protected TermSearchField searchTermsByAbbrev;
private boolean overrideShowIdInSelectionDialog = true;
private boolean overrideSearchForIdentifierAsDefault = true;
private boolean overrideSearchForIdentifierAndTitleCache = true;
private boolean overrideSortTaxaByRankAndName = true;
private boolean overrideFilterCommonNameReferences = true;
- private boolean overrideSearchNamedAreasByAbbrev = true;
+ private boolean overrideSearchTermsByAbbrev = true;
protected Combo showIdInSelectionDialogButton;
protected Button allowOverrideIsShowIdInSelectionDialogButton;
protected Button allowOverrideIsSortTaxaByRankAndNameButton;
protected Combo filterCommonNameReferenceButton;
protected Button allowOverrideFilterCommonNameReferencesButton;
- protected Combo searchNamedAreasByAbbrevButton;
- protected Button allowOverridesearchNamedAreasByAbbrevButton;
+ protected Combo searchTermsByAbbrevButton;
+ protected Button allowOverridesearchTermsByAbbrevButton;
searchForIdentifierAndTitleCachePref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.SearchForIdentifierAndTitleCache);
sortTaxaByRankAndNamePref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.SortTaxaByRankAndName);
filterCommonNameReferencesPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.CommonNameReferencesWithMarker);
- searchNamedAreasByAbbrevPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.NamedAreaSearchForAbbrev);
+ searchTermsByAbbrevPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.NamedAreaSearchForAbbrev);
overrideShowIdInSelectionDialog = PreferencesUtil.getOverrideForPreference(PreferencePredicate.ShowIdInSelectionDialog.getKey());
overrideSearchForIdentifierAsDefault = PreferencesUtil.getOverrideForPreference(PreferencePredicate.SearchForIdentifierAsDefault.getKey());
overrideSearchForIdentifierAndTitleCache = PreferencesUtil.getOverrideForPreference(PreferencePredicate.SearchForIdentifierAndTitleCache.getKey());
overrideSortTaxaByRankAndName = PreferencesUtil.getOverrideForPreference(PreferencePredicate.SortTaxaByRankAndName.getKey());
overrideFilterCommonNameReferences = PreferencesUtil.getOverrideForPreference(PreferencePredicate.CommonNameReferencesWithMarker.getKey());
- overrideSearchNamedAreasByAbbrev = PreferencesUtil.getOverrideForPreference(PreferencePredicate.NamedAreaSearchForAbbrev.getKey());
+ overrideSearchTermsByAbbrev = PreferencesUtil.getOverrideForPreference(PreferencePredicate.NamedAreaSearchForAbbrev.getKey());
if(overrideShowIdInSelectionDialog){
showIdInSelectionDialog = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSelectionDialog.getKey(), true);
if(overrideFilterCommonNameReferences){
filterCommonNameReferences = PreferencesUtil.getBooleanValue(PreferencePredicate.CommonNameReferencesWithMarker.getKey(), true);
}
- if(overrideSearchNamedAreasByAbbrev){
+ if(overrideSearchTermsByAbbrev){
String stringValue = PreferencesUtil.getStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey(), true);
- searchNamedAreasByAbbrev = stringValue != null? NamedAreaSearchField.byKey(stringValue):null;
+ searchTermsByAbbrev = stringValue != null? TermSearchField.byKey(stringValue):null;
}
}
}
- if (e.getSource().equals(this.searchNamedAreasByAbbrevButton)) {
- String text = searchNamedAreasByAbbrevButton.getText();
+ if (e.getSource().equals(this.searchTermsByAbbrevButton)) {
+ String text = searchTermsByAbbrevButton.getText();
if(text.startsWith(Messages.Preference_Use_Default)){
- searchNamedAreasByAbbrev = null;
+ searchTermsByAbbrev = null;
return;
}
- searchNamedAreasByAbbrev = (NamedAreaSearchField) searchNamedAreasByAbbrevButton.getData(text);
+ searchTermsByAbbrev = (TermSearchField) searchTermsByAbbrevButton.getData(text);
}
});
}
- searchNamedAreasByAbbrevButton = createCombo(composite, NamedAreaSearchField.values(), PreferencePredicate.NamedAreaSearchForAbbrev, Messages.DatabasePreferncesPage_NamedAreaSearchField, isAdminPreference);
- searchNamedAreasByAbbrevButton.addSelectionListener(this);
+ searchTermsByAbbrevButton = createCombo(composite, TermSearchField.values(), PreferencePredicate.NamedAreaSearchForAbbrev, Messages.DatabasePreferncesPage_NamedAreaSearchField, isAdminPreference);
+ searchTermsByAbbrevButton.addSelectionListener(this);
- if (!isAdminPreference && searchNamedAreasByAbbrevPref != null){
- searchNamedAreasByAbbrevButton.setEnabled(searchNamedAreasByAbbrevPref.isAllowOverride());
+ if (!isAdminPreference && searchTermsByAbbrevPref != null){
+ searchTermsByAbbrevButton.setEnabled(searchTermsByAbbrevPref.isAllowOverride());
}
if (isAdminPreference){
- allowOverridesearchNamedAreasByAbbrevButton = createAllowOverrideButton(composite);
- allowOverridesearchNamedAreasByAbbrevButton.setSelection(searchNamedAreasByAbbrevPref != null? searchNamedAreasByAbbrevPref.isAllowOverride():true);
- allowOverridesearchNamedAreasByAbbrevButton.addSelectionListener(new SelectionAdapter(){
+ allowOverridesearchTermsByAbbrevButton = createAllowOverrideButton(composite);
+ allowOverridesearchTermsByAbbrevButton.setSelection(searchTermsByAbbrevPref != null? searchTermsByAbbrevPref.isAllowOverride():true);
+ allowOverridesearchTermsByAbbrevButton.addSelectionListener(new SelectionAdapter(){
@Override
public void widgetSelected(SelectionEvent e) {
setApply(true);
- if (searchNamedAreasByAbbrevPref == null && !allowOverridesearchNamedAreasByAbbrevButton.getSelection()){
- searchNamedAreasByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
+ if (searchTermsByAbbrevPref == null && !allowOverridesearchTermsByAbbrevButton.getSelection()){
+ searchTermsByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
}
- searchNamedAreasByAbbrevPref.setAllowOverride(allowOverridesearchNamedAreasByAbbrevButton.getSelection());
+ searchTermsByAbbrevPref.setAllowOverride(allowOverridesearchTermsByAbbrevButton.getSelection());
}
});
}
allowOverrideFilterCommonNameReferencesButton.setSelection(true);
filterCommonNameReferencesPref.setAllowOverride(true);
}
- searchNamedAreasByAbbrevButton.select(0);
- searchNamedAreasByAbbrev = null;
+ searchTermsByAbbrevButton.select(0);
+ searchTermsByAbbrev = null;
if (isAdminPreference){
- allowOverridesearchNamedAreasByAbbrevButton.setSelection(true);
- searchNamedAreasByAbbrevPref.setAllowOverride(true);
+ allowOverridesearchTermsByAbbrevButton.setSelection(true);
+ searchTermsByAbbrevPref.setAllowOverride(true);
}
setApply(true);
}
override);
override = false;
- if(searchNamedAreasByAbbrev != null){
+ if(searchTermsByAbbrev != null){
override = true;
- PreferencesUtil.setStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey(), searchNamedAreasByAbbrev.getKey());
+ PreferencesUtil.setStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey(), searchTermsByAbbrev.getKey());
}
PreferencesUtil.setBooleanValue(
PreferencesUtil.prefOverrideKey(PreferencePredicate.NamedAreaSearchForAbbrev.getKey()),
index++;
}
index = 0;
- for (String itemLabel: searchNamedAreasByAbbrevButton.getItems()) {
- if ((searchNamedAreasByAbbrev == null || (!overrideSearchNamedAreasByAbbrev && !isAdminPreference)) && itemLabel.startsWith(Messages.Preference_Use_Default)) {
- searchNamedAreasByAbbrevButton.select(index);
+ for (String itemLabel: searchTermsByAbbrevButton.getItems()) {
+ if ((searchTermsByAbbrev == null || (!overrideSearchTermsByAbbrev && !isAdminPreference)) && itemLabel.startsWith(Messages.Preference_Use_Default)) {
+ searchTermsByAbbrevButton.select(index);
break;
}
- if (searchNamedAreasByAbbrev != null && itemLabel.equals(searchNamedAreasByAbbrev.getLabel())){
- searchNamedAreasByAbbrevButton.select(index);
+ if (searchTermsByAbbrev != null && itemLabel.equals(searchTermsByAbbrev.getLabel())){
+ searchTermsByAbbrevButton.select(index);
break;
}
if(cdmEntitySession != null) {
cdmEntitySession.bind();
}
+ if (viewer.getSelection().isEmpty()){
+ viewer.setSelection(null);
+ }
}
@Override
private Button btnBrowseReference = null;
- private Text textReference = null;
- private Button btnClear = null;
+ private Text textReference = null;
+ private Button btnClear = null;
private EntitySelectionElement<Reference> selectReference;
- private Button btnIncludeAcceptedTaxa;
+ private Button btnIncludeAcceptedTaxa;
private Button btnIncludeSynonyms;
- private Button btnOverwriteExistingAccepted;
- private Button btnOverwriteExistingSynonyms;
+ private Button btnOverwriteExisting;
+// private Button btnOverwriteExistingSynonyms;
+// private Button btnOverwriteExistingRelations;
private Button btnEmptySecundumDetail;
private Button btnIncludeSharedTaxa;
+ private Button btnIncludeMisappliedNamed;
+ private Button btnIncludeProParteSynonyms;
/**
IObservableValue includeSynonymsConfiguratorObserveValue = PojoProperties.value("includeSynonyms").observe(configurator);
bindingContext.bindValue(observeSelectionBtnIncludeSynonyms, includeSynonymsConfiguratorObserveValue, null, null);
- IObservableValue observeSelectionBtnOverwriteExistingAccepted = WidgetProperties.selection().observe(btnOverwriteExistingAccepted);
- IObservableValue overwriteExistingAcceptedConfiguratorObserveValue = PojoProperties.value("overwriteExistingAccepted").observe(configurator);
- bindingContext.bindValue(observeSelectionBtnOverwriteExistingAccepted, overwriteExistingAcceptedConfiguratorObserveValue, null, null);
+ IObservableValue observeSelectionBtnIncludeMisappliedNames = WidgetProperties.selection().observe(btnIncludeMisappliedNamed);
+ IObservableValue includeMisappliedNamesConfiguratorObserveValue = PojoProperties.value("includeMisapplications").observe(configurator);
+ bindingContext.bindValue(observeSelectionBtnIncludeMisappliedNames, includeMisappliedNamesConfiguratorObserveValue, null, null);
- IObservableValue observeSelectionBtnOverwriteExistingSynonyms = WidgetProperties.selection().observe(btnOverwriteExistingSynonyms);
- IObservableValue overwriteExistingSynonymsConfiguratorObserveValue = PojoProperties.value("overwriteExistingSynonyms").observe(configurator);
- bindingContext.bindValue(observeSelectionBtnOverwriteExistingSynonyms, overwriteExistingSynonymsConfiguratorObserveValue, null, null);
+ IObservableValue observeSelectionBtnIncludeProparteSynonyms = WidgetProperties.selection().observe(btnIncludeProParteSynonyms);
+ IObservableValue includeProparteSynonymsConfiguratorObserveValue = PojoProperties.value("includeProParteSynonyms").observe(configurator);
+ bindingContext.bindValue(observeSelectionBtnIncludeProparteSynonyms, includeProparteSynonymsConfiguratorObserveValue, null, null);
+
+ IObservableValue observeSelectionBtnOverwriteExisting = WidgetProperties.selection().observe(btnOverwriteExisting);
+ IObservableValue overwriteExistingConfiguratorObserveValue = PojoProperties.value("overwriteExisting").observe(configurator);
+ bindingContext.bindValue(observeSelectionBtnOverwriteExisting, overwriteExistingConfiguratorObserveValue, null, null);
IObservableValue observeSelectionBtnEmptySecundumDetail = WidgetProperties.selection().observe(btnEmptySecundumDetail);
IObservableValue emptySecundumDetailConfiguratorObserveValue = PojoProperties.value("emptySecundumDetail").observe(configurator);
public void createControl(Composite parent) {
final Composite composite = new Composite(parent, SWT.NULL);
-
+ GridData gridComp = new GridData(SWT.BEGINNING, SWT.BEGINNING, true, true);
+ gridComp.minimumWidth = 200;
GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 1;
+ gridLayout.numColumns = 1;
+ composite.setLayoutData(gridComp);
composite.setLayout(gridLayout);
final Composite compositeRef = new Composite(composite, SWT.NULL);
GridLayout gridLayoutRef = new GridLayout();
gridLayoutRef.numColumns = 4;
+
compositeRef.setLayout(gridLayoutRef);
- compositeRef.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, true));
+ GridData gridRef = new GridData(SWT.BEGINNING, SWT.BEGINNING, true, true);
+ compositeRef.setLayoutData(gridRef);
Label label = new Label(compositeRef, SWT.WRAP);
label.setText(Messages.SetSecundumConfiguration_NewSecundum_Label);
label.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false));
// textReference.setTextLimit(Text.LIMIT);
textReference.setBackground(StoreUtil
.getColor(Resources.COLOR_TEXT_DISABLED_BACKGROUND));
-
+ GridData gridTextReference = new GridData(SWT.FILL, SWT.FILL, true, true);
+ gridTextReference.widthHint = 20;
+ gridTextReference.grabExcessHorizontalSpace = true;
+ textReference.setLayoutData(gridTextReference);
btnBrowseReference = new Button(compositeRef, SWT.NONE);
btnBrowseReference.setImage(ResourceManager.getPluginImage("eu.etaxonomy.taxeditor.store", "icons/prj_obj.gif"));
Button b = (Button) e.widget;
GridData data = (GridData) btnIncludeAcceptedTaxa.getLayoutData();
data.exclude = b.getSelection();
- btnOverwriteExistingAccepted.setVisible(data.exclude);
- btnIncludeSharedTaxa.setVisible(data.exclude);
+ boolean isEnabled = true;
if (!btnIncludeSynonyms.getSelection() && !data.exclude){
- btnEmptySecundumDetail.setVisible(false);
- setPageComplete(false);
- }else{
- btnEmptySecundumDetail.setVisible(true);
- setPageComplete(true);
+ isEnabled = false;
}
+ btnOverwriteExisting.setVisible(isEnabled);
+ btnEmptySecundumDetail.setVisible(isEnabled);
+ btnIncludeSharedTaxa.setVisible(isEnabled);
+ setPageComplete(isEnabled);
}
});
- btnOverwriteExistingAccepted = new Button(control, SWT.CHECK);
- GridData gd_btnOverwriteExistingAccepted = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
- gd_btnOverwriteExistingAccepted.horizontalIndent = 10;
- btnOverwriteExistingAccepted.setLayoutData(gd_btnOverwriteExistingAccepted);
- btnOverwriteExistingAccepted.setText(Messages.SetSecundumConfiguration_OverwriteExistingAccepted);
+// btnOverwriteExistingAccepted = new Button(control, SWT.CHECK);
+// GridData gd_btnOverwriteExistingAccepted = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+// gd_btnOverwriteExistingAccepted.horizontalIndent = 10;
+// btnOverwriteExistingAccepted.setLayoutData(gd_btnOverwriteExistingAccepted);
+// btnOverwriteExistingAccepted.setText(Messages.SetSecundumConfiguration_OverwriteExistingAccepted);
+
- btnIncludeSharedTaxa = new Button(control, SWT.CHECK);
- GridData gd_btnIncludeSharedTaxa = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
- gd_btnIncludeSharedTaxa.horizontalIndent = 10;
- btnIncludeSharedTaxa.setLayoutData(gd_btnIncludeSharedTaxa);
- btnIncludeSharedTaxa.setText(Messages.SetSecundumConfiguration_IncludeSharedtaxa);
- btnIncludeSharedTaxa.setSelection(configurator.isIncludeSharedTaxa());
btnIncludeSynonyms = new Button(control, SWT.CHECK);
btnIncludeSynonyms.setText(Messages.SetSecundumConfiguration_IncludeSynonyms);
Button b = (Button) e.widget;
GridData data = (GridData) btnIncludeSynonyms.getLayoutData();
data.exclude = b.getSelection();
- btnOverwriteExistingSynonyms.setVisible(data.exclude);
- if (!btnIncludeAcceptedTaxa.getSelection() && !data.exclude){
- btnEmptySecundumDetail.setVisible(false);
- setPageComplete(false);
- }else{
- btnEmptySecundumDetail.setVisible(true);
- setPageComplete(true);
+ boolean isEnabled = true;
+ if (!btnIncludeAcceptedTaxa.getSelection() && !data.exclude && !btnIncludeMisappliedNamed.getSelection() && !btnIncludeProParteSynonyms.getSelection()){
+ isEnabled = false;
+ }
+ btnEmptySecundumDetail.setVisible(isEnabled);
+ btnOverwriteExisting.setVisible(isEnabled);
+ btnIncludeSharedTaxa.setVisible(isEnabled);
+ setPageComplete(isEnabled);
+
+ }
+ });
+
+// btnOverwriteExistingSynonyms = new Button(control, SWT.CHECK);
+// GridData gd_btnOverwriteExistingSynonyms = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+// gd_btnOverwriteExistingSynonyms.horizontalIndent = 10;
+// btnOverwriteExistingSynonyms.setLayoutData(gd_btnOverwriteExistingSynonyms);
+// btnOverwriteExistingSynonyms.setText(Messages.SetSecundumConfiguration_OverwriteExistingSynonyms);
+// btnOverwriteExistingSynonyms.setSelection(configurator.isOverwriteExistingSynonyms());
+
+ btnIncludeMisappliedNamed = new Button(control, SWT.CHECK);
+ btnIncludeMisappliedNamed.setText(Messages.SetSecundumConfiguration_IncludeMisapplications);
+ btnIncludeMisappliedNamed.setSelection(configurator.isIncludeMisapplications());
+ btnIncludeMisappliedNamed.addListener(SWT.Selection, new Listener() {
+ @Override
+ public void handleEvent(Event e) {
+ Button b = (Button) e.widget;
+ GridData data = (GridData) btnIncludeMisappliedNamed.getLayoutData();
+ data.exclude = b.getSelection();
+ boolean isEnabled = true;
+ if (!btnIncludeAcceptedTaxa.getSelection() && !btnIncludeProParteSynonyms.getSelection() && !btnIncludeSynonyms.getSelection() && !data.exclude){
+ isEnabled = false;
}
+ btnEmptySecundumDetail.setVisible(isEnabled);
+ btnOverwriteExisting.setVisible(isEnabled);
+ btnIncludeSharedTaxa.setVisible(isEnabled);
+ setPageComplete(isEnabled);
+ }
+ });
+
+
+ btnIncludeProParteSynonyms = new Button(control, SWT.CHECK);
+ btnIncludeProParteSynonyms.setText(Messages.SetSecundumConfiguration_IncludeProParteSynonyms);
+ btnIncludeProParteSynonyms.setSelection(configurator.isIncludeProParteSynonyms());
+ btnIncludeProParteSynonyms.addListener(SWT.Selection, new Listener() {
+ @Override
+ public void handleEvent(Event e) {
+ Button b = (Button) e.widget;
+ GridData data = (GridData) btnIncludeProParteSynonyms.getLayoutData();
+ data.exclude = b.getSelection();
+ boolean isEnabled = true;
+ if (!btnIncludeAcceptedTaxa.getSelection() && !btnIncludeMisappliedNamed.getSelection() && !btnIncludeSynonyms.getSelection() && !data.exclude){
+ isEnabled = false;
+ }
+ btnEmptySecundumDetail.setVisible(isEnabled);
+ btnOverwriteExisting.setVisible(isEnabled);
+ btnIncludeSharedTaxa.setVisible(isEnabled);
+ setPageComplete(isEnabled);
}
});
- btnOverwriteExistingAccepted.setSelection(configurator.isOverwriteExistingAccepted());
- btnOverwriteExistingSynonyms = new Button(control, SWT.CHECK);
- GridData gd_btnOverwriteExistingSynonyms = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
- gd_btnOverwriteExistingSynonyms.horizontalIndent = 10;
- btnOverwriteExistingSynonyms.setLayoutData(gd_btnOverwriteExistingSynonyms);
- btnOverwriteExistingSynonyms.setText(Messages.SetSecundumConfiguration_OverwriteExistingSynonyms);
- btnOverwriteExistingSynonyms.setSelection(configurator.isOverwriteExistingSynonyms());
+ Label space = new Label(control, SWT.NONE);
+ btnIncludeSharedTaxa = new Button(control, SWT.CHECK);
+ btnIncludeSharedTaxa.setText(Messages.SetSecundumConfiguration_IncludeSharedtaxa);
+ btnIncludeSharedTaxa.setSelection(configurator.isIncludeSharedTaxa());
+
+ btnOverwriteExisting = new Button(control, SWT.CHECK);
+
+ btnOverwriteExisting.setText(Messages.SetSecundumConfiguration_OverwriteExisting);
+ btnOverwriteExisting.setSelection(configurator.isOverwriteExisting());
+
+
+// btnOverwriteExistingAccepted.setSelection(configurator.isOverwriteExistingAccepted());
+
btnEmptySecundumDetail = new Button(control, SWT.CHECK);
btnEmptySecundumDetail.setText(Messages.SetSecundumConfiguration_EmptySecundumDetail);
btnEmptySecundumDetail.setSelection(configurator.isEmptySecundumDetail());
import eu.etaxonomy.cdm.api.service.ITermService;\r
import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
import eu.etaxonomy.cdm.model.location.NamedArea;\r
-import eu.etaxonomy.cdm.model.metadata.NamedAreaSearchField;\r
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\r
+import eu.etaxonomy.cdm.model.metadata.TermSearchField;\r
import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
import eu.etaxonomy.cdm.model.term.TermType;\r
import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
@Override\r
protected void callService(String pattern) {\r
String abbrevTypeString = PreferencesUtil.getStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey());\r
- NamedAreaSearchField abbrevType;\r
+ TermSearchField abbrevType;\r
try{\r
- abbrevType = StringUtils.isNotBlank(abbrevTypeString)? NamedAreaSearchField.byKey(abbrevTypeString): null;\r
+ abbrevType = StringUtils.isNotBlank(abbrevTypeString)? TermSearchField.byKey(abbrevTypeString): null;\r
}catch(IllegalArgumentException e){\r
abbrevType = null;\r
}\r
if (selectedVocabularies == null || selectedVocabularies.size() == 0){\r
- if (abbrevType != null && !abbrevType.equals(NamedAreaSearchField.NoAbbrev)){\r
+ if (abbrevType != null && !abbrevType.equals(TermSearchField.NoAbbrev)){\r
model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedAreaByAbbrev(vocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage(), abbrevType);\r
}else{\r
model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedArea(vocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage());\r
}\r
}else{\r
- if (abbrevType != null && !abbrevType.equals(NamedAreaSearchField.NoAbbrev)){\r
+ if (abbrevType != null && !abbrevType.equals(TermSearchField.NoAbbrev)){\r
model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedAreaByAbbrev(selectedVocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage(), abbrevType);\r
}else{\r
model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedArea(selectedVocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage());\r
import eu.etaxonomy.cdm.model.media.MediaRepresentation;
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
import eu.etaxonomy.cdm.model.media.Rights;
-import eu.etaxonomy.cdm.model.molecular.DnaSample;
import eu.etaxonomy.cdm.model.name.NameRelationship;
import eu.etaxonomy.cdm.model.name.NameRelationshipType;
import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationEventDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationHistoryDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.EmptySection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeGeneralDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeGeneralDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.GeoScopeDetailSection;
return section;
}
- public FieldUnitDetailSection createFieldUnitDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
- FieldUnitDetailSection section = new FieldUnitDetailSection(this, conversation, parentElement, selectionProvider, style);
+ public FieldUnitFacadeDetailSection createFieldUnitFacadeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+ FieldUnitFacadeDetailSection section = new FieldUnitFacadeDetailSection(this, conversation, parentElement, selectionProvider, style);
addAndAdaptSection(parentElement, section);
return section;
}
return section;
}
- public FieldUnitGeneralDetailSection createFieldUnitGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
- FieldUnitGeneralDetailSection section = new FieldUnitGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
+ public FieldUnitFacadeGeneralDetailSection createFieldUnitFacadeGeneralDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+ FieldUnitFacadeGeneralDetailSection section = new FieldUnitFacadeGeneralDetailSection(this, conversation, parentElement, selectionProvider, style);
addAndAdaptSection(parentElement, section);
return section;
}
}
- public FieldUnitGeneralDetailElement createFieldUnitGeneralDetailElement(ICdmFormElement parentElement){
- FieldUnitGeneralDetailElement element = new FieldUnitGeneralDetailElement(this, parentElement);
+ public FieldUnitFacadeGeneralDetailElement createFieldUnitFacadeGeneralDetailElement(ICdmFormElement parentElement){
+ FieldUnitFacadeGeneralDetailElement element = new FieldUnitFacadeGeneralDetailElement(this, parentElement);
addAndAdaptElement(parentElement, element);
return element;
}
return element;
}
- public FieldUnitDetailElement createFieldUnitDetailElement(ICdmFormElement parentElement) {
- FieldUnitDetailElement element = new FieldUnitDetailElement(this, parentElement);
+ public FieldUnitFacadeDetailElement createFieldUnitFacadeDetailElement(ICdmFormElement parentElement) {
+ FieldUnitFacadeDetailElement element = new FieldUnitFacadeDetailElement(this, parentElement);
addAndAdaptElement(parentElement, element);
return element;
}
removeListener,
style);
}
-
} else if (entity instanceof NamedArea) {
element = new CollectingAreaDetailElement(this, parentElement, (NamedArea) entity, removeListener, style);
} else if (entity instanceof DeterminationEvent) {
// }
} else if (entity instanceof Identifier) {
if(parentElement instanceof AbstractSampleDesignationDetailSection){
- element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier<DnaSample>) entity, removeListener, backgroundColor, style);
+ element = new SampleDesignationTextDetailElement(this, parentElement, (Identifier) entity, removeListener, backgroundColor, style);
}
else{
element = new IdentifierElement(this, parentElement, (Identifier) entity, removeListener, style);
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.widgets.Composite;
import org.eclipse.swt.widgets.Display;
formFactory.addPropertyChangeListener(this);
CdmStore.getLoginManager().addObserver(this);
- getLayoutComposite().getParent().addDisposeListener(new DisposeListener() {
-
- @Override
- public void widgetDisposed(DisposeEvent e) {
- CdmStore.getLoginManager().deleteObserver(AbstractCdmDetailElement.this);
- }
- });
+ getLayoutComposite().getParent().addDisposeListener(
+ e -> CdmStore.getLoginManager().deleteObserver(AbstractCdmDetailElement.this));
}
/**
* Override in subclasses if you want to have a different behaviour.
*/
protected void setSectionTitle() {
- Collection<ELEMENT> collection = getCollection(getEntity());
+ ENTITY entity = getEntity();
+ Collection<ELEMENT> collection = getCollection(entity);
if(collection != null && collection.size() > 0){
this.setText(getTitleString() + " +");
}else{
*/
package eu.etaxonomy.taxeditor.ui.section.description;
+import java.util.Collection;
import java.util.stream.Collectors;
import org.eclipse.jface.util.PropertyChangeEvent;
import eu.etaxonomy.cdm.model.description.DescriptionType;
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.TextWithLabelElement;
+import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
/**
public DescriptionDetailElement(CdmFormFactory cdmFormFactory,
ICdmFormElement formElement, int style) {
super(cdmFormFactory, formElement);
+
}
@Override
protected void createControls(ICdmFormElement formElement, DescriptionBase entity, int style) {
toggleable_cache = formFactory.createToggleableTextField(this, "Label",
entity.getTitleCache(), entity.isProtectedTitleCache(), style);
+
// TODO I initially thought that we can handle the entity's descriptive system with a feature tree
// Since descriptiveSystem is a Set of Features that are present or allowed for the current description,
// it is similar to a FeatureTree (you can get this information from a feature tree) but not the same.
.collect(Collectors.joining(","));
txtDescriptionTypes = formFactory.createTextWithLabelElement(formElement, "Types", typesString, style);
txtDescriptionTypes.setEnabled(false);
+
}
- @Override
- protected void updateContent() {
- super.updateContent();
- toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
- updateCacheRelevance();
+ @Override
+ public void setEnabled(boolean enabled, Collection<Object> except) {
+ this.enabled = enabled;
+ for (ICdmFormElement element : getElements()) {
+ if (element instanceof IEnableableFormElement) {
+ IEnableableFormElement enableableElement = (IEnableableFormElement) element;
+ enableableElement.setEnabled(enabled);
+ if (enableableElement instanceof ToggleableTextElement){
+ ToggleableTextElement toggle = (ToggleableTextElement)enableableElement;
+ toggle.getBtnToggleProtectTitleCache().setEnabled(enabled);
+ }
+
+ }
+ }
+ txtDescriptionTypes.setEnabled(false);
}
+
+
@Override
protected void handleTitleCacheRelevantChange(PropertyChangeEvent event) {
if(!getEntity().isProtectedTitleCache()){
@Override
public void handleEvent(Object eventSource) {
if (eventSource == toggleable_cache) {
+ if (!this.enabled){
+ return;
+ }
getEntity().setTitleCache(toggleable_cache.getText(), toggleable_cache.getState());
updateCacheRelevance();
}
}
+
+
}
\ No newline at end of file
protected AbstractCdmDetailElement<DescriptionBase<?>> createCdmDetailElement(AbstractCdmDetailSection<DescriptionBase<?>> parentElement, int style) {
return formFactory.createDescriptionDetailElement(parentElement, style);
}
+
+ @Override
+ public void setEntity(DescriptionBase<?> entity) {
+ super.setEntity(entity);
+
+ if (entity.isComputed()){
+ setEnabled(false);
+ this.getDetailElement().setEnabled(false);
+ }
+ }
}
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
package eu.etaxonomy.taxeditor.ui.section.description;
+import java.util.ArrayList;
+import java.util.Collection;
+
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
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.section.AbstractCdmDetailElement;
/**
ICdmFormElement formElement, int style) {
super(cdmFormFactory, formElement);
}
-
+
/** {@inheritDoc} */
@Override
protected void createControls(ICdmFormElement formElement, DescriptionElementBase entity, int style) {
formFactory.createDetailedDescriptionDetailElement(formElement, entity, style, isEnabled());
}
-
+
/** {@inheritDoc} */
@Override
public void handleEvent(Object eventSource) {
-
+
}
+
+ @Override
+ protected void updateControlStates(){
+ Collection<Object> except = new ArrayList<Object>();
+ for(ICdmFormElement formElement:getElements()){
+ if(formElement instanceof IEnableableFormElement && !((IEnableableFormElement) formElement).isEnabled()){
+ except.add(formElement);
+ }
+ }
+ if (getEntity().getInDescription().isComputed()){
+ enabled = false;
+ }else{
+ enabled = true;
+ }
+ setEnabled(enabled, except);
+ }
}
this.setVisible(false);
}
super.setEntity(entity);
+ if (entity.getInDescription().isComputed()){
+ this.setEnabled(false);
+ }
}
/** {@inheritDoc} */
Collection<OriginalSourceBase> sources = new HashSet<>();
sources.addAll(entity.getSources());
sources.addAll(entity.getInDescription().getSources());
+ if (entity.getInDescription().isComputed()){
+ this.setEnabled(false);
+ }
return sources;
}
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
/**
- * <p>DistributionDetailElement class.</p>
- *
* @author n.hoffmann
* @created Jun 10, 2010
- * @version 1.0
*/
public class DistributionDetailElement extends
AbstractDetailedDescriptionDetailElement<Distribution> {
private EntitySelectionElement<NamedArea> selection_namedArea;
private TermComboElement<DefinedTermBase> combo_presenceAbsence;
- private boolean namedAreaEditable = true;
private TextWithLabelElement taxonOfDistribtion;
-
- /**
- * <p>Constructor for DistributionDetailElement.</p>
- *
- * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
- * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
- * @param entity a {@link eu.etaxonomy.cdm.model.description.Distribution} object.
- * @param style a int.
- */
public DistributionDetailElement(CdmFormFactory formFactory,
ICdmFormElement formElement, Distribution entity, boolean enabled, int style) {
super(formFactory, formElement, entity, style);
setEnabled(enabled);
-
}
- /** {@inheritDoc} */
@Override
protected void createControls(ICdmFormElement formElement,
Distribution entity, int style) {
}
CdmPreference pref = CdmPreferenceCache.instance().get(key);
// if there is no preference for the area, look for the general
- if (pref == null || pref.isAllowOverride()){
+ if (pref == null ){
pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionStatus.getKey()));
}
}
}
-
-
List<DefinedTermBase> inputList = CdmStore.getTermManager().getTerms(uuidList, PresenceAbsenceTerm.class);
return inputList;
}
- /** {@inheritDoc} */
@Override
public void handleEvent(Object eventSource) {
super.handleEvent(eventSource);
public void setName(String nameCache){
taxonOfDistribtion.setText(nameCache);
}
-
-}
+}
\ No newline at end of file
import org.eclipse.swt.widgets.Label;
import eu.etaxonomy.cdm.model.term.TermTree;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.ColorResources;
import eu.etaxonomy.taxeditor.preference.Resources;
+import eu.etaxonomy.taxeditor.termtree.e4.ICharacterEditor;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@Override
protected void createControls(ICdmFormElement formElement, TermTree entity, int style) {
+
Label lblTermType = new Label(formElement.getLayoutComposite(), style);
lblTermType.setText("Term Type");
Label lblStructureText = new Label(formElement.getLayoutComposite(), style);
titleCacheText = formFactory.createTextWithLabelElement(
formElement, "Title Cache", entity.getTitleCache(), style);
+
allowDuplicates = formFactory.createCheckbox(formElement, "Allow duplicates", entity.isAllowDuplicates(), style);
orderRelevant = formFactory.createCheckbox(formElement, "Order relevant", entity.isOrderRelevant(), style);
isFlat = formFactory.createCheckbox(formElement, "Is flat", entity.isFlat(), style);
+ if (AbstractUtility.getActivePart() instanceof ICharacterEditor){
+ titleCacheText.setEnabled(false);
+ allowDuplicates.setEnabled(false);
+ orderRelevant.setEnabled(false);
+ isFlat.setEnabled(false);
+ }
+
}
@Override
* 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.section.media;
import org.apache.commons.io.FileUtils;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.swt.events.SelectionListener;
-import eu.etaxonomy.cdm.common.media.CdmImageInfo;
+import eu.etaxonomy.cdm.api.service.media.MediaInfoFileReader;
import eu.etaxonomy.cdm.common.URI;
+import eu.etaxonomy.cdm.common.media.CdmImageInfo;
import eu.etaxonomy.cdm.model.media.ImageFile;
import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
@Override
protected IStatus run(IProgressMonitor monitor) {
try{
- CdmImageInfo imageInfo = CdmImageInfo.NewInstanceWithMetaData(uri, 10000);
+ CdmImageInfo imageInfo = MediaInfoFileReader.legacyFactoryMethod(uri).readBaseInfo().readMetaData().getCdmImageInfo();
ImageFileElement.this.getLayoutComposite().getDisplay().asyncExec(()->{
element_keyValue.setInput(imageInfo.getMetaData());
try {
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Label;
+import eu.etaxonomy.cdm.api.service.media.MediaInfoFileReader;
import eu.etaxonomy.cdm.common.URI;
import eu.etaxonomy.cdm.common.UriUtils;
import eu.etaxonomy.cdm.common.media.CdmImageInfo;
UriUtils.getInputStream(uri);// will fail with a FileNotFoundException if not
- CdmImageInfo imageInfo = CdmImageInfo.NewInstance(uri, 10000);//will fail when it is no image file
+ CdmImageInfo imageInfo = MediaInfoFileReader.legacyFactoryMethod(uri).readBaseInfo().readMetaData().getCdmImageInfo(); //will fail when it is no image file
MediaDetailElement.this.getLayoutComposite().getDisplay().asyncExec(()->{
singleMediaRepresentationPart.setSize((int) imageInfo.getLength());
if(singleMediaRepresentationPart.isInstanceOf(ImageFile.class)){
getEntity().setArtist(selection_artist.getSelection());
} else if (eventSource == text_description) {
text_description.getMultilanguageText().values()
- .forEach(languageString -> getEntity().addDescription(languageString));
+ .forEach(languageString -> getEntity().putDescription(languageString));
} else if (eventSource == text_title) {
text_title.getMultilanguageText().values()
.forEach(languageString -> getEntity().putTitle(languageString));
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.swt.events.SelectionListener;
+import eu.etaxonomy.cdm.api.service.media.MediaInfoFileReader;
import eu.etaxonomy.cdm.common.URI;
import eu.etaxonomy.cdm.common.UriUtils;
import eu.etaxonomy.cdm.common.media.CdmImageInfo;
return Status.CANCEL_STATUS;
}
try {
- CdmImageInfo imageInfo = CdmImageInfo.NewInstance(uri, 10000);
+ CdmImageInfo imageInfo = MediaInfoFileReader.legacyFactoryMethod(uri).readBaseInfo().readMetaData().getCdmImageInfo();
String mimeType = imageInfo.getMimeType();
getEntity().setMimeType(mimeType);
getEntity().setSuffix(imageInfo.getSuffix());
//TODO implement
logger.warn("ICVCN not yet implemented");
break;
- case ICNB:
+ case ICNP:
createBacterialNameParts(formElement, nonViralName, style);
break;
case ICNCP:
combo_nomenclaturalCode = formFactory.createEnumComboElement(NomenclaturalCode.class, formElement, style);
combo_nomenclaturalCode.setSelection(entity.getNameType());
- if (entity.getNameType().equals(NomenclaturalCode.ICNB)){
+ if (entity.getNameType().equals(NomenclaturalCode.ICNP)){
text_nameApprobation = formFactory.createTextWithLabelElement(formElement, "Name Approbation", entity.getNameApprobation(),style);
}
textLsid = formFactory.createLsidWithExceptionLabelElement(formElement, "Lsid", entity.getLsid(), style);
combo_nomenclaturalCode = formFactory.createEnumComboElement(NomenclaturalCode.class, formElement, style);
combo_nomenclaturalCode.setSelection(entity.getNameType());
}
- if (entity.getNameType().equals(NomenclaturalCode.ICNB)){
+ if (entity.getNameType().equals(NomenclaturalCode.ICNP)){
if (config.isNameApprobiationActivated()){
text_nameApprobation = formFactory.createTextWithLabelElement(formElement, "Name Approbation", entity.getNameApprobation(),style);
}
return true;
}
}
- if (actualCode.equals(NomenclaturalCode.ICNB)){
+ if (actualCode.equals(NomenclaturalCode.ICNP)){
if (getEntity().getNameApprobation() != null || getEntity().getSubGenusAuthorship() != null){
if (MessagingUtils.confirmDialog(Messages.NonViralNameDetails_confirmDeleteOfBacterialNameParts, Messages.NonViralNameDetails_desciptionDeleteOfBacterialNameParts)){
getEntity().setNameApprobation(null);
package eu.etaxonomy.taxeditor.ui.section.occurrence;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
*
* @author n.hoffmann
* @created Oct 13, 2010
- * @version 1.0
*/
-public abstract class AbstractDeterminationEventDetailSection extends
- AbstractEntityCollectionSection<DerivedUnitFacade, DeterminationEvent> {
+public abstract class AbstractDeterminationEventDetailSection
+ extends AbstractEntityCollectionSection<SpecimenOrObservationBase, DeterminationEvent> {
- /**
- * @param formFactory
- * @param conversation
- * @param parentElement
- * @param title
- * @param style
- */
public AbstractDeterminationEventDetailSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement,
String title, int style) {
super(formFactory, conversation, parentElement, title, style);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#createNewElement()
- */
- /** {@inheritDoc} */
@Override
public DeterminationEvent createNewElement() {
DeterminationEvent instance = DeterminationEvent.NewInstance();
if(PreferencesUtil.isDeterminationOnlyForFieldUnits()){
- instance.setIdentifiedUnit(getEntity().innerFieldUnit());
+ instance.setIdentifiedUnit(getEntity());
}
else{
- instance.setIdentifiedUnit(getEntity().innerDerivedUnit());
+ instance.setIdentifiedUnit(getEntity());
}
return instance;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
- */
- /** {@inheritDoc} */
@Override
public void addElement(DeterminationEvent determination) {
getEntity().addDetermination(determination);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#removeElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
- */
- /** {@inheritDoc} */
@Override
public void removeElement(DeterminationEvent determination) {
getEntity().removeDetermination(determination);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getEmptyString()
- */
- /** {@inheritDoc} */
@Override
public String getEmptyString() {
return "No determinations yet.";
}
-
-}
+}
\ No newline at end of file
* 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.section.occurrence;
import java.util.Arrays;
import org.eclipse.swt.widgets.Control;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.model.ImageResources;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
public class CurrentDeterminationDetailSection extends
AbstractDeterminationEventDetailSection {
- /**
- * @param formFactory
- * @param conversation
- * @param parentElement
- * @param style
- */
public CurrentDeterminationDetailSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement,
int style) {
}
@Override
- public Collection<DeterminationEvent> getCollection(DerivedUnitFacade entity) {
+ public Collection<DeterminationEvent> getCollection(SpecimenOrObservationBase entity) {
DeterminationEvent preferredDetermination = entity.getPreferredDetermination();
return preferredDetermination != null ? Arrays.asList(new DeterminationEvent[]{preferredDetermination}) : null;
}
return newElement;
}
- /** {@inheritDoc} */
@Override
protected String getTooltipString() {
return "Create new current determination event";
}
- /**
- * {@inheritDoc}
- */
@Override
public DeterminationEvent addExisting() {
return null;
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean allowAddExisting() {
return false;
}
-
-}
+}
\ No newline at end of file
* 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.section.occurrence;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
/**
* @author n.hoffmann
* @created May 11, 2011
- * @version 1.0
*/
-public class DeterminationDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class DeterminationDetailElement extends AbstractCdmDetailElement<SpecimenOrObservationBase> {
private CurrentDeterminationDetailSection section_currentDetermination;
private DeterminationHistoryDetailSection section_determinationHistory;
- /**
- * @param formFactory
- * @param formElement
- */
public DeterminationDetailElement(CdmFormFactory formFactory,
ICdmFormElement formElement) {
super(formFactory, formElement);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#createControls(eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement, java.lang.Object, int)
- */
@Override
protected void createControls(ICdmFormElement formElement,
- DerivedUnitFacade entity, int style) {
+ SpecimenOrObservationBase entity, int style) {
- section_currentDetermination = formFactory.createCurrentDeterminationDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(CurrentDeterminationDetailSection.class, entity.getClass().getCanonicalName(), true));
+ section_currentDetermination = formFactory.createCurrentDeterminationDetailSection(
+ getConversationHolder(), formElement, StoreUtil.getSectionStyle(CurrentDeterminationDetailSection.class, entity.getClass().getCanonicalName(), true));
section_currentDetermination.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
section_currentDetermination.setEntity(entity);
- section_determinationHistory = formFactory.createDeterminationHistoryDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(DeterminationHistoryDetailSection.class, entity.getClass().getCanonicalName()));
+ section_determinationHistory = formFactory.createDeterminationHistoryDetailSection(
+ getConversationHolder(), formElement, StoreUtil.getSectionStyle(DeterminationHistoryDetailSection.class, entity.getClass().getCanonicalName()));
section_determinationHistory.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
section_determinationHistory.setEntity(entity);
-
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
- */
@Override
public void handleEvent(Object eventSource) {
if(eventSource == section_currentDetermination){
section_determinationHistory.refresh();
}
}
-
-}
+}
\ No newline at end of file
* 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.section.occurrence;
import org.eclipse.jface.viewers.ISelectionProvider;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
/**
* @author n.hoffmann
* @created May 11, 2011
- * @version 1.0
*/
-public class DeterminationDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection {
+public class DeterminationDetailSection
+ extends AbstractCdmDetailSection<SpecimenOrObservationBase>
+ implements IDerivedUnitFacadeDetailSection {
- /**
- * @param formFactory
- * @param conversation
- * @param parentElement
- * @param selectionProvider
- * @param style
- */
public DeterminationDetailSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement,
ISelectionProvider selectionProvider, int style) {
super(formFactory, conversation, parentElement, selectionProvider, style);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()
- */
@Override
public String getHeading() {
String sectionTitle = "Determinations";
if(getEntity()!=null && getEntity().getDeterminations().size()>0){
- return sectionTitle+" +";
+ return sectionTitle+" +";
}
return sectionTitle;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
- */
@Override
- protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+ protected AbstractCdmDetailElement<SpecimenOrObservationBase> createCdmDetailElement(AbstractCdmDetailSection<SpecimenOrObservationBase> parentElement, int style) {
return formFactory.createDeterminationDetailElement(parentElement);
}
-
-}
+}
\ No newline at end of file
* 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.section.occurrence;
import org.eclipse.swt.events.SelectionListener;
-import eu.etaxonomy.cdm.model.term.DefinedTerm;
-import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.cdm.model.name.TaxonName;
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.TermType;
import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
* @author n.hoffmann
* @created Oct 13, 2010
*/
-public class DeterminationEventDetailElement extends
- AbstractEventDetailElement<DeterminationEvent> implements ISelectableElement{
+public class DeterminationEventDetailElement
+ extends AbstractEventDetailElement<DeterminationEvent>
+ implements ISelectableElement{
private SelectionArbitrator selectionArbitrator;
}
}
- /** {@inheritDoc} */
@Override
public void setEntity(DeterminationEvent entity) {
this.entity = entity;
super.setEntity(entity);
}
- /** {@inheritDoc} */
@Override
public void createControls(ICdmFormElement element, int style) {
selectionTaxonNameBase = formFactory
element, "Taxon", null,
EntitySelectionElement.ALL, style);
-
// TODO set of references
super.createControls(element, style);
element, "Modifier", null, style);
}
- /** {@inheritDoc} */
@Override
public void handleEvent(Object eventSource) {
if (eventSource == combo_determinationModifier) {
getEntity().setTaxonName(name);
//empty taxon field if name was deleted
//or does not belong the taxon
- TaxonBase taxonBase = selection_taxonBase.getEntity();
+ TaxonBase<?> taxonBase = selection_taxonBase.getEntity();
if(name==null ||
(taxonBase!=null && taxonBase.getName()!=null
&& !taxonBase.getName().equals(name))){
getEntity().setTaxon(null);
}
} else if (eventSource == selection_taxonBase) {
- TaxonBase taxon = selection_taxonBase.getSelection();
+ TaxonBase<?> taxon = selection_taxonBase.getSelection();
getEntity().setTaxon(taxon);
if(taxon!=null){
getEntity().setTaxonName(taxon.getName());
public SelectionArbitrator getSelectionArbitrator() {
return selectionArbitrator;
}
-
-}
+}
\ No newline at end of file
* 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.section.occurrence;
import java.util.Collection;
import java.util.Comparator;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
public class DeterminationHistoryDetailSection extends
AbstractDeterminationEventDetailSection {
- /**
- * @param formFactory
- * @param conversation
- * @param parentElement
- * @param style
- */
public DeterminationHistoryDetailSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement,
int style) {
}
@Override
- public Collection<DeterminationEvent> getCollection(DerivedUnitFacade entity) {
+ public Collection<DeterminationEvent> getCollection(SpecimenOrObservationBase entity) {
return entity != null ? entity.getOtherDeterminations() : null;
}
internalUpdateSection(false);
}
- /** {@inheritDoc} */
@Override
protected String getTooltipString() {
return "Add a determination event to the history";
}
- /**
- * {@inheritDoc}
- */
@Override
public DeterminationEvent addExisting() {
return null;
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean allowAddExisting() {
return false;
}
-
-}
+}
\ No newline at end of file
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.element.NumberWithLabelElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
/**
* @created Jun 17, 2010
* @version 1.0
*/
-public class FieldUnitDetailElement extends AbstractSpecimenOrObservationDetailElement {
+public class FieldUnitFacadeDetailElement extends AbstractSpecimenOrObservationDetailElement {
private TextWithLabelElement text_ecology;
* @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
* @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
*/
- public FieldUnitDetailElement(CdmFormFactory formFactory,
+ public FieldUnitFacadeDetailElement(CdmFormFactory formFactory,
ICdmFormElement formElement) {
super(formFactory, formElement);
}
* @author n.hoffmann
* @created Jun 17, 2010
*/
-public class FieldUnitDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
+public class FieldUnitFacadeDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
/**
* <p>Constructor for FieldUnitDetailSection.</p>
* @param selectionProvider a {@link org.eclipse.jface.viewers.ISelectionProvider} object.
* @param style a int.
*/
- public FieldUnitDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
+ public FieldUnitFacadeDetailSection(CdmFormFactory formFactory, ConversationHolder conversation,
ICdmFormElement parentElement,
ISelectionProvider selectionProvider, int style) {
super(formFactory, conversation, parentElement, selectionProvider, style);
*/
@Override
protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
- return formFactory.createFieldUnitDetailElement(parentElement);
+ return formFactory.createFieldUnitFacadeDetailElement(parentElement);
}
}
* @author pplitzner
* @date 05.11.2013
*/
-public class FieldUnitGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class FieldUnitFacadeGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
private ToggleableTextElement toggleableText_titleCache;
private EnumComboElement<SpecimenOrObservationType> combo_specorobstype;
private GatheringEventUnitElement element_elevation;
private CheckboxElement checkIsPublish;
- public FieldUnitGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
+ public FieldUnitFacadeGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
super(formFactory, formElement);
}
* @date 05.11.2013
*
*/
-public class FieldUnitGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
+public class FieldUnitFacadeGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> implements IDerivedUnitFacadeDetailSection{
/**
* @param formFactory
* @param selectionProvider
* @param style
*/
- public FieldUnitGeneralDetailSection(CdmFormFactory formFactory,
+ public FieldUnitFacadeGeneralDetailSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement,
ISelectionProvider selectionProvider, int style) {
super(formFactory, conversation, parentElement, selectionProvider, style);
*/
@Override
protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
- return formFactory.createFieldUnitGeneralDetailElement(parentElement);
+ return formFactory.createFieldUnitFacadeGeneralDetailElement(parentElement);
}
}
*/
@Override
public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
- FieldUnitGeneralDetailElement detailElement = formFactory.createFieldUnitGeneralDetailElement(rootElement);
+ FieldUnitFacadeGeneralDetailElement detailElement = formFactory.createFieldUnitFacadeGeneralDetailElement(rootElement);
detailElement.setEntity(getEntity());
checkComplete();
return detailElement;
@Override
public AbstractCdmDetailElement<DerivedUnitFacade> createElement(ICdmFormElement rootElement) {
- FieldUnitDetailElement detailElement = formFactory.createFieldUnitDetailElement(rootElement);
+ FieldUnitFacadeDetailElement detailElement = formFactory.createFieldUnitFacadeDetailElement(rootElement);
detailElement.setEntity(getEntity());
return detailElement;
}
* 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.section.occurrence.dna;
import java.util.Collection;
import eu.etaxonomy.taxeditor.view.search.derivative.DerivateLabelProvider;
/**
- *
* @author pplitzner
* @date Oct 16, 2014
- *
*/
public class CurrentSampleDesignationDetailSection extends AbstractSampleDesignationDetailSection {
return new DefaultCdmBaseComparator<>();
}
- /** {@inheritDoc} */
@Override
protected String getTooltipString() {
return "Create new current sample designation";
}
- /** {@inheritDoc} */
@Override
public void addElement(Identifier sampleDesignation) {
//The current sample designation is always the first one found.
getEntity().addIdentifier(0, sampleDesignation);
}
- /**
- * {@inheritDoc}
- */
@Override
public Identifier addExisting() {
return null;
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean allowAddExisting() {
return false;
}
-
-}
+}
\ No newline at end of file
import org.joda.time.DateTime;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.model.molecular.DnaQuality;
import eu.etaxonomy.cdm.model.molecular.DnaSample;
import eu.etaxonomy.cdm.model.term.OrderedTerm;
* @author pplitzner
* @date 05.03.2014
*/
-public class DnaQualityDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class DnaQualityDetailElement extends AbstractCdmDetailElement<DnaSample> {
private TextWithLabelElement textPurificationMethod;
private NumberWithLabelElement numberRatioOfAbsorbance260_280;
}
@Override
- protected void createControls(ICdmFormElement formElement, DerivedUnitFacade facade, int style) {
- DnaSample entity = (DnaSample)facade.innerDerivedUnit();
+ protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
DnaQuality dnaQuality = entity.getDnaQuality();
if(dnaQuality==null){
dnaQuality = DnaQuality.NewInstance();
@Override
public void handleEvent(Object eventSource) {
- DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
- DnaQuality dnaQuality = entity.getDnaQuality();
+ DnaQuality dnaQuality = getEntity().getDnaQuality();
if(eventSource==textPurificationMethod){
dnaQuality.setPurificationMethod(textPurificationMethod.getText());
}
}
else if(eventSource==dateQualityCheck.getController()){
DateTime dateTime = dateQualityCheck.getController().getDateTime();
-
dnaQuality.setQualityCheckDate(dateTime);
}
}
import org.eclipse.jface.viewers.ISelectionProvider;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
/**
* @author pplitzner
* @date 05.03.2014
- *
*/
-public class DnaQualityDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class DnaQualityDetailSection extends AbstractCdmDetailSection<DnaSample> {
- /**
- * @param formFactory
- * @param conversation
- * @param parentElement
- * @param selectionProvider
- * @param style
- */
public DnaQualityDetailSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement,
ISelectionProvider selectionProvider, int style) {
super(formFactory, conversation, parentElement, selectionProvider, style);
}
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
- */
@Override
public String getHeading() {
return "DNA Quality";
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
- */
@Override
- protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+ protected AbstractCdmDetailElement<DnaSample> createCdmDetailElement(AbstractCdmDetailSection<DnaSample> parentElement, int style) {
return formFactory.createDnaQualityDetailElement(parentElement);
}
-}
+}
\ No newline at end of file
*/
package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.model.molecular.DnaSample;
import eu.etaxonomy.cdm.model.occurrence.Collection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
* @author pplitzner
* @date 16.12.2013
*/
-public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class DnaSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaSample> {
private EntitySelectionElement<Collection> selection_collection;
private TextWithLabelElement textBarcode;
}
@Override
- protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
+ protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
selection_collection = formFactory
.createSelectionElement(Collection.class,//getConversationHolder(),
formElement, "Collection",
getEntity().setAccessionNumber(text_accessionNumber.getText());
}
else if(eventSource==checkIsPublish){
- ((DnaSample)getEntity().innerDerivedUnit()).setPublish(checkIsPublish.getSelection());
+ getEntity().setPublish(checkIsPublish.getSelection());
} else if (eventSource == selection_collection) {
getEntity().setCollection(selection_collection.getSelection());
}
import org.eclipse.jface.viewers.ISelectionProvider;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
* @date 12.12.2013
*
*/
-public class DnaSampleGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class DnaSampleGeneralDetailSection extends AbstractCdmDetailSection<DnaSample> {
public DnaSampleGeneralDetailSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement,
}
@Override
- protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+ protected AbstractCdmDetailElement<DnaSample> createCdmDetailElement(AbstractCdmDetailSection<DnaSample> parentElement, int style) {
return formFactory.createDnaSampleGeneralDetailElement(parentElement);
}
}
* 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.section.occurrence.dna;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.agent.Institution;
import eu.etaxonomy.cdm.model.common.TimePeriod;
/**
* @author pplitzner
* @date 16.12.2013
- *
*/
-public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+public class DnaSamplePreparationPreservationDetailElement extends AbstractCdmDetailElement<DnaSample> {
private EntitySelectionElement<Institution> selectionInstitution;
private EntitySelectionElement<AgentBase> selectionStaff;
private NumberWithLabelElement numberPreservationTemperature;
private TextWithLabelElement txtMaterialOrMethods;
- /**
- * @param formFactory
- * @param formElement
- */
public DnaSamplePreparationPreservationDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
super(formFactory, formElement);
}
- /*
- * (non-Javadoc)
- *
- * @see
- * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
- * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
- */
@Override
- protected void createControls(ICdmFormElement formElement, DerivedUnitFacade facade, int style) {
+ protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
Institution institution = null;
AgentBase<?> staff = null;
TimePeriod preparationDate = null;
- DnaSample entity = (DnaSample)facade.innerDerivedUnit();
+
if(entity.getDerivedFrom()!=null){
institution = entity.getDerivedFrom().getInstitution();
staff = entity.getDerivedFrom().getActor();
}
- /*
- * (non-Javadoc)
- *
- * @see
- * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
- * .lang.Object)
- */
@Override
public void handleEvent(Object eventSource) {
- DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
+ DnaSample entity = getEntity();
if(eventSource==datePreparationDate){
if(entity.getDerivedFrom()!=null){
entity.getDerivedFrom().setTimeperiod(datePreparationDate.getTimePeriod());
}
private PreservationMethod addPreservationMethod(){
- DnaSample entity = (DnaSample)getEntity().innerDerivedUnit();
+ DnaSample entity = getEntity();
PreservationMethod preservationMethod = entity.getPreservation();
if(preservationMethod==null){
preservationMethod = PreservationMethod.NewInstance();
import org.eclipse.jface.viewers.ISelectionProvider;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.molecular.DnaSample;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
/**
* @author pplitzner
* @date 12.12.2013
- *
*/
-public class DnaSamplePreparationPreservationSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class DnaSamplePreparationPreservationSection extends AbstractCdmDetailSection<DnaSample> {
public DnaSamplePreparationPreservationSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement,
super(formFactory, conversation, parentElement, selectionProvider, style);
}
-
@Override
public String getHeading() {
return "Preparation/Preservation";
}
@Override
- protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+ protected AbstractCdmDetailElement<DnaSample> createCdmDetailElement(AbstractCdmDetailSection<DnaSample> parentElement, int style) {
return formFactory.createDnaSamplePreparationPreservationDetailElement(parentElement);
}
-}
+}
\ No newline at end of file
*/
package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
* @date Oct 20, 2014
*/
public class SampleDesignationDetailElement
- extends AbstractCdmDetailElement<DerivedUnitFacade> {
+ extends AbstractCdmDetailElement<DerivedUnit> {
private CurrentSampleDesignationDetailSection sectionCurrentSampleDesignation;
@Override
protected void createControls(ICdmFormElement formElement,
- DerivedUnitFacade facade, int style) {
- DerivedUnit entity = getEntity().innerDerivedUnit();
+ DerivedUnit facade, int style) {
+ DerivedUnit entity = getEntity();
sectionCurrentSampleDesignation = formFactory.createCurrentSampleDesignationDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(CurrentSampleDesignationDetailSection.class, entity.getClass().getCanonicalName(), true));
sectionCurrentSampleDesignation.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
sectionCurrentSampleDesignation.setEntity(entity);
* 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.section.occurrence.dna;
import org.eclipse.jface.viewers.ISelectionProvider;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
/**
* @author n.hoffmann
* @created May 11, 2011
- * @version 1.0
*/
-public class SampleDesignationDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class SampleDesignationDetailSection extends AbstractCdmDetailSection<DerivedUnit> {
- /**
- * @param formFactory
- * @param conversation
- * @param parentElement
- * @param selectionProvider
- * @param style
- */
public SampleDesignationDetailSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement,
ISelectionProvider selectionProvider, int style) {
super(formFactory, conversation, parentElement, selectionProvider, style);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#getHeading()
- */
@Override
public String getHeading() {
return "Sample Designations";
setTextClient(createToolbar());
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
- */
@Override
- protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+ protected SampleDesignationDetailElement createCdmDetailElement(AbstractCdmDetailSection<DerivedUnit> parentElement, int style) {
return formFactory.createSampleDesignationDetailElement(parentElement);
}
-
-}
+}
\ No newline at end of file
* 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.section.occurrence.dna;
import java.util.Collection;
/**
* @author n.hoffmann
* @created May 11, 2011
- * @version 1.0
*/
public class SampleDesignationHistoryDetailSection extends AbstractSampleDesignationDetailSection {
- /**
- * @param formFactory
- * @param conversation
- * @param parentElement
- * @param style
- */
public SampleDesignationHistoryDetailSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement,
int style) {
super(formFactory, conversation, parentElement, "Sample Designation History", style);
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection#getCollection(java.lang.Object)
- */
@Override
public Collection<Identifier> getCollection(IdentifiableEntity<?> entity) {
LinkedList<Identifier> sampleDesignations = new LinkedList<>();
internalUpdateSection(false);
}
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#getTooltipString()
- */
- /** {@inheritDoc} */
@Override
protected String getTooltipString() {
return "Add a sample designation to the history";
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionSection#addElement(eu.etaxonomy.cdm.model.common.IVersionableEntity)
- */
- /** {@inheritDoc} */
@Override
public void addElement(Identifier sampleDesignation) {
//The current sample designation is always the first one found.
getEntity().addIdentifier(indexOfCurrentSampleDesignation+1, sampleDesignation);
}
- /**
- * {@inheritDoc}
- */
@Override
public Identifier addExisting() {
return null;
}
- /**
- * {@inheritDoc}
- */
@Override
public boolean allowAddExisting() {
return false;
}
-
-}
+}
\ No newline at end of file
if(entity.getPreservation()!=null){
preservationMedium = entity.getPreservation().getMedium();
}
- selectionInstitution = formFactory.createSelectionElement(Institution.class, //getConversationHolder(),
+ selectionInstitution = formFactory.createSelectionElement(Institution.class,
formElement, "Institution", institution, EntitySelectionElement.ALL, style);
- selectionStaff = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
+ selectionStaff = formFactory.createSelectionElement(AgentBase.class,
formElement, "Staff", staff, EntitySelectionElement.ALL,style);
datePreparation = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
comboPreservationMedium = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Preservation medium", preservationMedium, style);
- selectionCollection = formFactory.createSelectionElement(Collection.class, //getConversationHolder(),
+ selectionCollection = formFactory.createSelectionElement(Collection.class,
formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
textAccessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
/**
* @author pplitzner
* @date 12.12.2013
- *
*/
public class TissueSampleGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
- /**
- * @param formFactory
- * @param conversation
- * @param parentElement
- * @param selectionProvider
- * @param style
- */
public TissueSampleGeneralDetailSection(CdmFormFactory formFactory,
ConversationHolder conversation, ICdmFormElement parentElement,
ISelectionProvider selectionProvider, int style) {
super(formFactory, conversation, parentElement, selectionProvider, style);
}
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection#getHeading()
- */
@Override
public String getHeading() {
return "General";
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection#createCdmDetailElement(eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection, int)
- */
@Override
protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
return formFactory.createTissueSampleGeneralDetailElement(parentElement);
}
-
-}
+}
\ No newline at end of file
*/
package eu.etaxonomy.taxeditor.ui.section.occurrence.media;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.api.service.IVocabularyService;
import eu.etaxonomy.cdm.model.agent.AgentBase;
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
/**
* @author pplitzner
* @date 16.12.2013
- *
*/
-public class MediaSpecimenGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> implements ITogglableMediaElement{
+public class MediaSpecimenGeneralDetailElement
+ extends AbstractCdmDetailElement<MediaSpecimen>
+ implements ITogglableMediaElement{
- private final TermVocabulary mediaSpecimenVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.MediaSpecimenKindOfUnit.getUuid());
+ private final TermVocabulary<?> mediaSpecimenVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.MediaSpecimenKindOfUnit.getUuid());
private TermComboElement<DefinedTerm> comboKindOfUnit;
private LanguageStringWithLabelElement textTitleLanguageString;
private CheckboxElement checkIsPublish;
private MediaDetailElement mediaDetailElement;
- /**
- * @param formFactory
- * @param formElement
- */
+
public MediaSpecimenGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
super(formFactory, formElement);
}
@Override
- protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
- MediaSpecimen specimen = null;
- if (entity.innerDerivedUnit() instanceof MediaSpecimen){
- specimen = (MediaSpecimen)entity.innerDerivedUnit();
- }
- Media media = null;
- if (specimen != null){
- media = specimen.getMediaSpecimen();
- }
+ protected void createControls(ICdmFormElement formElement, MediaSpecimen entity, int style) {
+
+ Media media = entity == null ? null: entity.getMediaSpecimen();
+
if(media==null){
formFactory.createLabel(formElement, "No media attached to this MediaSpecimen!");
}
else{
- comboKindOfUnit = formFactory.createDefinedTermComboElement(mediaSpecimenVocabulary, formElement, "Kind of Media", specimen.getKindOfUnit(), style);
+ comboKindOfUnit = formFactory.createDefinedTermComboElement(mediaSpecimenVocabulary, formElement, "Kind of Media", entity.getKindOfUnit(), style);
textTitleLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Motif", media.getTitle(), style);
LabelElement label1 = formFactory.createLabel(formElement, "");
selectionArtist = formFactory.createSelectionElement(AgentBase.class, //getConversationHolder(),
formElement, "Prepared by", media.getArtist(), EntitySelectionElement.ALL, style);
- TimePeriod mediaCreated = specimen.getMediaSpecimen().getMediaCreated();
+ TimePeriod mediaCreated = entity.getMediaSpecimen().getMediaCreated();
date = formFactory.createTimePeriodElement(formElement, "Preparation Date", mediaCreated, style);
textMethodLanguageString = formFactory.createLanguageStringWithLabelElement(formElement, "Method", media.getDescription(Language.getDefaultLanguage()), style);
// spacer.setBackground(getPersistentBackground());
LabelElement label2 = formFactory.createLabel(formElement, "");
- selection_collection = formFactory.createSelectionElement(Collection.class,// getConversationHolder(),
+ selection_collection = formFactory.createSelectionElement(Collection.class,
formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
text_accessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
break;
}
}
- selection_publishedIn = formFactory.createSelectionElement(Reference.class, //getConversationHolder(),
+ selection_publishedIn = formFactory.createSelectionElement(Reference.class,
formElement, "Published in", publishedIn, EntitySelectionElement.ALL, style);
text_published_in_detail = formFactory.createTextWithLabelElement(formElement, "Published in Detail", publishedInDetail, style);
LabelElement label4 = formFactory.createLabel(formElement, "");
@Override
public void handleEvent(Object eventSource) {
- Media media = ((MediaSpecimen)getEntity().innerDerivedUnit()).getMediaSpecimen();
+ Media media = getEntity().getMediaSpecimen();
if(media==null){
media = Media.NewInstance();
- ((MediaSpecimen)getEntity().innerDerivedUnit()).setMediaSpecimen(media);
+ getEntity().setMediaSpecimen(media);
}
if(eventSource==comboKindOfUnit){
- ((MediaSpecimen)getEntity().innerDerivedUnit()).setKindOfUnit(comboKindOfUnit.getSelection());
+ getEntity().setKindOfUnit(comboKindOfUnit.getSelection());
}
else if(eventSource==textTitleLanguageString){
media.putTitle(textTitleLanguageString.getLanguageString());
+ getEntity().setMediaSpecimen(media);
}
else if(eventSource==date){
TimePeriod dateTime = date.getTimePeriod();
media.setMediaCreated(dateTime);
+ getEntity().setMediaSpecimen(media);
}
else if(eventSource==selectionArtist){
+ getEntity().setAccessionNumber(getEntity().getAccessionNumber());
media.setArtist(selectionArtist.getSelection());
+ getEntity().setMediaSpecimen(media);
}
else if(eventSource==textMethodLanguageString){
- media.addDescription(textMethodLanguageString.getLanguageString());
+ media.putDescription(textMethodLanguageString.getLanguageString());
+ getEntity().setMediaSpecimen(media);
}
else if (eventSource == selection_collection) {
getEntity().setCollection(selection_collection.getSelection());
}
}
else if(eventSource==checkIsPublish){
- ((MediaSpecimen)getEntity().innerDerivedUnit()).setPublish(checkIsPublish.getSelection());
+ getEntity().setPublish(checkIsPublish.getSelection());
}
+
}
@Override
import org.eclipse.swt.widgets.Control;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
/**
* @author pplitzner
* @date 12.12.2013
- *
*/
-public class MediaSpecimenGeneralDetailSection extends AbstractCdmDetailSection<DerivedUnitFacade> {
+public class MediaSpecimenGeneralDetailSection extends AbstractCdmDetailSection<MediaSpecimen> {
private ITogglableMediaElement togglableMediaElement;
}
@Override
- protected AbstractCdmDetailElement<DerivedUnitFacade> createCdmDetailElement(AbstractCdmDetailSection<DerivedUnitFacade> parentElement, int style) {
+ protected AbstractCdmDetailElement<MediaSpecimen> createCdmDetailElement(AbstractCdmDetailSection<MediaSpecimen> parentElement, int style) {
MediaSpecimenGeneralDetailElement mediaSpecimenGeneralDetailElement = formFactory.createMediaSpecimenGeneralDetailElement(parentElement);
togglableMediaElement = mediaSpecimenGeneralDetailElement;
return mediaSpecimenGeneralDetailElement;
toolBarManager.add(MediaViewSwitch.createSwitch(togglableMediaElement));
return toolBarManager.createControl(this);
}
-
-
-}
+}
\ No newline at end of file
@Override
public String getHeading() {
- return getEntity() != null ? getEntity().getClass().getSimpleName() : "TaxonBase";
+ return getEntity() != null ? getEntity().getClass().getSimpleName() : "Taxon or Synonym";
}
@Override
protected AbstractCdmDetailElement<TaxonBase<?>> createCdmDetailElement(AbstractCdmDetailSection<TaxonBase<?>> parentElement, int style) {
return formFactory.createTaxonBaseDetailElement(parentElement, style);
}
-
}
* 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.section.taxon;
import org.eclipse.swt.events.SelectionListener;
/**
* @author n.hoffmann
* @created Mar 29, 2011
- * @version 1.0
*/
public class TaxonDetailElement extends AbstractEntityCollectionElement<Taxon> {
private EntitySelectionElement<Taxon> selection_taxon;
- /**
- * @param formFactory
- * @param section
- * @param entity
- * @param removeListener
- * @param backgroundColor
- * @param style
- */
public TaxonDetailElement(CdmFormFactory formFactory,
- AbstractFormSection section, Taxon entity,
+ AbstractFormSection<?> section, Taxon entity,
SelectionListener removeListener, int style) {
super(formFactory, section, entity, removeListener, null, style);
}
- /*
- * (non-Javadoc)
- *
- * @see
- * eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#setEntity
- * (java.lang.Object)
- */
@Override
public void setEntity(Taxon entity) {
selection_taxon.setEntity(entity);
}
- /*
- * (non-Javadoc)
- *
- * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#
- * createControls(eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement, int)
- */
@Override
public void createControls(ICdmFormElement element, int style) {
selection_taxon = formFactory
EntitySelectionElement.SELECTABLE, style);
}
- /*
- * (non-Javadoc)
- *
- * @see
- * eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#handleEvent
- * (java.lang.Object)
- */
@Override
public void handleEvent(Object eventSource) {
if (eventSource == selection_taxon) {
setEntity(selection_taxon.getSelection());
}
}
-
-}
+}
\ No newline at end of file
*
* @author cmathew
* @date 23 Oct 2015
- *
*/
-
public class ProgressMonitorClientManager {
private static final Logger logger = Logger.getLogger(ProgressMonitorClientManager.class);
SubMonitor monitor) throws InterruptedException {
return pollMonitor(label, uuid, pollInterval, postOp, Arrays.asList(feedbackGenerator), monitor);
}
+
/**
* Polls the progress monitor service for the progress status of a monitor
* corresponding to the given uuid.
final IPostMoniteredOperationEnabled postOp,
List<IFeedbackGenerator> feedbackGenerators,
SubMonitor monitor) throws InterruptedException {
+
IProgressMonitorService progressMonitorService = CdmApplicationState.getCurrentAppConfig().getProgressMonitorService();
IRemotingProgressMonitor remotingMonitor = progressMonitorService.getRemotingMonitor(uuid);
try {
final int START_DELAY=10;
// wait about 10 seconds for the remoting monitor to be initialised
// (i.e. for the begin task method to be called ON THE REMOTING MONITOR)
- if ( remotingMonitor.isDone()){
+ if (remotingMonitor != null && remotingMonitor.isDone()){
return remotingMonitor;
}
- for(int i=0;i<START_DELAY;i++) {
- Thread.sleep(10);
- logger.info("Waiting for monitered work to start ..");
+ for(int i=0;remotingMonitor==null && i<START_DELAY;i++) {
+ Thread.sleep(500);
+ logger.info("Waiting for monitored work to start ..");
remotingMonitor = progressMonitorService.getRemotingMonitor(uuid);
- if (remotingMonitor != null){
- if(remotingMonitor.getTotalWork() > 0) {
- break;
- }
- break;
- }
}
-
if (remotingMonitor == null){
return null;
}
+
// if the total work is still not been set then we assume that the
// operation has zero work units
-
if(remotingMonitor.getTotalWork() == 0 && remotingMonitor.isDone()) {
return remotingMonitor;
-
}else if (remotingMonitor.getTotalWork() == 0 ){
Object result = remotingMonitor.getResult();
InterruptedException exception = new InterruptedException("Monitor has zero work units");
}else if (result == null){
result = new UpdateResult();
}
-
}
+
// start the client monitor
- monitor.beginTask(remotingMonitor.getTaskName(), remotingMonitor.getTotalWork());
logger.info("Work to be done: " + remotingMonitor.getTotalWork());
int editorTotalWorkDone = 0;
int serverTotalWorkDone = 0;
}else{
throw e;
}
-
}
+
// check if remoting monitor is waiting for feedback
if(remotingMonitor.getIsWaitingForFeedback()) {
if(feedbackGenerators != null) {
feedbackCount++;
}
}
+
serverTotalWorkDone = (int) remotingMonitor.getWorkDone();
logger.info("Work done from start: " + serverTotalWorkDone);
- String percentage = "100";
- if (remotingMonitor.getTotalWork() != 0){
- percentage = new DecimalFormat("#.##").format(remotingMonitor.getPercentage());
- }
-
- // set dialog text
- monitor.setTaskName(remotingMonitor.getTaskName());
- monitor.subTask(" " + percentage + "% done ");
-
- int worked = 0;
if (serverTotalWorkDone > editorTotalWorkDone){
- worked = serverTotalWorkDone - editorTotalWorkDone;
- }
- if(worked > 0) {
- logger.info("Work done since last check: " + worked);
- monitor.worked(worked);
+ int worked = serverTotalWorkDone - editorTotalWorkDone;
+ if(worked > 0) {
+ logger.info("Work done since last check: " + worked);
+ monitor.worked(worked);
+ }
}
+ // set dialog text
+ String subTaskName = remotingMonitor.getSubTask();
+ String percentage = "100";
+ if (remotingMonitor.getTotalWork() != 0){
+ percentage = new DecimalFormat("#.##").format(remotingMonitor.getPercentage());
+ }
+ subTaskName = subTaskName + " (" + percentage +"% done)";
+ //Note: do not update taskname as it resets percentage in status line
+ monitor.subTask(subTaskName );
editorTotalWorkDone = serverTotalWorkDone;
}
if(remotingMonitor.getResult() instanceof Exception) {
UpdateResult result = new UpdateResult();
result.addException((Exception) remotingMonitor.getResult());
-
}
return remotingMonitor;
} finally {
- if(postOp != null && remotingMonitor != null && remotingMonitor.isDone()) {
+ if(postOp != null && remotingMonitor != null && remotingMonitor.isDone()) {
postOp.postOperation(remotingMonitor);
}
}
import eu.etaxonomy.taxeditor.ui.section.name.NomenclaturalStatusSection;
import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection;
import eu.etaxonomy.taxeditor.ui.section.name.TypeDesignationSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.GeoScopeDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailSection;
import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonDetailSection;
@Override
public boolean setFormInput(Object input) {
+ if (formSection.isDisposed()){
+ return false;
+ }
+
this.rootInput = input;
//FIXME (CM): Need to fix this part of the design.
//The design seems to be locked to the idea that only one
if (input instanceof IElementHasDetails) {
input = ((IElementHasDetails) input).getData();
}
+
if ((input instanceof TaxonBase)
&& (formSection instanceof ITaxonBaseDetailSection)) {
((ITaxonBaseDetailSection) formSection)
&& (formSection instanceof RightsSection)){
((RightsSection)formSection).setEntity(((DerivedUnitFacade)input).innerDerivedUnit());
return true;
+ }else if ((input instanceof DerivedUnitFacade)
+ && (formSection instanceof DeterminationDetailSection)){
+ ((DeterminationDetailSection)formSection).setEntity(((DerivedUnitFacade)input).innerDerivedUnit());
+ return true;
+ }else if ((input instanceof DerivedUnitFacade)
+ && (formSection instanceof SampleDesignationDetailSection)){
+ ((SampleDesignationDetailSection)formSection).setEntity(((DerivedUnitFacade)input).innerDerivedUnit());
+ return true;
}
//check whether this is needed
// }else if ((input instanceof TaxonBase)
formSection.setEntity((T) input);
+
return true;
}
* 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.view.e4.details;
import java.util.Collection;
import eu.etaxonomy.cdm.persistence.dto.TermNodeDto;
import eu.etaxonomy.cdm.persistence.dto.TermTreeDto;
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.editor.IBulkEditor;
import eu.etaxonomy.taxeditor.editor.IDistributionEditorPart;
import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
import eu.etaxonomy.taxeditor.l10n.Messages;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitFacadeGeneralDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.association.DerivedUnitTypeDesignationSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailSection;
import eu.etaxonomy.taxeditor.view.e4.AbstractCdmDataViewerE4;
/**
- *
* The DetailsViewer handles the content of the details view (
* {@link DetailsPartE4}).<br>
* Depending on the type of the selected element the section of the details view
*
* @author pplitzner
* @date 18.07.2017
- *
*/
public class DetailsViewerE4 extends AbstractCdmDataViewerE4 {
if(input instanceof GbifResponse){
input = ((GbifResponse) input).getDerivedUnitFacade();
}
- if (input !=null && input instanceof DerivedUnit) {
+ if (input instanceof DerivedUnit) {
DerivedUnit derivedUnit = (DerivedUnit)input;
- try {
- input = DerivedUnitFacade.NewInstance(derivedUnit,
- PreferencesUtil.getDerivedUnitConfigurator());
- } catch (DerivedUnitFacadeNotSupportedException e) {
- MessagingUtils.error(getClass(), e); //nothing should happen, later on the Details View will show an according information that it is not possible to open this data
+ if ((derivedUnit instanceof MediaSpecimen
+ || (derivedUnit instanceof DnaSample && derivedUnit.getRecordBasis() == SpecimenOrObservationType.DnaSample ))
+ && !(this.activePart instanceof IBulkEditor)){
+ //do nothing
+ }else{
+ try {
+ input = DerivedUnitFacade.NewInstance(derivedUnit,
+ PreferencesUtil.getDerivedUnitConfigurator());
+ } catch (DerivedUnitFacadeNotSupportedException e) {
+ MessagingUtils.error(getClass(), e); //nothing should happen, later on the Details View will show an according information that it is not possible to open this data
+ }
}
}
else if(input instanceof FieldUnit){
}
destroySections();
if (input instanceof TaxonBase) {
- if(((TaxonBase) input).getName()==null){
+ if(((TaxonBase<?>) input).getName()==null){
createEmptySection(Messages.DetailsViewerE4_TAXON_HAS_NO_NAME, rootElement);
}
else{
createTaxonSections(rootElement);
}
-
} else if (input instanceof TaxonName) {
createNameSections(rootElement);
-
} else if (input instanceof Reference) {
createReferenceSections(rootElement);
createTeamOrPersonBaseDetailSection(rootElement);
} else if (input instanceof DescriptionBase) {
+ if (((DescriptionBase)input).isComputed()){
+ this.setDetailsEnabled(false);
+ }
if(input instanceof SpecimenDescription){
//TODO: add more sections to DetailsView for SpecimenDescription
createSpecimenDescriptionSection(rootElement);
} else if (isUseDescription) {
createUseDescriptionSection(rootElement);
} else if (input instanceof TaxonDescription){
- createTaxonDescriptionSection(rootElement);
+ createTaxonDescriptionSection(rootElement, !((DescriptionBase) input).isComputed());
} else{
- createDescriptionSection(rootElement, false);
+ createDescriptionSection(rootElement, false, !((DescriptionBase) input).isComputed());
}
}
} else if (input instanceof DescriptionElementBase){
isUseDescription = true;
}
}
-
+ if (((DescriptionElementBase)input).getInDescription().isComputed()){
+ this.setDetailsEnabled(false);
+ }
if (isUseDescription == true && input instanceof CategoricalData) {
createUseRecordSection(rootElement);
} else {
} else if (input instanceof Media) {
createMediaElementSection(rootElement);
-
}
//FIXME hack to show more informative message to the user when
//DerivedUnit has more than one FieldUnit #4363
- else if (input instanceof DerivedUnit) {
+ else if (input instanceof DerivedUnit && !(input instanceof MediaSpecimen) && !(input instanceof DnaSample)) {
DerivedUnit derivedUnit = (DerivedUnit)input;
try {
input = DerivedUnitFacade.NewInstance(derivedUnit,
} catch (DerivedUnitFacadeNotSupportedException e) {
createEmptySection(e.getMessage(), rootElement);
}
- }
- else if (input instanceof DerivedUnitFacade) {
- if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.FieldUnit){
- if(((DerivedUnitFacade) input).innerFieldUnit()==null){
+ } else if (input instanceof DerivedUnitFacade) {
+ DerivedUnitFacade facade = (DerivedUnitFacade) input;
+ if(facade.getType() == SpecimenOrObservationType.FieldUnit){
+ if(facade.innerFieldUnit() == null){
MessagingUtils.error(DetailsViewerE4.class, "FieldUnit of facade is null", null); //$NON-NLS-1$
}
else{
- createFieldUnitSection(rootElement);
+ createFieldUnitFacadeSection(rootElement);
}
}
- else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.PreservedSpecimen){
- if(((DerivedUnitFacade) input).innerDerivedUnit()==null){
+ else if(facade.getType() == SpecimenOrObservationType.PreservedSpecimen){
+ if(facade.innerDerivedUnit() == null){
MessagingUtils.error(DetailsViewerE4.class, "DerivedUnit of facade is null", null); //$NON-NLS-1$
}
else{
createDerivedUnitBaseElementSection(rootElement);
}
}
- else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.TissueSample){
+ else if(facade.getType() == SpecimenOrObservationType.TissueSample){
//TissueSample should only be created by using it's own class
//in future using only one class with different SpecimenOrObservationTypes is desired
createTissueSampleSection(rootElement);
- }
- else if(((DerivedUnitFacade) input).getType()==SpecimenOrObservationType.DnaSample){
-
- if(((DerivedUnitFacade) input).innerDerivedUnit().getRecordBasis()==SpecimenOrObservationType.TissueSample){
+ }else if (facade.innerDerivedUnit() instanceof DnaSample){
+ createEmptySection("DNA sample not supported by specimen list editor", rootElement);
+ }else if (facade.innerDerivedUnit() instanceof MediaSpecimen){
+ createEmptySection("Image specimen not supported by specimen list editor", rootElement);
+ }else if(facade.getType()==SpecimenOrObservationType.DnaSample){
+
+ if(facade.innerDerivedUnit().getRecordBasis()==SpecimenOrObservationType.TissueSample){
+ //this case seems to be very unlikely as innerDerivedUnit in real cases should more or less always have the same type
createTissueSampleSection(rootElement);
}
- else if(((DerivedUnitFacade) input).innerDerivedUnit().getRecordBasis()==SpecimenOrObservationType.DnaSample){
+ else if(facade.innerDerivedUnit().getRecordBasis()==SpecimenOrObservationType.DnaSample){
createDnaSampleSection(rootElement);
}
- }else if (((DerivedUnitFacade) input).innerDerivedUnit() instanceof MediaSpecimen){
- createMediaSpecimenSection(rootElement);
- }
-
- else{
+ }else{
createDerivedUnitBaseElementSection(rootElement);
}
} else if (input instanceof DnaSample){
createFeatureDistributionSection(rootElement);
} else if (input instanceof TermNode) {
- TermType type= ((TermNode) input).getTermType();
+ TermType type= ((TermNode<?>) input).getTermType();
if(type.equals(TermType.Character) ){
createCharacterNodeSection(rootElement);
}
} else if (input instanceof TermTree) {
createFeatureTreeSection(rootElement);
-
} else if (input instanceof TermNodeDto) {
TermType type= ((TermNodeDto) input).getTerm().getTermType();
if(type.equals(TermType.Character) && activePart instanceof ICharacterEditor){
createEmptySection(null, rootElement);
}
layout();
-
- }
-
-
- private void createFeatureTreeSectionForTree(RootElement rootElement) {
- // TODO Auto-generated method stub
-
}
private void createGroupSection(RootElement parent) {
addPart(grantedAuthorityDetailSection);
}
- /** {@inheritDoc} */
@Override
public ISelection getSelection() {
return selection;
}
- /** {@inheritDoc} */
@Override
public void setSelection(ISelection selection, boolean reveal) {
this.selection = selection;
-
if(this.selection!=null){
SelectionChangedEvent selectionChangedEvent = new SelectionChangedEvent(this, selection);
fireSelectionChanged(selectionChangedEvent);
}
-
}
private void createTaxonSections(RootElement parent) {
addPart(nameRelationshipSection);
}
-
addPart(parsingMessagesSection);
-
addPart(nonViralNameSection);
-
}
private void createNameSections(RootElement parent) {
// addPart(protologSection);
addPart(typeDesignationSection);
addPart(nameRelationshipSection);
-
}
private void createReferenceSections(RootElement parent) {
addPart(descriptionElementMediaSection);
}
- private void createDescriptionSection(RootElement parent, boolean isTaxonDescription) {
+ private void createDescriptionSection(RootElement parent, boolean isTaxonDescription, boolean isEnabled) {
DescriptionDetailSection descriptionDetailSection = formFactory.createDescriptionDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DescriptionDetailSection.class, getInput().getClass().getCanonicalName(), true));
+ descriptionDetailSection.setEnabled(isEnabled);
addPart(descriptionDetailSection);
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
NaturalLanguageSection naturalLanguageSection = formFactory.createNaturalLanguageSection(
getConversationHolder(), parent, this, StoreUtil.getSectionStyle(NaturalLanguageSection.class, getInput().getClass().getCanonicalName(), true));
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
+ naturalLanguageSection.setEnabled(isEnabled);
addPart(naturalLanguageSection);
}
DescriptionSourceSection descriptionSourceSection = formFactory.createDescriptionSourceSection(
getConversationHolder(), parent, StoreUtil.getSectionStyle(DescriptionSourceSection.class, getInput().getClass().getCanonicalName(), true));
+ descriptionSourceSection.setEnabled(isEnabled);
addPart(descriptionSourceSection);
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
if(isTaxonDescription) {
ScopeSection scopeSection = formFactory.createScopeSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(ScopeSection.class, getInput().getClass().getCanonicalName()));
+ scopeSection.setEnabled(isEnabled);
addPart(scopeSection);
}
}
- private void createTaxonDescriptionSection(RootElement parent) {
- createDescriptionSection(parent, true);
+ private void createTaxonDescriptionSection(RootElement parent, boolean isEnabled) {
+ createDescriptionSection(parent, true, isEnabled);
}
private void createSpecimenDescriptionSection(RootElement parent) {
- createDescriptionSection(parent, false);
+ createDescriptionSection(parent, false, true);
}
private void createUseDescriptionSection(RootElement parent) {
addPart(descriptionDetailSection);
addPart(descriptionSourceSection);
-
}
private void createImageGallerySection(RootElement parent) {
addPart(gatheringEventDetailSection);
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
- FieldUnitDetailSection fieldUnitDetailSection = formFactory.createFieldUnitDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitDetailSection.class, getInput().getClass().getCanonicalName()));
+ FieldUnitFacadeDetailSection fieldUnitDetailSection = formFactory.createFieldUnitFacadeDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitFacadeDetailSection.class, getInput().getClass().getCanonicalName()));
addPart(fieldUnitDetailSection);
}
else{
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
DerivedUnitTypeDesignationSection derivedUnitTypeDesignationSection = formFactory.createDerivedUnitTypeDesignationSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DerivedUnitTypeDesignationSection.class, getInput().getClass().getCanonicalName()));
addPart(derivedUnitTypeDesignationSection);
-
}
- private void createFieldUnitSection(RootElement parent) {
- FieldUnitGeneralDetailSection fielUnitGeneralDetailSection = formFactory.createFieldUnitGeneralDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
+ private void createFieldUnitFacadeSection(RootElement parent) {
+ FieldUnitFacadeGeneralDetailSection fielUnitGeneralDetailSection = formFactory.createFieldUnitFacadeGeneralDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitFacadeGeneralDetailSection.class, getInput().getClass().getCanonicalName(), true));
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
- FieldUnitDetailSection fieldUnitDetailSection = formFactory.createFieldUnitDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitDetailSection.class, getInput().getClass().getCanonicalName()));
+ FieldUnitFacadeDetailSection fieldUnitDetailSection = formFactory.createFieldUnitFacadeDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FieldUnitFacadeDetailSection.class, getInput().getClass().getCanonicalName()));
addPart(fielUnitGeneralDetailSection);
addPart(gatheringEventDetailSection);
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
DeterminationDetailSection determinationDetailSection = formFactory.createDeterminationDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DeterminationDetailSection.class, getInput().getClass().getCanonicalName()));
addPart(determinationDetailSection);
-
}
private void createTissueSampleSection(RootElement parent) {
SequenceContigFileCollectionDetailSection contigFileSection = formFactory.createSequenceContigFileCollectionDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(SequenceContigFileCollectionDetailSection.class, getInput().getClass().getCanonicalName(), true));
-
addPart(section);
addPart(referenceSection);
addPart(contigFileSection);
SingleReadPherogramCollectionDetailSection pherogramSection = formFactory.createSingleReadPherogramCollectionDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(SingleReadPherogramCollectionDetailSection.class, getInput().getClass().getCanonicalName(), true));
addPart(pherogramSection);
-
}
private void createMediaSpecimenSection(RootElement parent) {
RightsSection rightsSection = formFactory.createRightsSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(RightsSection.class, getInput().getClass().getCanonicalName()));
// rightsSection.setEntity(generalSection.getEntity().innerDerivedUnit());
addPart(rightsSection);
-
}
private void createFeatureTreeSectionForDto(RootElement parent) {
}
private void createFeatureTreeSection(RootElement parent) {
TermTreeDetailSectionForNode section = formFactory.createFeatureTreeDetailSectionForTree(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(TermTreeDetailSection.class, getInput().getClass().getCanonicalName(), true));
-
addPart(section);
}
private void createFeatureNodeSection(RootElement parent) {
TermNodeDetailSection featureDistributionSection = formFactory.createFeatureNodeDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(TermNodeDetailSection.class, getInput().getClass().getCanonicalName(), true));
-
addPart(featureDistributionSection);
}
private void createFeatureDistributionSection(RootElement parent) {
FeatureDistributionDetailSection featureDistributionSection = formFactory.createFeatureDistributionDetailSection(getConversationHolder(), parent, this, StoreUtil.getSectionStyle(FeatureDistributionDetailSection.class, getInput().getClass().getCanonicalName(), true));
-
addPart(featureDistributionSection);
}
private void createUseRecordSection(RootElement parent) {
UseRecordDetailSection descriptionUseRecordSection = formFactory.createUseRecordDetailSection(getConversationHolder(), parent, this,StoreUtil.getSectionStyle(UseRecordDetailSection.class, getInput().getClass().getCanonicalName(), true));
-
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
addPart(descriptionUseRecordSection);
-
-
}
private void createUserSection(RootElement parent) {
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
-
NonViralNameDetailSection nonViralNameSection = formFactory
.createNonViralNameDetailSection(getConversationHolder(), parent, this, true,
StoreUtil.getSectionStyle(NonViralNameDetailSection.class, getInput().getClass().getCanonicalName(), true));
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
addPart(referenceDetailSection);
-
NomenclaturalStatusSection nomenclaturalStatusSection = formFactory.createNomenclaturalStatusSection(getConversationHolder(), parent,
StoreUtil.getSectionStyle(NomenclaturalStatusSection.class, getInput().getClass().getCanonicalName(), true));
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
NameRelationshipDetailSection nameRelationshipSection = formFactory.createNameRelationshipDetailSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(NameRelationshipDetailSection.class, getInput().getClass().getCanonicalName()));
formFactory.createHorizontalSeparator(parent, SWT.BORDER);
addPart(nameRelationshipSection);
-
}
private void createTaxonRelationshipSection(RootElement parent) {
}
private void createDefinedTermSection(RootElement parent) {
- DefinedTermDetailSection definedTermDetailSection = formFactory.createDefinedTermDetailSection(getInput().getClass(), getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DefinedTermDetailSection.class, getInput().getClass().getCanonicalName(), true));
+ DefinedTermDetailSection<?> definedTermDetailSection = formFactory.createDefinedTermDetailSection(getInput().getClass(), getConversationHolder(), parent, this, StoreUtil.getSectionStyle(DefinedTermDetailSection.class, getInput().getClass().getCanonicalName(), true));
addPart(definedTermDetailSection);
TermMediaSection termMediaSection = formFactory.createTermMediaSection(getConversationHolder(), parent, StoreUtil.getSectionStyle(DefinedTermDetailSection.class, getInput().getClass().getCanonicalName(), true));
addPart(termMediaSection);
}
}
}
-
-
-}
+}
\ No newline at end of file
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
import eu.etaxonomy.cdm.model.common.ICdmBase;
+import eu.etaxonomy.cdm.model.description.DescriptionBase;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
import eu.etaxonomy.cdm.model.taxon.Taxon;
structuredSelection = new StructuredSelection(((GbifResponse)structuredSelection.getFirstElement()).getDerivedUnitFacade().innerDerivedUnit());
}
else if(structuredSelection.getFirstElement() instanceof DescriptionElementBase ){
- structuredSelection = new StructuredSelection((structuredSelection.getFirstElement()));
+ structuredSelection = new StructuredSelection((structuredSelection.getFirstElement()));
+ if (((DescriptionElementBase)structuredSelection.getFirstElement()).getInDescription().isComputed()){
+ setEnabled(false);
+ }
+ }
+ else if(structuredSelection.getFirstElement() instanceof DescriptionBase ){
+
+ if (((DescriptionBase)structuredSelection.getFirstElement()).isComputed()){
+ setEnabled(false);
+ }
}
else if(structuredSelection.getFirstElement() instanceof TermDto
|| structuredSelection.getFirstElement() instanceof TermVocabularyDto){
+/**
+* Copyright (C) 2013 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.view.search.derivative;
import java.util.ArrayList;
@Override
public void dispose() {
// TODO Auto-generated method stub
-
}
public List<SpecimenOrObservationBase> getRootElements() {
- List<SpecimenOrObservationBase> elements = new ArrayList<SpecimenOrObservationBase>();
+ List<SpecimenOrObservationBase> elements = new ArrayList<>();
if(rootNodes != null) {
for(TreeNode node : rootNodes) {
- elements.add((SpecimenOrObservationBase)node.getValue());
+ elements.add((SpecimenOrObservationBase<?>)node.getValue());
}
}
return elements;
public Object[] getElements(Object inputElement) {
rootNodes = new ArrayList<>();
if(inputElement instanceof Collection){
- for (Object o: (Collection)inputElement) {
+ for (Object o: (Collection<?>)inputElement) {
if(o instanceof SpecimenOrObservationBase){
SpecimenOrObservationBase<?> rootElement = (SpecimenOrObservationBase<?>)o;
- if(rootElement!=null){
- rootNodes.add(new TreeNode(rootElement));
- }
+ rootNodes.add(new TreeNode(rootElement));
}
}
}
import java.util.Set;
import java.util.UUID;
+import org.apache.commons.lang3.StringUtils;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.TreeNode;
import org.eclipse.swt.graphics.Image;
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
import eu.etaxonomy.cdm.model.term.DefinedTerm;
import eu.etaxonomy.cdm.strategy.cache.common.IdentifiableEntityDefaultCacheStrategy;
+import eu.etaxonomy.cdm.strategy.cache.occurrence.DnaSampleDefaultCacheStrategy;
import eu.etaxonomy.taxeditor.model.ImageResources;
import eu.etaxonomy.taxeditor.store.CdmStore;
return sampleDesignationTerm;
}
-
- /** {@inheritDoc} */
@Override
public String getText(Object element) {
if(element instanceof TreeNode){
}
String text = null;
if(element instanceof IdentifiableEntity
- && ((IdentifiableEntity) element).isProtectedTitleCache()){
- return ((IdentifiableEntity) element).getTitleCache();
+ && ((IdentifiableEntity<?>) element).isProtectedTitleCache()){
+ return ((IdentifiableEntity<?>) element).getTitleCache();
}
-
//check if collection code does not exist -> use collection name then
FormatKey collectionKey = FormatKey.COLLECTION_CODE;
- text = CdmFormatterFactory.format(element,new FormatKey[]{FormatKey.COLLECTION_CODE});
+ text = CdmFormatterFactory.format(element, new FormatKey[]{FormatKey.COLLECTION_CODE});
if(CdmUtils.isBlank(text)){
collectionKey = FormatKey.COLLECTION_NAME;
}
text = ((FieldUnit) element).getTitleCache();
}
else if(element instanceof MediaSpecimen){
- text = CdmFormatterFactory.format(element,
- new FormatKey[]{
-// FormatKey.MEDIA_TITLE_CACHE, FormatKey.SPACE,
- collectionKey, FormatKey.SPACE,
- FormatKey.MOST_SIGNIFICANT_IDENTIFIER, FormatKey.SPACE,
- FormatKey.MEDIA_TITLE, FormatKey.SPACE,
- FormatKey.MEDIA_ARTIST, FormatKey.SPACE,
- });
+ MediaSpecimen mediaSpecimen = (MediaSpecimen)element;
+ text = mediaSpecimen.getTitleCache();
}
else if (element instanceof DnaSample) {
- text = CdmFormatterFactory.format(element,
- new FormatKey[] {
- collectionKey, FormatKey.SPACE,
- FormatKey.MOST_SIGNIFICANT_IDENTIFIER, FormatKey.SPACE,
- FormatKey.SAMPLE_DESIGNATION, FormatKey.SPACE
- });
+ DnaSample dnaSample = (DnaSample)element;
+ if (!(dnaSample.getCacheStrategy() instanceof DnaSampleDefaultCacheStrategy)){
+ dnaSample.setCacheStrategy(new DnaSampleDefaultCacheStrategy());
+ }
+ dnaSample.setTitleCache(null);
+ text = dnaSample.getTitleCache();
}
else if (element instanceof DerivedUnit) {
text = CdmFormatterFactory.format(element,
}
else if(element instanceof IdentifiableEntity){
- IdentifiableEntity identifiableEntity = (IdentifiableEntity) element;
+ IdentifiableEntity<?> identifiableEntity = (IdentifiableEntity<?>) element;
if(identifiableEntity.isProtectedTitleCache()){
text = identifiableEntity.getTitleCache();
}
return text;
}
- /** {@inheritDoc} */
@Override
public String getToolTipText(Object element) {
return getDerivateText(element);
}
- /**
- * @param conversation the conversation to set
- */
public void setConversation(ConversationHolder conversation) {
this.conversation = conversation;
}
return getDerivateText(element, conversation);
}
+ //Note AM: not sure what this method is really used for, why do we need an explicit
+ // formatting for those few use-cases where this is used?
public static String getDerivateText(Object element, ConversationHolder conversation){
//TODO: use list of strings to assemble labels to avoid adding the separator every time and to allow null values
TreeNode parentNode = null;
conversation.bind();
}
- final String emptyString = "";
+ final String emptyString = StringUtils.EMPTY;
final String separator = " ";
String label = emptyString;
}
//MediaSpecimen
else if(derivate instanceof MediaSpecimen){
- MediaSpecimen mediaSpecimen = (MediaSpecimen)derivate;
- if(mediaSpecimen.getMediaSpecimen()!=null){
- label += mediaSpecimen.getMediaSpecimen().getTitle()!=null?mediaSpecimen.getMediaSpecimen().getTitle().getText()+separator:"[no motif]";
- label += mediaSpecimen.getMediaSpecimen().getArtist()!=null?mediaSpecimen.getMediaSpecimen().getArtist()+separator:emptyString;
- }
- eu.etaxonomy.cdm.model.occurrence.Collection collection = mediaSpecimen.getCollection();
- if(collection!=null){
- label += collection.getName()!=null?collection.getName()+" ":emptyString;
- label += collection.getCode()!=null?"("+collection.getCode()+")"+separator:emptyString;
- }
- label += mediaSpecimen.getAccessionNumber()!=null?mediaSpecimen.getAccessionNumber()+separator:emptyString;
- label += mediaSpecimen.getBarcode()!=null?mediaSpecimen.getBarcode()+separator:emptyString;
+ label = ((MediaSpecimen)derivate).generateTitle();
}
//TissueSample + DnaSample
else if(derivate instanceof DnaSample
&& ((DnaSample) derivate).getRecordBasis()==SpecimenOrObservationType.DnaSample){
DnaSample dnaSample = (DnaSample)derivate;
- if(((DnaSample) derivate).getRecordBasis()==SpecimenOrObservationType.DnaSample){
- Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(dnaSample);
+ //AM: maybe we can use cache strategy here, unclear why only sample designation is needed; unfortunately method documentation is missing
+ if(dnaSample.getRecordBasis()==SpecimenOrObservationType.DnaSample){
+ Identifier currentSampleDesignation = getCurrentSampleDesignation(dnaSample);
if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
label += currentSampleDesignation.getIdentifier()+separator;
}
if(derivedUnit.getKindOfUnit()!=null){
label += derivedUnit.getKindOfUnit()+separator;
}
- Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(derivedUnit);
+ Identifier currentSampleDesignation = getCurrentSampleDesignation(derivedUnit);
if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
label += currentSampleDesignation.getIdentifier() + separator;
}
//Sequence
else if(derivate instanceof Sequence){
Sequence sequence = (Sequence)derivate;
- Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(sequence);
+ Identifier currentSampleDesignation = getCurrentSampleDesignation(sequence);
if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
label += currentSampleDesignation.getIdentifier()+separator;
}
SingleRead singleRead = (SingleRead)derivate;
if(parentNode!=null && parentNode.getValue() instanceof Sequence){
Sequence sequence = (Sequence) parentNode.getValue();
- Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(sequence);
+ Identifier currentSampleDesignation = getCurrentSampleDesignation(sequence);
if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
label = currentSampleDesignation.getIdentifier()+separator;
}
return ImageResources.getImage(ImageResources.DEFAULT_DERIVATIVE);
}
- public static Identifier<DnaSample> getCurrentSampleDesignation(CdmBase entity) {
+ public static Identifier getCurrentSampleDesignation(CdmBase entity) {
if(entity.isInstanceOf(DnaSample.class)){
DnaSample dnaSample = HibernateProxyHelper.deproxy(entity, DnaSample.class);
- for (Identifier<DnaSample> identifier : dnaSample.getIdentifiers()) {
- if(identifier.getType()!=null && identifier.getType().equals(DerivateLabelProvider.getSampleDesignationTerm())){
- //first sample designation is the current
- return identifier;
- }
- }
+ dnaSample.getIdentifier(DefinedTerm.uuidSampleDesignation);
}
else if(entity.isInstanceOf(Sequence.class)){
Sequence sequence = HibernateProxyHelper.deproxy(entity, Sequence.class);
}
}
if(rootElements!=null){
- Collection<DerivedUnit> derivedUnits = new ArrayList<DerivedUnit>();
- for (SpecimenOrObservationBase specimenOrObservationBase : rootElements) {
+ Collection<DerivedUnit> derivedUnits = new ArrayList<>();
+ for (SpecimenOrObservationBase<?> specimenOrObservationBase : rootElements) {
List<DerivedUnit> childUnits = CdmStore.getService(IOccurrenceService.class).getAllChildDerivatives(specimenOrObservationBase.getUuid());
if (childUnits != null){
derivedUnits.addAll(childUnits);
/**
* @author pplitzner
* @since Nov 2, 2017
- *
*/
public class InspectSessionHandler {
private TreeViewer treeViewer;
private Button btnClose;
- EntityCacherDebugResult ecdr;
+ private EntityCacherDebugResult entityCacherDebugResult;
private SashForm sashForm;
private Composite compositeDebug;
activeSession = CdmStore.getCurrentSessionManager().getActiveSession();
if (activeSession != null){
//TODO
- ecdr = activeSession.debug(false);
+ entityCacherDebugResult = activeSession.debug(false);
}
}
/**
* Open the dialog.
- * @return the result
*/
public Object open() {
gd_btnClose.widthHint = 70;
btnClose.setLayoutData(gd_btnClose);
btnClose.setText("Close");
-
}
private void setDebugInfoText() {
- txtDebugInfo.setText(ecdr.toString());
+ txtDebugInfo.setText(entityCacherDebugResult == null? "No session" : entityCacherDebugResult.toString());
}
private CdmEntityInfo[] getRootElements() {
- List<CdmEntityInfo> rootElemnts = ecdr.getRootElements();
+ List<CdmEntityInfo> rootElemnts = entityCacherDebugResult.getRootElements();
return rootElemnts.toArray(new CdmEntityInfo[rootElemnts.size()]);
}
Bundle-ManifestVersion: 2
Bundle-Name: eu.etaxonomy.taxeditor.test
Bundle-SymbolicName: eu.etaxonomy.taxeditor.test;singleton:=true
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
Bundle-ActivationPolicy: lazy
Bundle-Vendor: EDIT
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.22.1</version>
+ <version>5.23.0</version>
</parent>
<artifactId>eu.etaxonomy.taxeditor.test</artifactId>
<!-- for packaging=eclipse-test-plugin
Synonym synonym = (Synonym)taxonService.load(synonymUuid);
TaxonName synonymName = synonym.getName();
- UpdateResult result = taxonService.swapSynonymAndAcceptedTaxon(synonym.getUuid(), taxon.getUuid(), false);
+ UpdateResult result = taxonService.swapSynonymAndAcceptedTaxon(synonym.getUuid(), taxon.getUuid(), false, false);
taxon = (Taxon)result.getCdmEntity();
Set<TaxonName> synNames = taxon.getSynonymNames();
Iterator<TaxonName> iterator = synNames.iterator();
String importFilePath = "src/test/resources/imports/NormalExplicitImport.xls";
NormalExplicitImportConfigurator config =
NormalExplicitImportConfigurator.NewInstance(null, null, null, null);
- config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+ config.setNomenclaturalCode(NomenclaturalCode.ICNP);
config.setDbSchemaValidation(DbSchemaValidation.CREATE);
ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
Assert.assertTrue(result.isSuccess());
String importFilePath = "src/test/resources/imports/ABCDImport.xml";
Abcd206ImportConfigurator config =
Abcd206ImportConfigurator.NewInstance(null, null);
- config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+ config.setNomenclaturalCode(NomenclaturalCode.ICNP);
config.setDbSchemaValidation(DbSchemaValidation.CREATE);
ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.INPUTSTREAM);
Assert.assertTrue(result.isSuccess());
String importFilePath = "src/test/resources/imports/SDD.xml";
SDDImportConfigurator config =
SDDImportConfigurator.NewInstance(null, null);
- config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+ config.setNomenclaturalCode(NomenclaturalCode.ICNP);
config.setDbSchemaValidation(DbSchemaValidation.CREATE);
ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
Assert.assertTrue(result.isSuccess());
public void importSpecimenExcel() throws IOException {
String importFilePath = "src/test/resources/imports/SpecimenExcelImport.xls";
SpecimenCdmExcelImportConfigurator config = SpecimenCdmExcelImportConfigurator.NewInstance(null, null);
- config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+ config.setNomenclaturalCode(NomenclaturalCode.ICNP);
config.setDbSchemaValidation(DbSchemaValidation.CREATE);
ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
Assert.assertTrue(result.isSuccess());
public void importTCS() throws IOException {
String importFilePath = "src/test/resources/imports/TcsImport.xml";
TcsXmlImportConfigurator config = TcsXmlImportConfigurator.NewInstance(null, null);
- config.setNomenclaturalCode(NomenclaturalCode.ICNB);
+ config.setNomenclaturalCode(NomenclaturalCode.ICNP);
config.setDbSchemaValidation(DbSchemaValidation.CREATE);
ImportResult result = ioService.importData(config, fileToByteArray(importFilePath), SOURCE_TYPE.URI);
Assert.assertTrue(result.isSuccess());
<TAXONNAME NAMETYPE="ICNAFP" id="388" uuid="747021f1-cf5f-4249-a825-228da3368399" protectedtitlecache="true" titleCache="Asplenium cyprium Viane & Van den heede" fullTitleCache="Asplenium cyprium Viane & Van den heede" parsingproblem="16" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" hybridformula="false" monomhybrid="false" namecache="Asplenium cyprium Viane & Van den heede" protectedauthorshipcache="false" protectednamecache="true" trinomhybrid="false" anamorphic="false" />
<TAXONNAME NAMETYPE="ICNAFP" id="394" uuid="08f8f376-c9a4-4ea9-950d-3ac30b7fa689" protectedtitlecache="false" titleCache="Asplenium viride Huds." fullTitleCache="Asplenium viride Huds." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Huds." binomhybrid="false" genusoruninomial="Asplenium" hybridformula="false" monomhybrid="false" namecache="Asplenium viride" protectedauthorshipcache="false" protectednamecache="false" specificepithet="viride" trinomhybrid="false" anamorphic="false" homotypicalgroup_id="375" rank_id="778" />
- <Classification id="10" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" protectedtitlecache="false" titleCache="Cyprus" name_id="10" reference_id="10" />
+ <Classification id="10" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" protectedtitlecache="false" titleCache="Cyprus" name_id="10" source_id="4"/>
<TaxonBase DTYPE="Taxon" id="387" uuid="9763e5f0-6cd4-4d96-b8a4-4420854f7727" protectedtitlecache="false" titleCache="Asplenium ceterach L. sec. Cyprus" doubtful="false" usenamecache="false" taxonstatusunknown="false" name_id="387" publish="true"/>
<TaxonBase DTYPE="Synonym" id="388" uuid="1eb173bd-b174-4162-8ff5-5136d8f1e746" protectedtitlecache="false" titleCache="Asplenium cyprium Viane & Van den heede sec. Cyprus" doubtful="false" usenamecache="false" name_id="388" publish="true" acceptedtaxon_id="387"/>
<ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="1" SOURCEDTAXON_ID="387" UUID="5ff76440-c9ab-4f13-8f1a-c39d57d3c714" SOURCETYPE="PTS" CITATION_ID="10" />
<ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="2" SOURCEDTAXON_ID="388" UUID="3914b660-3cb3-4a5b-8fc7-264c7ac17a19" SOURCETYPE="PTS" CITATION_ID="10" />
<ORIGINALSOURCEBASE DTYPE="SecundumSource" ID="3" SOURCEDTAXON_ID="394" UUID="7cbe8fd0-1329-4421-8bb5-05b57f2048d1" SOURCETYPE="PTS" CITATION_ID="10" />
+ <ORIGINALSOURCEBASE DTYPE="NamedSource" ID="4" UUID="53dfd49b-f15b-4ce9-a52a-615d41634a4a" SOURCETYPE="PTS" CITATION_ID="10" />
<LanguageString id="10"/>
<DescriptionBase/>
eu.etaxonomy.taxeditor.workbench.datasource,
eu.etaxonomy.taxeditor.workbench.part
Bundle-Name: Workbench Bundle
-Bundle-Version: 5.22.1
+Bundle-Version: 5.23.0
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.e4.ui.workbench,
</children>
</children>
<children xsi:type="menu:Menu" xmi:id="_FaGnuiQNEeen_7LZsZSNoA" elementId="eu.etaxonomy.taxeditor.workbench.menu.admin" label="%menu.label.4" mnemonics="A">
- <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_OzuHcMTmEems-YpsQcOSgA" coreExpressionId="hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
+ <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_OzuHcMTmEems-YpsQcOSgA" coreExpressionId="hasROLE_USER_MANAGER_OR_hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
<children xsi:type="menu:HandledMenuItem" xmi:id="_b4RFsCQsEeeq76l4saMAFQ" elementId="eu.etaxonomy.taxeditor.workbench.menu.admin.dbpreferences" label="%command.label.23" command="_VawPsCQsEeeq76l4saMAFQ">
<visibleWhen xsi:type="ui:CoreExpression" xmi:id="_b4RFsSQsEeeq76l4saMAFQ" coreExpressionId="hasROLE_PROJECT_MANAGER_AND_isCdmStoreConnected"/>
</children>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.22.1</version>
+ <version>5.23.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<?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="5.22.1">
+<?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="5.23.0">
<aboutInfo>
<image path="/eu.etaxonomy.taxeditor.application/icons/256color_48x48.gif"/>
<text>
<parent>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.22.1</version>
+ <version>5.23.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
</prerequisites>
<groupId>eu.etaxonomy</groupId>
<artifactId>taxeditor-parent</artifactId>
- <version>5.22.1</version>
+ <version>5.23.0</version>
<name>EDIT Taxonomic Editor</name>
<description>The Taxonomic Editor for EDIT's platform for
cybertaxonomy
<properties>
<java.codelevel>1.8</java.codelevel>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <cdmlib.version>5.22.0</cdmlib.version>
+ <cdmlib.version>5.23.0</cdmlib.version>
<!-- TODO can we use project.version ????? -->
<!-- Increasing tycho above 0.22.0 will fail for the macosx build because
for higher version numbers tycho needs to be build against Eclipse Mars or
higher -->
<tycho.version>1.0.0</tycho.version>
- <taxeditor.version>5.22.0</taxeditor.version>
+ <taxeditor.version>5.23.0</taxeditor.version>
<update.dir>snapshot</update.dir>
<log4j.version>1.2.17</log4j.version>
<httpcomponents.version>4.5.12</httpcomponents.version>
--- /dev/null
+#!/bin/bash
+
+CDMLIB_ROOT=~/workspaces/cdm/cdmlib
+
+CDM_PROJETCS=("cdmlib-cache" "cdmlib-commons" "cdmlib-model" "cdmlib-ext" "cdmlib-io" "cdmlib-persistence" "cdmlib-services")
+
+rm -fr eu.etaxonomy.taxeditor.cdmlib/dev-linked-projects/*
+
+for prj in "${CDM_PROJETCS[@]}"; do
+ ln -sf $CDMLIB_ROOT/$prj/target/classes eu.etaxonomy.taxeditor.cdmlib/dev-linked-projects/$prj-classes
+done