From 91b43317f3d6dd7bd46701861a5949a61e58f1fc Mon Sep 17 00:00:00 2001 From: SiboVG Date: Thu, 3 Mar 2022 00:28:45 +0100 Subject: [PATCH] Use component iterator instead of self-written childrenRecursive --- .../rocketcomponent/RocketComponent.java | 30 ++----------------- .../gui/components/StageSelector.java | 4 +-- 2 files changed, 4 insertions(+), 30 deletions(-) diff --git a/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java b/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java index 54a62b6e0..43fad2d51 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java +++ b/core/src/net/sf/openrocket/rocketcomponent/RocketComponent.java @@ -1598,28 +1598,6 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab this.checkComponentStructure(); return children.clone(); } - - /** - * Returns all children of this component, as well as the children of the children etc. - * @return all the children (direct and indirect) of this component - */ - public final List getChildrenRecursive() { - checkState(); - List children = getChildren(); - - if (children == null) { - return null; - } - - for (RocketComponent child : new ArrayList<>(children)) { - List temp = child.getChildrenRecursive(); - if (temp != null && temp.size() > 0) { - children.addAll(temp); - } - } - - return children; - } /** @@ -1720,14 +1698,12 @@ public abstract class RocketComponent implements ChangeSource, Cloneable, Iterab public final List getChildAssemblies() { checkState(); - List children = getChildrenRecursive(); - if (children == null) { - return null; - } + Iterator children = iterator(false); List result = new ArrayList<>(); - for (RocketComponent child : children) { + while (children.hasNext()) { + RocketComponent child = children.next(); if (child instanceof ComponentAssembly) { result.add(child); } diff --git a/swing/src/net/sf/openrocket/gui/components/StageSelector.java b/swing/src/net/sf/openrocket/gui/components/StageSelector.java index 3dd580855..bbccdf739 100644 --- a/swing/src/net/sf/openrocket/gui/components/StageSelector.java +++ b/swing/src/net/sf/openrocket/gui/components/StageSelector.java @@ -38,9 +38,7 @@ public class StageSelector extends JPanel implements StateChangeListener { buttons.clear(); this.removeAll(); List assemblies = configuration.getRocket().getChildAssemblies(); - if (assemblies == null) { - return; - } + for (RocketComponent stage : assemblies) { if (!(stage instanceof AxialStage)) continue; JToggleButton button = new SelectColorToggleButton(new StageAction((AxialStage) stage));