RadComponent[] (final RadComponent component) { final ArrayList<RadComponent> result = new ArrayList<>(); result.add(null); RadContainer container = component.getParent(); while(container.getParent() != null) { container = container.getParent(); } FormEditingUtil.iterate(container, new FormEditingUtil.ComponentVisitor() { @Override public boolean visit(final IComponent component) { RadComponent radComponent = (RadComponent) component; final JComponent delegee = radComponent.getDelegee(); if (!myPropertyType.isInstance(delegee)) { return true; } if (myFilter == null || myFilter.value(radComponent)) { result.add(radComponent); } return true; } }); return result.toArray(RadComponent.EMPTY_ARRAY); }