Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Como se mencionó en Ink Analysis Overview, la tecnología de análisis de lápiz mantiene internamente un modelo de documentos basado en árbol para contener resultados y relaciones de análisis. Si la aplicación ya tiene un almacén de documentos establecido que es diferente, deberá usar las características de análisis de entrada de lápiz diseñadas para proxy de datos entre modelos de documentos dispares.
Tipos de proxy de datos
Las características del proxy de datos permiten a la aplicación:
- Integre los datos de los resultados de análisis en un modelo de documento existente.
- Comunique los resultados anteriores (o el estado) en el InkAnalyzer.
- Comunique el estado que no es de entrada de lápiz en el InkAnalyzer.
- Comunique solo el conjunto mínimo de datos (tanto el estado anterior como el que no es de entrada de lápiz) necesario para completar la operación de análisis.
- Actualice fácilmente el modelo de documento de aplicación interno con los resultados del análisis.
Hay dos enfoques básicos para el proxy de datos de análisis de entrada de lápiz. Las diferencias se muestran en los detalles de cuándo y cómo se produce la sincronización entre los modelos de documento. El primer enfoque, actualización sincrónica, requiere la modificación del modelo de documento de análisis de entrada de lápiz a medida que se producen cambios en el documento de aplicación. El segundo enfoque, actualización a petición, solo requiere que los datos afectados por los cambios en el modelo de documento de aplicación se pasen al InkAnalyzer. Es decir, solo los datos de las partes del modelo de documento de análisis de entrada de lápiz que se encuentran en el mismo área que las modificaciones del documento de aplicación deben pasarse a la InkAnalyzer según las necesite.
Actualización sincrónica
El enfoque de actualización sincrónica requiere la modificación (creación y eliminación) de nodos en el InkAnalyzer colección del objeto de ContextNode objetos a medida que se producen en el documento de la aplicación. Por ejemplo, cada vez que se agrega una palabra de texto a la aplicación, se crea una TextWord estilo ContextNode en el InkAnalyzer. Si cambia la ubicación de la palabra de texto en la página, la ubicación del ContextNode correspondiente se actualiza al mismo tiempo. Este método es menos eficaz en términos de recursos informáticos que el método a petición porque cada cambio de documento implica una actualización de la InkAnalyzer, incluso si el cambio no afecta a la entrada de lápiz que se está analizando.
El ejemplo siguiente está diseñado para mostrar cómo funciona la actualización sincrónica. Imagine una aplicación que tiene un modelo de documento existente. Cuando el usuario final realiza un cambio en el documento, como agregar texto nuevo, el cambio se procesa de la siguiente manera:
- El usuario final crea los nuevos datos.
- La aplicación determina cómo procesar los datos, almacenarlos y representarlos.
- Con fines prácticos, los siguientes pasos se llevan a cabo simultáneamente.
- La aplicación coloca los datos en su modelo de documento.
- La aplicación crea unInkAnalyzer y lo actualiza. Esto garantiza simultáneamente que el InkAnalyzer siempre tiene la información más reciente.
- La aplicación llama a backgroundAnalyze en elInkAnalyzerpara comenzar el análisis.
- Se desencadena una serie de eventos si el cambio implica entrada de lápiz y el InkAnalyzer determina nuevos resultados. Se desencadena un evento para cada cambio realizado en la colección de objetos ContextNode en el InkAnalyzer. Estos eventos incluyen ContextNodeCreated, ContextNodeDeleting, ContextNodeMovingToPosition, ContextNodePropertiesUpdated, ContextNodeLinkAdding, ContextNodeLinkDeletingy ContextNodeReparenting. La aplicación controla estos eventos para proxy de los resultados de la operación de análisis en el modelo de documento según corresponda.
- La aplicación actualiza el diseño del documento, extrayendo los nuevos datos del modelo de documento.
- Los nuevos datos se vuelven a representar al usuario final.
Actualización a petición
El enfoque a petición solo requiere que los datos se pasen para los ContextNode objetos que se encuentran en las áreas que se analizan. El ContextNode necesario objetos se extraen del modelo de documento de la aplicación justo después de invocar la operación de análisis y, de nuevo, justo antes de reconciliar los resultados. Aunque es más complicado implementar que las actualizaciones sincrónicas, este enfoque produce mejores resultados de rendimiento.
Temas relacionados