From 4858419735870f9ea75ff5a27615bcdea600ed92 Mon Sep 17 00:00:00 2001 From: Patrick Plitzner Date: Tue, 1 Sep 2015 11:15:17 +0200 Subject: [PATCH] Avoid exception loop when taxon name is null (#4996) --- .../name/NonViralNameDetailElement.java | 57 ++++++++----------- .../taxeditor/view/detail/DetailsViewer.java | 7 ++- 2 files changed, 31 insertions(+), 33 deletions(-) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java index cdea34cae..1213418a5 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/NonViralNameDetailElement.java @@ -46,39 +46,32 @@ public class NonViralNameDetailElement extends /** {@inheritDoc} */ @Override protected void createControls(ICdmFormElement formElement, final NonViralName entity, int style) { - //name can be null in rare cases. Temporary solution for #4221. May be obsolete when - //#4393 (Make changing name of a taxon possible in details view) is implemented. - if(entity==null){ - formFactory.createEmptyElement(formElement, "No name associated with this taxon."); + toggleable_cache = formFactory.createToggleableTextField(formElement, "Cache", entity.getTitleCache(), entity.isProtectedTitleCache() || entity.isProtectedFullTitleCache(), style); + + combo_nomenclaturalCode = formFactory.createEnumComboElement(NomenclaturalCode.class, formElement, style); + combo_nomenclaturalCode.setSelection(entity.getNomenclaturalCode()); + + //TODO RL + if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){ + toggleable_cache.setVisible(false); + combo_nomenclaturalCode.setVisible(false); } - else { - toggleable_cache = formFactory.createToggleableTextField(formElement, "Cache", entity.getTitleCache(), entity.isProtectedTitleCache() || entity.isProtectedFullTitleCache(), style); - - combo_nomenclaturalCode = formFactory.createEnumComboElement(NomenclaturalCode.class, formElement, style); - combo_nomenclaturalCode.setSelection(entity.getNomenclaturalCode()); - - //TODO RL - if(PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){ - toggleable_cache.setVisible(false); - combo_nomenclaturalCode.setVisible(false); - } - - section_name = formFactory.createNameDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); - section_name.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); - addControl(section_name); - addElement(section_name); - section_author = formFactory.createAuthorshipDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); - section_author.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); - addControl(section_author); - addElement(section_author); - - //TODO RL - if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){ - section_hybrid = formFactory.createHybridDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE); - section_hybrid.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); - addControl(section_hybrid); - addElement(section_hybrid); - } + + section_name = formFactory.createNameDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + section_name.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); + addControl(section_name); + addElement(section_name); + section_author = formFactory.createAuthorshipDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED); + section_author.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); + addControl(section_author); + addElement(section_author); + + //TODO RL + if(!PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.IS_RL)){ + section_hybrid = formFactory.createHybridDetailSection(getConversationHolder(), formElement, null, ExpandableComposite.TWISTIE); + section_hybrid.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1)); + addControl(section_hybrid); + addElement(section_hybrid); } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java index 04bb9207f..4856e3ff7 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewer.java @@ -204,7 +204,12 @@ public class DetailsViewer extends AbstractCdmDataViewer { destroySections(); if (input instanceof TaxonBase) { - createTaxonSections(rootElement); + if(((TaxonBase) input).getName()==null){ + createEmptySection(rootElement); + } + else{ + createTaxonSections(rootElement); + } } else if (input instanceof NonViralName) { createNameSections(rootElement); -- 2.34.1