MX2010011515A - Operaciones de deshacer/rehacer para datos de multi-objeto. - Google Patents

Operaciones de deshacer/rehacer para datos de multi-objeto.

Info

Publication number
MX2010011515A
MX2010011515A MX2010011515A MX2010011515A MX2010011515A MX 2010011515 A MX2010011515 A MX 2010011515A MX 2010011515 A MX2010011515 A MX 2010011515A MX 2010011515 A MX2010011515 A MX 2010011515A MX 2010011515 A MX2010011515 A MX 2010011515A
Authority
MX
Mexico
Prior art keywords
undo
data
redo
operations
objects
Prior art date
Application number
MX2010011515A
Other languages
English (en)
Inventor
Vik Torbjorn
Original Assignee
Logined Bv
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Logined Bv filed Critical Logined Bv
Publication of MX2010011515A publication Critical patent/MX2010011515A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/80Creating or modifying a manually drawn or painted image using a manual input device, e.g. mouse, light pen, direction keys on keyboard
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16CCOMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
    • G16C20/00Chemoinformatics, i.e. ICT specially adapted for the handling of physicochemical or structural data of chemical particles, elements, compounds or mixtures
    • G16C20/90Programming languages; Computing architectures; Database systems; Data warehousing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Se pueden aplicar operaciones innovadoras de deshacer/rehacer a objetos separados o partes de objetos dentro de datos de multi-objeto, sin tener que deshacer y rehacer sobre una secuencia cronológica rígida de operaciones registradas. En una implementación, un usuario selecciona un objeto, o parte de un objeto, y las técnicas innovadoras de deshacer/rehacer permiten al usuario aplicar operaciones de deshacer y rehacer sólo al objeto seleccionado o parte, al mismo tiempo saltando operaciones de deshacer y rehacer para otros objetos. Las operaciones de deshacer/rehacer también se pueden aplicar en paralelo a múltiples objetos. Una interface gráfica de usuario (GUI) provee representaciones lineales o jerárquicas de operaciones aplicadas a cada objeto y exhibe controles de deshacer/rehacer para cada objeto.

Description

OPERACIONES DE DESHACER/REHACER PARA DATOS DE MULTI- OBJETO SOLICITUDES RELACIONADAS Esta solicitud de patente se relaciona con la solicitud de patente de E.U.A. No. á Vik, Expediente No. 94.0230, titulada "Incremental Implementatioh of Undo/Redo Support In Legacy Applications", presentada concurrentemente con la presente, y se incorpora a la presente por referencia en su totalidad.
ANTECEDENTES DE LA INVENCIÓN Las aplicaciones de software interactivo operan en algún tipo de serie de datos. Por ejemplo, la serie de datos puede ser tan simple como un documento ;de texto; o puede ser un dibujo, o un modelo geofísico complejo. Él usuario final crea, modifica y sintoniza esta serie de datos a través de un número de acciones ("editar texto", "dibujar linea", "interpretar horizonte") hasta que se logra un resultado deseado. Una herramienta útil para dichas aplicaciones es una técnica conocida como "deshacer/rehacer". Esta técnica permite al usuario final deshacer Ias'acciones más recientes en orden y como un resultado repetir la serie de datos al estado en que estaba antes de la acción(es). Algunas aplicaciones, como edición de documento, pueden tener múltiples series de datos (documentos) activos en paralelo. Estas aplicaciones guardan un historial de acción individual para cada serie de datos abierta, y permiten al usuario final mover hacia atrás y adelante en el historial independientemente para cada serie de datos activa. Hay! muchas aplicaciones de software que implementan alguna forma de procedimientos de deshacer/rehacer, tanto de un solo paso como de múltiples pasos. Pero para una serié de datos individual dada que; contiene múltiples objetos individuales, no hay procedimiento de deshacer/rehacer en donde se puedan aplicar acciones a objetos individuales o a grupos de objetos y después deshecho/rehecho sobre una base por objeto.
BREVE DESCRIPCIÓN DE LA INVENCIÓN Se pueden aplicar operaciones innovadoras dé deshacer/rehacer para separar objetos o partes de objetos dentro de datos de multi-objeto, sin tener que deshacer y rehacer sobre una secuencia cronológica rígida de operaciones registradas. En una implementación, un usuario selecciona un objeto, o parte de un objeto, y las técnicas innovadoras de deshacer/rehacer permiten al usuario aplicar operaciones ¡ de deshacer y rehacer sólo al objeto seleccionado o una parte del objeto, al mismo tiempo saltando las operaciones de deshacer y rehacer para otros objetos. Las operaciones de deshacer/rehacer también se pueden aplicar en paralelo a múltiples objetosíen vez de la técnica convencional de I i deshacer/rehacer una operación a la vez sin consideración para lo cual los objetos fueron afectados.
Las operaciones innovadoras de deshacer/rehacer se pueden integrar en muchas diferentes aplicaciones nuevas o de legado que crean y editan datos de multi-objeto. Por ejemplo, las operaciones de deshacer/rehacer se pueden integrar en programas de software que crean documentos de procesador de palabras, hojas de cálculo, archivos de gráficas, modelos de CAD, y otras series de datos.
En una implementación , un método de ejemplo determina objetos selectos o características distinguibles en una serie de datos dada. Cada edición en la serie de datos se almacena en un montón u otro registro. Las identidades de los objetos afectados por una edición entonces se asocian con el registro de la edición almacenada en el montón. El montón se puede filtrar para proveer operaciones de deshacer y rehacer limitadas al historial de edición de un objeto dado o parte de un objeto sin modificar los otros objetos. Én otra implementación, primero sé crea una estructura de datos representando diferentes objetos en una serie dé datos, y después un registro de cada edición se asocia con una identidad correspondiente de un objeto o parte de un objeto en la estructura de datos, y almacenados para operaciones futuras de deshacer/rehacer en el contexto de ese objeto. Una interface gráfica de usuario (GUI) puede proveer representaciones de árbol lineales o visuales de opciones de deshacer y rehacer dinámicamente actualizadas para todos los objetos selectos en una serie de datos.
Esta sección de breve descripción no pretende dar una descripción completa de operaciones innovadoras de deshacer/rehacer para datos de multi-objeto, o proveer una lista comprensiva de características y elementos. A continuación hay una descripción detallada de implementaciones de ejemplo de las operaciones de deshacer/rehacer para datos de multi-objeto.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La figura 1 es un diagrama de un flujo de edición de ejemplo para operaciones de deshacer/rehacer.
La figura 2 es un diagrama de un sistema innovador de deshacer/rehacer.
La figura 3 es un diagrama en bloque de un motor de deshacer/rehacer de ejemplo introducido en la figura 2, en mayor detalle.
La figura 4 es un diagrama en bloque dé componentes de motor qué construyen una estructura de datos para realizar deshacer/rehacer por objeto.
La figura 5 es un diagrama de una estructura de datos de ejemplo introducida en las figuras 3 y 4, en mayor detalle.
La figura 6 es un diagrama de un montón cronológico asociado con un objeto individual.
La figura 7 es un diagrama de otro ejemplo de la estructura de datos de la figura 3, en mayor detalle.
La figura 8 es un diagrama de un primer estado de interface gráfica de usuario (GUI) de ejemplo.
La figura 9 es un diagrama de un segundo estado de GUI de ejemplo.
La figura 10 es un diagrama de un tercer estado de GUI de ejemplo.
La figura 11 es un diagrama de un cuarto estado de GUI de ejemplo.
La figura 12 es un diagrama del GUI de la figura 8 en el contexto de un modelo visual correspondiente.
La figura 13 es un diagrama de un GUI de ejemplo en donde controles de deshacer/rehacer para cada objeto se colocan en una posición fija.
La figura 14 es un diagrama de. flujo de un método de ejemplo de realizar una operación de deshacer/rehacer por objeto.
La figura 15 es un diagrama de flujo de un método de ejemplo de crear una interface gráfica de usuario (GUI) para operapiones de deshacer/rehacer por objeto.
DESCRIPCIÓ DETALLADA Visión General Esta descripción describe operaciones innovadoras de deshacer/rehacer que mejoran sobre las técnicas convencionales de deshacer y rehacer que están obligadas a la secuencia rígida de una sola historia cronológica de operaciones realizadas globalmente sobre una serie entera de datos. En escenarios convencionales de deshacer, el usuario debe aceptar una secuencia de deshacer que retrocede ediciones en un orden inverso del orden cronológico literal en donde las ediciones originales ocurrieron en cualquier lugar en la serie de datos. Asimismo, las operaciones convencionales de rehacer vuelven a ejecutar la misma secuencia intercambiable de operaciones que fueron deshechas. De esta manera, las técnicas convencionales de deshacer/rehacer requieren que el usuario acepte operaciones no deseadas con aquellas deseadas.
Las operaciones innovadoras de deshacer/rehacer descritas en la presente se pueden aplicar para separar objetos, o incluso partes de objetos, dentro de una serie de datos, sin tener que deshacer y rehacer dentro de una secuencia cronológica rígida de operaciones registradas. Como se usa en la presente, el término "objeto" significa un objeto o una parte de un objeto. Es decir, un usuario o un proceso innovador puede seleccionar o divide un objeto en partes o características, en cuyo caso cada parte o característica se puede tratar como un objeto por sí mismo. De esta manera, "objeto" como se usa en la presente significa una subserie lógica o una subserie seleccionada de datos dentro de una serie de datos más grande, designada como un nexo para operaciones de deshacer/rehacer asociadas con aquella subserie. "Características" y "objetos" serán referidos en la presente como "objetos". En una implementación, un objeto es una división visual o lógica de una serie de datos de una aplicación por la cual un historial global de ediciones se puede filtrar para proveer operaciones de deshacer/rehacer "por objeto" o "a lo largo de múltiples objetos seleccionados", sin tener que deshacer y rehacer ediciones previas en orden cronológico estricto hacia atrás y hacia adelanté.
De esta manera, en una implementactón, un usuario selecciona un objeto, o parte de un objeto, y las técnicas innovadoras de deshacer/rehacer permiten al usuario aplicar operaciones de deshacer y rehacer justo a ése objeto o parte de un objeto, al mismo tiempo saltando operaciones de deshacer y rehacer para otros objetos. Un usuario también puede aplicar operaciones de deshacer/rehacer en objetos múltiples paralelos, en vez de seguir un solo camino lineal de operaciones de deshacer/rehacer.
La figura 1 muestra un flujo de ejemplo de ediciones 100 para introducir el principio de operaciones de deshacer/rehacer "por objeto". En este ejemplo, el usuario ha alternado cada operación de edición entre dos objetos diferentes: construcción de un cuadrado y construcción de un triángulo. El flujo de edición original sigue las flechas blancas en la figura 1. En un escenario convencional, para deshacer la construcción de dos lados del cuadrado terminado, es decir, para retroceder de la edición 7 a la edición 3 en la figura 1, el usuario debe proceder en orden inverso de las flechas blancas sin desviación. Durante la secuencia convencional de deshacer, el fondo del triángulo terminado es eliminado de manera no deseada cuando la edición 4 en la figura 1 es invertida: un resultado no deseado.
En las operaciones innovadoras de deshacer/rehacer descritas en la presente, los dos procesos de deshacer y rehacer pueden distinguir entre objetos separados o partes de objetos dentro de datos de multi-objeto. De esta manera, en la figura 1, el usuario puede elegir deshacer sólo las ediciones para el objeto cuadrado, es decir, deshacer la secuencia de ediciones que incluye sólo las ediciones 7, 5, 3, 1 en la figura 1; o puede elegir deshacer sólo las ediciones para el objeto de triángulo, es decir, deshacer la secuencia de ediciones que incluyen sólo las ediciones 6, 4, 2.- Dicha operación de deshacer "por objeto" tiene una operación de rehacer de contraparte que sigue un orden hacia delante de la misma secuencia de ediciones que está limitada al objeto individual seleccionado.
Como se introdujo antes, las operaciones innovadoras de deshacer/rehacer se pueden integrar en varias aplicaciones dé software nuevas y de legado que crean y editan series de datos. Las series de datos de ejemplo incluyen documentos en procesador de palabras, hojas de cálculo, archivos de gráficas, modelos de CAD, etc. En una implementación, un método de ejemplo determina objetos o características que se pueden distinguir en una serie de datos dada. Dicho reconocimiento de objeto se puede lograr al aplicar un algoritmo que reconoce patrones de datos o similitudes; por selección manual de objetos por parte del usuario; o al pre- programar diferentes objetos en la serie de datos que una aplicación de software dada creará y modificará.
En una implementac'ión, cada edición en una serie de datos se almacena en un montón. Un mecanismo asociativo enlaza objetos afectados por una edición con el registro de la edición en el montón. El montón entonces puede filtrarse para proveer operaciones de deshacer y rehacer limitadas al historial de edición de un objeto dado sin cambiar ediciones pasadas de los otros objetos. En otra implementación, las identidades de objetos están estructuradas en una base de datos, y un registro de cada edición está asociado con la identidad de cada objeto que afecta, de modo que no hay construcción de un solo montón cronológico, global.
Una interface gráfica de usuario (GUI) asociada puede proveer representaciones visuales lineales o ramificadas de posibles operaciones de deshacer/rehacer "por objeto" o "a través de objetos". La GUI puede proveer un formato de árbol visual que muestra editar historias por objeto, con controles de deshacer rehacer dinámicamente colocados para cada objeto en una serie de datos. En una variación, los controles de deshacer y rehacer reubican en la GUI de modo que los controles siempre están en operaciones exhibidas para un objeto dado o grupo de objetos que en la actualidad se pueden deshacer o rehacer. Alternativamente, los controles de deshacer/rehacer se pueden fijar en una ubicación por objeto en la GUI, en vez de reubicar junto a cada operación actual que se pueda deshacer o rehacer.
Las operaciones innovadoras de deshacer/rehacer se pueden integrar en nuevo código de programación o en algunos casos instalar como un retrocambio para mejorar algunos tipos de operaciones de edición en aplicaciones de software pre-existentes que usan operaciones convencionales de deshacer/rehacer.
Ambiente de ejemplo Los ejemplos de las operaciones de deshacer/rehacer descritas en la presente se pueden practicar dentro de varias aplicaciones de software, como se usa en un ambiente de computación. La figura 2 muestra un ambiente de computación de ejemplo, incluyendo el dispositivo de computación 200 ejecutando una aplicación de software 201, en este caso una aplicación de modelaje que genera un modelo visual 202. La aplicación de software 201 incluye un motor 204 innovador de deshacer/rehacer integrado en su código de programación. El dispositivo de computación 200, hospedando tanto a la aplicación de software 201 como al motor de deshacer/rehacer 204, también incluye hardware típico, tal como un procesador 206, memoria 208, almacenamiento de datos locales 210, una interface de red 212, y una unidad de medios desmontable 214 - tal como un dispositivo para leer/escribir de disco óptico para recibir un medio de almacenamiento 216 desmontable. El medio de almacenamiento desmontable 216 puede ser, por ejemplo, un disco compacto (CD) o disco versátil digital / disco de video digital (DVD) que puede incluir instrucciones para implementar y ejecutar el motor 204 de deshacer/rehacer. En una manera similar a la aplicación de modelaje, que puede existir en parte como instrucciones de software en la memoria 208, por lo menos algunas partes del motor 204 innovador de deshacer/rehacer se pueden almacenar como instrucciones en un caso dado del medio de almacenamiento desmontable 216 o en almacenamiento de datos local 210, para cargarse en la memoria 208 para ejecución por el procesador 206. El motor 204 de deshacer/rehacer también se puede implementar como hardware electrónico, tal como uno o más, circuitos integrados específicos de aplicación (chips ASIC); o combinaciones de hardware y software, por ejemplo, instrucciones de un medio de almacenamiento desmontable 216 ejecutando en el hardware.
La aplicación de modelaje de ejemplo genera una serie de datos, que en el ejemplo de la figura 2 incluye por lo menos cinco objetos A, B, C, D y E con sus respectivos parámetros. En este ejemplo, el modelo visual 202 ilustra geofísica de reserva, y los objetos A, B, C, D y E son pozos. Cada uno de los cinco objetos (pozos) se puede editar por separado, y en cualquier orden. Por ejemplo, cada pozo puede ser definido por el usuario al asignar una ubicación y profundidad; y después ser nombrado, codificado por color, y así sucesivamente. Si el usuario ha hecho ediciones a los pozos en una manera aleatoria, saltando de pozo en pozo en el proceso de edición, entonces, en un escenario, el motor 204 innovador de deshacer/rehacer permite al usuario deshacer y rehacer el historial de edición con los otros pozos. En otro escenario, el motor de deshacer/rehacer 204 permite al usuario realizar operaciones de deshacer/rehacer globalmente a través de múltiples objetos seleccionados. De esta manera, en este ejemplo, si una acción similar ha sido aplicada recientemente a los pozos A, B y C, entonces una operación de deshacer se puede aplicar a los tres pozos en una operación simultánea o en secuencia.
Motor de deshacer/rehacer de ejemplo La figura 3 muestra el motor de deshacer/rehacer de ejemplo 204 de la figura 2, en mayor detalle. La implementación ilustrada es sólo una configuración de ejemplo, para introducir algunas características y componentes de un motor que realiza las técnicas innovadoras de deshacer/rehacer. Muchas otras disposiciones de los componentes de un motor innovador de deshacer/rehacer son posibles dentro del alcance del tema principal. Como se introdujo antes, el motor de deshacer/rehacer 204 se puede implementar en hardware, o en combinaciones de hardware y software. Los componentes ilustrados están en comunicación entre sí según sea necesario.
Proveyendo ahora una lista de componentes, el motor de deshacer/rehacer 204 ilustrado incluye, de izquierda superior a derecha inferior, un registrador de acciones 302 y asociador de objeto 304, los cuales generan una estructura de datos 306 para almacenar un registro, o historia, de cada operación de edición realizada; un motor de interface gráfica de usuario (GUI) 308 que incluye por lo menos un generador de árbol visual 310 y un administrador de controles de deshacer/rehacer 312; un regulador o interface de acceso en el motor de deshacer/rehacer 204 para almacenar o tener acceso a la serie de datos de la aplicación 314; un administrador de objeto 316 que incluye un analizador de serie de datos 318 para determinar objetos enumerados 320 y/o un definidor de objeto 322 para determinar los objetos enumerados 320; y un motor de ejecución por objeto 324, el cual incluye un selector de objeto 326, filtros de objeto 328, e interfaces de operaciones 330.
Como se muestra en la figura 4, la serie de datos de aplicación 314 es los datos globales creados y mantenidos por una aplicación particular, por ejemplo, un archivo de documento para una aplicación de procesador de palabras. Las flechas en la figura 4 representan entradas y salidas de componentes (datos). El registrador de acciones 302 asigna cada edición u operación iniciada por el usuario a un registro, dispuesto como la estructura de datos 306. El registro de la estructura de datos 306 puede ocurrir en almacenamiento permanente, por ejemplo, en almacenamiento de datos locales 210 o en memoria volátil, tal como una memoria de acceso aleatorio (RAM) 208. La estructura de datos 306 puede ser un montón cronológico de acciones realizadas o puede ser una estructura de objetos enumerados. Cuando la estructura de datos 306 es un montón cronológico, el asociador de objeto 304 en el registrador de acciones 302 enlaza la identidad de uno o más objetos afectados (es decir, modificados) por una acción dada al registro para esa acción en la estructura de datos 306 amontonados cronológicamente. Alternativamente, cuando la estructura de datos 306 es una jerarquía u otra disposición de objetos enumerados 320, el asociador de objeto 304 puede enlazar el registro de cada acción iniciada por el usuario a la identidad del objeto u objetos afectados dispuestos en la estructura de datos 306. Lá estructura de datos 306 no tiene que ser secuenciada en un orden cronológico. Sin embargo, construir la estructura de datos 306 en un orden cronológico conforme ocurren ediciones almacena automáticamente información temporal útil en la estructura de datos 306 sin tener que almacenar un campo de señal de tiempo extra en el registro cuando se usa un esquema de estructura no cronológico alternativo.
Regresando a la figura 3, el administrador de objeto 316 crea y provee la lista de objetos enumerados 320, por ejemplo, al asociador de objeto 304 para crear la estructura de datos 306; al motor de GUI 308 para crear un árbol visual ramificando de acuerdo a objetos; y al motor de ejecución por objeto 324 para realizar operaciones de deshacer/rehacer por objeto. El analizador de serie de datos 318 puede aplicar un esquema o algoritmo de reconocimiento a la serie de datos de aplicación 314 para discernir objetos individuales representados en la serie de datos 314. Alternativamente o además, un definidor de objeto 322 puede permitir al usuario designar manualment objetos o partes de objetos a los cuales aplicarán operaciones especificadas de deshacer/rehacer. Como se mencionó previamente, también se pueden programar objetos en la tela de una aplicación dada y su serie de datos correspondiente 314.
El motor de ejecución por objeto 324 realiza las operaciones de deshacer y rehacer específicas a un objeto individual dado, parte de objeto, o grupo de objetos seleccionados. El selector de objeto 326 especifica el objeto designado, parte de un objeto, o grupo de objetos para una operación de deshacer/rehacer dada. El selector de objeto 326 típicamente designa el objeto sobre el cual se realizará una operación de deshacer/rehacer, desde entrada del usuario recibida vía controles mostrados por el motor de GUI 308. El motor de ejecución 324 puede tener una serie de filtros de objeto 328 con los cuales generar una secuencia filtrada de ediciones pasadas específicas al objeto individual - o grupo de objetos - designados para deshacer o rehacer. En una implementación, uno o más filtros de objeto 328 señalan partes relevantes de la estructura de datos 306 en donde reside un historial de acciones aplicadas a un objeto seleccionado u objetos, en vez de > clasificar o filtrar un montón cronológico lineal por una o más identidades de objeto. En una implementación, el motor de ejecución 324 aplica un filtro de objeto dado 328 a una versión cronológicamente amontonada de la estructura de datos 306 a fin de derivar una secuencia filtrada de operaciones específicas para un objeto individual correspondiente (descrito más adelante con respecto a la figura 6). ¦ El motor de ejecución por objeto 324 incluye interfaces de operaciones 330 para comunicar con la aplicación dada a fin de controlar tipos particulares de operaciones de edición a las cuales aplican las operaciones de deshacer/rehacer por objeto. El motor de ejecución 324 puede usar técnicas convencionales de deshacer/rehacer, pero aplican éstas a una secuencia de sólo aquellas operaciones que han sido realizadas en un objeto individual.
El motor de deshacer/rehacer 204 también incluye un motor de GUI 308 para controlar una interface gráfica de usuario que muestra al usuario una representación de diferentes objetos disponibles para operaciones de deshacer/rehacer. El administrador de controles de deshacer/rehacer 312 exhibe controles de deshacer/rehacer para seleccionar las operaciones de deshacer/rehacer disponibles para cada objeto representado en la GUI. El motor de GUI 308 puede mostrar secuencias lineales de operaciones por objeto, o el generador de árbol visual 310 también puede usar los objetos enumerados 320 o la estructura de datos 306 para generar un árbol visual que muestre objetos disponibles para operaciones de deshacer/rehacer. El árbol visual puede estructurarse para mostrar operaciones de deshacer/rehacer disponibles para aplicarse a múltiples objetos, ya sea simultáneamente o en una secuencia que excluya acción en otros objetos no seleccionados. El administrador de controles de deshacer/rehacer 312 puede disponer dinámicamente controles de deshacer/rehacer en operaciones de deshacer/rehacer actuales y lógicamente disponibles listadas para cada objeto en la GUI, para proveer información muy específica sobre cuál es la siguiente acción que se debe deshacer o rehacer. O, en una variación, el administrador de controles de deshacer/rehacer 312 puede colocar controles de deshacer/rehacer de posición fija, por ejemplo, en la parte superior de cada columna representando una lista de acciones asociadas con un objeto dado. Los controles de posición fija deshacen o rehacen una acción relevante asociada con el objeto bajo la columna, sin que el usuario tenga que perseguir los controles de movimiento en la GUI.
Operación de ejemplo de un sistema de deshacer/rehacer El motor innovador de deshacer/rehacer 204 se puede usar en aplicaciones de software que operan en una serie de datos 314 que consiste de un número potencialmente grande de objetos individuales, lo que se pu.ede modificar independientemente o en grupo por las operaciones innovadoras de deshacer/rehacer. Una aplicación de ejemplo es modelado de reserva, con una serie de datos 314 qué contiene un número de interpretaciones de horizonte geológico. Para modificar estos horizontes, el usuario puede seleccionar a partir de un número de acciones interactivas, tal como "cambio de horizonte por distancia dada" o "cambio de todos los horizontes por distancia dada". Con técnicas convencionales de deshacer/rehacer, todas las acciones de usuario son almacenadas en un montón lineal, cronológico de acciones. De esta manera, aún si las acciones aplicadas al horizonte A y horizonte B son completamente independientes (ninguna acción de grupo), el usuario todavía tiene que mover hacia atrás en orden cronológico estrictamente inverso. El motor de deshacer/rehacer 204, no obstante, permite al usuario moverse hacia atrás a través de las acciones A y acciones B independientemente, mejorando la productividad del usuario. La estructura de datos 306 descrita en la presente soporta esta característica de operaciones de deshacer/rehacer por objeto al mismo tiempo manejando correctamente acciones de grupo y asegurando la integridad de los datos.
La figura 5 muestra una estructura de datos de ejemplo 306, en mayor detalle. La estructura de datos 306 muestra parte de las vidas efectivas de edición de dos objetos (A y B) en una serie de datos dada 314. Un número de acciones se aplican a ellas (montón central) y la estructura de datos 306 mantiene un registro de cuáles objetos fueron modificados.
El motor de ejecución 324 entonces puede aplicar un filtro de objeto 328 para encontrar todas las acciones en la estructura de datos 306 que fueron aplicados, por ejemplo, al objeto A. En una implementación, esta filtración produce un segundo montón cronológico de operaciones que pertenecen al objeto A, como se muestra en la figura 6. El motor de ejecución por objeto 324 ahora se puede mover hacia atrás en el historial del objeto A sin tener que deshacer la única acción que sólo se aplicó al objeto B.
Interfaces gráficas de usuario (GUIs) de ejemplo La figura 7 muestra otra estructura de datos 306 similar a aquella de la figura 5. Presentando dicha estructura de datos 306 al usuario final en una manera útil permite al usuario aplicar fácilmente las operaciones innovadoras de deshacer/rehacer a las ediciones de un objeto particular.
La estructura de datos de la figura 7 muestra un historial de acción de ejemplo que resulta de una secuencia de acciones interactivas (montón central). Las columnas verticales más hacia la izquierda y más hacia la derecha describen la vida efectiva de dos objetos (A y B), que en este ejemplo son pozos en uh modelo de reserva, tal como un modelo que produce el modelo visual 202 de la figura 2. En un punto en la secuencia (el montón central) se aplica una operación de edición de "cambiar color" a ambos Objetos A y B, lo cua| ilustra algunas características de GUI.
Las figuras 8-12 muestran una secuencia de estados de GUI en donde el administrador de controles de deshacer/rehacer 312 ubica dinámicamente botones de control junto a acciones relevantes que se exhiben. La figura 8 muestra una GUI de ejemplo 800. La GUI 800 muestra un árbol visual para dos objetos representados en una serie de datos 314: un objeto llamado "Prueba A10 vieja de buen camino" y un objeto llamado "Buen camino B10 ajustado". En una ¡mplementación, el motor de GUI 308 exhibe todas las acciones que han sido aplicadas a un objeto dado en una columna vertical debajo de los recuadros de titulo 802, 804 para cada objeto específico. En este ejemplo, el generador de árbol visual 310 produce una estructura visual, conectada por líneas negras. Cualquier acción aplicada a múltiples objetos, tal como una acción global de "cambiar color" 806 se exhibe como una unión de las líneas para todos los objetos afectados. La figura 8 muestra una GUI de ejemplo 800 que incluye dos objetos, pero las mismas técnicas de GUI se pueden aplicar a cualquier número de objetos. La GUI 800 de ejemplo exhibe información de una serie de datos dada 314 que contiene múltiples objetos individuales de modo que se pueden aplicar acciones a objetos individuales o grupos de objetos.
Junto a las dos acciones inferiores en la figura 8 hay dos botones indicados por flechas blancas que muestran iconos estándar de "Deshacer" 808, 810. Dando clic al icono de Deshacer 808 deshace la acción adyacente y, en este caso, produce el estado de GUI mostrado en la figura 9.
Con respecto a la figura 9, el administrador de controles de deshacer/rehacer 312 exhibe un icono de Rehacer 902 en la esquina inferior izquierda (flecha blanca izquierda). El administrador de controles dé deshacer/rehacer 312 mueve el icono de Deshacer 808 en la figura 8 hacia arriba para convertirse en el icono de Deshacer 904 (flecha blanca derecha) designando la siguiente acción que se puede deshacer en el historial de operaciones para ese objeto. Dando clic al icono de Deshacer 904, prc-duce el estado de GUI mostrado en la figura 10.
En la figura 10, el administrador de controles de deshacer/rehacer 312 ha movido el icono de Rehacer 902 de la figura 9 una operación para convertirse en el icono de Rehacer 1002 en la figura 10 (debido a la operación de Deshacer recién ejecutada con respecto a l figura 9). El administrador de controles de deshacer/rehacer 312 omite publicar un botón de icono de Deshacer junto a la operación de "cambiar color" 806 (flecha blanca superior). Esto es porque, en una implementación, se deben deshacer acciones en orden cronológico inverso por objeto (o por parte de un objeto), y ya que la operación de "cambiar color" 806 se aplicó a ambos objetos, la operación 806 no se puede deshacer antes de también deshacer la operación "Renombrar a ?10-ajustado'" 1004. Accionar el icono de Deshacer 810 en la figura 10 (flecha blanca inferior) produce el estado de GUI mostrado en la figura 11.
En la figura 11, ya que accionar el icono de Deshacer 810 ha reanudado el deshacer operaciones para el objeto 804 en la derecha, un nuevo icono de Rehacer 1102 (flecha blanca inferior) aparece junto a la operación recién deshecha, y el administrador de controles de deshacer/rehacer 312 ahora muestra un icono de Deshacer 1104 (flecha blanca superior), junto al grupo, que ahora se puede deshacer para ambos objetos mostrados en la GUI 800. El mismo efecto de unión también aplica al rehacer acciones: para una acción de grupo afectando los objetos A y B, todas las acciones aplicadas a los objetos A y B antes de la acción de grupo deben rehacerse antes de que la operación A sea candidato para rehacerse. La construcción lógica en él administrador de controles de deshacer/rehacer 312 mantiene un registro de cuáles botones de Deshacer y Rehacer se muestran en la GUI 800, y su disposición lógica entre las operaciones mostradas.
Las figuras 8-11 de esta manera muestran relaciones entre una operación dada y los objetos que afecta, y permite al usuario final mover a través de montones separados de deshacer/rehacer para cada objeto, realizando acciones en una base púr objeto o por parte, a diferencia de técnicas convencionales que retroceden a través de un solo historial de acción estrictamente cronológico' para una serie de datos entera.
La figura 12 muestra la GUI 800 de la figura 8 en el contexto del modelo visual correspondiente 202 introducido en la figura 2. La GUI 800 muestra un árbol visual de operaciones que se pueden deshacer/rehacer para el Objeto A y Objeto B, las cuales aparecen en el modelo visual 202. De esta manera, la figura 12 ilustra una salida gráfica de ejemplo que el sistema innovador mostrado en la figura 2 puede producir para presentación en un monitor de exhibición.
La figura 13 muestra una GUI de ejemplo 1300 en donde los controles de deshacer/rehacer para cada objeto son colocados en una posición fija. En la GUI 1300, los controles de deshacer/rehacer 1302 y 1304 para el Objeto A, representados por la columna de operaciones en la izquierda, son colocados arriba de la columna. Asimismo, los controles de deshacer/rehacer 1306 y 1308 para el Objeto B, representados por la columna de operaciones en la derecha, son colocados arriba de la columna. Los botones de control fijos permiten a un usuario deshacer y rehacer sin tener que reposicionar constantemente un cursor para rastrear botones de control en movimiento. Cuando una operación de deshacer o rehacer para un objeto no se hace disponib.te, el botón de control relevante en la parte superior de la columna puede desaparecer o visualmente desvanecerse para indicar un estado inoperativo del botón de control. El accionamiento de un botón de rehacer o deshacer en una ubicación fija en la GUI automáticamente realiza la siguiente operación de deshacer o rehacer en la cola para el objeto asociado.
Métodos de ejemplo La figura 14 muestra un método de ejemplo 1400 de realizar una operación de deshacer/rehacer por objeto. En el diagrama de flujo, las operaciones son resumidas en bloques individuales. El método de ejemplo 1400 se puede realizar por hardware o combinaciones de hardware y software, por ejemplo, por el motor de deshacer/rehacer de ejemplo 204.
En el bloque 1402, se determinan objetos individuales representados dentro de una serie de datos.
En el bloque 1404, un registro de cada operación que una aplicación realiza en la serie de datos se almacena dentro de una primera secuencia de registros.
En el bloque 1406, una identidad de cada objeto individual afectado por una operación se asocia con el registro de la operación almacenada en la primera secuencia.
En el bloque 1408, se recibe una entrada para deshacer una o más operaciones asociadas con un objeto individual asignado.
En el bloque 1410, se establece una segunda secuencia que consiste de cada operación asociada con el objeto individual designado en la primera secuencia.
En el bloque 1412, con base en la entrada para deshacer una o más operaciones, cada una de las operaciones asociadas con el objeto individual designado es invertida en un orden hacia atrás de la segunda secuencia.
La figura 15 muestra un método de ejemplo 1500 de crear una interface gráfica de usuario (GUI) para operaciones de deshacer/rehacer por objeto. En el diagrama de flujo, las operaciones se resumen en bloques individuales. El método de ejemplo 1500 se puede realizar por hardware o combinaciones de hardware y software, por ejemplo, por el motor de deshacer/rehacer de ejemplo 204.
En el bloque 1502, una secuencia de operaciones realizadas en cada objeto individual se exhibe en asociación con la identidad del objeto en la GUI.
En el bloque 1504, se exhiben iconos de deshacer e iconos de rehacer para recibir entrada de usuario para seleccionar operaciones de deshacer y rehacer desde la secuencia de operaciones exhibidas para cada objeto individual.
En el bloque 1506, se exhibe una estructura de árbol visual en la GUI para mostrar operaciones realizadas en cada objeto individual y en múltiples objetos individuales.
En el bloque 1508, los iconos de deshacer e iconos de rehacer se colocan dinámicamente en la GUI sólo cerca de las operaciones exhibidas que están lógicamente disponibles para deshacerse o rehacerse para un objeto individual o para un grupo de objetos afectados én común por la operación.
Conclusión Aunque se han descrito sistemas y métodos ejemplares en lenguaje específico para características estructurales y/o actos metodológicos, se debe entender que el sujeto principal definido en las reivindicaciones anexas no necesariamente se limita a las características específicas o actos descritos. En vez, las características y actos específicos se describen como formas ejemplares de implementar los sistemas, métodos y estructuras reclamadas.:

Claims (20)

REIVINDICACIONES
1.- Un método ejecutable en computadora (1400) que comprende: determinar objetos individuales representados dentro de una serie de datos; (1402) almacenar un registro de cada operación que una aplicación realiza en la Serie de datos; (1404) asociar el registro de cada operación con una identidad de cada objeto individual afectado por la operación; (1406) recibir una entrada para deshacer una o más operaciones asociadas con un objeto individual; (1408) y con base en la entrada para deshacer, invertir sólo la una o más operaciones asociadas con el objeto individual. (1412)
2.- El método ejecutable en computadora de conformidad con la reivindicación 1, que comprende además; recibir una entracla para rehacer una o más de las operaciones invertidas asociadas con el objeto individual; y rehacer la una o más operaciones invertidas asociadas con el objeto individual en un orden hacia delante de las operaciones invertidas.
3.- El método ejecutable en computadora de conformidad con la reivindicación 1, en donde la serie de datos comprende uno de datos de procesador de texto, datos de texto, datos de hoja de cálculo, datos visuales, datos de dibujo visual, datos de gráficas, datos de páginas web, datos de dibujo asistido por computadora (CAD), datos de fotografía, datos de imágenes, datos de audio, datos de edición, datos de modelado, datos de modelado de ciencias de la tierra, datos de modelado de geografía, datos de minería, datos de física, datos de química, datos de biología, datos de electrónica datos de matemáticas aplicadas, datos médicos, datos financieros o datos de mapeo.
4. - El método ejecutable en computadora de conformidad con la reivindicación 1, en donde dicho almacenamiento de un registro de cada operación que una aplicación realiza en la serie de datos incluye almacenar un registro de cada operación en tiempo real o en tiempo casi real en un orden cronológico.
5. - El método ejecutable en computadora de conformidad con la reivindicación 1, en donde dicha determinación de objetos individuales representados dentro de uha serie de datos comprende uno de recibir una entrada de usuario seleccionando los objetos individuales representados dentro de la serie de datos, recibir una entrada del usuario seleccionando partes de objetos dentro de la serie de datos, pre-programar los objetos individuales a ser generados dentro de la serie de datos, agrupar datos de acuerdo a una similitud común para definir cada objeto individual, o aplicar un algoritmo de agrupación para distinguir cada objeto individual de otros objetos en la serie de datos.
6. - El método ejecutable en computadora de conformidad con la reivindicación 1, que comprende además filtrar los registros de las operaciones para registros asociados con un objeto individual.
7. - El método ejecutable en computadora de conformidad con la reivindicación 1, en donde invertir una operación con base en la entrada para deshacer incluye invertir la operación para múltiplés objetos individuales asociados con la operación; y en donde rehacer una operación con base en una entrada para rehacer incluye rehacer la operación para múltiples objetos individuales asociados con la operación!
8. - El método ejecutable en computadora de conformidad con la reivindicación 1, en donde dicho almacenamiento de un registro de cada operación que una aplicación realiza en la serie de datos almacena los datos como una primera secuencia de registros; que comprende además establecer una segunda secuencia que consiste de cada operación asociada con el objeto individual en la primera secuencia; y con base en la entrada para deshacer, invertir cada una de las operaciones asociadas con el objeto individual en un orden hacia atrás de la segunda secuencia.
9. - El método ejecutable en computadora de conformidad con la reivindicación 1, que comprende además extender una interface gráfica de usuario (GUI), que incluye: para cada uno de los múltiples objetos individuales, exhibir una secuencia de operaciones realizadas en cada objeto individual; y exhibir una interface para recibir una entrada de usuario para seleccionar operaciones de deshacer y rehacer a partir de la secuencia de operaciones exhibidas para el objeto individual.
10. - El método ejecutable en computadora de conformidad con la reivindicación 9, que comprende además exhibir una estructura de árbol en la GUI; en donde la estructura de árbol muestra la secuencia de operaciones realizadas en cada objeto individual; y en donde la estructura de árbol también muestra operaciones realizadas en común en múltiples objetos individuales.
11. - El método ejecutable ert computadora de conformidad con la reivindicación 10, que comprende además reubicar dinámicamente iconos de control de deshacer y rehacer en la GUI para indicar cuáles operaciones realizadas en un objeto individual son candidatas para una operación de deshacer/rehaóer.
12. - El método ejecutable en computadora de conformidad con la reivindicación 10, que comprende además fijar iconos de control de deshacer y rehacer en una ubicación estática relacionada con una ramificación de la estructura de árbol que representa un objeto individual al que aplican los iconos de control de deshacer y rehacer.
13. - Un medio que se puede leer en computadora (216), que incluye instrucciones, el cual al ejecutarse, causa que una computadora: reciba una entrada (332) vía una aplicación para iniciar una operación para modificar una serie de datos (306); cree una estructura de datos (304) para soportar un montón de deshacer que conserve una relación entre un registro de cada operación y una parte relacionada de la serie de datos a la que la operación fue aplicada; y exhibir la estructura de datos (304) vía una intexface gráfica de usuario (328) para permitir selección de operaciones de deshacer y rehacer (332) asociadas con sólo la parte relacionada de la serie de datos.
14. - El medio que se puede leer en computadora de conformidad con la reivindicación 13, que comprende además instrucciones, que al ejecutarse, causan que la computadora: analice por lo menos algo de la serie de datos en las partes relacionadas, en donde cada parte de la serie de datos comprende un. objeto; y filtre el montón de deshacer usando una identidad de un objeto dado como el criterio de filtro para crear una secuencia de operaciones candidatas para deshacerse y rehacerse con respecto al objeto dado.
15. - El medio que se puede leer en computadora de conformidad con la reivindicación 14, que comprende además instrucciones, que al ejecutarse, causan que la, computadora: exhiba la estructura de datos como una estructura de árbol visual que comprende una secuencia de operaciones de edición dispuestas de acuerdo a cada objeto; disponer controles de deshacer y rehacer cerca de las operaciones exhibidas para un objeto dado; y en donde lo$ controles de deshacer y rehacer permiten selección de acciones de deshacer y rehacer de acá para allá a través de la secuencia de operaciones de edición para el objeto dado.
16. -. El medio que se puede leer en computadora de conformidad con la reivindicación 13, en dondé la estructura de datos conserva una relación entre un registro de cada operación y una parte de una subserie de un objeto al que se aplicó la operación.
17. - Un medio que se puede leer en computadora (216), que incluye instrucciones, que al ejecutarse, causa que la computadora: determine (314) una serie de características (312) se moldee por una serie de datos; (306) registre (302) cada edición de cada característica (312) en un montón; (304) asocie (308) una ó más de las características (312) con cada edición registrada en el montón; (304) filtre (320) el montón (304) para determinar ediciones asociadas con una característica seleccionada; y con base en la filtración, deshacer ediciones ( 318 ) asociadas con la característica seleccionada en un orden invertido al mismo tiempo manteniendo un estado de edición actual de las otras características (312).
18. - El medio que se puede leer en computadora de conformidad con la reivindicación 17, que comprende además instrucciones, que al ejecutarse, causan que la computadora: rehaga ediciones deshechas asociadas con la característica seleccionada en un orden hacia adelante al mismo tiempo manteniendo un estado de edición actual de las otrasrcáracterísticas.
19. - El medio que se puede leer en computadora de conformidad con la reivindicación 17, que comprende además instrucciones, que al ejecutarse, causan que la computadora: extienda una interface gráfica de usuario (GUI) para exhibir una representación lineal del montón cronológico o para exhibir un árbol que muestre un montón filtrado de ediciones asociadas con cada característica incluyendo ediciones que aplican a un grupo de objetos afectados en común por la edición.
20.- El medio que se puede leer en computadora de conformidad con la reivindicación 17, que comprende además instrucciones, que al ejecutarse, causan que la computadora: exhiba controles de deshacer y rehacer en la GUI; disponga los controles de deshacer y rehacer en la GUI en ilustraciones de ediciones pasadas en la actualidad candidatas para deshacerse o rehacerse, para cada característica del modelo. RESUMEN DE LA INVENCIÓN Se pueden aplicar operaciones innovadoras de deshacer/rehacer a objetos separados o partes de objetos dentro de datos de multi-objeto, sin tener que deshacer y rehacer sobre una secuencia cronológica rígida de operaciones registradas. En una implementación, un usuario selecciona un objeto, o parte de un objeto, y las técnicas innovadoras de deshacer/rehacer permiten al usuario aplicar operaciones de deshacer y rehacer sólo al objeto seleccionado o parte, al mismo tiempo saltando operaciones de deshacer y rehacer para otros objetos. Las operaciones de deshacer/rehacer también se pueden aplicar en paralelo a múltiples objetos. Una interface gráfica de usuario (GUI) provee representaciones lineales o jerárquicas de operaciones aplicadas a cada objeto y exhibe controles de deshacer/rehacer para cada objeto.
MX2010011515A 2009-11-03 2010-10-20 Operaciones de deshacer/rehacer para datos de multi-objeto. MX2010011515A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/611,199 US20110107246A1 (en) 2009-11-03 2009-11-03 Undo/redo operations for multi-object data

Publications (1)

Publication Number Publication Date
MX2010011515A true MX2010011515A (es) 2011-05-19

Family

ID=43401683

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2010011515A MX2010011515A (es) 2009-11-03 2010-10-20 Operaciones de deshacer/rehacer para datos de multi-objeto.

Country Status (6)

Country Link
US (1) US20110107246A1 (es)
BR (1) BRPI1004160A2 (es)
CA (1) CA2715831A1 (es)
GB (1) GB2476857A (es)
MX (1) MX2010011515A (es)
NO (1) NO20101527A1 (es)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2009238481B2 (en) 2008-04-22 2014-01-30 Exxonmobil Upstream Research Company Functional-based knowledge analysis in a 2D and 3D visual environment
WO2010039317A1 (en) * 2008-10-01 2010-04-08 Exxonmobil Upstream Research Company Robust well trajectory planning
US8931580B2 (en) 2010-02-03 2015-01-13 Exxonmobil Upstream Research Company Method for using dynamic target region for well path/drill center optimization
US8731872B2 (en) 2010-03-08 2014-05-20 Exxonmobil Upstream Research Company System and method for providing data corresponding to physical objects
US8731887B2 (en) 2010-04-12 2014-05-20 Exxonmobile Upstream Research Company System and method for obtaining a model of data describing a physical structure
US8727017B2 (en) 2010-04-22 2014-05-20 Exxonmobil Upstream Research Company System and method for obtaining data on an unstructured grid
US8731873B2 (en) 2010-04-26 2014-05-20 Exxonmobil Upstream Research Company System and method for providing data corresponding to physical objects
US8731875B2 (en) 2010-08-13 2014-05-20 Exxonmobil Upstream Research Company System and method for providing data corresponding to physical objects
US9208137B2 (en) * 2010-08-19 2015-12-08 Cadence Design Systems, Inc. Method to preview an undo/redo list
US9593558B2 (en) 2010-08-24 2017-03-14 Exxonmobil Upstream Research Company System and method for planning a well path
CA2823017A1 (en) 2011-01-26 2012-08-02 Exxonmobil Upstream Research Company Method of reservoir compartment analysis using topological structure in 3d earth model
AU2011360212B2 (en) 2011-02-21 2017-02-02 Exxonmobil Upstream Research Company Reservoir connectivity analysis in a 3D earth model
US9223594B2 (en) 2011-07-01 2015-12-29 Exxonmobil Upstream Research Company Plug-in installer framework
US9948988B2 (en) 2011-10-04 2018-04-17 Ricoh Company, Ltd. Meeting system that interconnects group and personal devices across a network
US9311623B2 (en) 2012-02-09 2016-04-12 International Business Machines Corporation System to view and manipulate artifacts at a temporal reference point
US9223483B2 (en) 2012-02-24 2015-12-29 Blackberry Limited Method and apparatus for providing a user interface on a device that indicates content operators
EP2631760A1 (en) 2012-02-24 2013-08-28 Research In Motion Limited Method and apparatus for providing a user interface on a device enabling selection of operations to be performed in relation to content
WO2013169429A1 (en) 2012-05-08 2013-11-14 Exxonmobile Upstream Research Company Canvas control for 3d data volume processing
US9348512B2 (en) * 2012-08-08 2016-05-24 Nuance Communications, Inc. Methods for facilitating text entry
US9098106B2 (en) 2012-08-10 2015-08-04 Comsol Ab Systems and methods for creating application interfaces for forming and solving problems in a modeling system
TW201407384A (zh) * 2012-08-14 2014-02-16 Hon Hai Prec Ind Co Ltd 網頁流程圖編輯方法及系統
US10650177B2 (en) 2012-12-20 2020-05-12 Comsol Ab System and method for creating application interfaces for multiphysics modeling
US9336234B2 (en) 2013-02-22 2016-05-10 Adobe Systems Incorporated Online content management system with undo and redo operations
JP2014203281A (ja) * 2013-04-05 2014-10-27 コニカミノルタ株式会社 操作制御方法及び操作制御プログラム並びに操作制御装置
WO2014200685A2 (en) 2013-06-10 2014-12-18 Exxonmobil Upstream Research Company Interactively planning a well site
US9703637B2 (en) 2013-07-30 2017-07-11 Apple Inc. Undo system
US9864098B2 (en) 2013-09-30 2018-01-09 Exxonmobil Upstream Research Company Method and system of interactive drill center and well planning evaluation and optimization
US11568436B2 (en) * 2014-01-03 2023-01-31 SoInteractive, SA Creating an awards profile
CN103761407B (zh) * 2014-02-21 2016-05-25 武汉大学 一种复制式协同CAD系统中的多用户选择Undo和Redo方法
US20150286349A1 (en) * 2014-04-02 2015-10-08 Microsoft Corporation Transient user interface elements
US10528249B2 (en) 2014-05-23 2020-01-07 Samsung Electronics Co., Ltd. Method and device for reproducing partial handwritten content
US9652678B2 (en) 2014-05-23 2017-05-16 Samsung Electronics Co., Ltd. Method and device for reproducing content
US10169054B2 (en) 2014-12-22 2019-01-01 International Business Machines Corporation Undo and redo of content specific operations
US9971994B2 (en) 2015-07-27 2018-05-15 International Business Machines Corporation Undo stack to explore past actions in business analytics
JP6564267B2 (ja) * 2015-07-31 2019-08-21 キヤノン株式会社 文書作成装置、方法およびプログラム
US11102313B2 (en) * 2015-08-10 2021-08-24 Oracle International Corporation Transactional autosave with local and remote lifecycles
US10582001B2 (en) 2015-08-11 2020-03-03 Oracle International Corporation Asynchronous pre-caching of synchronously loaded resources
US10452497B2 (en) * 2015-08-14 2019-10-22 Oracle International Corporation Restoration of UI state in transactional systems
US10419514B2 (en) 2015-08-14 2019-09-17 Oracle International Corporation Discovery of federated logins
US10007352B2 (en) * 2015-08-21 2018-06-26 Microsoft Technology Licensing, Llc Holographic display system with undo functionality
US10582012B2 (en) 2015-10-16 2020-03-03 Oracle International Corporation Adaptive data transfer optimization
US10733057B2 (en) * 2015-10-30 2020-08-04 Bently Systems, Incorporated Techniques for application undo and redo using SQL patchsets or changesets
US10089294B2 (en) * 2015-12-30 2018-10-02 Sap Se Systems and methods for tracking and modifying actions in an action history
JP6680026B2 (ja) * 2016-03-23 2020-04-15 富士ゼロックス株式会社 情報処理装置及びプログラム
US10664557B2 (en) 2016-06-30 2020-05-26 Microsoft Technology Licensing, Llc Dial control for addition and reversal operations
US11550994B2 (en) * 2017-07-24 2023-01-10 Oracle International Corporation System and method with data entry tracker using selective undo buttons
US10534759B1 (en) 2018-08-23 2020-01-14 Cohesity, Inc. Incremental virtual machine metadata extraction
US10796086B2 (en) * 2018-08-25 2020-10-06 Microsoft Technology Licensing, Llc Selectively controlling modification states for user-defined subsets of objects within a digital document
US10810035B2 (en) 2019-02-27 2020-10-20 Cohesity, Inc. Deploying a cloud instance of a user virtual machine
US11573861B2 (en) 2019-05-10 2023-02-07 Cohesity, Inc. Continuous data protection using a write filter
EP3764218A1 (de) * 2019-07-11 2021-01-13 Siemens Aktiengesellschaft Verfahren zur rechnergestützten interaktion eines bedieners mit einem modell eines technischen systems
JP7294043B2 (ja) * 2019-10-08 2023-06-20 コニカミノルタ株式会社 装置のテスト自動化のためのプログラムおよび方法ならびにスクリプト生成装置
US11250136B2 (en) 2019-10-22 2022-02-15 Cohesity, Inc. Scanning a backup for vulnerabilities
US11397649B2 (en) 2019-10-22 2022-07-26 Cohesity, Inc. Generating standby cloud versions of a virtual machine
US11487549B2 (en) 2019-12-11 2022-11-01 Cohesity, Inc. Virtual machine boot data prediction
WO2021223186A1 (en) 2020-05-07 2021-11-11 Citrix Systems, Inc. Dynamic region based application operations
US11768745B2 (en) 2020-12-08 2023-09-26 Cohesity, Inc. Automatically implementing a specification of a data protection intent
US11914480B2 (en) 2020-12-08 2024-02-27 Cohesity, Inc. Standbys for continuous data protection-enabled objects
US11614954B2 (en) * 2020-12-08 2023-03-28 Cohesity, Inc. Graphical user interface to specify an intent-based data management plan
US11481287B2 (en) 2021-02-22 2022-10-25 Cohesity, Inc. Using a stream of source system storage changes to update a continuous data protection-enabled hot standby
CN113377364B (zh) * 2021-04-29 2022-10-11 上海工程技术大学 基于节点历史值的树形结构组织编辑操作回撤方法
CN113836875B (zh) * 2021-09-16 2023-08-22 网易(杭州)网络有限公司 文本处理方法、系统、装置、存储介质
CN114816593A (zh) * 2022-06-27 2022-07-29 天津联想协同科技有限公司 一种命令的执行方法、装置及可读存储介质

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481710A (en) * 1992-09-16 1996-01-02 International Business Machines Corporation Method of and system for providing application programs with an undo/redo function
US5659747A (en) * 1993-04-22 1997-08-19 Microsoft Corporation Multiple level undo/redo mechanism
US5666503A (en) * 1994-11-14 1997-09-09 Xerox Corporation Structured image (SI) image editor and method for editing structured images
US5701472A (en) * 1995-06-09 1997-12-23 Unisys Corporation Method for locating a versioned object within a version tree depicting a history of system data and processes for an enterprise
US6014343A (en) * 1996-10-31 2000-01-11 Geoquest Automatic non-artificially extended fault surface based horizon modeling system
US6108668A (en) * 1997-04-18 2000-08-22 International Business Machines Corporation Method and system for undoing edits within selected portion of electronic documents
US5990906A (en) * 1997-06-25 1999-11-23 National Instruments Corporation Undo feature for a graphical programming system
US6195092B1 (en) * 1997-07-15 2001-02-27 Schlumberger Technology Corporation Software utility for creating and editing a multidimensional oil-well log graphics presentation
US6191787B1 (en) * 1998-02-10 2001-02-20 Schlumberger Technology Corporation Interactively constructing, editing, rendering and manipulating geoscience models
US6052531A (en) * 1998-03-25 2000-04-18 Symantec Corporation Multi-tiered incremental software updating
US6088694A (en) * 1998-03-31 2000-07-11 International Business Machines Corporation Continuous availability and efficient backup for externally referenced objects
JP2951312B1 (ja) * 1998-04-03 1999-09-20 株式会社トヨタケーラム チーム形式設計用cadシステム
GB2352036B (en) * 1998-05-04 2002-11-27 Schlumberger Evaluation & Prod Near wellbore modelling method and apparatus
US6201884B1 (en) * 1999-02-16 2001-03-13 Schlumberger Technology Corporation Apparatus and method for trend analysis in graphical information involving spatial data
US7437525B2 (en) * 2001-05-31 2008-10-14 Oracle International Corporation Guaranteed undo retention
US7203866B2 (en) * 2001-07-05 2007-04-10 At & T Corp. Method and apparatus for a programming language having fully undoable, timed reactive instructions
US6801230B2 (en) * 2001-12-18 2004-10-05 Stanley W. Driskell Method to display and manage computer pop-up controls
WO2004002044A2 (en) * 2002-02-01 2003-12-31 John Fairweather A system for exchanging binary data
US20040006763A1 (en) * 2002-06-28 2004-01-08 Van De Vanter Michael L. Undo/redo technique with insertion point state handling for token-oriented representation of program code
US7003695B2 (en) * 2002-10-03 2006-02-21 Seiko Epson Corporation Undo/redo algorithm for a computer program
US20040225998A1 (en) * 2003-05-06 2004-11-11 Sun Microsystems, Inc. Undo/Redo technique with computed of line information in a token-oriented representation of program code
US7207034B2 (en) * 2003-06-23 2007-04-17 Microsoft Corporation Undo infrastructure
US7293254B2 (en) * 2003-09-18 2007-11-06 Microsoft Corporation Extensibility application programming interface and framework for meta-model objects
US7526750B2 (en) * 2003-10-15 2009-04-28 Microsoft Corporation Object-based systematic state space exploration of software
US7565661B2 (en) * 2004-05-10 2009-07-21 Siew Yong Sim-Tang Method and system for real-time event journaling to provide enterprise data services
US7574419B2 (en) * 2004-05-13 2009-08-11 Oracle International Corporation Automatic tuning of undo retention
US7530052B2 (en) * 2004-05-14 2009-05-05 National Instruments Corporation Creating and executing a graphical program with first model of computation that includes a structure supporting second model of computation
US7506304B2 (en) * 2004-05-14 2009-03-17 National Instruments Corporation Graphical data flow programming environment with first model of computation that includes a structure supporting second model of computation
WO2006051965A1 (ja) * 2004-11-12 2006-05-18 Justsystems Corporation データ処理装置およびデータ処理方法
US8392377B2 (en) * 2004-11-23 2013-03-05 Hewlett-Packard Development Company, L.P. Method for performing a fine-grained undo operation in an interactive editor
US7885939B2 (en) * 2005-10-11 2011-02-08 Oracle International Corporation Longest query duration for auto tuning undo retention
US20070171716A1 (en) * 2005-11-30 2007-07-26 William Wright System and method for visualizing configurable analytical spaces in time for diagrammatic context representations
US7567257B2 (en) * 2005-12-16 2009-07-28 Microsoft Corporation Partition-based undo of partitioned object graph
US20070174315A1 (en) * 2006-01-18 2007-07-26 Avraham Leff Compressing state in database replication
US20070192720A1 (en) * 2006-02-14 2007-08-16 Marshal Alsup Correlation rule builder
CA2560179A1 (en) * 2006-09-20 2008-03-20 Ibm Canada Limited - Ibm Canada Limitee Temporal model exploring
AU2006235850B2 (en) * 2006-11-03 2012-12-20 Canon Information Systems Research Australia Pty Ltd Reviewing editing operations
US8627268B2 (en) * 2006-11-06 2014-01-07 International Business Machines Corporation System and method for a non-sequential undo mechanism
US7900142B2 (en) * 2007-01-15 2011-03-01 Microsoft Corporation Selective undo of editing operations performed on data objects
US8566296B2 (en) * 2007-09-14 2013-10-22 Oracle International Corporation Support for compensation aware data types in relational database systems
US8095827B2 (en) * 2007-11-16 2012-01-10 International Business Machines Corporation Replication management with undo and redo capabilities
US7886021B2 (en) * 2008-04-28 2011-02-08 Oracle America, Inc. System and method for programmatic management of distributed computing resources
US8554800B2 (en) * 2008-07-30 2013-10-08 Portool Ltd. System, methods and applications for structured document indexing

Also Published As

Publication number Publication date
NO20101527A1 (no) 2011-05-04
CA2715831A1 (en) 2011-05-03
BRPI1004160A2 (pt) 2013-02-26
GB201018512D0 (en) 2010-12-15
GB2476857A (en) 2011-07-13
US20110107246A1 (en) 2011-05-05

Similar Documents

Publication Publication Date Title
MX2010011515A (es) Operaciones de deshacer/rehacer para datos de multi-objeto.
Heer et al. Graphical histories for visualization: Supporting analysis, communication, and evaluation
US6289489B1 (en) Method and apparatus for automatically cross-referencing graphical objects and HDL statements
CN1932803B (zh) 文档编辑方法和装置
US9104810B2 (en) Creating a test case
Kreuseler et al. A history mechanism for visual data mining
JPH04337843A (ja) プログラム動作表示方法
US7093207B1 (en) Data analysis flow engine
Nancel et al. Causality: A conceptual model of interaction history
US8677272B2 (en) Graphical user interface design utility
US11514237B2 (en) Spreadsheet and method for updating same
CN116627418B (zh) 一种基于递归算法的多级表单界面可视化生成方法及装置
US20090319955A1 (en) Techniques for a navigation based design tool
JP4675639B2 (ja) データ処理システム、アプリケーションプログラムのカスタマイズパラメータを表示する方法およびコンピュータプログラム製品
Hlawatsch et al. Visualizing the evolution of module workflows
WO2010132986A1 (en) Method, apparatus and system for improved groundwater modeling
EP3786810A1 (en) Automatic generation of computing artifacts for data analysis
Bueno et al. Rewriting history: more power to creative people
JP2002108649A (ja) トレース解析を支援するためのプログラムを記録した記録媒体及びプログラム製品
JPS6315322A (ja) コマンド履歴取得再利用方式
Zhang A new authoring system for diverse data visualization at scale
JPH0736684A (ja) ドメイン指向部品管理方法
CN117608536B (zh) 缺口数据在线模版定制补录系统及其方法
Kechaou et al. Modularizing and layering metamodels with the modular EMF designer
Nocke et al. Goals of analysis for visualization and visual data mining tasks

Legal Events

Date Code Title Description
FA Abandonment or withdrawal