Sugerencias para la creación de widgets de ThingWorx personalizados
En esta sección se proporcionan sugerencias para la creación de widgets personalizados.
• Utilice this.jqElement para limitar las selecciones de elementos. De esta forma, se reduce la probabilidad de introducir un comportamiento impredecible en la solución si hay ID y clases duplicados en el DOM.
Utilice this.jqElement, tal como se muestra en el código de ejemplo, para limitar las selecciones de elementos:
this.jqElement.find('.add-btn').click(function(e){
...do something...});
• Registro: se pueden crear eventos de registro para la depuración de mashups. Se recomienda utilizar los siguientes métodos para crear mensajes de registro en el entorno de tiempo de ejecución:
◦ TW.log.trace(message[, message2, ... ][, exception])
◦ TW.log.debug(message[, message2, ... ][, exception])
◦ TW.log.info(message[, message2, ... ][, exception])
◦ TW.log.warn(message[, message2, ... ][, exception])
◦ TW.log.error(message[, message2, ... ][, exception])
◦ TW.log.fatal(message[, message2, ... ][, exception])
Los registros están disponibles en el menú Supervisión. Seleccione un registro para abrir la ventana de registro y ver los mensajes de registro. Si el explorador que se utiliza soporta console.log(), los mensajes también aparecen en la consola del depurador.
• Formato: si hay una propiedad con el tipo base definido en STYLEDEFINITION, se puede obtener la información de estilo con el código que se indica a continuación.
var formatResult = TW.getStyleFromStyleDefinition(
widgetProperties['PropertyName']);
Si existe una propiedad de tipo base definido en STATEFORMATTING, utilice el siguiente código:
var formatResult = TW.getStyleFromStateFormatting({
DataRow: row,
StateFormatting: thisWidget.properties['PropertyName']
});
En ambos casos, formatResult es un objeto con los siguientes valores por defecto:
{
image: '',
backgroundColor: '',
foregroundColor: '',
fontEmphasisBold: false,
fontEmphasisItalic: false,
fontEmphasisUnderline: false,
displayString: '',
lineThickness: 1,
lineStyle: 'solid',
lineColor: '',
secondaryBackgroundColor: '',
textSize: 'normal'
};