private void updateEngineModel() { ArrayList<String> engines = new ArrayList<String>(); Object root = tree.getModel().getRoot(); for (int i = 0; i < tree.getModel().getChildCount(root); i++) { Object firstChild = tree.getModel().getChild(root, i); if (!tree.getModel().isLeaf(firstChild)) { for (int j = 0; j < tree.getModel().getChildCount(firstChild); j++) { Object secondChild = tree.getModel().getChild(firstChild, j); if (secondChild instanceof TreeNodeSettings) { TreeNodeSettings tns = (TreeNodeSettings) secondChild; if (tns.isEnable() && tns.getPlayer() != null) { engines.add(tns.getPlayer().id()); } } } } } configuration.setEnginesAsList(engines); }