コード例 #1
0
  protected void setDDMStructure() throws Exception {
    ThemeDisplay themeDisplay = (ThemeDisplay) _request.getAttribute(WebKeys.THEME_DISPLAY);

    _ddmStructureDisplayFieldValue = StringPool.BLANK;
    _ddmStructureFieldLabel = StringPool.BLANK;
    _ddmStructureFieldName = StringPool.BLANK;
    _ddmStructureFieldValue = null;

    long[] classNameIds = getClassNameIds();
    long[] classTypeIds = getClassTypeIds();

    if (!isSubtypeFieldsFilterEnabled()
        || (classNameIds.length != 1)
        || (classTypeIds.length != 1)) {

      return;
    }

    _ddmStructureDisplayFieldValue =
        ParamUtil.getString(
            _request,
            "ddmStructureDisplayFieldValue",
            _portletPreferences.getValue("ddmStructureDisplayFieldValue", StringPool.BLANK));
    _ddmStructureFieldName =
        ParamUtil.getString(
            _request,
            "ddmStructureFieldName",
            _portletPreferences.getValue("ddmStructureFieldName", StringPool.BLANK));
    _ddmStructureFieldValue =
        ParamUtil.getString(
            _request,
            "ddmStructureFieldValue",
            _portletPreferences.getValue("ddmStructureFieldValue", StringPool.BLANK));

    if (Validator.isNotNull(_ddmStructureFieldName)
        && Validator.isNotNull(_ddmStructureFieldValue)) {

      AssetRendererFactory<?> assetRendererFactory =
          AssetRendererFactoryRegistryUtil.getAssetRendererFactoryByClassNameId(classNameIds[0]);

      ClassTypeReader classTypeReader = assetRendererFactory.getClassTypeReader();

      ClassType classType = classTypeReader.getClassType(classTypeIds[0], themeDisplay.getLocale());

      ClassTypeField classTypeField = classType.getClassTypeField(_ddmStructureFieldName);

      _ddmStructureFieldLabel = classTypeField.getLabel();
    }
  }