public Status getStatus() {
    synchronized (builds) {
      if (builds.isEmpty()) {
        return Status.SUCCESSFUL;
      }

      //			Status status = Status.SUCCESSFUL;

      int slide = monitor.settings.getStatusWindow();
      List<BuildFragment> window;
      if (slide == 0 || builds.size() <= slide) {
        window = builds;
      } else {
        window = builds.subList(builds.size() - slide, builds.size());
      }

      for (BuildFragment build : window) {
        if (build.getStatus() == Status.FAILED || build.getStatus() == Status.CANCELLED) {
          return Status.FAILED;
        }
      }

      return Status.SUCCESSFUL;
    }
  }