private Widget findWidgetInGroup(Group group, String id) { Widget widgetResult = null; // widget can be inside the group widgets for (Widget widget : group.getWidgets()) { if (widget.getId().equals(id)) { return widget; } } // or inside inner groups: for (Group innerGroup : group.getInnerGroups()) { widgetResult = findWidgetInGroup(innerGroup, id); if (widgetResult != null) { return widgetResult; } } return null; }