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