@Override public int compareTo(ScoutWidget scoutWidget){
  if (mParent == null) {
    return -1;
  }
  if (mRootDistance != scoutWidget.mRootDistance) {
    return Float.compare(mRootDistance,scoutWidget.mRootDistance);
  }
  if (mY != scoutWidget.mY) {
    return Float.compare(mY,scoutWidget.mY);
  }
  if (mX != scoutWidget.mX) {
    return Float.compare(mX,scoutWidget.mX);
  }
  return 0;
}

@ Override public int compareTo ( ScoutWidget scoutWidget ) { if ( mParent == null ) { return - 1 ; } if ( mRootDistance != scoutWidget . mRootDistance ) { return Float . compare ( mRootDistance , scoutWidget . mRootDistance ) ; } if ( mY != scoutWidget . mY ) { return Float . compare ( mY , scoutWidget . mY ) ; } if ( mX != scoutWidget . mX ) { return Float . compare ( mX , scoutWidget . mX ) ; } return 0 ; }
sets the order root first followed by outside to inside , top to bottom , left to right
