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);

Source Link

Usage

From source file:com.liferay.journal.internal.upgrade.v1_1_0.UpgradeImageTypeContent.java

License:Open Source License

protected String convertTypeImageElements(long userId, long groupId, String content, long resourcePrimKey)
        throws Exception {

    Document contentDocument = SAXReaderUtil.read(content);

    contentDocument = contentDocument.clone();

    XPath xPath = SAXReaderUtil.createXPath("//dynamic-element[@type='image']");

    List<Node> imageNodes = xPath.selectNodes(contentDocument);

    for (Node imageNode : imageNodes) {
        Element imageEl = (Element) imageNode;

        List<Element> dynamicContentEls = imageEl.elements("dynamic-content");

        for (Element dynamicContentEl : dynamicContentEls) {
            String id = dynamicContentEl.attributeValue("id");

            if (Validator.isNull(id)) {
                continue;
            }// w w w.  j  a va  2s  . co  m

            long folderId = getFolderId(userId, groupId, resourcePrimKey);

            FileEntry fileEntry = getFileEntry(groupId, folderId, id);

            if (fileEntry == null) {
                continue;
            }

            JSONObject jsonObject = JSONFactoryUtil.createJSONObject();

            jsonObject.put("alt", StringPool.BLANK);
            jsonObject.put("groupId", fileEntry.getGroupId());
            jsonObject.put("name", fileEntry.getFileName());
            jsonObject.put("resourcePrimKey", resourcePrimKey);
            jsonObject.put("title", fileEntry.getTitle());
            jsonObject.put("type", "journal");
            jsonObject.put("uuid", fileEntry.getUuid());

            dynamicContentEl.clearContent();

            dynamicContentEl.addCDATA(jsonObject.toString());
        }
    }

    return contentDocument.formattedString();
}

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

@Override
public Fields getDDMFields(DDMStructure ddmStructure, Document document) throws PortalException {

    Field fieldsDisplayField = new Field(ddmStructure.getStructureId(), DDM.FIELDS_DISPLAY_NAME,
            StringPool.BLANK);/*from   w  ww.ja va2  s  . c om*/

    Fields ddmFields = new Fields();

    ddmFields.put(fieldsDisplayField);

    Element rootElement = document.getRootElement();

    String[] availableLanguageIds = StringUtil.split(rootElement.attributeValue("available-locales"));
    String defaultLanguageId = rootElement.attributeValue("default-locale");

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

    for (Element dynamicElementElement : dynamicElementElements) {
        addDDMFields(dynamicElementElement, ddmStructure, ddmFields, availableLanguageIds, defaultLanguageId);
    }

    return ddmFields;
}

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

/**
 * @deprecated As of 4.0.0, with no direct replacement
 *//*from   w  w  w .j  av  a 2 s .com*/
@Deprecated
@Override
public String getJournalXSD(String ddmXSD) throws Exception {
    Document document = SAXReaderUtil.read(ddmXSD);

    Element rootElement = document.getRootElement();

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

    removeAttribute(rootElement, "available-locales");
    removeAttribute(rootElement, "default-locale");

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

    for (Element dynamicElementElement : dynamicElementElements) {
        updateDDMXSDDynamicElement(dynamicElementElement, defaultLanguageId);
    }

    return XMLUtil.formatXML(document);
}

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

protected void addDDMFields(Element dynamicElementElement, DDMStructure ddmStructure, Fields ddmFields,
        String[] availableLanguageIds, String defaultLanguageId) throws PortalException {

    String name = dynamicElementElement.attributeValue("name");
    String instanceId = dynamicElementElement.attributeValue("instance-id");

    if (!ddmStructure.hasField(name)) {
        return;/* w  ww . j  a va 2  s .com*/
    }

    if (!ddmStructure.isFieldTransient(name)) {
        Field ddmField = getField(dynamicElementElement, ddmStructure, availableLanguageIds, defaultLanguageId);

        String fieldName = ddmField.getName();

        Field existingDDMField = ddmFields.get(fieldName);

        if (existingDDMField != null) {
            for (Locale locale : ddmField.getAvailableLocales()) {
                existingDDMField.addValues(locale, ddmField.getValues(locale));
            }
        } else {
            ddmFields.put(ddmField);
        }
    }

    updateFieldsDisplay(ddmFields, name, instanceId);

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

    for (Element childrenDynamicElementElement : childrenDynamicElementElements) {

        addDDMFields(childrenDynamicElementElement, ddmStructure, ddmFields, availableLanguageIds,
                defaultLanguageId);
    }
}

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

protected Field getField(Element dynamicElementElement, DDMStructure ddmStructure,
        String[] availableLanguageIds, String defaultLanguageId) throws PortalException {

    Field ddmField = new Field();

    ddmField.setDDMStructureId(ddmStructure.getStructureId());

    Locale defaultLocale = null;//from   w  ww. j av a  2  s. c  om

    if (defaultLanguageId == null) {
        defaultLocale = LocaleUtil.getSiteDefault();
    } else {
        defaultLocale = LocaleUtil.fromLanguageId(defaultLanguageId);
    }

    ddmField.setDefaultLocale(defaultLocale);

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

    ddmField.setName(name);

    String dataType = ddmStructure.getFieldDataType(name);
    String type = ddmStructure.getFieldType(name);

    Set<String> missingLanguageIds = SetUtil.fromArray(availableLanguageIds);

    missingLanguageIds.remove(defaultLanguageId);

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

    for (Element dynamicContentElement : dynamicContentElements) {
        Locale locale = defaultLocale;

        String languageId = dynamicContentElement.attributeValue("language-id");

        if (Validator.isNotNull(languageId)) {
            locale = LocaleUtil.fromLanguageId(languageId);

            missingLanguageIds.remove(languageId);
        }

        Serializable serializable = getFieldValue(dataType, type, dynamicContentElement);

        ddmField.addValue(locale, serializable);
    }

    addMissingFieldValues(ddmField, defaultLanguageId, missingLanguageIds);

    return ddmField;
}

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

protected void getJournalMetadataElement(Element metadataElement) {
    removeAttribute(metadataElement, "locale");

    Element dynamicElementElement = metadataElement.getParent();

    // Required/* ww  w  .j a v a2  s  .co  m*/

    boolean required = GetterUtil.getBoolean(dynamicElementElement.attributeValue("required"));

    addMetadataEntry(metadataElement, "required", String.valueOf(required));

    // Tooltip

    Element tipElement = fetchMetadataEntry(metadataElement, "name", "tip");

    if (tipElement != null) {
        tipElement.addAttribute("name", "instructions");

        addMetadataEntry(metadataElement, "displayAsTooltip", "true");
    }
}

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

protected void updateContentDynamicElement(Element dynamicElementElement, DDMStructure ddmStructure,
        Fields ddmFields, DDMFieldsCounter ddmFieldsCounter) throws Exception {

    String fieldName = dynamicElementElement.attributeValue("name");

    for (String childFieldName : ddmStructure.getChildrenFieldNames(fieldName)) {

        int count = ddmFieldsCounter.get(fieldName);

        int repetitions = countFieldRepetition(ddmFields, childFieldName, fieldName, count);

        for (int i = 0; i < repetitions; i++) {
            Element childDynamicElementElement = dynamicElementElement.addElement("dynamic-element");

            childDynamicElementElement.addAttribute("name", childFieldName);

            String instanceId = getFieldInstanceId(ddmFields, fieldName, count + i);

            childDynamicElementElement.addAttribute("instance-id", instanceId);

            updateContentDynamicElement(childDynamicElementElement, ddmStructure, ddmFields, ddmFieldsCounter);
        }/*from   w ww .j a  v  a 2 s. c  o m*/
    }

    updateContentDynamicElement(dynamicElementElement, ddmStructure, ddmFields, fieldName, ddmFieldsCounter);
}

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

protected void updateDDMXSDDynamicElement(Element dynamicElementElement, String defaultLanguageId) {

    // Metadata/*www. j  a v  a2 s .com*/

    List<Element> metadataElements = dynamicElementElement.elements("meta-data");

    for (Element metadataElement : metadataElements) {
        String languageId = metadataElement.attributeValue("locale");

        if (languageId.equals(defaultLanguageId)) {
            getJournalMetadataElement(metadataElement);
        } else {
            dynamicElementElement.remove(metadataElement);
        }
    }

    Element parentElement = dynamicElementElement.getParent();

    String parentType = parentElement.attributeValue("type");

    if (Objects.equals(parentType, "list") || Objects.equals(parentType, "multi-list")) {

        Element metadataElement = dynamicElementElement.element("meta-data");

        Element labelElement = fetchMetadataEntry(metadataElement, "name", "label");

        dynamicElementElement.addAttribute("name", labelElement.getText());

        String repeatable = parentElement.attributeValue("repeatable");

        dynamicElementElement.addAttribute("repeatable", repeatable);

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

        dynamicElementElement.addAttribute("type", value);

        removeAttribute(dynamicElementElement, "value");

        dynamicElementElement.remove(metadataElement);

        return;
    }

    // Index type

    String indexType = GetterUtil.getString(dynamicElementElement.attributeValue("indexType"));

    removeAttribute(dynamicElementElement, "indexType");

    dynamicElementElement.addAttribute("index-type", indexType);

    // Type

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

    boolean multiple = GetterUtil.getBoolean(dynamicElementElement.attributeValue("multiple"));

    String newType = _ddmTypesToJournalTypes.get(type);

    if (newType.equals("list") && multiple) {
        newType = "multi-list";
    }

    dynamicElementElement.addAttribute("type", newType);

    // Removable attributes

    String[] removableAttributeNames = new String[] { "dataType", "fieldNamespace", "multiple", "readOnly",
            "required", "showLabel", "width" };

    for (String removableAttributeName : removableAttributeNames) {
        removeAttribute(dynamicElementElement, removableAttributeName);
    }

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

    for (Element childrenDynamicElementElement : childrenDynamicElementElements) {

        updateDDMXSDDynamicElement(childrenDynamicElementElement, defaultLanguageId);
    }
}

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

protected void updateJournalXSDDynamicElement(Element element, String defaultLanguageId) {

    String name = element.attributeValue("name");
    String type = element.attributeValue("type");

    Element metadataElement = element.element("meta-data");

    if (metadataElement == null) {
        metadataElement = element.addElement("meta-data");
    }/*from   ww  w  .  j a va  2 s. c  o m*/

    if (type.equals("multi-list")) {
        element.addAttribute("multiple", "true");
    } else {
        Element parentElement = element.getParent();

        String parentType = parentElement.attributeValue("type");

        if ((parentType != null) && parentType.equals("select")) {
            metadataElement.addAttribute("locale", defaultLanguageId);

            addMetadataEntry(metadataElement, "label", decodeURL(name));

            removeAttribute(element, "index-type");

            element.addAttribute("name",
                    "option" + parentElement.attributeValue("name") + StringUtil.randomString(8));
            element.addAttribute("type", "option");
            element.addAttribute("value", decodeURL(type));

            return;
        }
    }

    String indexType = StringPool.BLANK;

    Attribute indexTypeAttribute = element.attribute("index-type");

    if (indexTypeAttribute != null) {
        indexType = indexTypeAttribute.getValue();

        element.remove(indexTypeAttribute);
    }

    element.remove(element.attribute("type"));

    if (!type.equals("selection_break")) {
        String dataType = _ddmDataTypes.get(type);

        if (dataType == null) {
            dataType = "string";
        }

        element.addAttribute("dataType", dataType);
    }

    element.addAttribute("indexType", indexType);

    String required = "false";

    Element requiredElement = fetchMetadataEntry(metadataElement, "name", "required");

    if (requiredElement != null) {
        required = requiredElement.getText();
    }

    element.addAttribute("required", required);

    element.addAttribute("showLabel", "true");

    String newType = _journalTypesToDDMTypes.get(type);

    if (newType == null) {
        newType = type;
    }

    element.addAttribute("type", newType);

    if (newType.startsWith("ddm")) {
        element.addAttribute("fieldNamespace", "ddm");
    }

    metadataElement.addAttribute("locale", defaultLanguageId);

    List<Element> entryElements = metadataElement.elements();

    if (entryElements.isEmpty()) {
        addMetadataEntry(metadataElement, "label", name);
    } else {
        for (Element entryElement : entryElements) {
            String oldEntryName = entryElement.attributeValue("name");

            String newEntryName = _ddmMetadataAttributes.get(oldEntryName);

            if (newEntryName == null) {
                metadataElement.remove(entryElement);
            } else {
                entryElement.addAttribute("name", newEntryName);
            }
        }
    }

    if (newType.equals("ddm-date") || newType.equals("ddm-decimal") || newType.equals("ddm-integer")
            || newType.equals("ddm-link-to-page") || newType.equals("ddm-number")
            || newType.equals("ddm-text-html") || newType.equals("text") || newType.equals("textarea")) {

        element.addAttribute("width", "25");
    } else if (newType.equals("ddm-image")) {
        element.addAttribute("fieldNamespace", "ddm");
        element.addAttribute("readOnly", "false");
    }

    element.add(metadataElement.detach());

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

    for (Element dynamicElementElement : dynamicElementElements) {
        updateJournalXSDDynamicElement(dynamicElementElement, defaultLanguageId);
    }
}

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

License:Open Source License

protected void copyArticleImages(JournalArticle oldArticle, JournalArticle newArticle) throws Exception {

    Folder folder = newArticle.addImagesFolder();

    for (FileEntry fileEntry : oldArticle.getImagesFileEntries()) {
        PortletFileRepositoryUtil.addPortletFileEntry(oldArticle.getGroupId(), newArticle.getUserId(),
                JournalArticle.class.getName(), newArticle.getResourcePrimKey(), JournalConstants.SERVICE_NAME,
                folder.getFolderId(), fileEntry.getContentStream(), fileEntry.getFileName(),
                fileEntry.getMimeType(), false);
    }/* www  .  j a  va  2 s  .  com*/

    Document contentDocument = oldArticle.getDocument();

    contentDocument = contentDocument.clone();

    XPath xPathSelector = SAXReaderUtil.createXPath("//dynamic-element[@type='image']");

    List<Node> imageNodes = xPathSelector.selectNodes(contentDocument);

    for (Node imageNode : imageNodes) {
        Element imageEl = (Element) imageNode;

        List<Element> dynamicContentEls = imageEl.elements("dynamic-content");

        for (Element dynamicContentEl : dynamicContentEls) {
            String fileName = dynamicContentEl.attributeValue("name");

            FileEntry fileEntry = PortletFileRepositoryUtil.getPortletFileEntry(newArticle.getGroupId(),
                    folder.getFolderId(), fileName);

            String previewURL = DLUtil.getPreviewURL(fileEntry, fileEntry.getFileVersion(), null,
                    StringPool.BLANK, false, true);

            dynamicContentEl.addAttribute("resourcePrimKey", String.valueOf(newArticle.getResourcePrimKey()));

            dynamicContentEl.clearContent();

            dynamicContentEl.addCDATA(previewURL);
        }
    }

    newArticle.setContent(contentDocument.formattedString());
}