Conversión de un atributo de texto enriquecido en un atributo de texto simple
Utilice las API como getLongDescription, getLongProposedSolution y getLongReason para obtener contenido enriquecido como longDescription, longProposedSolution y longReason, respectivamente, con etiquetas de markup.
Utilice las API como getDescription, getProposedSolutiony getReason para obtener los valores de texto sin formato de una descripción, una solución propuesta y un motivo.
Para convertir contenido enriquecido (con etiquetas de markup) en texto sin formato simple, utilice el siguiente código:
String richText = ChangeOrder2(Instance).getLongDescription()
HTMLText htmlAttr = HTMLText.newHTMLText(richText);
plainText = htmlAttr.getPlainText();
Conversión de un atributo de texto enriquecido en un atributo de texto simple para paquetes de replicación
Debido a la introducción del editor de texto enriquecido en Windchill 11.1 F000, cualquier paquete de objetos de cambio exportado en Windchill 11.0 M030 excluirá los atributos de texto enriquecido, como longDescriptionlongProposedSolution y longReason. Sin embargo, es posible personalizar el sistema de origen para convertir los atributos de texto enriquecido exportados del origen en atributos de texto simple. La personalización permite quitar los atributos existentes: description, proposedSolution y reason, y convierte los atributos: longDescription en description, longReason en reason y longProposedSolution en proposedSolution. Como resultado, los valores de texto enriquecido se convierten en valores de texto simple.
Realice los siguientes pasos para la personalización:
1. Según el tipo de objeto de cambio, acceda al fichero respectivo desde esta ruta: WT_HOME\codebase\registry\XSLRepo\11.0.M030.
◦ WTChangeActivity2.xsl
◦ WTChangeIssue.xsl
◦ WTChangeOrder2.xsl
◦ WTChangeRequest2.xsl
◦ WTVariance.xsl
|
En este ejemplo, se utiliza el fichero WTChangeIssue.xsl.
|
2. Añada las siguientes líneas de código en el fichero:
a. Para quitar el atributo description existente:
<xsl:template match="WTChangeIssue/description"></xsl:template>
b. Para reemplazar el atributo longDescription por description:
<xsl:template match="WTChangeIssue/longDescription">
<description>
<xsl:call-template name="plainTextFilter" />
</description>
</xsl:template>
|
El código también llama a una plantilla XSL denominada plainTextFilter, que se definirá posteriormente.
|
c. Para importar la plantilla plainTextFilter:
<xsl:import href="plainTextFilter.xsl" />
3. Cree un fichero denominado plainTextFilter.xsl en la ubicación: <WT_HOME>\codebase\registry\XSLRepo\11.0.M030 y añada las siguientes líneas de código en el fichero.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:filter="java:com.custom.text.conversion.PlainTextConverter" >
<xsl:template name="plainTextFilter">
<xsl:value-of select="filter:convertToPlainText(.)" disable-output-escaping="yes"/>
</xsl:template>
</xsl:stylesheet>
Esto llama al método convertToPlainText de una clase personalizada com.custom.text.conversion.PlainTextConverter. Este método contendrá el valor de la cadena de texto enriquecido como el parámetro de entrada y devolverá el valor de la cadena de texto simple.
4. Cree una clase denominada PlainTextConverter para definir la clase personalizada indicada anteriormente:
package com.custom.text.conversion;
import org.apache.commons.lang.StringEscapeUtils;
import com.ptc.core.richtext.HTMLText;
public class PlainTextConverter {
public static String convertToPlainText(String rawText) {
HTMLText htmlAttr;
String plainText = " ((null))";
try {
if (null != rawText && !rawText.isEmpty()) {
htmlAttr = HTMLText.newHTMLText(rawText);
plainText = htmlAttr.getPlainText();
plainText = StringEscapeUtils.escapeXml(plainText);
}
} catch (Exception exp) {
exp.printStackTrace();
}
return plainText;
}
}
|
La clase debe estar disponible en la classpath de Windchill; por ejemplo, <windchill_home>\codebase\com\custom\text\conversion .
|
Después de completar los pasos anteriores, el paquete creado para Windchill 11.0 M030 contendrá los atributos description, proposedSolution y reason con valores de texto simple convertidos a partir de texto enriquecido.
Repita el paso 2 para todos los objetos de cambio y atributos de texto enriquecido que desee convertir.