From: n.hoffmann Date: Tue, 19 Apr 2011 10:53:39 +0000 (+0000) Subject: The node list gets generated correctly now using breadth first algorithm X-Git-Tag: rcp.ss-first-working-version~114 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/487f2b62d4a463c6c2a8d0ea032fc938c56d51ca The node list gets generated correctly now using breadth first algorithm --- diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListContentProvider.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListContentProvider.java index 45b14a240..a17c56a0a 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListContentProvider.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyListContentProvider.java @@ -57,27 +57,24 @@ public class PolytomousKeyListContentProvider implements @Override public Object[] getElements(Object inputElement) { if (inputElement instanceof PolytomousKey) { - List result = new ArrayList(); + List result = new ArrayList(); PolytomousKeyNode root = ((PolytomousKey) inputElement).getRoot(); - // result.add(root); - // result.addAll(root.getChildren()); - getChildren(result, root); + getChildrenBreadthFirst(result, root); return result.toArray(); } - // else if (inputElement instanceof PolytomousKeyNode) { - // return ((PolytomousKeyNode) inputElement).getChildren().toArray(); - // } return null; } - private void getChildren(List result, PolytomousKeyNode node) { - result.add(node); - - for (PolytomousKeyNode internalNode : node.getChildren()) { - getChildren(result, internalNode); + private void getChildrenBreadthFirst(List result, + PolytomousKeyNode node) { + if (!node.getChildren().isEmpty()) { + result.addAll(node.getChildren()); + for (PolytomousKeyNode internalNode : node.getChildren()) { + getChildrenBreadthFirst(result, internalNode); + } } } }