package org.fest.swing.driver; import static org.fest.swing.edt.GuiActionRunner.execute; import static org.fest.util.Preconditions.checkNotNull; import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.swing.JTree; import javax.swing.tree.TreePath; import org.fest.swing.annotation.RunsInEDT; import org.fest.swing.edt.GuiQuery; /** * Returns how many children a node in a {@code JTree} has. This query is executed in the event dispatch thread (EDT.) * * @author Alex Ruiz */ final class JTreeChildOfPathCountQuery { @RunsInEDT static int childCount(final @Nonnull JTree tree, final @Nonnull TreePath path) { Integer result = execute(new GuiQuery<Integer>() { @Override protected @Nullable Integer executeInEDT() { Object lastPathComponent = path.getLastPathComponent(); return tree.getModel().getChildCount(lastPathComponent); } }); return checkNotNull(result); } private JTreeChildOfPathCountQuery() {} }