Package net.sourceforge.rtf.context.fields

Examples of net.sourceforge.rtf.context.fields.RTFContextField


             * 4. Prepare RTF context fields
             * => set the field which must be transformed
             * In test.rtf, there is a mergefield called "date"
             */
            RTFContextFields context = new RTFContextFields();
            RTFContextField field = new RTFContextField();
            field.setName("$date");
            context.addMergeField(field);           
           
           /**
            * 5. Get the RTF velocity transformer
            */
 
View Full Code Here


        newFields.setDescription(oldFields.getDescription());
        // Get the map of the source XML fields
        Map oldContextFieldsMap = oldFields.getMergeFieldsMap();
        // Loop for New ContextFields
          for (Iterator iter = newFields.getMergeFields().iterator(); iter.hasNext();) {
            RTFContextField newField = (RTFContextField) iter.next();
            // Test if oldContextFieldsMap contains this field
            RTFContextField oldField = (RTFContextField)oldContextFieldsMap.get(newField.getName());
            if (oldField != null) {
              // Update description
              newField.setDescription(oldField.getDescription());
            }
          }
        // Get the map of the source XML fields
        Map oldContextBookmarksMap = oldFields.getBookmarksMap();
        // Loop for New ContextFields
View Full Code Here

 
  /**
   * Add field
   */
  protected void addMergeField(String mergeFieldName, boolean mergeFieldIsList, String mergeFieldNameWithListInfo, boolean isImage) {
    RTFContextField field = new RTFContextField(mergeFieldName, mergeFieldIsList, mergeFieldNameWithListInfo);
    field.setImage(isImage);
    fields.addMergeField(field);
  }
View Full Code Here

            case RTF_ELEMENT_FIELD:
                RTFField field = (RTFField) element;
                String fieldName = field.getName();
                if (fieldName != null) {
                    int fieldType = field.getType();
                    RTFContextField rtfField = (RTFContextField) contextFieldsMap
                            .get(fieldName);
                    if (rtfField != null) {
                        // RTF field is into the context
                        String newFieldName = "";
                        String fieldNameWithListInfo = rtfField.getListInfo();
                        boolean fieldIsList = isList(rtfField);
                        boolean fieldIsImage = isImage(rtfField);
                        switch (fieldType) {
                        case RTFField.FIELDTYPE_HYPERLINK:
                            /*
                             * HYPERLINK field code RTF example : /* {\field
                             * {\*\fldinst {\insrsid9655237 HYPERLINK
                             * "mailto:$developers.Email" } {\insrsid9655237
                             * {\*\datafield
                             * 00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b320000006d00610069006c0074006f003a00240064006500760065006c006f0070006500720073002e0045006d00610069006c000000 } } }
                             * {\fldrslt {\cs16\
                             * ul\cf2\insrsid9655237\charrsid9655237
                             * mailto:$developers.Email } } }
                             */
                            IRTFFieldTransform hyperlinkTransform = getRTFFieldTransform(
                                    fieldName, fieldType, fieldIsImage);
                            hyperlinkTransform.transform(field, fieldIsList,
                                    this);
                            break;
                        case RTFField.FIELDTYPE_MERGEFIELD:
                            /*
                             * MERGEFIELD code RTF example : {\field\flddirty
                             * {\*\fldinst
                             * {\b\cf17\lang1036\langfe2057\langnp1036\insrsid331776\charrsid5667574
                             * MERGEFIELD $personne.Name \\* MERGEFORMAT } }
                             * {\fldrslt
                             * {\b\cf17\lang1024\langfe1024\noproof\langnp1036\insrsid331776\charrsid5667574
                             * \'ab$personne.Name\'bb } } }
                             */
                            IRTFFieldTransform fieldTransform = getRTFFieldTransform(
                                    fieldName, fieldType, fieldIsImage);
                            fieldTransform.transform(field, fieldIsList, this);
                            break;
                        }

                        // Test if field is list
                        if (fieldIsList) {
                            boolean loopIsManagedWithBookmark = false;
                            // Mergefield is list, it must be placed :
                            // * between 2 Bookmark (START_LOOP and END_LOOP) or
                            // * inside Row
                            int bookmarkSize = startBookmarksList.size();
                            if (bookmarkSize > 0) {
                                // MergeField is found and Bookmark was started
                                // construct #foreach with name of field
                                RTFBookmark startBookmark = (RTFBookmark) startBookmarksList
                                        .elementAt(bookmarkSize - 1);
                                startBookmark.replaceElement(getForeach(
                                        fieldName, fieldNameWithListInfo));
                                startBookmark.setItemNameList(getItemListName(
                                        fieldName, fieldNameWithListInfo));
                                startBookmarksList.removeElement(startBookmark);
                                bookmarkStartMap.put(startBookmark.getName(),
                                        startBookmark);
                                startBookmarksNotEnded.put(startBookmark
                                        .getItemNameList(), startBookmark);
                                loopIsManagedWithBookmark = true;
                            } else {
                                // Tet si if exist A START_LOOP_i which is not
                                // ended and which have the name list
                                // waited
                                String itemListName = getItemListName(
                                        fieldName, fieldNameWithListInfo);
                                loopIsManagedWithBookmark = (startBookmarksNotEnded
                                        .get(itemListName) != null);
                            }

                            if (loopIsManagedWithBookmark) {

                                // Test if rtfParent is row => to indicate that
                                // row must not generate #foreach
                                if (getType(parentElement) == RTF_ELEMENT_ROW) {
                                    RTFRow row = (RTFRow) parentElement;
                                    if (rowMustNotGenerateForeachList == null) {
                                        rowMustNotGenerateForeachList = new ArrayList();
                                    }
                                    rowMustNotGenerateForeachList.add(row);
                                }
                            } else {
                                // Test if rtfParent is row
                                if (getType(parentElement) == RTF_ELEMENT_ROW) {
                                    RTFRow row = (RTFRow) parentElement;
                                    if (row.getFirstRTFString() == null) {
                                        if (rowMustNotGenerateForeachList == null
                                                || !rowMustNotGenerateForeachList
                                                        .contains(row)) {
                                            row.addFirstRTFString(getForeach(
                                                    fieldName,
                                                    fieldNameWithListInfo));
                                            row
                                                    .addLastRTFString(getMacroEndForEach()); // #end
                                        }
                                    }
                                }
                            }

                            // Add item_ after $
                            String fieldContent = field
                                    .getRTFContentOfSimpleElement();
                            if (fieldName.startsWith("$"))
                                fieldName = fieldName.substring(1);
                            newFieldName = getObjectValueList(fieldName,
                                    fieldNameWithListInfo, true);
                            if (newFieldName.startsWith("$"))
                                newFieldName = newFieldName.substring(1);

                            fieldContent = StringUtils.sub(fieldContent,
                                    fieldName, newFieldName);
                            field.replaceElement(fieldContent);
                        }
                    } else {
                        if (fieldType == RTFField.FIELDTYPE_REF) {
                            String condition = field.getCondition();
                            if (condition != null) {
                                // Condition is defined
                                // Field is REF (IF condition)
                                // Get Bookmark with name field
                                RTFBookmark ifBookmark = (RTFBookmark) bookmarkIfMap
                                        .get(fieldName);
                                if (ifBookmark != null) {
                                    // Bookmark IF exists. Replace this RTF code
                                    // with the condition
                                    // comming from field
                                    condition = getMacroIf(condition);
                                    ifBookmark.replaceElement(condition);
                                    // Remove content of the field
                                    field.replaceElement("");
                                    // Replace BKMEND by ""
                                    RTFBookmark ifBookmarkBKMEND = (RTFBookmark) bookmarkBkmIfMap
                                            .get(fieldName);
                                    ifBookmarkBKMEND.replaceElement("");                                   
                                }
                            }
                        }
                    }
                }
                break;

            case RTF_ELEMENT_ROW:
                RTFRow row = (RTFRow) element;
                transform(row, row.getElementList(), contextFieldsMap);
                row.flush();
                break;

            case RTF_ELEMENT_PAGE:
                lastPage = (RTFPage) element;
                break;
            case RTF_ELEMENT_USERPROPERTY:
                RTFUserProperty userProperty = (RTFUserProperty) element;
                String userPropertyName = userProperty.getName();
                if (userPropertyName != null
                        && userPropertyName.startsWith("$")) {
                    RTFContextField rtfUserProperty = (RTFContextField) contextFieldsMap
                            .get(userPropertyName);
                    boolean userPropertyIsList = isList(rtfUserProperty);
                    if (userPropertyIsList) {
                        String userPropertyNameWithListInfo = rtfUserProperty
                                .getListInfo();
                        // User property is list
                        // Add item_ after $
                        // Manage \propname
                        String userPropertyContent = userProperty
View Full Code Here

             * 4. Prepare RTF context fields
             * => set the field which must be transformed
             * In test.rtf, there is a mergefield called "date"
             */
            RTFContextFields context = new RTFContextFields();
            RTFContextField field = new RTFContextField();
            field.setName("$date");
            context.addMergeField(field);
           
           /**
            * 5. Get the RTF freemarker transformer
            */
 
View Full Code Here

TOP

Related Classes of net.sourceforge.rtf.context.fields.RTFContextField

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.