docs: protected void recursivelySortChildAreas(Area root, final boolean columnFirst)
      {
          if (root.getChildCount() > 1)
          {
              Vector<Area> list = new Vector<Area>(root.getChildren());
              Collections.sort(list, new Comparator<Area>() {
                  public int compare(Area a1, Area a2)
                  {
                      if (!columnFirst)
                          return a1.getY1() == a2.getY1() ? a1.getX1() - a2.getX1() : a1.getY1() - a2.getY1();
                      else
                          return a1.getX1() == a2.getX1() ? a1.getY1() - a2.getY1() : a1.getX1() - a2.getX1();
                  }
              });
              
              root.removeAllChildren();
              root.appendChildren(list);
          }
          for (int i = 0; i < root.getChildCount(); i++)
              recursivelySortChildAreas(root.getChildAt(i), columnFirst);
          
      }