From dbe4fe949be6e79bcb55a24e3f0d3b456ce98687 Mon Sep 17 00:00:00 2001 From: Patrick Plitzner Date: Wed, 12 Apr 2017 08:04:05 +0200 Subject: [PATCH] ref #6566 Avoid NPE when initializing term preference menu (e4 specific) --- .../editor/definedterm/DefinedTermMenu.java | 69 ++++++++++--------- 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermMenu.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermMenu.java index da41ff5e2..5acacce6c 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermMenu.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermMenu.java @@ -30,6 +30,7 @@ import org.eclipse.ui.menus.CommandContributionItemParameter; import eu.etaxonomy.cdm.model.common.TermType; import eu.etaxonomy.taxeditor.preference.PreferencesUtil; +import eu.etaxonomy.taxeditor.store.CdmStore; /** * Menu used in the store plugin xml to dynamically generate menu (sub-menu) contribution items @@ -46,39 +47,41 @@ public class DefinedTermMenu extends CompoundContributionItem { @Override protected IContributionItem[] getContributionItems() { Collection items = new ArrayList(); - MenuManager dtMenuManager = - new MenuManager("Term Editor","eu.etaxonomy.taxeditor.store.definedTermEditorMenu"); - - dtMenuManager.setVisible(true); - - items.add(dtMenuManager); - //add Feature and NamedArea to top level - dtMenuManager.add(addChildTermsToMenuManager(TermType.Feature)); - dtMenuManager.add(addChildTermsToMenuManager(TermType.NamedArea)); - dtMenuManager.add(new Separator()); - - MenuManager otherMenuManager = - new MenuManager("Others","eu.etaxonomy.taxeditor.store.term.other.menu"); - otherMenuManager.setVisible(true); - dtMenuManager.add(otherMenuManager); - - List ttList = new ArrayList(EnumSet.allOf(TermType.class)); - Collections.sort(ttList,new SortByTermTypeMessage()); - for (TermType tt : ttList) - { - //skip Feature and NamedArea as they have already been added to top level - if(tt.equals(TermType.Feature) || tt.equals(TermType.NamedArea)){ - continue; - } - // if term type has a parent, do not add it - // it will be added in the recursive call - if(tt.getKindOf() == null) { - IContributionItem ici = addChildTermsToMenuManager(tt); - if(ici != null) { - otherMenuManager.add(ici); - } - } - } + if(CdmStore.isActive()){ + MenuManager dtMenuManager = + new MenuManager("Term Editor","eu.etaxonomy.taxeditor.store.definedTermEditorMenu"); + + dtMenuManager.setVisible(true); + + items.add(dtMenuManager); + //add Feature and NamedArea to top level + dtMenuManager.add(addChildTermsToMenuManager(TermType.Feature)); + dtMenuManager.add(addChildTermsToMenuManager(TermType.NamedArea)); + dtMenuManager.add(new Separator()); + + MenuManager otherMenuManager = + new MenuManager("Others","eu.etaxonomy.taxeditor.store.term.other.menu"); + otherMenuManager.setVisible(true); + dtMenuManager.add(otherMenuManager); + + List ttList = new ArrayList(EnumSet.allOf(TermType.class)); + Collections.sort(ttList,new SortByTermTypeMessage()); + for (TermType tt : ttList) + { + //skip Feature and NamedArea as they have already been added to top level + if(tt.equals(TermType.Feature) || tt.equals(TermType.NamedArea)){ + continue; + } + // if term type has a parent, do not add it + // it will be added in the recursive call + if(tt.getKindOf() == null) { + IContributionItem ici = addChildTermsToMenuManager(tt); + if(ici != null) { + otherMenuManager.add(ici); + } + } + } + } return items.toArray(new IContributionItem[]{}); } -- 2.34.1