private <T extends URLUIItem> T _insertEditInGoogleURLUIItem(
      T urlUIItem, List<? super T> urlUIItems) {

    if (!_googleDocsMetadataHelper.containsField(GoogleDocsConstants.DDM_FIELD_NAME_URL)) {

      return urlUIItem;
    }

    int index = _getIndex((List<? extends UIItem>) urlUIItems, DLUIItemKeys.EDIT);

    if (index == -1) {
      index = 0;
    }

    urlUIItem.setKey(GoogleDocsUIItemKeys.EDIT_IN_GOOGLE);

    ThemeDisplay themeDisplay = (ThemeDisplay) _request.getAttribute(WebKeys.THEME_DISPLAY);

    ResourceBundle resourceBundle =
        ResourceBundleUtil.getBundle("content.Language", themeDisplay.getLocale(), getClass());

    String message = LanguageUtil.get(resourceBundle, "edit-in-google-docs");

    urlUIItem.setLabel(message);

    urlUIItem.setTarget("_blank");

    String editURL =
        _googleDocsMetadataHelper.getFieldValue(GoogleDocsConstants.DDM_FIELD_NAME_URL);

    urlUIItem.setURL(editURL);

    urlUIItems.add(index, urlUIItem);

    return urlUIItem;
  }
Example #2
0
  /**
   * Generate the histogram buckets based on the time frame requested and the interval. This will
   * add an entry for each 'slot' or 'bucket' in the histogram, setting the count to 0.
   *
   * @param rval
   * @param from
   * @param to
   * @param interval
   */
  public static <T extends HistogramDataPoint> Map<String, T> generateHistogramSkeleton(
      HistogramBean<T> rval,
      DateTime from,
      DateTime to,
      HistogramIntervalType interval,
      Class<T> dataType) {
    Map<String, T> index = new HashMap<>();

    Calendar fromCal = from.toGregorianCalendar();
    Calendar toCal = to.toGregorianCalendar();

    switch (interval) {
      case day:
        fromCal.set(Calendar.HOUR_OF_DAY, 0);
        fromCal.set(Calendar.MINUTE, 0);
        fromCal.set(Calendar.SECOND, 0);
        fromCal.set(Calendar.MILLISECOND, 0);
        break;
      case hour:
        fromCal.set(Calendar.MINUTE, 0);
        fromCal.set(Calendar.SECOND, 0);
        fromCal.set(Calendar.MILLISECOND, 0);
        break;
      case minute:
        fromCal.set(Calendar.SECOND, 0);
        fromCal.set(Calendar.MILLISECOND, 0);
        break;
      case month:
        fromCal.set(Calendar.DAY_OF_MONTH, 1);
        fromCal.set(Calendar.HOUR_OF_DAY, 0);
        fromCal.set(Calendar.MINUTE, 0);
        fromCal.set(Calendar.SECOND, 0);
        fromCal.set(Calendar.MILLISECOND, 0);
        break;
      case week:
        fromCal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        fromCal.set(Calendar.HOUR_OF_DAY, 0);
        fromCal.set(Calendar.MINUTE, 0);
        fromCal.set(Calendar.SECOND, 0);
        fromCal.set(Calendar.MILLISECOND, 0);
        break;
      default:
        break;
    }

    while (fromCal.before(toCal)) {
      String label = formatDateWithMillis(fromCal);
      T point;
      try {
        point = dataType.newInstance();
      } catch (InstantiationException | IllegalAccessException e) {
        throw new RuntimeException(e);
      }
      point.setLabel(label);
      rval.addDataPoint(point);
      index.put(label, point);
      switch (interval) {
        case day:
          fromCal.add(Calendar.DAY_OF_YEAR, 1);
          break;
        case hour:
          fromCal.add(Calendar.HOUR_OF_DAY, 1);
          break;
        case minute:
          fromCal.add(Calendar.MINUTE, 1);
          break;
        case month:
          fromCal.add(Calendar.MONTH, 1);
          break;
        case week:
          fromCal.add(Calendar.WEEK_OF_YEAR, 1);
          break;
        default:
          break;
      }
    }

    return index;
  }