import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitMediaSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationEventDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.media.MediaSpecimenGeneralDetailSection;
import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailElement;
import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.OriginalSourceAdvancedSection;
import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailElement;
import eu.etaxonomy.taxeditor.ui.section.reference.ReferenceDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.reference.SingleSourceSection;
import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationElement;
import eu.etaxonomy.taxeditor.ui.section.supplemental.AnnotationSection;
import eu.etaxonomy.taxeditor.ui.section.supplemental.CdmBaseElement;
}
+ public DerivedUnitMediaSection createDerivedUnitMediaSection(ConversationHolder conversation,
+ ICdmFormElement parentElement, int style) {
+ DerivedUnitMediaSection section = new DerivedUnitMediaSection(this, conversation, parentElement, style);
+ parentElement.addElement(section);
+ adapt(section);
+ return section;
+
+ }
+
/**
* @param definedTermClass
* @param formElement
return section;
}
+ public OriginalSourceAdvancedSection createOriginalSourceAdvancedSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+ OriginalSourceAdvancedSection section = new OriginalSourceAdvancedSection(this, conversation, parentElement, selectionProvider, style);
+ addAndAdaptSection(parentElement, section);
+ return section;
+ }
+
+ public SingleSourceSection createSingleSourceSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+ SingleSourceSection section = new SingleSourceSection(this, conversation, parentElement, selectionProvider, style);
+ addAndAdaptSection(parentElement, section);
+ return section;
+ }
+
public TaxonBaseDetailSection createTaxonBaseDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
TaxonBaseDetailSection section = new TaxonBaseDetailSection(this, conversation, parentElement, selectionProvider, style);
addAndAdaptSection(parentElement, section);
except.add(formElement);
}
}
-
- enabled = getEntity() != null && CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), requiredCrud);
+ if (getEntity() != null){
+ enabled = CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(getEntity()), requiredCrud);
+ }else{
+ enabled = true;
+ }
setEnabled(enabled, except);
}
}
if (detailElement != null) {
detailElement.setEntity(entity);
+ formFactory.adapt(detailElement);
Collection<Object> except = new ArrayList<>();
for(ICdmFormElement formElement:detailElement.getElements()){
if(formElement instanceof IEnableableFormElement && !((IEnableableFormElement) formElement).isEnabled()){
except.add(formElement);
}
}
+ if (entity != null){
+ boolean hasPermission = CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(entity), requiredCrud);
+ detailElement.setEnabled(isEnabled() && hasPermission, except);
+ }else{
+ detailElement.setEnabled(isEnabled() && true, except);
+ }
- boolean hasPermission = CdmStore.currentAuthentiationHasPermission(StoreUtil.getCdmEntity(entity), requiredCrud);
- detailElement.setEnabled(isEnabled() && hasPermission, except);
}
super.setEntity(entity);
setSectionTitle();
private OriginalLabelDataElement textOriginalLabel;
+ private DerivedUnitMediaSection mediaDetailElement;
+
/**
textOriginalLabel = formFactory.createOriginalLabelDataElement(formElement);
textOriginalLabel.setEntity(getEntity());
+
+
super.createControls(formElement, entity, style);
section_source = formFactory.createSourceCollectionDetailSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(SourceCollectionDetailSection.class, entity.getClass().getCanonicalName()));
section_source.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
section_source.setEntity(entity);
+ mediaDetailElement = formFactory.createDerivedUnitMediaSection(getConversationHolder(), formElement, StoreUtil.getSectionStyle(DerivedUnitMediaSection.class, entity.getClass().getCanonicalName()));
+ mediaDetailElement.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
+ mediaDetailElement.setEntity(getEntity());
+
+
}
--- /dev/null
+/**
+* Copyright (C) 2020 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.ui.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.media.Media;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
+import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
+
+/**
+ * @author k.luther
+ * @since Aug 4, 2020
+ */
+public class DerivedUnitMediaSection extends AbstractEntityCollectionSection<DerivedUnitFacade, Media> {
+
+ public DerivedUnitMediaSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
+ super(cdmFormFactory, conversation, parentElement, "Media", style);
+ }
+
+ @Override
+ public Media createNewElement() {
+ return Media.NewInstance();
+ }
+
+ @Override
+ public Collection<Media> getCollection(DerivedUnitFacade entity) {
+ return entity.getDerivedUnitMedia();
+ }
+
+ @Override
+ public Comparator<Media> getComparator() {
+ return new DefaultCdmBaseComparator<>();
+ }
+
+ @Override
+ public String getEmptyString() {
+ return "No media yet.";
+ }
+
+ @Override
+ protected String getTooltipString() {
+ return "Create new media";
+ }
+
+ @Override
+ public void addElement(Media element) {
+ getEntity().addDerivedUnitMedia(element);
+ }
+
+ @Override
+ public void removeElement(Media element) {
+ getEntity().removeDerivedUnitMedia(element);
+ }
+
+ @Override
+ public Media addExisting() {
+ return MediaSelectionDialog.select(getShell(), null);
+ }
+
+ @Override
+ public boolean allowAddExisting() {
+ return true;
+ }
+
+}