Example usage for com.liferay.portal.kernel.xml Element attributeValue

List of usage examples for com.liferay.portal.kernel.xml Element attributeValue

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.xml Element attributeValue.

Prototype

public String attributeValue(String name, String defaultValue);

Source Link

Usage

From source file:com.acs.DDMXSD.java

License:Open Source License

public String getHTML(PageContext pageContext, Element element, Fields fields, String namespace, String mode,
        boolean readOnly, Locale locale) throws Exception {

    StringBundler sb = new StringBundler();

    HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();

    String portletId = PortalUtil.getPortletId(request);

    String portletNamespace = PortalUtil.getPortletNamespace(portletId);

    List<Element> dynamicElementElements = element.elements("dynamic-element");

    for (Element dynamicElementElement : dynamicElementElements) {
        FreeMarkerContext freeMarkerContext = getFreeMarkerContext(dynamicElementElement, locale);

        freeMarkerContext.put("portletNamespace", portletNamespace);
        freeMarkerContext.put("namespace", namespace);

        if (fields != null) {
            freeMarkerContext.put("fields", fields);
        }//ww w  .  j  a v a 2s.  com

        Map<String, Object> field = (Map<String, Object>) freeMarkerContext.get("fieldStructure");

        String childrenHTML = getHTML(pageContext, dynamicElementElement, fields, namespace, mode, readOnly,
                locale);

        field.put("children", childrenHTML);

        String fieldNamespace = dynamicElementElement.attributeValue("fieldNamespace", _DEFAULT_NAMESPACE);

        String url = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
        url = url.substring(0, url.lastIndexOf('/'));
        String defaultResourcePath = url + "/" + _TPL_DEFAULT_PATH;

        boolean fieldReadOnly = GetterUtil.getBoolean(field.get("readOnly"));

        if ((fieldReadOnly && Validator.isNotNull(mode)
                && mode.equalsIgnoreCase(DDMTemplateConstants.TEMPLATE_MODE_EDIT)) || readOnly) {

            fieldNamespace = _DEFAULT_READ_ONLY_NAMESPACE;

            defaultResourcePath = _TPL_DEFAULT_READ_ONLY_PATH;
        }

        String type = dynamicElementElement.attributeValue("type");

        String templateName = StringUtil.replaceFirst(type, fieldNamespace.concat(StringPool.DASH),
                StringPool.BLANK);

        StringBundler resourcePath = new StringBundler(5);

        resourcePath.append(_TPL_PATH);
        resourcePath.append(fieldNamespace.toLowerCase());
        resourcePath.append(CharPool.SLASH);
        resourcePath.append(templateName);
        resourcePath.append(_TPL_EXT);

        sb.append(processFTL(pageContext, freeMarkerContext, resourcePath.toString(), defaultResourcePath));
    }

    return sb.toString();
}

From source file:com.liferay.journal.service.impl.JournalArticleLocalServiceImpl.java

License:Open Source License

protected void checkStructureField(DDMFormField ddmFormField, Element contentElement) throws PortalException {

    String fieldName = ddmFormField.getName();

    boolean hasField = false;

    for (Element childElement : contentElement.elements()) {
        if (fieldName.equals(childElement.attributeValue("name", StringPool.BLANK))) {

            hasField = true;//w w  w.  j av  a 2 s.  co m

            for (DDMFormField childDDMFormField : ddmFormField.getNestedDDMFormFields()) {

                checkStructureField(childDDMFormField, childElement);
            }

            break;
        }
    }

    if (!hasField) {
        String contentElementType = contentElement.attributeValue("type", StringPool.BLANK);

        if (!contentElementType.equals("list") && !contentElementType.equals("multi-list")) {

            throw new StructureDefinitionException(fieldName);
        }
    }
}

From source file:com.liferay.journal.service.impl.JournalArticleLocalServiceImpl.java

License:Open Source License

protected Map<String, LocalizedValue> createFieldsValuesMap(Element parentElement, Locale defaultLocale) {

    Map<String, LocalizedValue> fieldsValuesMap = new HashMap<>();

    List<Element> dynamicElementElements = parentElement.elements("dynamic-element");

    LocalizedValue fieldLocalizedValue = new LocalizedValue(defaultLocale);

    for (Element dynamicElementElement : dynamicElementElements) {
        String fieldName = dynamicElementElement.attributeValue("name", StringPool.BLANK);

        List<Element> dynamicContentElements = dynamicElementElement.elements("dynamic-content");

        for (Element dynamicContentElement : dynamicContentElements) {
            String languageId = dynamicContentElement.attributeValue("language-id");
            String value = dynamicContentElement.getText();

            fieldLocalizedValue.addString(LocaleUtil.fromLanguageId(languageId), value);
        }//from  w  w w.  ja  va  2s  . c om

        fieldsValuesMap.put(fieldName, fieldLocalizedValue);

        fieldsValuesMap.putAll(createFieldsValuesMap(dynamicElementElement, defaultLocale));
    }

    return fieldsValuesMap;
}

From source file:com.liferay.journal.service.impl.JournalArticleLocalServiceImpl.java

License:Open Source License

protected void format(User user, long groupId, JournalArticle article, Element root) throws PortalException {

    for (Element element : root.elements()) {
        String elType = element.attributeValue("type", StringPool.BLANK);

        if (elType.equals("document_library")) {
            addDocumentLibraryFileEntries(element);
        } else if (elType.equals("image")) {
            addImageFileEntries(article, element);
        } else if (elType.equals("text_area") || elType.equals("text") || elType.equals("text_box")) {

            List<Element> dynamicContentElements = element.elements("dynamic-content");

            for (Element dynamicContentElement : dynamicContentElements) {
                String dynamicContent = dynamicContentElement.getText();

                if (Validator.isNotNull(dynamicContent)) {
                    String contentType = ContentTypes.TEXT_PLAIN;

                    if (elType.equals("text_area")) {
                        contentType = ContentTypes.TEXT_HTML;
                    }//  w  w  w .  j a  va 2  s. co  m

                    dynamicContent = SanitizerUtil.sanitize(user.getCompanyId(), groupId, user.getUserId(),
                            JournalArticle.class.getName(), 0, contentType, dynamicContent);

                    dynamicContentElement.clearContent();

                    dynamicContentElement.addCDATA(dynamicContent);
                }
            }
        }

        format(user, groupId, article, element);
    }
}

From source file:com.liferay.journal.transformer.ContentTransformerListener.java

License:Open Source License

protected String getDynamicContent(Document document, String elementName) {
    String content = null;//w ww.ja v a2  s  .  c o  m

    try {
        Element rootElement = document.getRootElement();

        for (Element element : rootElement.elements()) {
            String curElementName = element.attributeValue("name", StringPool.BLANK);

            if (curElementName.equals(elementName)) {
                content = element.elementText("dynamic-content");

                break;
            }
        }
    } catch (Exception e) {
        _log.error(e, e);
    }

    return GetterUtil.getString(content);
}

From source file:com.liferay.journal.transformer.JournalTransformer.java

License:Open Source License

protected List<TemplateNode> getTemplateNodes(ThemeDisplay themeDisplay, Element element, long ddmStructureId)
        throws Exception {

    DDMStructure ddmStructure = DDMStructureLocalServiceUtil.getStructure(ddmStructureId);

    DDMForm ddmForm = ddmStructure.getDDMForm();

    Map<String, DDMFormField> ddmFormFieldsMap = ddmForm.getDDMFormFieldsMap(true);

    List<TemplateNode> templateNodes = new ArrayList<>();

    Map<String, TemplateNode> prototypeTemplateNodes = new HashMap<>();

    List<Element> dynamicElementElements = element.elements("dynamic-element");

    for (Element dynamicElementElement : dynamicElementElements) {
        Element dynamicContentElement = dynamicElementElement.element("dynamic-content");

        String data = StringPool.BLANK;

        if (dynamicContentElement != null) {
            data = dynamicContentElement.getText();
        }//from w ww.j a v a2 s  .com

        String name = dynamicElementElement.attributeValue("name", StringPool.BLANK);

        if (name.length() == 0) {
            throw new TransformException("Element missing \"name\" attribute");
        }

        String type = dynamicElementElement.attributeValue("type", StringPool.BLANK);

        Map<String, String> attributes = new HashMap<>();

        if (type.equals("image")) {
            JSONObject dataJSONObject = JSONFactoryUtil.createJSONObject(data);

            Iterator<String> itr = dataJSONObject.keys();

            while (itr.hasNext()) {
                String key = itr.next();

                String value = dataJSONObject.getString(key);

                attributes.put(key, value);
            }
        }

        if (dynamicContentElement != null) {
            for (Attribute attribute : dynamicContentElement.attributes()) {
                attributes.put(attribute.getName(), attribute.getValue());
            }
        }

        TemplateNode templateNode = new TemplateNode(themeDisplay, name, StringUtil.stripCDATA(data), type,
                attributes);

        if (dynamicElementElement.element("dynamic-element") != null) {
            templateNode.appendChildren(getTemplateNodes(themeDisplay, dynamicElementElement, ddmStructureId));
        } else if ((dynamicContentElement != null) && (dynamicContentElement.element("option") != null)) {

            List<Element> optionElements = dynamicContentElement.elements("option");

            for (Element optionElement : optionElements) {
                templateNode.appendOption(StringUtil.stripCDATA(optionElement.getText()));
            }
        }

        DDMFormField ddmFormField = ddmFormFieldsMap.get(name);

        if (ddmFormField != null) {
            DDMFormFieldOptions ddmFormFieldOptions = ddmFormField.getDDMFormFieldOptions();

            Map<String, LocalizedValue> options = ddmFormFieldOptions.getOptions();

            for (Entry<String, LocalizedValue> entry : options.entrySet()) {
                String optionValue = StringUtil.stripCDATA(entry.getKey());

                LocalizedValue localizedLabel = entry.getValue();

                String optionLabel = localizedLabel.getString(themeDisplay.getLocale());

                templateNode.appendOptionMap(optionValue, optionLabel);
            }
        }

        TemplateNode prototypeTemplateNode = prototypeTemplateNodes.get(name);

        if (prototypeTemplateNode == null) {
            prototypeTemplateNode = templateNode;

            prototypeTemplateNodes.put(name, prototypeTemplateNode);

            templateNodes.add(templateNode);
        }

        prototypeTemplateNode.appendSibling(templateNode);
    }

    return templateNodes;
}

From source file:com.liferay.journal.transformer.LocaleTransformerListener.java

License:Open Source License

protected void filterByLanguage(Document document, String languageId) {
    Element rootElement = document.getRootElement();

    String defaultLanguageId = LocaleUtil.toLanguageId(LocaleUtil.getSiteDefault());

    String articleDefaultLanguageId = rootElement.attributeValue("default-locale", defaultLanguageId);

    String[] availableLanguageIds = StringUtil
            .split(rootElement.attributeValue("available-locales", articleDefaultLanguageId));

    if (!ArrayUtil.contains(availableLanguageIds, languageId, true)) {
        filterByLanguage(rootElement, articleDefaultLanguageId, articleDefaultLanguageId);
    } else {/* www.  ja va 2 s  . com*/
        filterByLanguage(rootElement, languageId, articleDefaultLanguageId);
    }
}

From source file:com.liferay.journal.transformer.LocaleTransformerListener.java

License:Open Source License

protected void filterByLanguage(Element root, String languageId, String defaultLanguageId) {

    Element defaultLanguageElement = null;

    boolean hasLanguageIdElement = false;

    for (Element element : root.elements()) {
        String tempLanguageId = element.attributeValue("language-id", languageId);

        if (StringUtil.equalsIgnoreCase(tempLanguageId, languageId)) {
            if (Validator.isNotNull(element.attributeValue("language-id", StringPool.BLANK))) {

                hasLanguageIdElement = true;
            }//w ww.  j  a  v a  2  s. co  m

            filterByLanguage(element, languageId, defaultLanguageId);
        } else {
            if (StringUtil.equalsIgnoreCase(tempLanguageId, defaultLanguageId)) {

                defaultLanguageElement = element;
            }

            root.remove(element);
        }
    }

    if (!hasLanguageIdElement && (defaultLanguageElement != null)) {
        root.add(defaultLanguageElement);

        filterByLanguage(defaultLanguageElement, languageId, defaultLanguageId);
    }
}

From source file:com.liferay.journal.transformer.LocaleTransformerListener.java

License:Open Source License

protected void filterByLocalizability(Document document, Map<String, String> tokens) {

    try {/*from  ww  w.j  a v a2s  .  c om*/
        long ddmStructureId = GetterUtil.getLong(tokens.get("ddm_structure_id"));

        DDMStructure ddmStructure = _ddmStructureLocalService.fetchDDMStructure(ddmStructureId);

        if (ddmStructure == null) {
            if (_log.isWarnEnabled()) {
                _log.warn("Not checking localization because dynamic data "
                        + "mapping structure is not available");
            }

            return;
        }

        Element rootElement = document.getRootElement();

        String defaultLanguageId = LocaleUtil.toLanguageId(LocaleUtil.getSiteDefault());

        String articleDefaultLanguageId = rootElement.attributeValue("default-locale", defaultLanguageId);

        filterByLocalizability(rootElement, articleDefaultLanguageId, ddmStructure);
    } catch (PortalException pe) {
        _log.error(pe);
    } catch (NullPointerException npe) {
        _log.error(npe);
    }
}

From source file:com.liferay.portlet.dynamicdatamapping.service.impl.DDMStructureLocalServiceImpl.java

License:Open Source License

protected void validate(List<Element> elements, Set<String> names) throws PortalException {

    for (Element element : elements) {
        String elementName = element.getName();

        if (elementName.equals("meta-data")) {
            continue;
        }//from  w  ww. j av  a2  s . co  m

        String name = element.attributeValue("name", StringPool.BLANK);
        String type = element.attributeValue("type", StringPool.BLANK);

        if (Validator.isNull(name) || name.startsWith(DDMStructureConstants.XSD_NAME_RESERVED)) {

            throw new StructureXsdException();
        }

        char[] charArray = name.toCharArray();

        for (int i = 0; i < charArray.length; i++) {
            if (!Character.isLetterOrDigit(charArray[i]) && (charArray[i] != CharPool.DASH)
                    && (charArray[i] != CharPool.UNDERLINE)) {

                throw new StructureXsdException();
            }
        }

        String path = name;

        Element parentElement = element.getParent();

        while (!parentElement.isRootElement()) {
            path = parentElement.attributeValue("name", StringPool.BLANK) + StringPool.SLASH + path;

            parentElement = parentElement.getParent();
        }

        path = path.toLowerCase();

        if (names.contains(path)) {
            throw new StructureDuplicateElementException();
        } else {
            names.add(path);
        }

        if (Validator.isNull(type)) {
            throw new StructureXsdException();
        }

        validate(element.elements(), names);
    }
}