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

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

Introduction

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

Prototype

public Element addAttribute(String name, String value);

Source Link

Usage

From source file:com.liferay.journal.internal.upgrade.v0_0_6.UpgradeImageTypeContentAttributes.java

License:Open Source License

protected String addImageContentAttributes(String content) 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");

        String id = null;//from  w w w . jav a 2s  .  c  om

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

            dynamicContentEl.addAttribute("alt", StringPool.BLANK);
            dynamicContentEl.addAttribute("name", id);
            dynamicContentEl.addAttribute("title", id);
            dynamicContentEl.addAttribute("type", "journal");
        }

        if (Validator.isNotNull(id)) {
            imageEl.addAttribute("instance-id", getImageInstanceId(id));
        }
    }

    return contentDocument.formattedString();
}

From source file:com.liferay.journal.internal.upgrade.v1_0_0.UpgradeImageTypeContentAttributes.java

License:Open Source License

protected String addImageContentAttributes(String content) 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");

            dynamicContentEl.addAttribute("alt", StringPool.BLANK);
            dynamicContentEl.addAttribute("name", id);
            dynamicContentEl.addAttribute("title", id);
            dynamicContentEl.addAttribute("type", "journal");
        }/*from  w ww .jav a 2s .c  o m*/
    }

    return contentDocument.formattedString();
}

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

License:Open Source License

@Override
public String getContent(DDMStructure ddmStructure, Fields ddmFields) throws Exception {

    Document document = SAXReaderUtil.createDocument();

    Element rootElement = document.addElement("root");

    String availableLocales = getAvailableLocales(ddmFields);

    rootElement.addAttribute("available-locales", availableLocales);

    Locale defaultLocale = ddmFields.getDefaultLocale();

    rootElement.addAttribute("default-locale", LocaleUtil.toLanguageId(defaultLocale));

    DDMFieldsCounter ddmFieldsCounter = new DDMFieldsCounter();

    for (String fieldName : ddmStructure.getRootFieldNames()) {
        int repetitions = countFieldRepetition(ddmFields, fieldName, null, -1);

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

            dynamicElementElement.addAttribute("name", fieldName);

            updateContentDynamicElement(dynamicElementElement, ddmStructure, ddmFields, ddmFieldsCounter);
        }/*w w w.  j a va2s . c om*/
    }

    return XMLUtil.formatXML(document.asXML());
}

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   www  .j  av  a  2 s .  c o  m
@Deprecated
@Override
public String getDDMXSD(String journalXSD, Locale defaultLocale) throws Exception {

    Document document = SAXReaderUtil.read(journalXSD);

    Element rootElement = document.getRootElement();

    rootElement.addAttribute("available-locales", defaultLocale.toString());
    rootElement.addAttribute("default-locale", defaultLocale.toString());

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

    for (Element dynamicElementElement : dynamicElementElements) {
        updateJournalXSDDynamicElement(dynamicElementElement, defaultLocale.toString());
    }

    return XMLUtil.formatXML(document);
}

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

License:Open Source License

protected void addMetadataEntry(Element metadataElement, String name, String value) {

    Element entryElement = metadataElement.addElement("entry");

    entryElement.addAttribute("name", name);
    entryElement.addCDATA(value);//from   w ww .  j  a v a  2  s . c  o m
}

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/*from www .ja va  2 s .  c om*/

    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);
        }/*w w w  .ja  v  a2s  . 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 updateContentDynamicElement(Element dynamicElementElement, DDMStructure ddmStructure,
        Fields ddmFields, String fieldName, DDMFieldsCounter ddmFieldsCounter) throws Exception {

    String fieldType = ddmStructure.getFieldType(fieldName);
    String indexType = ddmStructure.getFieldProperty(fieldName, "indexType");
    boolean multiple = GetterUtil.getBoolean(ddmStructure.getFieldProperty(fieldName, "multiple"));

    String type = _ddmTypesToJournalTypes.get(fieldType);

    if (type == null) {
        type = fieldType;//from w ww .  j  av  a 2s. c  o  m
    }

    dynamicElementElement.addAttribute("type", type);

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

    int count = ddmFieldsCounter.get(fieldName);

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

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

    Field ddmField = ddmFields.get(fieldName);

    if (!ddmStructure.isFieldTransient(fieldName) && (ddmField != null)) {
        for (Locale locale : ddmField.getAvailableLocales()) {
            Element dynamicContentElement = dynamicElementElement.addElement("dynamic-content");

            dynamicContentElement.addAttribute("language-id", LocaleUtil.toLanguageId(locale));

            Serializable fieldValue = ddmField.getValue(locale, count);

            String valueString = String.valueOf(fieldValue);

            updateDynamicContentValue(dynamicContentElement, fieldType, multiple, valueString.trim());
        }
    }

    ddmFieldsCounter.incrementKey(fieldName);
}

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

License:Open Source License

protected void updateDDMXSDDynamicElement(Element dynamicElementElement, String defaultLanguageId) {

    // Metadata/* w  w  w  .j  av  a  2s  .  co  m*/

    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 v  a 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);
    }
}