public ArrayList<ConstraintWidget> findWidgets(WidgetContainer container,int x,int y,int width,int height){
  ArrayList<ConstraintWidget> found=new ArrayList<>();
  Rectangle area=new Rectangle(x,y,width,height);
  for (  ConstraintWidget widget : container.getChildren()) {
    WidgetCompanion companion=(WidgetCompanion)widget.getCompanionWidget();
    WidgetDecorator decorator=companion.getWidgetDecorator(WidgetDecorator.BLUEPRINT_STYLE);
    if (!decorator.isVisible()) {
      continue;
    }
    Rectangle bounds=new Rectangle(widget.getDrawX(),widget.getDrawY(),widget.getWidth(),widget.getHeight());
    if (area.intersects(bounds)) {
      found.add(widget);
    }
  }
  return found;
}

public ArrayList < ConstraintWidget > findWidgets ( WidgetContainer container , int x , int y , int width , int height ) { ArrayList < ConstraintWidget > found = new ArrayList < > ( ) ; Rectangle area = new Rectangle ( x , y , width , height ) ; for ( ConstraintWidget widget : container . getChildren ( ) ) { WidgetCompanion companion = ( WidgetCompanion ) widget . getCompanionWidget ( ) ; WidgetDecorator decorator = companion . getWidgetDecorator ( WidgetDecorator . BLUEPRINT_STYLE ) ; if ( ! decorator . isVisible ( ) ) { continue ; } Rectangle bounds = new Rectangle ( widget . getDrawX ( ) , widget . getDrawY ( ) , widget . getWidth ( ) , widget . getHeight ( ) ) ; if ( area . intersects ( bounds ) ) { found . add ( widget ) ; } } return found ; }
gather all the widgets contained in the area specified and return them as an array , taking the decorator visibility in account
