ref #7268 Fix stateful behavior of OpenPreferenceHandler
authorPatrick Plitzner <p.plitzner@bgbm.org>
Mon, 19 Feb 2018 08:17:14 +0000 (09:17 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Mon, 19 Feb 2018 09:09:13 +0000 (10:09 +0100)
 - Convert class variables to local variables

eu.etaxonomy.taxeditor.workbench/src/main/java/eu/etaxonomy/taxeditor/workbench/handler/OpenPreferencesHandler.java

index 044bc1a324f4e521d134daa2e4607dfb57ecee2c..486628303de6236d1af1d12c8be0643a35655815 100644 (file)
@@ -41,12 +41,11 @@ public class OpenPreferencesHandler {
 
     private Logger logger = Logger.getLogger(OpenPreferencesHandler.class);
 
-    private List<PageWrapper> pagesYetToBeAdded = new ArrayList<>();
-
-    private Map<String, PreferenceNode> idToNodeMap = new HashMap<>();
-
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
+        List<PageWrapper> pagesYetToBeAdded = new ArrayList<>();
+        Map<String, PreferenceNode> idToNodeMap = new HashMap<>();
+
         PreferenceManager manager = new PreferenceManager('/');
 
         IExtensionRegistry reg = Platform.getExtensionRegistry();
@@ -81,20 +80,6 @@ public class OpenPreferencesHandler {
             }
         }
 
-//        pagesYetToBeAdded.entrySet().stream().
-//        //filter stream to only contain parent nodes
-//        filter(entry->{
-//            PageWrapper pageWrapper = entry.getValue();
-//            PreferenceNode node = new PreferenceNode(pageWrapper.getId(), pageWrapper.getPage());
-//            if(StringUtils.isEmpty(pageWrapper.getCategory())){
-//                manager.addToRoot(node);
-//                return true;
-//            }
-//            return false;
-//        })
-//        .map(parent->addPage(parent.getValue(), manager));
-
-
         Collections.sort(pagesYetToBeAdded, new PreferenceNodeComparator());
 
         int size = pagesYetToBeAdded.size();
@@ -103,7 +88,7 @@ public class OpenPreferencesHandler {
             Iterator<PageWrapper> iterator = pagesYetToBeAdded.iterator();
             while(iterator.hasNext()){
                 PageWrapper pageWrapper = iterator.next();
-                if(addPage(pageWrapper)){
+                if(addPage(pageWrapper, idToNodeMap)){
                     iterator.remove();
                 }
             }
@@ -119,11 +104,11 @@ public class OpenPreferencesHandler {
         dialog.open();
     }
 
-    private boolean addPage(PageWrapper pageWrapper){
+    private boolean addPage(PageWrapper pageWrapper, Map<String, PreferenceNode> idToNodeMap){
         PreferenceNode node = new PreferenceNode(pageWrapper.getId(), pageWrapper.getPage());
-        idToNodeMap.put(pageWrapper.getId(), node);
         PreferenceNode parent = idToNodeMap.get(pageWrapper.getCategory());
         if(parent!=null){
+            idToNodeMap.put(pageWrapper.getId(), node);
             parent.add(node);
             return true;
         }