Author: tchemit Date: 2013-03-17 19:38:49 +0100 (Sun, 17 Mar 2013) New Revision: 2631 Url: http://nuiton.org/projects/jaxx/repository/revisions/2631 Log: fixes #2604: Add a new method to get a parent of a component of a certain type (using the Container#parent api) Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java =================================================================== --- trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java 2013-03-17 18:33:49 UTC (rev 2630) +++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java 2013-03-17 18:38:49 UTC (rev 2631) @@ -319,6 +319,23 @@ @SuppressWarnings({"unchecked"}) public static <O extends Container> O getParentContainer(Object top, Class<O> clazz) { + + return getParent(top, clazz); + } + + + /** + * Find a parent of the given {@code top} object using the container api to get up. + * <p/> + * Stop on parent when it is of the given{@code clazz} type. + * + * @param <O> type of container to obtain from context + * @param top the top container + * @param clazz desired + * @return parent's container + * @since 2.5.14 + */ + public static <O> O getParent(Object top, Class<O> clazz) { if (top == null) { throw new IllegalArgumentException("top parameter can not be null"); } @@ -328,7 +345,7 @@ } Container parent = ((Container) top).getParent(); if (parent != null && !clazz.isAssignableFrom(parent.getClass())) { - parent = getParentContainer(parent, clazz); + parent = (Container) getParent(parent, clazz); } return (O) parent; }