/** * Returns all of the panel's child fields. Fields in nested containers are * included in the returned list. * * @return the fields */ public List<Field<?>> getFields() { List<Field<?>> fields = new ArrayList<Field<?>>(); getChildFields(this, fields); return fields; }
@SuppressWarnings("unchecked") private void getChildFields(Container<Component> c, List<Field<?>> fields) { for (Component comp : c.getItems()) { if (comp instanceof Field) { fields.add((Field<?>) comp); } else if (comp instanceof Container) { getChildFields((Container<Component>) comp, fields); } } }