Creación de un panel de configuración de efectividad de servicio personalizado
Para un atributo determinado de un objeto de efectividad de servicio, se pueden personalizar los campos que se presentan en los cuadros de diálogo Añadir/Editar efectividad de servicio y el filtro Efectividad de servicio para asignar sus valores.
En este tema se describe cómo crear un panel de configuración con los campos que se muestran abajo. El panel es el área debajo de los campos Tipo y Contexto.
Se deben tener en cuenta los siguientes requisitos:
1. Una clase Java que amplía ServiceEffectivityConfigType.
Consulte la clase siguiente como ejemplo (omita los saltos de línea):
codebase\com\ptc\arbortext\windchill\serviceEffectivityFilter\client\ui
\renderers\configTypes\SerialNumberDateConfigType.class
2. La clase utiliza esquemas y componentes de GXT para los campos deseados.
3. El atributo y la clase ServiceEffectivityConfigType personalizada se registran en el fichero ServiceEffectivityConfig.xml.
Resumen de métodos
Los siguientes métodos obligatorios se han heredado de ServiceEffectivtityConfigType y se deben sobrescribir o implementar. La información detallada de cada uno se incluye en secciones posteriores.
• renderConfigType()
• resetConfigType()>
• getLocalizedLabel()
• populateConfigType(JSONObject jsonObject)
• isContextMandatory()
• addDetailSummary()
• initializeConfigType(JSONObject innerObject)
• addConfigType()
• getJsonFromFields()
• getAllowAddingConfigType()
renderConfigType()
Este método permite crear el panel y los campos que contiene.
En el ejemplo, las siguientes entradas configuran los campos:
• El panel base se representa mediante una entrada ContentPanel.
• Las entradas ContentPanel incluyen entradas NoLegendFieldSet para las áreas Número de serie y fecha y Resumen.
• La entrada FieldSet para el área Número de serie y fecha contiene una entrada HorizontalPanel para que contenga los campos Número de serie y otra para los campos Fecha.
• La entrada HorizontalPanel para los campos Número de serie contiene entradas Radio y TextField para representar los dos tipos de información que se pueden introducir.
• La entrada HorizontalPanel para los campos Fecha contiene entradas DateTimePicker.
• La entrada FieldSet para el texto que se muestra en el campo Resumen se actualiza cuando se cambia cualquiera de los otros valores de campo.
• Se añaden vigilantes opcionales a los campos dentro de este método para controlar la entrada válida y activar/desactivar campos y botones.
resetConfigType()
Este método despeja y redefine todos los campos. Se utiliza con las acciones siguientes:
• Adición de los criterios a la tabla Por aplicar en la ficha del filtro de efectividad de servicio
• Pulsación en el botón Aplicar al añadir efectividad de servicio
• Eliminación del contexto si es obligatorio
En el ejemplo, este método también desactiva todos los campos para asegurar que se elige el contexto antes de continuar. El contexto es obligatorio para el tipo de efectividad de servicio.
getLocalizedLabel()
Este método devuelve la cadena de recurso localizada para el tipo de efectividad de servicio.
Para utilizar el nombre de visualización del atributo que se registra en la utilidad Administración de tipos y atributos, devuelva getDisplayName(). Se ha definido con este valor en la superclase.
populateConfigType(JSONObject jsonObject)
Cuando se crean criterios de filtro o un objeto de ServiceEffectivity, los valores de campo se convierten en JSONObject. Este método toma JSONObject, lee los valores de campo y rellena los campos de la interfaz de usuario con estos valores.
Se utiliza cuando se producen las acciones siguientes:
• Se selecciona una fila en la tabla Por aplicar en el filtro.
• La ficha de filtro se vuelve a abrir cuando se aplica un filtro.
• Se aplica un filtro guardado y se abre la ficha.
• Se edita un objeto existente de ServiceEffectivity.
JSONObject puede tener cualquier atributo y valor, pero requiere un delegado de filtro personalizado que pueda leerlos y gestionarlos.
isContextMandatory()
Esto especifica si el campo de contexto es obligatorio para el tipo de efectividad de servicio seleccionado. Se puede utilizar para controlar si los campos se desactivan si no se ha definido y si se borran cuando se quita el contexto.
addDetailSummary()
Esto solo se utiliza si se ha creado el conjunto de campos Resumen. Se actualiza el texto en el campo. Si el campo Resumen no es obligatorio, no es necesario implementar este método.
initializeConfigType(JSONObject innerObject)
Dado el JSONObject que representa los campos Efectividad de servicio, este método se utiliza en la ficha de filtro para inicializar los modelos de la tabla Por aplicar al rellenar la ficha.
addConfigType()
En la ficha de filtro Efectividad de servicio, este método crea el modelo y lo añade a la tabla Por aplicar.
detail representa la cadena que se muestra en la columna Valor de la tabla.
Por ejemplo:
JSONObject latestJSON = getJsonFromFields();
String detail = valueText.getRawValue();
SETabInfoModel cm = new SETabInfoModel(getLocalizedLabel(),
ServiceEffectivityHelper.
getEffContextAsStringFromWidget(getEffContext(), true), detail, latestJSON,
getConfigTypeId());
return cm;
getJsonFromFields()
Este método crea un JSONObject de los valores definidos en los campos. Este objeto es diferente para cada tipo de efectividad de servicio y lo administra el delegado del filtro.
getAllowAddingConfigType()
Este método devuelve la propiedad booleana allowAddingConfigType, que se utiliza para activar/desactivar botones en los formularios si los campos no superan la validación.