From 360810ab7ecc45e9bf8d58205fa68525025295b9 Mon Sep 17 00:00:00 2001 From: Patric Plitzner Date: Tue, 26 May 2015 09:30:38 +0000 Subject: [PATCH] - fixed NPE (#4448) --- .../taxeditor/ui/combo/TermComboElement.java | 25 +++-- .../taxeditor/ui/element/CdmFormFactory.java | 97 ++++++------------- .../section/description/ModifierElement.java | 4 +- .../section/description/StateDataElement.java | 2 +- 4 files changed, 46 insertions(+), 82 deletions(-) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java index 38f1fea81..14336ea79 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/combo/TermComboElement.java @@ -69,26 +69,28 @@ public class TermComboElement private List customPreferredTerms; + private boolean addEmptyElement; + public TermComboElement(CdmFormFactory formFactory, - ICdmFormElement parentElement, TermType termType, String labelString, T selection, + ICdmFormElement parentElement, TermType termType, String labelString, T selection, boolean addEmptyElement, int style) { - this(formFactory, parentElement, null, termType, null, labelString, selection, style); + this(formFactory, parentElement, null, termType, null, labelString, selection, addEmptyElement, style); } public TermComboElement(CdmFormFactory formFactory, - ICdmFormElement parentElement, TermVocabulary termVocabulary, String labelString, T selection, + ICdmFormElement parentElement, TermVocabulary termVocabulary, String labelString, T selection, boolean addEmptyElement, int style) { - this(formFactory, parentElement, null, null, termVocabulary, labelString, selection, style); + this(formFactory, parentElement, null, null, termVocabulary, labelString, selection, addEmptyElement, style); } public TermComboElement(CdmFormFactory formFactory, - ICdmFormElement parentElement, Class termClass, String labelString, T selection, + ICdmFormElement parentElement, Class termClass, String labelString, T selection, boolean addEmptyElement, int style) { - this(formFactory, parentElement, termClass, null, null, labelString, selection, style); + this(formFactory, parentElement, termClass, null, null, labelString, selection, addEmptyElement, style); } private TermComboElement(CdmFormFactory formFactory, - ICdmFormElement parentElement, Class termClass, TermType termType, TermVocabulary termVocabulary, String labelString, T selection, + ICdmFormElement parentElement, Class termClass, TermType termType, TermVocabulary termVocabulary, String labelString, T selection, boolean addEmptyElement, int style) { super(formFactory, parentElement); @@ -98,6 +100,7 @@ public class TermComboElement else{ this.termClass = (Class) DefinedTerm.class; } + this.addEmptyElement = addEmptyElement; if (labelString != null) { label = formFactory.createLabel(getLayoutComposite(), labelString); @@ -192,9 +195,11 @@ public class TermComboElement int i = 1; int index = 0; - // Add an empty element for when nothing was selected yet - combo.add(EMPTY_ELEMENT_LABEL); - terms.add(emptyElement); + if(addEmptyElement){ + // Add an empty element for when nothing was selected yet + combo.add(EMPTY_ELEMENT_LABEL); + terms.add(emptyElement); + } if (termComparator != null) { Collections.sort(preferredTerms, termComparator); diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java index 4ee762185..1eed12f36 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java @@ -773,105 +773,64 @@ public class CdmFormFactory extends FormToolkit { parentElement.addElement(element); return element; } - /** - *

- * createTermComboElement - *

- * * @deprecated Use {@link #createDefinedTermComboElement(TermType, ICdmFormElement, String, DefinedTermBase, int)} instead - * @param termComboType - * a - * {@link eu.eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.TermComboType} - * object. - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param labelString - * a {@link java.lang.String} object. - * @param selection - * a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase} - * object. - * @param style - * a int. - * @return a {@link eu.etaxonomy.taxeditor.ui.combo.TermComboElement} - * object. */ @Deprecated public TermComboElement createTermComboElement(Class termComboType, ICdmFormElement parentElement, String labelString, T selection, int style) { TermComboElement element = new TermComboElement(this, parentElement, termComboType, labelString, - selection, style); + selection, true, style); adapt(element); parentElement.addElement(element); return element; } - /** - *

- * createTermComboElement - *

- * - * @param termComboType - * a - * {@link eu.eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.TermComboType} - * object. - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param labelString - * a {@link java.lang.String} object. - * @param selection - * a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase} - * object. - * @param style - * a int. - * @return a {@link eu.etaxonomy.taxeditor.ui.combo.TermComboElement} - * object. - */ + public TermComboElement createDefinedTermComboElement( + TermType termType, + ICdmFormElement parentElement, + String labelString, + T selection, + int style) { + TermComboElement element = new TermComboElement(this, parentElement, termType, labelString, selection, true, style); + adapt(element); + parentElement.addElement(element); + return element; + } - public TermComboElement createDefinedTermComboElement( + public TermComboElement createDefinedTermComboElement( TermType termType, ICdmFormElement parentElement, String labelString, T selection, + boolean addEmptyElement, int style) { - TermComboElement element = new TermComboElement(this, parentElement, termType, labelString, selection, style); + TermComboElement element = new TermComboElement(this, parentElement, termType, labelString, selection, addEmptyElement, style); adapt(element); parentElement.addElement(element); return element; } - /** - *

- * createTermComboElement - *

- * - * @param termComboType - * a - * {@link eu.eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.TermComboType} - * object. - * @param parentElement - * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} - * object. - * @param labelString - * a {@link java.lang.String} object. - * @param selection - * a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase} - * object. - * @param style - * a int. - * @return a {@link eu.etaxonomy.taxeditor.ui.combo.TermComboElement} - * object. - */ + public TermComboElement createDefinedTermComboElement( + TermVocabulary termVocabulary, + ICdmFormElement parentElement, + String labelString, + T selection, + int style) { + TermComboElement element = new TermComboElement(this, parentElement, termVocabulary, labelString, selection, true, style); + adapt(element); + parentElement.addElement(element); + return element; + } public TermComboElement createDefinedTermComboElement( TermVocabulary termVocabulary, ICdmFormElement parentElement, String labelString, T selection, + boolean addEmptyElement, int style) { - TermComboElement element = new TermComboElement(this, parentElement, termVocabulary, labelString, selection, style); + TermComboElement element = new TermComboElement(this, parentElement, termVocabulary, labelString, selection, addEmptyElement, style); adapt(element); parentElement.addElement(element); return element; diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java index e5cefa90a..8b3219d88 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java @@ -83,13 +83,13 @@ public class ModifierElement extends AbstractEntityCollectionElement /** {@inheritDoc} */ @Override public void createControls(ICdmFormElement element, int style) { - combo_state = formFactory.createDefinedTermComboElement(TermType.State, element, "State", null, style); + combo_state = formFactory.createDefinedTermComboElement(TermType.State, element, "State", null, false, style); section_modifiers = formFactory.createModifierSection(getConversationHolder(), element, ExpandableComposite.TWISTIE); section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); text_modifyingText = formFactory.createTextWithLabelElement(element, "Modifying Text", null, style); -- 2.34.1