import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.forms.IFormColors;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
import org.eclipse.ui.forms.widgets.ExpandableComposite;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.Section;
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.common.DOI;
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
+import eu.etaxonomy.cdm.model.agent.ORCID;
import eu.etaxonomy.cdm.model.agent.Person;
import eu.etaxonomy.cdm.model.agent.Team;
import eu.etaxonomy.cdm.model.common.Annotation;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.Credit;
-import eu.etaxonomy.cdm.model.common.DefinedTerm;
-import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.common.Extension;
-import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
-import eu.etaxonomy.cdm.model.common.Group;
import eu.etaxonomy.cdm.model.common.ICdmBase;
-import eu.etaxonomy.cdm.model.common.IEnumTerm;
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
import eu.etaxonomy.cdm.model.common.Identifier;
import eu.etaxonomy.cdm.model.common.LSID;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.Representation;
-import eu.etaxonomy.cdm.model.common.TermBase;
-import eu.etaxonomy.cdm.model.common.TermType;
-import eu.etaxonomy.cdm.model.common.TermVocabulary;
import eu.etaxonomy.cdm.model.common.TimePeriod;
-import eu.etaxonomy.cdm.model.common.User;
+import eu.etaxonomy.cdm.model.common.VerbatimTimePeriod;
import eu.etaxonomy.cdm.model.common.VersionableEntity;
import eu.etaxonomy.cdm.model.description.CategoricalData;
import eu.etaxonomy.cdm.model.description.CommonTaxonName;
import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
import eu.etaxonomy.cdm.model.description.Distribution;
import eu.etaxonomy.cdm.model.description.Feature;
+import eu.etaxonomy.cdm.model.description.FeatureState;
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
import eu.etaxonomy.cdm.model.description.KeyStatement;
import eu.etaxonomy.cdm.model.description.MeasurementUnit;
import eu.etaxonomy.cdm.model.location.NamedArea;
import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
import eu.etaxonomy.cdm.model.location.Point;
+import eu.etaxonomy.cdm.model.media.ExternalLink;
import eu.etaxonomy.cdm.model.media.ImageFile;
import eu.etaxonomy.cdm.model.media.Media;
import eu.etaxonomy.cdm.model.media.MediaRepresentation;
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.cdm.model.name.NomenclaturalStatus;
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
+import eu.etaxonomy.cdm.model.name.TextualTypeDesignation;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
+import eu.etaxonomy.cdm.model.permission.GrantedAuthorityImpl;
+import eu.etaxonomy.cdm.model.permission.Group;
+import eu.etaxonomy.cdm.model.permission.User;
import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.cdm.model.taxon.TaxonNodeAgentRelation;
+import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
+import eu.etaxonomy.cdm.model.term.DefinedTerm;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.IEnumTerm;
+import eu.etaxonomy.cdm.model.term.Representation;
+import eu.etaxonomy.cdm.model.term.TermBase;
+import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.model.term.TermVocabulary;
import eu.etaxonomy.cdm.strategy.parser.ParserProblem;
-import eu.etaxonomy.taxeditor.editor.IDistributionEditor;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.StoreUtil;
import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
-import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
+import eu.etaxonomy.taxeditor.ui.combo.InverseTermWrapper;
+import eu.etaxonomy.taxeditor.ui.combo.MisappliedRelationshipComboElement;
+import eu.etaxonomy.taxeditor.ui.combo.NameRelationshipTypeCombo;
import eu.etaxonomy.taxeditor.ui.combo.VocabularyComboElement;
+import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
import eu.etaxonomy.taxeditor.ui.dialog.CloneClassificationDetailElement;
import eu.etaxonomy.taxeditor.ui.element.MinMaxTextSection.UnitType;
import eu.etaxonomy.taxeditor.ui.mvc.element.DateElement;
import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeAgentRelationCollectionSection;
import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeDetailElement;
import eu.etaxonomy.taxeditor.ui.section.classification.TaxonNodeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.common.ExternalLinksElement;
+import eu.etaxonomy.taxeditor.ui.section.common.ExternalLinksSection;
import eu.etaxonomy.taxeditor.ui.section.common.ReferenceEntityDetailElement;
import eu.etaxonomy.taxeditor.ui.section.common.ReferencedEntityDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.description.CommonNameSourceElement;
import eu.etaxonomy.taxeditor.ui.section.description.DerivedUnitElement;
import eu.etaxonomy.taxeditor.ui.section.description.DescribedSpecimenSection;
import eu.etaxonomy.taxeditor.ui.section.description.DescriptionDetailElement;
import eu.etaxonomy.taxeditor.ui.section.description.detail.TextDataDetailElement;
import eu.etaxonomy.taxeditor.ui.section.feature.CharacterDetailElement;
import eu.etaxonomy.taxeditor.ui.section.feature.CharacterDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.feature.CharacterNodeDetailSection;
import eu.etaxonomy.taxeditor.ui.section.feature.FeatureDistributionDetailElement;
import eu.etaxonomy.taxeditor.ui.section.feature.FeatureDistributionDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.FeatureNodeDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.feature.FeatureNodeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.FeatureTreeDetailElement;
+import eu.etaxonomy.taxeditor.ui.section.feature.FeatureTreeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.InapplicableIfCollectionElement;
+import eu.etaxonomy.taxeditor.ui.section.feature.InapplicableIfEntityCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.feature.OnlyApplicableIfCollectionElement;
+import eu.etaxonomy.taxeditor.ui.section.feature.OnlyApplicableIfEntityCollectionSection;
import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityCollectionElement;
import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityDetailElement;
import eu.etaxonomy.taxeditor.ui.section.grantedAuthority.GrantedAuthorityDetailSection;
import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection;
import eu.etaxonomy.taxeditor.ui.section.name.ProtologueElement;
import eu.etaxonomy.taxeditor.ui.section.name.ProtologueSection;
+import eu.etaxonomy.taxeditor.ui.section.name.RuleConsideredElement;
import eu.etaxonomy.taxeditor.ui.section.name.SpecimenTypeDesignationElement;
+import eu.etaxonomy.taxeditor.ui.section.name.TextTypeDesignationElement;
import eu.etaxonomy.taxeditor.ui.section.name.TypeDesignationSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.CollectingAreaDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.CollectingAreasDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.CollectionDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.CurrentDeterminationDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.GeoScopeDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.GeoScopePolyKeyDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.NamedAreaDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.OriginalLabelDataSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.SourceCollectionDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenCollectionDetailElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenCollectionDetailSection;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenHierarchyDetailElement;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenHierarchyDetailSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.association.DerivedUnitTypeDesignationElement;
import eu.etaxonomy.taxeditor.ui.section.occurrence.association.DerivedUnitTypeDesignationSection;
import eu.etaxonomy.taxeditor.ui.section.occurrence.association.TaxonAssociationDetailElement;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.StateVocabularyCollectionSection;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureCollectionElement;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.StatisticalMeasureCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermMediaSection;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermVocabularyDetailElement;
import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermVocabularyDetailSection;
+import eu.etaxonomy.taxeditor.ui.selection.CommonNameReferenceSelectionElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElementWithAbbreviatedTitle;
import eu.etaxonomy.taxeditor.ui.selection.NomenclaturalAuthorTeamSelectionElement;
import eu.etaxonomy.taxeditor.ui.selection.TaxonNodeSelectionElement;
+import eu.etaxonomy.taxeditor.view.detail.CdmSectionPart;
/**
* <p>
*
* @author n.hoffmann
* @created Feb 24, 2010
- * @version 1.0
*/
public class CdmFormFactory extends FormToolkit {
* object.
*/
public void destroySelectionArbitrator(SelectionArbitrator selectionArbitrator) {
+ if(selectionArbitrator==null){
+ return;
+ }
removeSelectionListener(selectionArbitrator);
if (selectionProvider != null) {
selectionProvider.removeSelectionChangedListener(selectionArbitrator);
* object.
*
* @param Representation
- * a {@link eu.etaxonomy.cdm.model.common.Representation} object.
+ * a {@link eu.etaxonomy.cdm.model.term.Representation} object.
* @param textHeight
* a int.
* @param style
* object.
*
* @param Representation
- * a {@link eu.etaxonomy.cdm.model.common.Representation} object.
+ * a {@link eu.etaxonomy.cdm.model.term.Representation} object.
* @param textHeight
* a int.
* @param style
return element;
}
- /**
- * <p>
- * createMultiLanguageTextElement
- * </p>
- *
- * @param parentElement
- * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
- * object.
- *
- * @param term
- * a {@link eu.etaxonomy.cdm.model.common.Representation} object.
- * @param textHeight
- * a int.
- * @param style
- * a int.
- * @return a
- * {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
- * object.
- */
- public RepresentationElement createRepresentationElement(ICdmFormElement parentElement, TermBase term, int textHeight, int style, boolean fillDetails) {
- RepresentationElement element = new RepresentationElement(this, parentElement, term, textHeight, style, fillDetails);
- adapt(element);
- parentElement.addElement(element);
- return element;
- }
-
- /**
- * <p>
- * createMultiLanguageTextElement
- * </p>
- *
- * @param parentElement
- * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
- * object.
- *
- * @param term
- * a {@link eu.etaxonomy.cdm.model.common.Representation} object.
- * @param textHeight
- * a int.
- * @param style
- * a int.
- * @return a
- * {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
- * object.
- */
- public TranslatableRepresentationElement createTranslatableRepresentationElement(ICdmFormElement parentElement, TermBase term, int textHeight, int style, boolean fillDetails) {
- TranslatableRepresentationElement element = new TranslatableRepresentationElement(this, parentElement, term, textHeight, style, fillDetails);
- adapt(element);
- parentElement.addElement(element);
- return element;
- }
-
public KeyStatementElement createKeyStatementElement(ICdmFormElement parentElement, String labelString,
KeyStatement keyStatement, int textHeight, int style) {
KeyStatementElement element = new KeyStatementElement(this, parentElement, labelString, keyStatement,
parentElement.addElement(element);
return element;
}
+ public UriWithLabelElement createUriWithLabelElement(ICdmFormElement parentElement, String labelString,
+ URI initialUri,Integer textHeight, int style) {
+ UriWithLabelElement element = new UriWithLabelElement(this, parentElement, labelString, initialUri, textHeight, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
+
+ public DoiWithLabelElement createDoiWithLabelElement(ICdmFormElement parentElement, String labelString,
+ DOI initialDoi, int style) {
+ DoiWithLabelElement element = new DoiWithLabelElement(this, parentElement, labelString, initialDoi, null, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+ public DoiWithLabelElement createDoiWithLabelElement(ICdmFormElement parentElement, String labelString,
+ DOI initialDoi,Integer textHeight, int style) {
+ DoiWithLabelElement element = new DoiWithLabelElement(this, parentElement, labelString, initialDoi, textHeight, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
+ public OrcidWithLabelElement createOrcidWithLabelElement(ICdmFormElement parentElement, String labelString,
+ ORCID initialDoi, int style) {
+ OrcidWithLabelElement element = new OrcidWithLabelElement(this, parentElement, labelString, initialDoi, null, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+ public OrcidWithLabelElement createDoiWithLabelElement(ICdmFormElement parentElement, String labelString,
+ ORCID initialDoi,Integer textHeight, int style) {
+ OrcidWithLabelElement element = new OrcidWithLabelElement(this, parentElement, labelString, initialDoi, textHeight, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
/**
* @param element
T selection,
int style,
Comparator<T> comparator) {
- return this.createDefinedTermComboElement(termType, null, parentElement, labelString, selection, true, style, false, comparator);
+ return this.createDefinedTermComboElement(termType, null, null, parentElement, labelString, selection, true, style, false, comparator);
}
public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
T selection,
boolean addEmptyElement,
int style) {
- return this.createDefinedTermComboElement(termType, null, parentElement, labelString, selection, addEmptyElement, style, false, null);
+ return this.createDefinedTermComboElement(termType, null, null, parentElement, labelString, selection, addEmptyElement, style, false, null);
}
public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
String labelString,
T selection,
int style) {
- return this.createDefinedTermComboElement(termType, null, parentElement, labelString, selection, true, style, false, null);
+ return this.createDefinedTermComboElement(termType, null, null, parentElement, labelString, selection, true, style, false, null);
+ }
+
+ public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
+ List<T> terms,
+ ICdmFormElement parentElement,
+ String labelString,
+ T selection,
+ int style) {
+ return this.createDefinedTermComboElement(null, null, terms, parentElement, labelString, selection, true, style, false, null);
+ }
+ public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
+ List<T> terms,
+ ICdmFormElement parentElement,
+ String labelString,
+ T selection,
+ boolean addEmptyElement,
+ int style) {
+ return this.createDefinedTermComboElement(null, null, terms, parentElement, labelString, selection, addEmptyElement, style, false, null);
}
public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
TermType termType,
boolean addEmptyElement,
int style,
boolean useAbbrevLabel) {
- return createDefinedTermComboElement(termType, null, parentElement, labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
+ return createDefinedTermComboElement(termType, null, null, parentElement, labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
}
String labelString,
T selection,
int style) {
- return this.createDefinedTermComboElement(null, termVocabulary, parentElement, labelString, selection, true, style, false, null);
+ return this.createDefinedTermComboElement(null, termVocabulary, null, parentElement, labelString, selection, true, style, false, null);
}
public <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
boolean addEmptyElement,
int style,
boolean useAbbrevLabel) {
- return createDefinedTermComboElement(null, termVocabulary, parentElement, labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
+ return createDefinedTermComboElement(null, termVocabulary, null, parentElement, labelString, selection, addEmptyElement, style, useAbbrevLabel, null);
}
private <T extends DefinedTermBase> TermComboElement<T> createDefinedTermComboElement(
TermType termType,
TermVocabulary<?> termVocabulary,
+ List<T> terms,
ICdmFormElement parentElement,
String labelString,
T selection,
adapt(element);
parentElement.addElement(element);
return element;
+ }else if (terms != null){
+
+ TermComboElement<T> element = new TermComboElement<T>(this, parentElement, terms, labelString, selection, addEmptyElement, style, useAbbrevLabel);
+ if (comparator!= null){
+ element.setTermComparator(comparator);
+ }
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
}
- else{
+ else {
//this should never happen
return null;
}
}
+ public NameRelationshipTypeCombo createNameRelationshipTypeCombo(ICdmFormElement parentElement,
+ String labelString,
+ int style,
+ boolean useAbbrevLabel,
+ Comparator<NameRelationshipType> comparator) {
+
+ NameRelationshipTypeCombo<InverseTermWrapper> element = new NameRelationshipTypeCombo(this, parentElement, labelString, true, style, useAbbrevLabel, comparator);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
+ public MisappliedRelationshipComboElement createMisappliedRelationshipComboElement(
+ ICdmFormElement parentElement,
+ String labelString,
+ TaxonRelationshipType selection,
+ int style) {
+ MisappliedRelationshipComboElement combo = new MisappliedRelationshipComboElement(this, parentElement, labelString, selection, false, style, false);
+ adapt(combo);
+ parentElement.addElement(combo);
+ return combo;
+ }
+
public <T extends IEnumTerm<T>> EnumComboElement<T> createEnumComboElement(
Class<T> enumComboType, ICdmFormElement parentElement,
int style) {
section.addFocusListener(selectionFocusHandler);
section.setPropertyChangeListeners(propertyChangeListeners);
+ section.addExpansionListener(new ExpansionAdapter(){
+ @Override
+ public void expansionStateChanged(ExpansionEvent e) {
+ super.expansionStateChanged(e);
+ if(section.getEntity()!=null){
+ PreferencesUtil.setStringValue(StoreUtil.getPrefKey(section.getClass(), section.getEntity().getClass().getCanonicalName()), e.getState()?CdmSectionPart.EXPANDED:CdmSectionPart.COLLAPSED);
+ }
+ }
+ });
+
if (section.getToggle() != null) {
section.getToggle().setHoverDecorationColor(getColors().getColor(IFormColors.TB_TOGGLE_HOVER));
section.getToggle().setDecorationColor(getColors().getColor(IFormColors.TB_TOGGLE));
String initialText, boolean initialState, int style) {
ToggleableTextElement element = new ToggleableTextElement(this, parentElement, labelString, initialText,
initialState, style | orientation);
+
adapt(element);
parentElement.addElement(element);
return element;
return element;
}
+ /**
+ * <p>
+ * createVerbatimTimePeriodElement
+ * </p>
+ *
+ * @param parentElement
+ * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+ * object.
+ * @param labelString
+ * a {@link java.lang.String} object.
+ * @param timePeriod
+ * a {@link eu.etaxonomy.cdm.model.common.VerbatimTimePeriod} object.
+ * @param style
+ * a int.
+ * @return a {@link eu.etaxonomy.taxeditor.ui.element.VerbatimTimePeriodElement}
+ * object.
+ */
+ public VerbatimTimePeriodElement createVerbatimTimePeriodElement(ICdmFormElement parentElement, String labelString,
+ VerbatimTimePeriod timePeriod, int style) {
+ VerbatimTimePeriodElement element = new VerbatimTimePeriodElement(this, parentElement, labelString, timePeriod, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
+
+
/**
* <p>
* createGatheringEventUnitElement
return element;
}
-
-
/**
- * @param conversationHolder
- * @param parent
- * @param detailsViewer
- * @param i
- * @return
+ * Creates an empty section with the given message.<br>
+ * If message is <code>null</code> a default message will be displayed.
*/
- public EmptySection createEmptySection(CdmFormFactory formFactory, ICdmFormElement parentElement, int style) {
- EmptySection section = new EmptySection(formFactory, parentElement, style);
+ public EmptySection createEmptySection(String message, CdmFormFactory formFactory, ICdmFormElement parentElement, int style) {
+ EmptySection section = new EmptySection(message, formFactory, parentElement, style);
parentElement.addElement(section);
adapt(section);
return section;
* @return a {@link eu.etaxonomy.taxeditor.ui.element.DateDetailSection}
* object.
*/
- public DateDetailSection createDateDetailSection(ICdmFormElement parentElement, int style) {
- DateDetailSection section = new DateDetailSection(this, parentElement, style);
+ public DateDetailSection<TimePeriod> createDateDetailSection(ICdmFormElement parentElement, int style) {
+ DateDetailSection<TimePeriod> section = new DateDetailSection<TimePeriod>(this, parentElement, false, style);
+ parentElement.addElement(section);
+ adapt(section);
+ return section;
+ }
+
+ /**
+ * <p>
+ * createVerbatimDateDetailSection
+ * </p>
+ *
+ * @param parentElement
+ * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+ * object.
+ * @param style
+ * a int.
+ * @return a {@link eu.etaxonomy.taxeditor.ui.element.VerbatimDateDetailSection}
+ * object.
+ */
+ public DateDetailSection<VerbatimTimePeriod> createVerbatimDateDetailSection(ICdmFormElement parentElement, int style) {
+ DateDetailSection<VerbatimTimePeriod> section
+ = new DateDetailSection<VerbatimTimePeriod>(this, parentElement, true, style);
parentElement.addElement(section);
adapt(section);
return section;
return element;
}
- public AbstractFormSection createDefinedTermDetailSection(Class definedTermClass, ConversationHolder conversation,
+ public DefinedTermDetailSection createDefinedTermDetailSection(Class definedTermClass, ConversationHolder conversation,
ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style) {
- AbstractFormSection section = new DefinedTermDetailSection(this, definedTermClass, conversation, parentElement,
+ DefinedTermDetailSection section = new DefinedTermDetailSection(this, definedTermClass, conversation, parentElement,
selectionProvider, style);
parentElement.addElement(section);
}
+ public TermMediaSection createTermMediaSection(ConversationHolder conversation,
+ ICdmFormElement parentElement, int style) {
+ TermMediaSection section = new TermMediaSection(this, conversation, parentElement, style);
+ parentElement.addElement(section);
+ adapt(section);
+ return section;
+
+ }
+
/**
* @param definedTermClass
* @param formElement
return element;
}
+ public CharacterNodeDetailSection createCharacterNodeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+ CharacterNodeDetailSection section = new CharacterNodeDetailSection(this, conversation, parentElement, selectionProvider, style);
+ addAndAdaptSection(parentElement, section);
+ return section;
+ }
+
public CharacterDetailSection createCharacterDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
CharacterDetailSection section = new CharacterDetailSection(this, conversation, parentElement, selectionProvider, style);
addAndAdaptSection(parentElement, section);
return section;
}
+ public CharacterNodeDetailElement createCharacterNodeDetailElement(ICdmFormElement parentElement, int style){
+ CharacterNodeDetailElement element = new CharacterNodeDetailElement(this, parentElement);
+ addAndAdaptElement(parentElement, element);
+ return element;
+ }
+
public CharacterDetailElement createCharacterDetailElement(ICdmFormElement parentElement, int style){
CharacterDetailElement element = new CharacterDetailElement(this, parentElement);
addAndAdaptElement(parentElement, element);
return element;
}
+ public FeatureTreeDetailElement createFeatureTreeDetailElement(ICdmFormElement parentElement, int style){
+ FeatureTreeDetailElement element = new FeatureTreeDetailElement(this, parentElement);
+ addAndAdaptElement(parentElement, element);
+ return element;
+ }
+
+ public FeatureNodeDetailElement createFeatureNodeDetailElement(ICdmFormElement parentElement, int style){
+ FeatureNodeDetailElement element = new FeatureNodeDetailElement(this, parentElement);
+ addAndAdaptElement(parentElement, element);
+ return element;
+ }
+
//--------DetailSections---------
public NameDetailSection createNameDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
return section;
}
+ public FeatureNodeDetailSection createFeatureNodeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+ FeatureNodeDetailSection section = new FeatureNodeDetailSection(this, conversation, parentElement, selectionProvider, style);
+ addAndAdaptSection(parentElement, section);
+ return section;
+ }
+
+ public FeatureTreeDetailSection createFeatureTreeDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
+ FeatureTreeDetailSection section = new FeatureTreeDetailSection(this, conversation, parentElement, selectionProvider, style);
+ addAndAdaptSection(parentElement, section);
+ return section;
+ }
+
public ReferenceDetailSection createReferenceDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
ReferenceDetailSection section = new ReferenceDetailSection(this, conversation, parentElement, selectionProvider, style);
addAndAdaptSection(parentElement, section);
return section;
}
- public SpecimenHierarchyDetailSection createSpecimenHierarchyDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
- SpecimenHierarchyDetailSection section = new SpecimenHierarchyDetailSection(this, conversation, parentElement, selectionProvider, style);
- addAndAdaptSection(parentElement, section);
- return section;
- }
-
public DerivedUnitBaseDetailSection createDerivedUnitBaseDetailSection(ConversationHolder conversation, ICdmFormElement parentElement, ISelectionProvider selectionProvider, int style){
DerivedUnitBaseDetailSection section = new DerivedUnitBaseDetailSection(this, conversation, parentElement, selectionProvider, style);
addAndAdaptSection(parentElement, section);
return element;
}
- public SpecimenHierarchyDetailElement createSpecimenHierarchyDetailElement(ICdmFormElement parentElement) {
- SpecimenHierarchyDetailElement element = new SpecimenHierarchyDetailElement(this, parentElement);
- addAndAdaptElement(parentElement, element);
- return element;
- }
-
public DerivedUnitBaseDetailElement createDerivedUnitBaseDetailElement(ICdmFormElement parentElement) {
DerivedUnitBaseDetailElement element = new DerivedUnitBaseDetailElement(this, parentElement);
addAndAdaptElement(parentElement, element);
return section;
}
+ public InapplicableIfEntityCollectionSection createInapplicableIfEntityCollectionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+ InapplicableIfEntityCollectionSection section = new InapplicableIfEntityCollectionSection(this, conversation, parentElement, style);
+ addAndAdaptSection(parentElement, section);
+ return section;
+ }
+
+ public OnlyApplicableIfEntityCollectionSection createOnlyApplicableIfEntityCollectionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+ OnlyApplicableIfEntityCollectionSection section = new OnlyApplicableIfEntityCollectionSection(this, conversation, parentElement, style);
+ addAndAdaptSection(parentElement, section);
+ return section;
+ }
+
public AnnotationSection createAnnotationSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
AnnotationSection section = new AnnotationSection(this, conversation, parentElement, style);
addAndAdaptSection(parentElement, section);
addAndAdaptSection(parentElement, section);
return section;
}
-
public DescriptionElementSourceSection createDescriptionElementSourceSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
DescriptionElementSourceSection section = new DescriptionElementSourceSection(this, conversation, parentElement, style);
addAndAdaptSection(parentElement, section);
return section;
}
+ public DescriptionElementSourceSection createDescriptionElementSourceSection(ConversationHolder conversation, ICdmFormElement parentElement, Reference defaultSource, int style){
+ DescriptionElementSourceSection section = new DescriptionElementSourceSection(this, conversation, parentElement, defaultSource, style);
+ addAndAdaptSection(parentElement, section);
+ return section;
+ }
public ExtensionSection createExtensionSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
ExtensionSection section = new ExtensionSection(this, conversation, parentElement, style);
addAndAdaptSection(parentElement, section);
return section;
}
+ public ExternalLinksSection createExternalLinksSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
+ ExternalLinksSection section = new ExternalLinksSection(this, conversation, parentElement, style);
+ addAndAdaptSection(parentElement, section);
+ return section;
+ }
public RightsSection createRightsSection(ConversationHolder conversation, ICdmFormElement parentElement, int style){
RightsSection section = new RightsSection(this, conversation, parentElement, style);
public AbstractEntityCollectionElement createEntityCollectionElement(AbstractFormSection parentElement,
Object versionableEntity, SelectionListener removeListener, Color backgroundColor, int style) {
- AbstractEntityCollectionElement element = null;
+ AbstractEntityCollectionElement<?> element = null;
Object entity = HibernateProxyHelper.deproxy(versionableEntity);
element = new CreditElement(this, parentElement, (Credit) entity, removeListener, style);
} else if (entity instanceof Extension) {
element = new ExtensionElement(this, parentElement, (Extension) entity, removeListener, style);
+ } else if (entity instanceof ExternalLink) {
+ element = new ExternalLinksElement(this, parentElement, (ExternalLink) entity, removeListener, style);
} else if (entity instanceof Marker) {
element = new MarkerElement(this, parentElement, (Marker) entity, removeListener, style);
} else if (entity instanceof TaxonNodeAgentRelation) {
style);
} else if (entity instanceof Rights) {
element = new RightsElement(this, parentElement, (Rights) entity, removeListener, style);
+ } else if (entity instanceof DescriptionElementSource && parentElement.getEntity() instanceof CommonTaxonName) {
+ element = new CommonNameSourceElement(this, parentElement, (DescriptionElementSource) entity,
+ removeListener, style);
+ } else if (entity instanceof DescriptionElementSource && parentElement.getEntity() instanceof Distribution) {
+ Composite parent = null;
+ if (parentElement instanceof DescriptionElementSourceSection){
+ parent = ((DescriptionElementSourceSection)parentElement).getParent();
+ }
+ if(parent != null){
+ Composite grandParent = parent.getParent();
+ }
+ element = new DescriptionElementSourceElement(this, parentElement, (DescriptionElementSource) entity,
+ removeListener, style, false);
} else if (entity instanceof DescriptionElementSource) {
element = new DescriptionElementSourceElement(this, parentElement, (DescriptionElementSource) entity,
- removeListener, style);
- } else if (entity instanceof TaxonNodeAgentRelation) {
+ removeListener, style, false);
+ }else if (entity instanceof TaxonNodeAgentRelation) {
element = new TaxonNodeAgentRelationCollectionElement(this, parentElement, (TaxonNodeAgentRelation) entity,
removeListener,backgroundColor, style);
}
} else if (entity instanceof NameTypeDesignation) {
element = new NameTypeDesignationElement(this, parentElement, (NameTypeDesignation) entity, removeListener,
style);
+ } else if (entity instanceof TextualTypeDesignation) {
+ element = new TextTypeDesignationElement(this, parentElement, (TextualTypeDesignation) entity, removeListener,
+ style);
} else if (entity instanceof NameRelationship) {
element = new NameRelationshipDetailElement(this, parentElement, (NameRelationship) entity, removeListener,
style);
}
} else if (entity instanceof NamedArea) {
- element = new NamedAreaDetailElement(this, parentElement, (NamedArea) entity, removeListener, style);
+ element = new CollectingAreaDetailElement(this, parentElement, (NamedArea) entity, removeListener, style);
} else if (entity instanceof DeterminationEvent) {
element = new DeterminationEventDetailElement(this, parentElement, (DeterminationEvent) entity, removeListener, style);
} else if (entity instanceof User) {
element = new MeasurementUnitCollectionElement(this, parentElement, (MeasurementUnit) entity, removeListener, backgroundColor, style);
} else if (entity instanceof StatisticalMeasure) {
element = new StatisticalMeasureCollectionElement(this, parentElement, (StatisticalMeasure) entity, removeListener, backgroundColor, style);
+ } else if (entity instanceof FeatureState && parentElement instanceof InapplicableIfEntityCollectionSection) {
+ element = new InapplicableIfCollectionElement(this, parentElement, (FeatureState) entity, removeListener, backgroundColor, style);
+ } else if (entity instanceof FeatureState && parentElement instanceof OnlyApplicableIfEntityCollectionSection) {
+ element = new OnlyApplicableIfCollectionElement(this, parentElement, (FeatureState) entity, removeListener, backgroundColor, style);
}
//check for parent section when entity is null
//this happens when AbstractUnboundEntityCollectionSection is used
- if(entity==null){
+ if(element==null){
if(parentElement instanceof ScopeSection || parentElement instanceof ScopeRestrictionSection){
element = new ScopeElement(this,
parentElement,
if (element == null) {
- MessagingUtils.messageDialog("No element for entity", this,
- "Could not generate element for entity. Looks like the case is not handled already. Check implementation. Entity: "
- + entity, null);
+ MessagingUtils.messageDialog(
+ String.format("Error when creating section %s",
+ parentElement.getClass().getSimpleName()),
+ this,
+ String.format("Could not generate collection element for entity of class %s."
+ + " Looks like the case is not yet handled. Check implementation.\n"
+ + "Entity: %s", entity.getClass(), entity.toString()), null);
}
else{
* @return a {@link EntitySelectionElement} object.
*/
public <T extends CdmBase> EntitySelectionElement<T> createSelectionElement(Class<T> clazz,
- ConversationHolder conversation, ICdmFormElement parentElement, String labelString, T selection, int mode,
+ ICdmFormElement parentElement, String labelString, T selection, int mode,
+ int style, Integer limit) {
+ EntitySelectionElement<T> element = new EntitySelectionElement<T>(this,
+ parentElement, clazz,
+ labelString, selection, mode, style, limit);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
+ public <T extends CdmBase> EntitySelectionElement<T> createSelectionElement(Class<T> clazz,
+ ICdmFormElement parentElement, String labelString, T selection, int mode,
int style, boolean filterElement) {
EntitySelectionElement<T> element = new EntitySelectionElement<T>(this, //conversation,
parentElement, clazz,
// ConversationHolder conversation,
ICdmFormElement parentElement, String labelString, T selection, int mode,
int style) {
- EntitySelectionElement<T> element = new EntitySelectionElement<T>(this, //conversation,
+ EntitySelectionElement<T> element = new EntitySelectionElement<T>(this,
parentElement, clazz,
labelString, selection, mode, style);
adapt(element);
return element;
}
+ public CommonNameReferenceSelectionElement createCommonNameReferenceSelectionElement(ICdmFormElement parentElement, String labelString, Reference selection, int mode,
+ int style) {
+ CommonNameReferenceSelectionElement element = new CommonNameReferenceSelectionElement(this,
+ parentElement, labelString, selection, mode, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
/**
* <p>
* Creates a selection element for the given type T which shows only the <b>abbreviated</b> title as the label.
ICdmFormElement parentElement, String labelString, TaxonNode selection, int mode, int style) {
TaxonNodeSelectionElement element = new TaxonNodeSelectionElement(this, //conversation,
parentElement,
- labelString, selection, mode, style);
+ labelString, selection, mode, style, null);
adapt(element);
parentElement.addElement(element);
return element;
}
+ public TaxonNodeSelectionElement createTaxonNodeSelectionElement(ConversationHolder conversation,
+ ICdmFormElement parentElement, String labelString, TaxonNode selection, int mode, int style, Integer limit) {
+ TaxonNodeSelectionElement element = new TaxonNodeSelectionElement(this, //conversation,
+ parentElement,
+ labelString, selection, mode, style, limit);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
// public NomenclaturalAuthorTeamSelectionElement createNomenclaturalAuthorTeamSelectionElement(
// ConversationHolder conversation, ICdmFormElement parentElement, String labelString, Team selection,
return labelElement;
}
+
+
// public DateElementFormElement createDateElementForm(ICdmFormElement formElement, String labelText, DateTime dateTime, int style){
// Label label = new Label(formElement.getLayoutComposite(), style);
// label.setText(labelText+" (yyyy-MM-dd)");
Label label = new Label(formElement.getLayoutComposite(), style);
label.setText(labelText);
label.setLayoutData(new TableWrapData(TableWrapData.LEFT, TableWrapData.MIDDLE, 1, 1));
- DateElement dateElement = new DateElement(this, formElement.getLayoutComposite(), dateTime, labelText, style, editableText);
+ DateElement dateElement = new DateElement(formElement.getLayoutComposite(), dateTime, labelText, style, editableText);
dateElement.initController(this, formElement);
dateElement.setLayoutData(new TableWrapData(TableWrapData.LEFT, TableWrapData.MIDDLE, 1, 1));
return dateElement;
style);
} else if (entity instanceof Distribution && !enabled) {
detailedDescriptionElement = new DistributionDetailElement(this, parentElement, (Distribution) entity,
- style);
- detailedDescriptionElement.setEnabled(enabled);
+ enabled, style);
} else if (entity instanceof Distribution) {
detailedDescriptionElement = new DistributionDetailElement(this, parentElement, (Distribution) entity,
- style);
+ true, style);
}else if (entity instanceof IndividualsAssociation) {
detailedDescriptionElement = new IndividualsAssociationDetailElement(this, parentElement,
(IndividualsAssociation) entity, style);
}
+ /**
+ * <p>
+ * createTextWithLabelElement
+ * </p>
+ *
+ * @param parentElement
+ * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+ * object.
+ * @param labelString
+ * a {@link java.lang.String} object.
+ * @param initialText
+ * a {@link java.lang.String} object.
+ * @param textLimit maximal number of characters allowed
+ * @param style
+ * a int.
+ * @return a {@link eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement}
+ * object.
+ */
+ public RuleConsideredElement createRuleConsideredElement(ICdmFormElement parentElement, String labelString, boolean isShowCodeEdition, int style) {
+ RuleConsideredElement element = new RuleConsideredElement(this, parentElement, labelString, isShowCodeEdition, style);
+ adapt(element);
+ parentElement.addElement(element);
+ return element;
+ }
+
// public RichTextWithLabelElement createRichTextLabelElement(ICdmFormElement parentElement, String labelString, String initialText, int textHeight, int style) {
// RichTextWithLabelElement element = new RichTextWithLabelElement(this, parentElement, labelString,