コード例 #1
0
 /**
  * Returns the list of the allowed child types as they are coming from {@link StructureIndicator}
  * structure
  *
  * @return the list of the allowed child types
  */
 private List<OverlayWidget> getAllowedChildTypes(OverlayWidget overlayWidget) {
   List<OverlayWidget> allowedChildren = new ArrayList<OverlayWidget>();
   List<StructureIndicator> stack = new ArrayList<StructureIndicator>();
   stack.add(overlayWidget.getStructureIndicator());
   while (!stack.isEmpty()) {
     StructureIndicator structureIndicator = stack.remove(0);
     if (structureIndicator instanceof StructureIndicator.Element) {
       StructureIndicator.Element elemIndicator = (StructureIndicator.Element) structureIndicator;
       OverlayWidget candidate = elemIndicator.asWidget();
       allowedChildren.add(candidate);
     } else {
       if (structureIndicator.getIndicators() != null) {
         stack.addAll(structureIndicator.getIndicators());
       }
     }
   }
   return allowedChildren;
 }