BR112017013119B1 - METHOD, APPARATUS, AND COMPUTER READABLE NON-TRANSITORY STORAGE MEDIA FOR RENDERING A TREE STRUCTURE OF ELEMENTS IN A GRAPHIC USER INTERFACE - Google Patents

METHOD, APPARATUS, AND COMPUTER READABLE NON-TRANSITORY STORAGE MEDIA FOR RENDERING A TREE STRUCTURE OF ELEMENTS IN A GRAPHIC USER INTERFACE Download PDF

Info

Publication number
BR112017013119B1
BR112017013119B1 BR112017013119-6A BR112017013119A BR112017013119B1 BR 112017013119 B1 BR112017013119 B1 BR 112017013119B1 BR 112017013119 A BR112017013119 A BR 112017013119A BR 112017013119 B1 BR112017013119 B1 BR 112017013119B1
Authority
BR
Brazil
Prior art keywords
tree
cursor
sublevels
view
tree view
Prior art date
Application number
BR112017013119-6A
Other languages
Portuguese (pt)
Other versions
BR112017013119A2 (en
Inventor
Jens Brocke
Frank Glaeser
Stefan Kubsch
Hui Li
Michael Pieper
Michael Weber
Original Assignee
Interdigital Madison Patent Holdings, Sas
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
Priority claimed from EP14307100.9A external-priority patent/EP3035179A1/en
Application filed by Interdigital Madison Patent Holdings, Sas filed Critical Interdigital Madison Patent Holdings, Sas
Publication of BR112017013119A2 publication Critical patent/BR112017013119A2/en
Publication of BR112017013119B1 publication Critical patent/BR112017013119B1/en

Links

Abstract

MÉTODO, APARELHO E MÍDIA DE ARMAZENAMENTO NÃO TRANSITÓRIA LEGÍVEL POR COMPUTADOR PARA RENDERIZAR UMA ESTRUTURA EM ÁRVORE DE ELEMENTOS EM UMA INTERFACE GRÁFICA DE USUÁRIO. Um aparelho (20) e método (10) para proporcionar uma estrutura de árvore em uma GUI, dependendo de uma posição de um cursor com relação à árvore proporcionada usam a posição do cursor com relação à árvore para controlar quais ramificações de árvore a expandir/recolher automaticamente. Eles reconfiguram a vista de árvore para apresentação compacta, sem necessidade de operações explícitas de expandir/recolher. Uma vista de árvore é gerada (11). Uma posição de cursor com relação à vista é determinada (14), que consiste em primeiro e segundo valores de posição de acordo com primeira e segunda direções. A ramificação com a qual a posição de cursor está alinhada de acordo com a primeira direção é selecionada automaticamente como ramificação ativa (15). Subníveis daquela ramificação a serem expandidos são determinados (16), dependendo do valor da segunda posição com relação a recuos dos subníveis, e a vista de árvore é atualizada automaticamente pela expansão dos subníveis determinados da ramificação ativa e recolhimento de outras ramificações (17).METHOD, APPARATUS AND COMPUTER READABLE NON-TRANSIENT STORAGE MEDIA FOR RENDERING A TREE STRUCTURE OF ELEMENTS IN A GRAPHIC USER INTERFACE. An apparatus (20) and method (10) for providing a tree structure in a GUI depending on a position of a cursor with respect to the tree provided uses the position of the cursor with respect to the tree to control which tree branches to expand/ collect automatically. They reconfigure the tree view for compact presentation without the need for explicit expand/collapse operations. A tree view is generated (11). A cursor position with respect to the view is determined (14), which consists of first and second position values according to the first and second directions. The branch with which the cursor position is aligned according to the first direction is automatically selected as the active branch (15). Sublevels of that branch to be expanded are determined (16) depending on the value of the second position with respect to indents of the sublevels, and the tree view is automatically updated by expanding the determined sublevels of the active branch and collapsing other branches (17).

Description

CAMPOFIELD

[001]Um aparelho de processamento de dados e um método implantado por computador para proporcionar uma estrutura em árvore de elementos são apresentados. Em particular, a presente revelação refere-se a um aparelho de processamento de dados e a um método implantado por computador para proporcionar uma estrutura em árvore de elementos em uma interface gráfica de usuário, dependendo de uma posição de um cursor com relação à estrutura em árvore proporcionada, e a um meio de armazenamento legível por computador correspondente.[001] A data processing apparatus and a computer-implanted method for providing a tree structure of elements are presented. In particular, the present disclosure relates to a data processing apparatus and a computer-implemented method for providing a tree structure of elements in a graphical user interface depending on a position of a cursor relative to the structure in question. tree provided, and a corresponding computer-readable storage medium.

ANTECEDENTESBACKGROUND

[002]Conceitos usados, por exemplo, para anotação de metadados semânticos de dados multimídia são frequentemente dispostos de acordo com um esquema de superconceito/subconceito hierárquico, resultando em taxonomias de conceito. Por exemplo, uma taxonomia de veículo pode compreender os subconceitos veículo terrestre, embarcações, aeronaves, etc., com os veículos terrestres compreendendo adicionalmente subconceitos como carro, caminhão, ônibus, etc. Em taxonomias, qualquer subconceito é um tipo de todos os seus superconceitos. Portanto, se um conceito específico a ser anotado está faltando em uma taxonomia, um anotador pode cair de volta no melhor superconceito correspondente. Por exemplo, um tanque de guerra pode ser anotado como veículo terrestre, e um UFO (objeto voador não identificado) pode ser anotado como veículo.[002]Concepts used, for example, for annotating semantic metadata of multimedia data are often arranged according to a hierarchical super-concept/sub-concept scheme, resulting in concept taxonomies. For example, a vehicle taxonomy might comprise the sub-concepts land vehicle, boats, aircraft, etc., with land vehicles further comprising sub-concepts such as car, truck, bus, etc. In taxonomies, any subconcept is a type of all its superconcepts. Therefore, if a specific concept to be annotated is missing from a taxonomy, an annotator may fall back on the best matching superconcept. For example, a battle tank may be noted as a land vehicle, and a UFO (Unidentified Flying Object) may be noted as a vehicle.

[003]Uma taxonomia grande e complexa pode ter diversos conceitos de nível de topo independentes, muitos níveis de hierarquia abaixo de cada conceito de nível de topo, e muitos subconceitos de superconceitos individuais. Esta enorme quanti- dade de conceitos profundamente aninhados pode ser difícil de proporcionar convenientemente em uma interface gráfica de usuário (GUI) de um aplicativo usando esta taxonomia, por exemplo, em uma vista que mostra essa taxonomia para seleção de conceitos a serem anotados.[003]A large and complex taxonomy may have several independent top-level concepts, many levels of hierarchy below each top-level concept, and many sub-concepts of individual super-concepts. This huge amount of deeply nested concepts can be difficult to provide conveniently in a graphical user interface (GUI) of an application using this taxonomy, for example, in a view that displays this taxonomy for selecting concepts to be annotated.

[004]Uma possibilidade de proporcionar taxonomias é empregar uma vista de tabela. Aqui, cada conceito de nível de topo pode obter a sua própria tabela ou ser o cabeçalho de uma coluna ou linha de tabela. Por exemplo, um cabeçalho de coluna mostra um superconceito e o conteúdo da coluna os subconceitos correspondentes. Se é desejada granularidade adicional, as colunas podem conter subta- belas, por exemplo, com um subconceito direto mostrado em negrito e seus conceitos de nível inferior mostrados em tipo normal. Essa vista de tabela pode mostrar muitos conceitos e sua hierarquia em um pequeno espaço e pode fornecer uma boa visão geral dos conceitos. No entanto, a mesma só pode mostrar alguns níveis de hierarquia de cada vez sem se tornar confusa. Se um usuário precisa rever subní- veis adicionais, o usuário tem de selecionar um conceito para o qual subníveis adicionais devem ser mostrados, por exemplo, atualizando uma tabela correntemente mostrada ou mostrando uma tabela adicional. Em uma taxonomia profundamente aninhada, múltiplas seleções como essa podem ser necessárias para se chegar a um conceito específico. Se nenhum conceito de interesse for encontrado, o usuário pode querer reverter a uma tabela que mostra conceitos de nível mais alto novamente. Essa comutação entre uma visão de grão mais rugoso e mais fino de uma taxo- nomia é similar a operações de busca para cima/para baixo no proporcionamento e processamento de dados multidimensionais em processamento analítico on-line (OLAP) de bancos de dados e tabelas dinâmicas.[004] One possibility to provide taxonomies is to use a table view. Here, each top-level concept can get its own table or be the header of a table column or row. For example, a column heading shows a super concept and the column contents the corresponding sub concepts. If additional granularity is desired, the columns can contain subtables, for example, with a direct sub-concept shown in bold and its lower-level concepts shown in normal type. This table view can show many concepts and their hierarchy in a small space and can provide a good overview of the concepts. However, it can only show a few hierarchy levels at a time without becoming cluttered. If a user needs to review additional sublevels, the user has to select a concept for which additional sublevels are to be shown, for example, updating a currently shown table or showing an additional table. In a deeply nested taxonomy, multiple selections like this may be needed to arrive at a specific concept. If no concepts of interest are found, the user may want to revert to a table that shows higher level concepts again. This switching between a coarser and finer-grained view of a taxonomy is similar to up/down search operations in the provisioning and processing of multidimensional data in online analytical processing (OLAP) of databases and tables. dynamics.

[005]Outra possibilidade para proporcionar taxonomias é empregar uma visualização em árvore. Tais vistas são usadas para mostrar hierarquias profundamente aninhadas em vários aplicativos, por exemplo, exploradores de sistema de arquivo ou ferramentas para esboço de documento. Tais aplicativos podem fornecer controles para estender/reduzir um número correntemente mostrado de níveis de árvore abaixo de um selecionado por um ou mais níveis, expandir/recolher todos os níveis de árvore abaixo de um selecionado, recolher uma subárvore especificamente configurada a um nível selecionado e posteriormente mostrar esta subárvore conforme anteriormente configurada mais uma vez, mostrar um número específico de níveis de árvore abaixo do nível de topo, etc. Uma visualização em árvore com tal funcionalidade também pode ser usada para proporcionar taxonomias de modo que um usuário possa navegar e expandir as subárvores de interesse para encontrar e selecionar um conceito de interesse. Uma visualização em árvore como essa pode proporcionar enormes taxonomias com muitos níveis de hierarquia. No entanto, é menos adequada para fornecer uma visão geral dos conceitos: Se muitos níveis de árvores são expandidos, muita rolagem é necessária para encontrar um conceito na vista espalhada, e é difícil manter o controle de relações de conceito. Se, para uma vista mais compacta, apenas alguns níveis de árvore são expandidos, muitas operações de expandir/recolher são necessárias para buscar para baixo ou para cima a partir de conceitos de nível baixo.[005]Another possibility to provide taxonomies is to use a tree view. Such views are used to show deeply nested hierarchies in various applications, for example, file system explorers or document drafting tools. Such applications may provide controls to extend/collapse a currently displayed number of tree levels below the selected one by one or more levels, expand/collapse all tree levels below the selected one, collapse a specifically configured subtree to a selected level, and later show this subtree as previously configured once more, show a specific number of tree levels below the top level, etc. A tree view with such functionality can also be used to provide taxonomies so that a user can browse and expand the subtrees of interest to find and select a concept of interest. A tree view like this can provide huge taxonomies with many levels of hierarchy. However, it is less suited to providing an overview of concepts: If many levels of trees are expanded, a lot of scrolling is required to find a concept in the spread out view, and it is difficult to keep track of concept relationships. If, for a more compact view, only a few tree levels are expanded, many expand/collapse operations are needed to search down or up from lower-level concepts.

[006]Para pequenas taxonomias uma GUI de um aplicativo que usa taxio- nomias pode conter vistas de tabela, mas uma vista de tabela dificilmente pode lidar com um alto número de níveis de hierarquia de uma grande taxonomia apropriadamente, causando uma necessidade de atualização frequente da vista de tabela ou a mostra de tabelas-filho rapidamente. Por outro lado, em alguns aplicativos uma visualização em árvore configurável manualmente é usada para grandes taxonomias, mas isso carece de conveniência devido à questão da oposição entre visão geral compacta e quantidade exigida de operações de reconfiguração de vista. O mesmo problema se aplica não só à busca de conceitos em uma taxonomia, mas também a elementos em outras vistas de árvores complexas, por exemplo, para buscar um arquivo em uma estrutura de diretório de arquivo profundamente aninhado ou para uma entrada de banco de dados em uma estrutura de banco de dados profundamente aninhado.[006]For small taxonomies a GUI of an application that uses taxonomies can contain table views, but a table view can hardly handle a high number of hierarchy levels of a large taxonomy properly, causing a need for frequent updating from table view or show child tables quickly. On the other hand, in some applications a manually configurable tree view is used for large taxonomies, but this lacks convenience due to the issue of opposition between compact overview and required amount of view reconfiguration operations. The same problem applies not only to searching for concepts in a taxonomy, but also to elements in other views of complex trees, for example, to search for a file in a deeply nested file directory structure or for a database entry. in a deeply nested database structure.

[007]Permanece uma necessidade de resolver os problemas de conveniência de uma visualização em árvore configurada manualmente, por exemplo, para proporcionar grandes taxonomias, e fornecer uma interface homem-máquina mais eficiente que permita um encontro e seleção aperfeiçoados de um elemento, isto é, um nó, em uma estrutura em árvore de elementos exibidos em uma visualização em árvore, por exemplo, conceitos em uma taxonomia exibida em uma visualização em árvore.[007] There remains a need to resolve the convenience issues of a manually configured tree view, for example, to provide large taxonomies, and to provide a more efficient human-machine interface that allows for improved finding and selection of an element, i.e. , a node, in a tree structure of elements displayed in a tree view, for example, concepts in a taxonomy displayed in a tree view.

SUMÁRIO DA INVENÇÃOSUMMARY OF THE INVENTION

[008]Um método implantado por computador e um aparelho de processamento de dados para proporcionar uma estrutura em árvore de elementos em uma interface gráfica de usuário (GUI) dependendo de uma posição de um cursor com relação à estrutura em árvore proporcionada, bem como um meio de armazenamento legível por computador, de acordo com as reivindicações anexas são sugeridos.[008] A computer-implemented method and data processing apparatus for providing a tree structure of elements in a graphical user interface (GUI) depending on a position of a cursor with respect to the tree structure provided, as well as a computer-readable storage medium, as per the appended claims are suggested.

[009] .De acordo com uma modalidade, um método implantado por computador para proporcionar uma estrutura em árvore de elementos em uma interface gráfica de usuário, dependendo de uma posição de um cursor com relação à estrutura em árvore proporcionada compreende[009]. According to one embodiment, a computer-implemented method for providing a tree structure of elements in a graphical user interface depending on a position of a cursor with respect to the tree structure provided comprises

[010]- gerar uma visualização em árvore da estrutura em árvore sendo organizada em uma pluralidade de ramificações;[010]- generate a tree view of the tree structure being organized into a plurality of branches;

[011]- determinar a posição do cursor com relação à visualização em árvore, a posição consistindo em um primeiro valor de posição de acordo com uma primeira direção e um segundo valor de posição de acordo com uma segunda direção ortogonal à primeira direção;[011]- determine the position of the cursor with respect to the tree view, the position consisting of a first position value according to a first direction and a second position value according to a second direction orthogonal to the first direction;

[012]- selecionar automaticamente a ramificação com a qual a posição do cursor está alinhada de acordo com a primeira direção como uma ramificação ativa;[012]- automatically select the branch with which the cursor position is aligned according to the first direction as an active branch;

[013]- determinar subníveis da ramificação ativa a serem expandidos, dependendo do valor da segunda posição com relação aos recuos dos subníveis; e[013]- determine sublevels of the active branch to be expanded, depending on the value of the second position in relation to the indents of the sublevels; It is

[014]- atualizar automaticamente a visualização em árvore pela expansão dos subníveis determinados da ramificação ativa e recolhimento de outras ramificações.[014]- Automatically update the tree view by expanding certain sublevels of the active branch and collapsing other branches.

[015]Por conseguinte, um aparelho de processamento de dados para proporcionar uma estrutura em árvore de elementos em uma interface gráfica de usuário, dependendo de uma posição de um cursor com relação à estrutura em árvore proporcionada compreende[015] Therefore, a data processing apparatus for providing a tree structure of elements in a graphical user interface depending on a position of a cursor with respect to the tree structure provided comprises

[016]- uma unidade de representação gráfica configurada para gerar uma visualização em árvore da estrutura em árvore sendo organizada em uma pluralidade de ramificações;[016]- a graphical representation unit configured to generate a tree view of the tree structure being organized into a plurality of branches;

[017]- uma unidade de determinação de posição configurada para determinar a posição do cursor com relação à visualização em árvore, a posição consistindo em um primeiro valor de posição de acordo com uma primeira direção e um segundo valor de posição de acordo com uma segunda direção ortogonal à primeira direção;[017] - a position determination unit configured to determine the position of the cursor with respect to the tree view, the position consisting of a first position value according to a first direction and a second position value according to a second direction orthogonal to the first direction;

[018]- uma unidade de seleção de ramificação ativa configurada para selecionar automaticamente a ramificação com a qual a posição do cursor está alinhada de acordo com a primeira direção como uma ramificação ativa; e[018]- an active branch selection unit configured to automatically select the branch with which the cursor position is aligned according to the first direction as an active branch; It is

[019]- uma unidade de determinação de expansão configurada para determinar subníveis da ramificação ativa a serem expandidos, dependendo do segundo valor de posição com relação aos recuos dos subníveis;[019]- an expansion determination unit configured to determine sublevels of the active branch to be expanded, depending on the second position value with respect to the indents of the sublevels;

[020]- a unidade de representação gráfica sendo adicionalmente configurada para atualizar automaticamente a visualização em árvore pela expansão dos subní- veis determinados da ramificação ativa e recolhimento de outras ramificações.[020]- the graphical representation unit being additionally configured to automatically update the tree view by expanding the determined sublevels of the active branch and collapsing other branches.

[021]Unidades compreendidas no aparelho, tais como a unidade de repre- sentação gráfica, a unidade de determinação de posição, a unidade de seleção de ramificação ativa e a unidade de determinação de expansão podem ser fornecidas como dispositivos separados, em conjunto como pelo menos um dispositivo ou con-junto de circuitos lógico, ou funcionalmente realizadas por um microprocessador, microcontrolador ou outro dispositivo de processamento, computador ou outro apare-lho programável.[021] Units comprised in the apparatus, such as the graphic representation unit, the position determination unit, the active branch selection unit and the expansion determination unit can be provided as separate devices, together as per least one device or circuitry logically or functionally realized by a microprocessor, microcontroller or other processing device, computer or other programmable device.

[022] .De acordo com uma modalidade, um aparelho de processamento de dados para proporcionar uma estrutura em árvore de elementos em uma interface gráfica de usuário, dependendo de uma posição de um cursor com relação à estrutura em árvore proporcionada compreende[022]. According to an embodiment, a data processing apparatus for providing a tree structure of elements in a graphical user interface depending on a position of a cursor with respect to the tree structure provided comprises

[023]- um dispositivo de processamento;[023]- a processing device;

[024]- um dispositivo de exibição; e[024]- a display device; It is

[025]- um dispositivo de memória que armazena instruções que, quando executadas, fazem o dispositivo de processamento[025] - a memory device that stores instructions that, when executed, make the processing device

[026]- gerar uma visualização em árvore que mostra, usando o dispositivo de exibição, a estrutura em árvore sendo organizada em uma pluralidade de ramificações;[026] - generate a tree view that shows, using the display device, the tree structure being organized into a plurality of branches;

[027]- determinar a posição do cursor com relação à visualização em árvore, a posição consistindo em um primeiro valor de posição de acordo com uma primeira direção e um segundo valor de posição de acordo com uma segunda direção ortogonal à primeira direção;[027]- determine the position of the cursor with respect to the tree view, the position consisting of a first position value according to a first direction and a second position value according to a second direction orthogonal to the first direction;

[028]- selecionar automaticamente a ramificação com a qual a posição do cursor está alinhada de acordo com a primeira direção como uma ramificação ativa;[028]- automatically select the branch with which the cursor position is aligned according to the first direction as an active branch;

[029]- determinar subníveis da ramificação ativa a serem expandidos, dependendo do segundo valor de posição com relação a recuos dos subníveis; e[029]- determine sublevels of the active branch to be expanded, depending on the second position value with respect to indentations of the sublevels; It is

[030]- atualizar automaticamente a visualização em árvore mostrada pelo dispositivo de exibição pela expansão dos subníveis determinados da ramificação ativa e recolhimento de outras ramificações. Os dispositivos são conectados por um barramento ou outras linhas de comunicação.[030]- Automatically update the tree view shown by the display device by expanding certain sublevels of the active branch and collapsing other branches. Devices are connected by a bus or other communication lines.

[031]Além disso, um meio de armazenamento legível por computador tem armazenado no mesmo instruções que habilitam proporcionar uma estrutura em árvore de elementos em uma interface gráfica de usuário dependendo de uma posição de um cursor com relação à estrutura em árvore proporcionada, as quais, quando executadas por um computador, fazem o computador:[031] In addition, a computer-readable storage medium has instructions stored therein that enable it to provide a tree structure of elements in a graphical user interface depending on a position of a cursor with respect to the tree structure provided, which , when executed by a computer, make the computer:

[032]- gerar uma visualização em árvore da estrutura em árvore sendo organizada em uma pluralidade de ramificações;[032] - generate a tree view of the tree structure being organized into a plurality of branches;

[033]- determinar a posição do cursor com relação à visualização em árvore, a posição consistindo em um primeiro valor de posição de acordo com uma primeira direção e um segundo valor de posição de acordo com uma segunda direção ortogonal à primeira direção;[033]- determine the position of the cursor with respect to the tree view, the position consisting of a first position value according to a first direction and a second position value according to a second direction orthogonal to the first direction;

[034]- selecionar automaticamente a ramificação com a qual a posição do cursor está alinhada de acordo com a primeira direção como uma ramificação ativa;[034]- automatically select the branch with which the cursor position is aligned according to the first direction as an active branch;

[035]- determinar subníveis da ramificação ativa a serem expandidos, dependendo do segundo valor de posição com relação ao recuos dos subníveis; e[035]- determine sublevels of the active branch to be expanded, depending on the second position value in relation to the indentation of the sublevels; It is

[036]- atualizar automaticamente a visualização em árvore pela expansão dos subníveis determinados da ramificação ativa e recolhimento de outras ramificações.[036]- Automatically update the tree view by expanding certain sublevels of the active branch and collapsing other branches.

[037]O meio de armazenamento legível por computador incorpora de modo tangível um programa de instruções, que, quando executadas por um computador, fazem com que o computador desempenhe as etapas de método descritas.[037] The computer-readable storage medium tangibly embodies a program of instructions, which, when executed by a computer, cause the computer to perform the described method steps.

[038]A interface gráfica de usuário é responsiva à entrada de usuário que controla a posição do cursor com relação à estrutura em árvore de elementos proporcionada. O cursor pode ser movido ou manipulado usando um dispositivo de manipulação de cursor, por exemplo, um mouse de computador, mouse estacionário, ponteiro ou mouse integrado. Se o dispositivo de exibição é um dispositivo de tela de toque, o cursor pode também ser movido ou manipulado usando, por exemplo, um dedo do usuário ou uma caneta. Em uma modalidade o cursor pode ser movido em resposta a um rastreamento por mão ou dedo e reconhecimento de gesto durante a análise de um vídeo ao vivo fornecido por uma câmera mostrando o usuário.[038] The graphical user interface is responsive to user input that controls the position of the cursor with respect to the tree structure of elements provided. The cursor can be moved or manipulated using a cursor manipulation device, for example a computer mouse, stationary mouse, pointer, or integrated mouse. If the display device is a touch screen device, the cursor can also be moved or manipulated using, for example, a user's finger or a stylus. In one embodiment the cursor can be moved in response to hand or finger tracking and gesture recognition while analyzing a live video provided by a camera showing the user.

[039]A estrutura em árvore é organizada em, isto é, compreende, uma pluralidade de ramificações ou trajetórias de nós conectados, que podem consistir de subníveis, isto é, níveis de árvore abaixo de um nó pai, em que os elementos ou nós contidos em um subnível estão conectados a um mesmo recuo como irmãos de um mesmo nó pai.[039] The tree structure is organized into, that is, comprises, a plurality of branches or trajectories of connected nodes, which may consist of sublevels, that is, tree levels below a parent node, in which the elements or nodes contained in a sublevel are connected to the same indentation as siblings of the same parent node.

[040]A visualização em árvore é uma representação gráfica da estrutura em árvore. A visualização em árvore é mostrada em um elemento GUI, por exemplo, uma janela ou moldura. Ele permite a seleção automática da ramificação ativa, isto é, a posição do cursor é determinada sem clicar, apenas avaliando a posição do cursor com relação à visualização em árvore. A ramificação ativa é a ramificação que é selecionada para ser explorada pelo usuário, por exemplo, pela expansão de subní- veis. Esta posição relativa do cursor pode ser mudada, seja movendo o cursor sobre a visualização em árvore ou rolando a janela de visualização mostrando a visualização em árvore, enquanto a posição absoluta do cursor, isto é, a posição com relação aos limites da janela de visualização ou da tela do dispositivo de exibição exibindo a janela de visualização que contém a visualização em árvore, pode ou não permanecer inalterada.[040]The tree view is a graphical representation of the tree structure. The tree view is shown on a GUI element, for example a window or frame. It allows automatic selection of the active branch, ie the cursor position is determined without clicking, just evaluating the cursor position with respect to the tree view. The active branch is the branch that is selected to be explored by the user, for example by expanding sublevels. This relative position of the cursor can be changed either by moving the cursor over the tree view or scrolling the viewport showing the tree view, while the absolute position of the cursor, i.e. the position with respect to the bounds of the viewport or the screen of the display device showing the viewport containing the tree view, may or may not remain unchanged.

[041]Então é calculado quantos subníveis da ramificação ativa a expandir, dependendo de uma avaliação de compensações do segundo valor de posição com relação a recuos dos subníveis. Depois, sem interação manual por parte do usuário, um mecanismo de reconfiguração de visualização em árvore automático causa a atualização automática da visualização em árvore pela expansão dos subníveis de- terminados da ramificação ativa e recolhimento das outras ramificações.[041] Then it is calculated how many sublevels of the active branch to expand, depending on an evaluation of offsets of the second position value with respect to indentations of the sublevels. Then, without manual interaction on the part of the user, an automatic tree view reset mechanism causes the tree view to be automatically updated by expanding the given sublevels of the active branch and collapsing the other branches.

[042]O mecanismo de reconfiguração de visualização em árvore automático de acordo com a solução proposta permite examinar rapidamente uma estrutura de dados similar a árvore complexa. Ele imita o comportamento de um usuário usando controles manuais para navegar dados aninhados, por exemplo, de uma taxonomia, um sistema de arquivo ou um banco de dados, sendo organizado em uma estrutura em árvore e exibido como árvore em uma visualização em árvore, para encontrar e selecionar um elemento de interesse, isto é, um conceito, um arquivo ou uma entrada de banco de dados, respectivamente, a partir dos elementos de nível de topo, e então busca para baixo em uma ramificação da árvore somente uma vez e, possivelmente, busca para cima de novo se nenhum elemento de interesse é encontrado, incluindo o recolhimento dos subníveis deixados. O mecanismo usa a posição de um cursor com relação à visualização em árvore para controlar quais ramificações da árvore a expandir/recolher automaticamente. Ele reconfigura a visualização em árvore para uma apresentação compacta da árvore sem a necessidade de operações de expandir/recolher explícitas por cliques de mouse, aperto de teclas, batidas em tela de toque, ou similares, e precisando de menos movimentos do cursor do que o necessário para um esquema de controle manual correspondente.[042] The automatic tree view reconfiguration mechanism according to the proposed solution allows you to quickly examine a data structure similar to a complex tree. It mimics the behavior of a user using manual controls to navigate nested data, for example from a taxonomy, a file system or a database, being organized in a tree structure and displayed as a tree in a tree view, to find and select an element of interest, i.e., a concept, a file or a database entry, respectively, from the top-level elements, and then search down a branch of the tree only once, and, possibly search upwards again if no element of interest is found, including collapsing the left sublevels. The engine uses the position of a cursor relative to the tree view to control which branches of the tree to automatically expand/collapse. It reconfigures the tree view into a compact presentation of the tree without the need for explicit expand/collapse operations by mouse clicks, keystrokes, touch screen taps, or the like, and requiring fewer cursor movements than the necessary for a corresponding manual control scheme.

[043]O mecanismo de acordo com a solução proposta pelo menos tem o efeito de que um usuário pode desempenhar a tarefa de encontrar/selecionar um elemento de interesse de um modo mais rápido e mais conveniente do que usando controles manuais, isto é, uma interface homem-máquina mais eficiente é fornecida.[043] The mechanism according to the proposed solution at least has the effect that a user can perform the task of finding/selecting an element of interest in a faster and more convenient way than using manual controls, that is, a More efficient man-machine interface is provided.

[044]Em uma modalidade a primeira direção corresponde a uma direção vertical e a segunda direção corresponde a uma direção horizontal em uma tela de um dispositivo de exibição que exibe a visualização em árvore na interface gráfica de usuário. Aqui, a posição vertical do cursor com relação aos elementos de árvore é usada para controlar qual ramificação da árvore é selecionada como a ramificação ativa que pode ser expandida, e a posição horizontal do cursor com relação aos recuos dos níveis de árvore é usada para controlar quantos subníveis da ramificação ativa serão expandidos. Um subnível da ramificação ativa é determinado como a ser expandido, se o recuo do subnível é encontrado à esquerda da posição do cursor. Em uma modalidade diferente a primeira direção corresponde à direção horizontal e a segunda direção corresponde à direção vertical.[044] In one embodiment, the first direction corresponds to a vertical direction and the second direction corresponds to a horizontal direction on a screen of a display device that displays the tree view in the graphical user interface. Here, the vertical position of the cursor relative to the tree elements is used to control which branch of the tree is selected as the active branch that can be expanded, and the horizontal position of the cursor relative to the indents of the tree levels is used to control how many sublevels of the active branch to expand. A sublevel of the active branch is determined to be expanded if the sublevel indentation is found to the left of the cursor position. In a different embodiment the first direction corresponds to the horizontal direction and the second direction corresponds to the vertical direction.

[045]Em uma modalidade, a determinação da posição do cursor, a seleção automática da ramificação ativa, a determinação de subníveis a serem expandidos e a atualização automática da visualização em árvore são continuamente repetidas. O mecanismo automático constantemente rastreia qualquer movimento do cursor e, se necessário, imediatamente reconfigura automaticamente a visualização em árvore para uma apresentação compacta da árvore. Em uma modalidade um pequeno atraso pode ser introduzido antes de se executar automaticamente as operações de ex- pandir/recolher. Em outra modalidade as operações de expandir e/ou de recolher são atrasadas até que um aperto de tecla adicional, por exemplo, de uma tecla de seta, tenha sido desempenhado.[045] In one mode, the determination of the cursor position, the automatic selection of the active branch, the determination of sublevels to be expanded and the automatic update of the tree view are continuously repeated. The automatic engine constantly tracks any cursor movement and, if necessary, immediately automatically reconfigures the tree view to a compact tree view. In one embodiment a small delay can be introduced before automatically executing the expand/collapse operations. In another embodiment the expand and/or collapse operations are delayed until an additional keystroke, for example of an arrow key, has been performed.

[046]Em uma modalidade a visualização em árvore é atualizada por recolhimento de um subnível excedente da ramificação ativa e a visualização em árvore atualizada é movida, automaticamente sem interação adicional de usuário, na primeira direção até que um elemento correspondente escondendo, isto é, compreendendo, o subnível excedente recolhido se torna alinhado com a posição do cursor de acordo com a primeira direção, se uma quantidade dos subníveis a serem expandidos é menor que uma quantidade de subníveis correntemente expandidos. Em outras palavras, se a posição exibida do cursor se torna inconsistente com a visualização em árvore reconfigurada automaticamente devido a operações de expan- dir/recolher, a visualização em árvore atualizada é automaticamente movida na primeira direção, por exemplo, verticalmente, de modo que a posição real de cursor reflita a nova posição lógica de cursor com relação à visualização em árvore atualizada. Se a primeira direção é a direção vertical e o cursor não está verticalmente alinhado com um superelemento direto ou indireto do nível de árvore sendo recolhido devido ao movimento do cursor para a esquerda, simplesmente recolher esse nível de árvore de outra forma pode fazer com que um elemento de árvore arbitrário, se houver algum, seja alinhado verticalmente com o cursor, dependendo do espaço anteriormente ocupado pelos elementos deste nível de árvore e da posição vertical do cursor com relação a esses elementos. Isso poderia resultar em mais nenhuma ramificação ativa ou em uma nova ramificação ativa a ser selecionada automatica-mente, compreendendo esse elemento de árvore arbitrário. Por outro lado, mover a visualização em árvore de acordo com a modalidade mantém a ramificação que compreende o superelemento a ramificação ativa e habilita navegação contínua adicional através da árvore. Em alguns casos, tais reconfigurações automáticas ou uma rolagem vertical manual da janela de visualização que contém a visualização em árvore podem fazer com que o elemento mais no topo da árvore seja exibido a alguma distância da borda de topo da janela de visualização. Em uma modalidade, portanto, a visualização em árvore em conjunto com o cursor exibido é desviada na direção da dita borda pela dita distância.[046] In one embodiment the tree view is updated by collapsing an excess sublevel of the active branch and the updated tree view is moved, automatically without further user interaction, in the first direction until a corresponding hiding element, i.e. understanding, the collapsed surplus sublevel becomes aligned with the cursor position according to the first direction, if an amount of sublevels to be expanded is less than an amount of currently expanded sublevels. In other words, if the displayed position of the cursor becomes inconsistent with the automatically reset tree view due to expand/collapse operations, the updated tree view is automatically moved in the first direction, e.g. vertically, so that the actual cursor position reflects the new logical cursor position relative to the updated tree view. If the first direction is the vertical direction and the cursor is not vertically aligned with a direct or indirect superelement of the tree level being collapsed due to the cursor moving to the left, simply collapsing that tree level otherwise could cause a arbitrary tree element, if any, are aligned vertically with the cursor, depending on the space previously occupied by elements of this tree level and the vertical position of the cursor relative to these elements. This could result in no more active branches or a new active branch being automatically selected comprising this arbitrary tree element. On the other hand, moving the tree view according to modality keeps the branch comprising the superelement the active branch and enables further continuous navigation through the tree. In some cases, such automatic resets or a manual vertical scrolling of the viewport containing the tree view may cause the topmost element in the tree to be displayed some distance from the top edge of the viewport. In one embodiment, therefore, the tree view together with the displayed cursor is offset towards said edge by said distance.

[047]Em uma modalidade a estrutura em árvore de elementos corresponde a uma taxonomia, isto é, um esquema de classificação de conceitos, por exemplo, conceitos a partir de taxonomias usadas para dados multimídia. Aqui, a interface gráfica de usuário com a visualização em árvore interativa corresponde a um navegador de taxonomia para metadados hierárquicos, isto é, uma taxonomia é proporcionada na GUI, por exemplo, para anotação de metadados semânticos em dados multimídia. O mecanismo de reconfiguração de visualização em árvore automático adaptado para a tarefa de encontrar e selecionar um conceito em uma taxonomia exibida como árvore em uma visualização em árvore de acordo com a solução pro- posta permite proporcionar de modo eficiente até mesmo grandes taxonomias.[047] In one embodiment, the tree structure of elements corresponds to a taxonomy, that is, a concept classification scheme, for example, concepts from taxonomies used for multimedia data. Here, the graphical user interface with the interactive tree view corresponds to a taxonomy browser for hierarchical metadata, ie a taxonomy is provided in the GUI, for example, for annotating semantic metadata in multimedia data. The automatic tree view reconfiguration mechanism adapted for the task of finding and selecting a concept in a taxonomy displayed as a tree in a tree view according to the proposed solution allows to efficiently provide even large taxonomies.

[048]Em outra modalidade, a estrutura em árvore de elementos corresponde a uma estrutura de diretório de arquivos. Em geral, o mecanismo de reconfiguração de visualização em árvore automático de acordo com a solução proposta pode também ser usado para vistas de árvore mostrando outro conteúdo que não taxonomias em vários aplicativos se o uso pretendido dessas vistas é navegar rapidamente e selecionar um elemento da árvore. Por exemplo, qualquer banco de dados, ferramenta de esboço de documento, explorador de arquivo ou um diálogo “Abrir Arquivo” contendo uma visualização em árvore usando o mecanismo de reconfiguração de visualização em árvore proposto pode precisar de menos operações de controle para encontrar e selecionar um elemento em comparação com aplicativos usando uma visualização em árvore padrão precisando operações explícitas para expan- dir/recolher subárvores, por exemplo, subpastas.[048] In another embodiment, the tree structure of elements corresponds to a file directory structure. In general, the automatic tree view reconfiguration mechanism according to the proposed solution can also be used for tree views showing content other than taxonomies in various applications if the intended use of these views is to quickly navigate and select an element of the tree . For example, any database, document drafting tool, file explorer or an “Open File” dialog containing a tree view using the proposed tree view reconfiguration mechanism may need fewer control operations to find and select an element compared to applications using a standard tree view needing explicit operations to expand/collapse subtrees, eg subfolders.

[049]Em uma realização, o método implantado por computador compreende[049] In one embodiment, the computer-implanted method comprises

[050]- selecionar entre um modo automático e um modo manual, em resposta a uma entrada de seleção de modo por um usuário; em que[050] - select between an automatic mode and a manual mode, in response to a mode selection input by a user; on what

[051]- a determinação da posição do cursor, a seleção automática da ramificação ativa, a determinação de subníveis a serem expandidos e a atualização automática da visualização em árvore são executadas apenas no modo automático, e em que[051]- determination of the cursor position, automatic selection of the active branch, determination of sublevels to be expanded and automatic updating of the tree view are performed only in automatic mode, and in which

[052]- a visualização em árvore é atualizada em resposta a entrada adicional de usuário manual na interface gráfica de usuário no modo manual.[052] - the tree view is updated in response to additional manual user input in the graphical user interface in manual mode.

[053]Um aparelho realizando o método de acordo com a solução proposta pode fornecer tanto funcionalidades manuais de configuração de visualização em árvore quanto o mecanismo automático proposto, com um meio para comutar entre os dois modos. Em uma modalidade, o mesmo armazena a configuração de vista estabelecida manualmente quando o modo automático é ligado e restaura a configu- ração armazenada anteriormente quando o modo automático é desligado novamente.[053] An apparatus performing the method according to the proposed solution can provide both manual tree view configuration functionalities and the proposed automatic mechanism, with a means to switch between the two modes. In one embodiment, it stores the manually established view setting when the automatic mode is turned on and restores the previously stored setting when the automatic mode is turned off again.

[054]Em uma modalidade o cursor é gerado especificamente para interação de usuário com a visualização em árvore. Isto se aplica, por exemplo, a sistemas que não usam um cursor padrão. Para dispositivos que usam, por exemplo, um ponteiro do mouse como a sua entrada padrão, soluções de rolagem que não dependem de barras de rolagem podem ser fornecidas, enquanto que dispositivos controlados por toque em tela que não usam tal cursor padrão podem usar os gestos padrão de passar o padrão para rolagem. Em sistemas que usam um cursor controlado por um dispositivo de entrada de indicação, por exemplo, um mouse, mouse estaci-onário, mouse integrado, ou ponteiro, a posição de cursor é definida pela posição deste cursor. Em sistemas que não usam tal cursor padrão, por exemplo, dispositivos controlados por toque de tela, um cursor especificamente dedicado à janela de visualização da visualização em árvore é usado em seu lugar. A posição deste cursor dedicado é controlada arrastando-se o cursor por cima da janela de visualização, por exemplo, pelo dedo de um usuário ou por uma caneta. Em particular, em sistemas que usam um cursor padrão e quando o mecanismo automático de acordo com a solução proposta está ativo, um aplicativo que usa este mecanismo automático não utiliza barras de rolagem padrão nas bordas da janela de visualização para rolar a vista, porque mover o cursor através da visualização em árvore para acessar tais barras de rolagem pode causar reconfigurações da vista. Em vez disso, outros meios de controle de rolagem são usados, por exemplo, controles de teclado, o botão de rolagem do mouse (por exemplo, rolagem vertical, usando o botão de rolagem como de costume, e rolagem horizontal pressionando-se o botão de rolagem, em combinação com movimentos de mouse, ou inclinação para a esquerda/direita do botão de rolagem se houver suporte), ou rolagem automática quando o cursor é movido para as bordas da janela de visualização. Por outro lado, um aplicativo controlado por tela de toque pode usar gestos de corrimento de dedo padrão na janela de visualização para rolar a vista, contanto que um gesto de corrimento de dedo não se inicie na posição do cursor, o que poderia por sua vez ser interpretado como arrastar o cursor.[054] In one mode, the cursor is generated specifically for user interaction with the tree view. This applies, for example, to systems that do not use a standard cursor. For devices that use, for example, a mouse pointer as their standard input, scrolling solutions that don't rely on scrollbars can be provided, whereas touch-screen controlled devices that don't use such a standard cursor can use gestures. pattern pass the pattern to scroll. In systems that use a cursor controlled by a pointing input device, for example, a mouse, stationary mouse, integrated mouse, or pointer, the cursor position is defined by the position of this cursor. On systems that do not use such a default cursor, for example touchscreen devices, a cursor specifically dedicated to the treeview viewport is used instead. The position of this dedicated cursor is controlled by dragging the cursor over the viewport, for example by a user's finger or a stylus. In particular, on systems that use a standard cursor and when the automatic mechanism according to the proposed solution is active, an application that uses this automatic mechanism does not use standard scrollbars at the edges of the viewport to scroll the view, because moving the cursor through the tree view to access such scrollbars can cause view resets. Instead, other means of scrolling control are used, e.g. keyboard controls, the mouse scroll wheel (e.g. vertical scrolling using the scroll wheel as usual, and horizontal scrolling by pressing the scroll button). scroll wheel, in combination with mouse movements, or left/right tilt of the scroll button if supported), or automatic scrolling when the cursor is moved to the edges of the viewport. On the other hand, a touchscreen-controlled application can use standard swipe gestures in the viewport to scroll the view, as long as a swipe gesture does not start at the cursor position, which could in turn be interpreted as dragging the cursor.

[055]Em uma modalidade a visualização em árvore compreende indicações visuais quanto a se um elemento de árvore corresponde ou não a um recuo e tem subelementos, isto é, esconde uma subárvore. As indicações visuais podem ser ícones, tais como um sinal de adição, um triângulo apontando para a direita ou uma seta. Como outro exemplo, as indicações visuais podem ser dadas proporcionando- se elementos de árvores em diferentes estilos, por exemplo, cor ou tipo de fonte diferente, negrito/itálico ou não, etc. Em uma modalidade, as indicações visuais compreendem adicionalmente uma sugestão gráfica da complexidade dos níveis ainda não expandidos ou subárvores, tais como um número ou uma barra indicando uma quantidade de elementos escondidos.[055] In one embodiment, the tree view comprises visual indications as to whether or not a tree element corresponds to an indentation and has subelements, that is, it hides a subtree. Visual cues can be icons, such as a plus sign, a right-pointing triangle, or an arrow. As another example, visual cues can be given by providing tree elements in different styles, eg different color or font type, bold/italic or not, etc. In one embodiment, the visual indications further comprise a graphical cue of the complexity of the not-yet-expanded levels or subtrees, such as a number or a bar indicating an amount of hidden elements.

[056]Além disso, em uma modalidade um ou mais indicadores de posição visualizando uma posição de uma seção visível da estrutura em árvore com relação à visualização em árvore são mostrados como parte da janela de visualização. Isto fornece informações de navegação, por exemplo, quando se está rolando a vista ou uma reconfiguração automática da vista não levou a que nenhuma parte da visualização em árvore fosse realmente visível dentro da janela de visualização. Indicadores de posição podem ser, por exemplo, barras de rolagem, pequenas linhas com uma parte mais larga que indica a posição, e/ou linhas simples que indicam a posição com relação à altura/largura da janela de visualização. Se os indicadores de posição fornecem funções de controle de rolagem, eles não são usados para rolar a janela de visualização para evitar reconfiguração potencialmente indesejada da visualização em árvore ao se mover o cursor através da vista. Em outra modalidade os indicadores de posição são mostrados em uma janela ou moldura separada da interface gráfica de usuário.[056] In addition, in one embodiment one or more position indicators viewing a position of a visible section of the tree structure with respect to the tree view are shown as part of the view window. This provides navigational information, for example when scrolling the view or an automatic view reconfiguration has not led to any part of the tree view being actually visible within the viewport. Position indicators can be, for example, scrollbars, small lines with a wider part that indicate the position, and/or simple lines that indicate the position in relation to the height/width of the viewport. If placeholders provide scroll control functions, they are not used to scroll the viewport to avoid potentially unwanted resetting of the tree view when moving the cursor across the view. In another embodiment the position indicators are shown in a separate window or frame of the graphical user interface.

[057]Embora não explicitamente descritos, as presentes modalidades podem ser empregadas em qualquer combinação ou subcombinação.[057] Although not explicitly described, the present modalities can be employed in any combination or subcombination.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[058]A Figura 1 ilustra, esquematicamente, uma modalidade de um método para proporcionar uma estrutura em árvore de elementos em uma interface gráfica de usuário, dependendo de uma posição de um cursor com relação à estrutura em árvore proporcionada.[058] Figure 1 schematically illustrates an embodiment of a method for providing a tree structure of elements in a graphical user interface, depending on a position of a cursor with respect to the tree structure provided.

[059]A Figura 2 ilustra esquematicamente uma modalidade de um aparelho de processamento de dados para proporcionar uma estrutura em árvore de elementos em uma interface gráfica de usuário, dependendo de uma posição de um cursor com relação à estrutura em árvore proporcionada.[059] Figure 2 schematically illustrates an embodiment of a data processing apparatus for providing a tree structure of elements in a graphical user interface, depending on a position of a cursor with respect to the tree structure provided.

[060]A Figura 3 ilustra esquematicamente outra modalidade de um aparelho de processamento de dados para proporcionar uma estrutura em árvore de elementos em uma interface gráfica de usuário, dependendo de uma posição de um cursor com relação à estrutura em árvore proporcionada; e[060] Figure 3 schematically illustrates another embodiment of a data processing apparatus for providing a tree structure of elements in a graphical user interface, depending on a position of a cursor with respect to the tree structure provided; It is

[061]As Figuras 4 a 32 ilustram esquematicamente uma modalidade de uma visualização em árvore sendo sujeita ao mecanismo de reconfiguração de visualização em árvore durante a interação do usuário por meio de um cursor. Em particular,[061] Figures 4 to 32 schematically illustrate a modality of a tree view being subject to the tree view reconfiguration mechanism during user interaction through a cursor. In particular,

[062]A Figura 4 ilustra um exemplo de visualização em árvore;[062] Figure 4 illustrates an example of a tree view;

[063]A figura 5 ilustra uma situação onde o cursor está fora da janela de visualização da visualização em árvore.[063] Figure 5 illustrates a situation where the cursor is outside the tree view window.

[064]A Figura 6 ilustra uma situação onde o cursor não está verticalmente alinhado com um elemento de árvore.[064] Figure 6 illustrates a situation where the cursor is not vertically aligned with a tree element.

[065]A Figura 7 ilustra uma situação onde uma ramificação ativa apenas com o elemento de nível de topo é exibida.[065] Figure 7 illustrates a situation where an active branch with only the top level element is displayed.

[066]A Figura 8 ilustra uma situação onde um próximo subnível de uma ramificação ativa é automaticamente expandido.[066] Figure 8 illustrates a situation where the next sublevel of an active branch is automatically expanded.

[067]A Figura 9 ilustra uma situação onde subníveis adicionais da ramificação ativa são automaticamente expandidos.[067] Figure 9 illustrates a situation where additional sublevels of the active branch are automatically expanded.

[068]A Figura 10 ilustra uma situação onde uma ramificação ativa é selecionada através de um elemento de árvore de subnível.[068] Figure 10 illustrates a situation where an active branch is selected through a sublevel tree element.

[069]A Figura 11 ilustra uma situação onde um próximo subnível abaixo do elemento de árvore de subnível é automaticamente expandido.[069] Figure 11 illustrates a situation where a next sublevel below the sublevel tree element is automatically expanded.

[070]A Figura 12 ilustra uma primeira parte de uma situação onde os níveis de árvore são automaticamente recolhidos.[070] Figure 12 illustrates a first part of a situation where tree levels are automatically collapsed.

[071]A Figura 13 ilustra uma segunda parte de uma situação onde os níveis de árvore são automaticamente recolhidos.[071] Figure 13 illustrates a second part of a situation where tree levels are automatically collapsed.

[072]A Figura 14 ilustra uma terceira parte de uma situação onde os níveis de árvore são automaticamente recolhidos.[072] Figure 14 illustrates a third part of a situation where tree levels are automatically collapsed.

[073]A Figura 15 ilustra uma primeira parte de uma situação onde subníveis são automaticamente expandidos por rolagem.[073] Figure 15 illustrates a first part of a situation where sublevels are automatically expanded by scrolling.

[074]A Figura 16 ilustra uma segunda parte de uma situação onde subníveis são automaticamente expandidos por rolagem.[074] Figure 16 illustrates a second part of a situation where sublevels are automatically expanded by scrolling.

[075]A Figura 17 ilustra uma terceira parte de uma situação onde subníveis são automaticamente expandidos por rolagem;[075] Figure 17 illustrates a third part of a situation where sublevels are automatically expanded by scrolling;

[076]A Figura 18 ilustra uma primeira parte de uma situação onde subníveis são automaticamente recolhidos por rolagem.[076] Figure 18 illustrates a first part of a situation where sublevels are automatically collapsed by scrolling.

[077]A Figura 19 ilustra uma segunda parte de uma situação onde subníveis são automaticamente recolhidos por rolagem.[077] Figure 19 illustrates a second part of a situation where sublevels are automatically collapsed by scrolling.

[078]A Figura 20 ilustra uma terceira parte de uma situação onde subníveis são automaticamente recolhidos por rolagem.[078] Figure 20 illustrates a third part of a situation where sublevels are automatically collapsed by scrolling.

[079]A Figura 21 ilustra uma primeira parte de uma situação onde a ramificação mais no topo é automaticamente expandida.[079] Figure 21 illustrates a first part of a situation where the topmost branch is automatically expanded.

[080]A Figura 22 ilustra uma segunda parte de uma situação onde a ramifi- cação mais no topo é automaticamente expandida.[080] Figure 22 illustrates a second part of a situation where the topmost branch is automatically expanded.

[081]A Figura 23 ilustra uma primeira parte de uma situação onde a ramificação mais no fundo é automaticamente expandida.[081] Figure 23 illustrates a first part of a situation where the branch at the bottom is automatically expanded.

[082]A Figura 24 ilustra uma segunda parte de uma situação onde a ramificação mais no fundo é automaticamente expandida.[082] Figure 24 illustrates a second part of a situation where the branch at the bottom is automatically expanded.

[083]A Figura 25 ilustra uma primeira parte de uma situação de recolhimen- to/expansão automática na mudança da ramificação ativa.[083] Figure 25 illustrates a first part of an automatic collapse/expansion situation when changing the active branch.

[084]A Figura 26 ilustra uma segunda parte de uma situação de recolhimen- to/expansão automática na mudança da ramificação ativa.[084] Figure 26 illustrates a second part of an automatic collapse/expansion situation when changing the active branch.

[085]A Figura 27 ilustra uma primeira parte de uma situação de expansão automática de uma ramificação no topo por rolagem.[085] Figure 27 illustrates a first part of an automatic expansion situation of a branch at the top by scrolling.

[086]A Figura 28 ilustra uma segunda parte de uma situação de expansão automática de uma ramificação no topo por rolagem.[086] Figure 28 illustrates a second part of an automatic expansion situation of a branch at the top by scrolling.

[087]A Figura 29 ilustra uma primeira parte de uma situação de expansão automática de uma ramificação na parte inferior por rolagem.[087] Figure 29 illustrates a first part of an automatic expansion situation of a branch at the bottom by scrolling.

[088]A Figura 30 ilustra uma segunda parte de uma situação de expansão automática de uma ramificação na parte inferior por rolagem.[088] Figure 30 illustrates a second part of an automatic expansion situation of a branch at the bottom by scrolling.

[089]A Figura 31 ilustra uma primeira parte de uma situação de recolhimen- to/expansão automática na mudança da ramificação ativa por rolagem; e[089] Figure 31 illustrates a first part of an automatic collapse/expansion situation when changing the active branch by scrolling; It is

[090]A Figura 32 ilustra uma segunda parte de uma situação de recolhimen- to/expansão automática na mudança da ramificação ativa por rolagem.[090] Figure 32 illustrates a second part of an automatic collapse/expansion situation when changing the active branch by scrolling.

DESCRIÇÃO DETALHADA DE MODALIDADESDETAILED DESCRIPTION OF MODALITIES

[091]Para um melhor entendimento, a solução proposta será agora explicada em mais detalhe na seguinte descrição com referência aos desenhos. É entendido que a solução não está limitada a essas modalidades exemplificativas e que recursos especificados podem também ser convenientemente combinados e/ou modificados sem que haja um afastamento do escopo da presente invenção tal como defini- do nas reivindicações anexas.[091] For a better understanding, the proposed solution will now be explained in more detail in the following description with reference to the drawings. It is understood that the solution is not limited to these exemplary embodiments and that specified features can also be conveniently combined and/or modified without departing from the scope of the present invention as defined in the appended claims.

[092]Com referência à Figura 1, uma modalidade de um método implantado por computador 10 para proporcionar uma estrutura em árvore de elementos em uma interface gráfica de usuário, dependendo de uma posição de um cursor com relação à estrutura em árvore proporcionada é mostrada esquematicamente. De acordo com a modalidade mostrada, o método fornece um mecanismo automático que constantemente reconfigura a visualização em árvore para uma apresentação compacta da árvore.[092] With reference to Figure 1, an embodiment of a computer-implemented method 10 for providing a tree structure of elements in a graphical user interface, depending on a position of a cursor with respect to the tree structure provided is shown schematically . According to the shown embodiment, the method provides an automatic mechanism that constantly reconfigures the tree view to a compact tree presentation.

[093]Em uma primeira etapa 11 uma visualização em árvore da estrutura em árvore, que é organizada, em uma pluralidade de ramificações, é gerada. De acordo com a modalidade mostrada, em uma etapa seguinte 12 uma seleção entre um modo automático e um modo manual é desempenhada em resposta a uma seleção de modo entrada pelo usuário. No modo manual a visualização em árvore é atualizada em uma etapa seguinte 13 em resposta à entrada adicional de usuário na interface gráfica de usuário.[093] In a first step 11 a tree view of the tree structure, which is organized, in a plurality of branches, is generated. According to the embodiment shown, in a following step 12 a selection between an automatic mode and a manual mode is performed in response to a mode selection entered by the user. In manual mode the tree view is updated in a following step 13 in response to further user input in the graphical user interface.

[094]No modo automático as seguintes etapas são desempenhadas:[094] In automatic mode, the following steps are performed:

[095]Em uma etapa seguinte 14 a posição do cursor com relação à visualização em árvore é determinada. A posição consiste em um primeiro valor de posição de acordo com uma primeira direção e um segundo valor de posição de acordo com uma segunda direção ortogonal à primeira direção.[095]In a further step 14 the position of the cursor with respect to the tree view is determined. The position consists of a first position value according to a first direction and a second position value according to a second direction orthogonal to the first direction.

[096]Em uma etapa seguinte 15 a ramificação com a qual a posição do cursor está alinhada de acordo com a primeira direção é selecionada automaticamente como uma ramificação ativa. Em uma etapa seguinte 16 subníveis da ramificação ativa a serem expandidos são determinados dependendo do segundo valor de posição com relação aos recuos de subníveis. Em uma etapa seguinte 17 a visualização em árvore é atualizada automaticamente expandindo-se os subníveis determinados da ramificação ativa e recolhendo-se as outras ramificações.[096]In a following step 15 the branch with which the cursor position is aligned according to the first direction is automatically selected as an active branch. In a following step 16 sublevels of the active branch to be expanded are determined depending on the second position value with respect to sublevel indents. In a subsequent step 17 the tree view is automatically updated by expanding the determined sublevels of the active branch and collapsing the other branches.

[097]Se a posição do cursor com relação à visualização em árvore é continuada para ser mudada em uma etapa seguinte 18, a etapa de determinação de posição de cursor 14, a etapa de seleção de ramificação ativa 15, a etapa de determinação de expansão de subnível 16 e a etapa de atualização de árvore automática 17 são repetidas continuamente. Caso contrário, na modalidade mostrada o método espera por qualquer mudança de posição a mais do cursor com relação à visualização em árvore.[097]If the cursor position with respect to the tree view is continued to be changed in a following step 18, the cursor position determination step 14, the active branch selection step 15, the expansion determination step sublevel 16 and auto tree update step 17 are repeated continuously. Otherwise, in the shown mode the method waits for any further changes in the position of the cursor with respect to the tree view.

[098]Com referência agora à Figura 2 e à Figura 3, modalidades de aparelhos de processamento de dados para proporcionar uma estrutura em árvore de elementos em uma interface gráfica de usuário dependendo de uma posição de um cursor com relação à estrutura em árvore proporcionada são mostradas esquematicamente. O aparelho mostrado na Figura 2 e o aparelho mostrado na Figura 3 permitem implantar as vantagens e características do método descrito para proporcionar uma estrutura em árvore como parte de um aparelho para proporcionar uma estrutura em árvore de elementos em uma interface gráfica de usuário, dependendo de uma posição de um cursor com relação à estrutura em árvore proporcionada.[098] With reference now to Figure 2 and Figure 3, embodiments of data processing apparatus for providing a tree structure of elements in a graphical user interface depending on a position of a cursor with respect to the tree structure provided are shown schematically. The apparatus shown in Figure 2 and the apparatus shown in Figure 3 allow to implement the advantages and characteristics of the described method for providing a tree structure as part of an apparatus for providing a tree structure of elements in a graphical user interface, depending on a position of a cursor with respect to the tree structure provided.

[099]O aparelho de processamento de dados 20 mostrado na Figura 2 compreende uma unidade de seleção 21 configurada para selecionar entre um modo automático e um modo manual em resposta a uma entrada de seleção de modo 22 pelo usuário.[099] The data processing apparatus 20 shown in Figure 2 comprises a selection unit 21 configured to select between an automatic mode and a manual mode in response to a mode selection input 22 by the user.

[0100] Uma unidade de representação gráfica 23 está configurada para gerar uma visualização em árvore da estrutura em árvore sendo organizada em uma pluralidade de ramificações. A unidade de representação gráfica 23 é conectada a ou pode ser conectada a ou compreende um dispositivo de exibição para exibir a visualização em árvore. No modo manual a unidade de representação gráfica 23 atualiza a visualização em árvore em resposta à entrada de usuário manual adicional na interface gráfica de usuário. No modo automático a unidade de representação gráfica 23 atualiza a visualização em árvore em resposta à entrada a partir de pelo menos uma unidade de determinação de expansão 27.[0100] A graphical representation unit 23 is configured to generate a tree view of the tree structure being organized into a plurality of branches. The graphics unit 23 is connected to or connectable to or comprises a display device for displaying the tree view. In manual mode the graphing unit 23 updates the tree view in response to further manual user input on the graphical user interface. In automatic mode the graphing unit 23 updates the tree view in response to input from at least one expansion determination unit 27.

[0101] Uma unidade de determinação de posição 24 é conectada à unidade de representação gráfica 23 e é configurada para determinar uma posição do cursor com relação à visualização em árvore. A posição consiste em um primeiro valor de posição de acordo com uma primeira direção e um segundo valor de posição de acordo com uma segunda direção ortogonal à primeira direção. A posição é determinada com base na entrada 25 a partir do usuário que controla a posição do cursor por rolagem ou movendo o cursor.[0101] A position determination unit 24 is connected to the graphing unit 23 and is configured to determine a position of the cursor with respect to the tree view. The position consists of a first position value according to a first direction and a second position value according to a second direction orthogonal to the first direction. The position is determined based on input 25 from the user who controls the position of the cursor by scrolling or moving the cursor.

[0102]Uma unidade de seleção de ramificação ativa 26 é configurada para selecionar automaticamente a ramificação com a qual a posição do cursor está alinhada de acordo com a primeira direção como uma ramificação ativa, e uma unidade de determinação de expansão 27 está configurada para determinar subníveis da ramificação ativa a ser expandida, dependendo do segundo valor de posição com relação a recuos dos subníveis.[0102]An active branch selection unit 26 is configured to automatically select the branch with which the cursor position is aligned according to the first direction as an active branch, and an expansion determination unit 27 is configured to determine sublevels of the active branch to be expanded, depending on the second position value with respect to sublevel indents.

[0103]A unidade de representação gráfica 23 é configurada para atualizar automaticamente a visualização em árvore pela expansão dos subníveis determinados da ramificação ativa e recolhendo as outras ramificações.[0103] The graphing unit 23 is configured to automatically update the tree view by expanding the determined sublevels of the active branch and collapsing the other branches.

[0104]Na modalidade mostrada na Figura 2, a unidade de seleção 21, a unidade de representação gráfica 23, a unidade de determinação de posição 24, a unidade de seleção ramificação ativa 26 e a unidade de determinação de expansão 27 se comunicam diretamente umas com as outras. Em outra modalidade, o aparelho compreende uma unidade de controlador conectada a uma ou mais das unidades e controla a comunicação das mesmas.[0104] In the embodiment shown in Figure 2, the selection unit 21, the graphing unit 23, the position determination unit 24, the active branch selection unit 26 and the expansion determination unit 27 directly communicate with each other with the others. In another embodiment, the apparatus comprises a controller unit connected to one or more of the units and controls their communication.

[0105]A unidade de seleção 21, a unidade de representação gráfica 23, a unidade de determinação de posição 24, a unidade de seleção ramificação ativa 26 e a unidade de determinação de expansão 27 podem ser fornecidas como dispositi- vos separados, em conjunto como pelo menos um dispositivo ou conjunto de circuitos lógicos ou funcionalidade realizada por um microprocessador, microcontrolador ou outro dispositivo de processamento, computador ou outro aparelho programável disposto para desempenhar o processamento, conectado a ou compreendendo pelo menos um dispositivo de memória.[0105] The selection unit 21, the graphing unit 23, the position determination unit 24, the active branch selection unit 26 and the expansion determination unit 27 can be supplied as separate devices, together as at least one device or set of logic circuits or functionality performed by a microprocessor, microcontroller or other processing device, computer or other programmable apparatus arranged to perform processing, connected to or comprising at least one memory device.

[0106] Como mostrado na Figura 3, uma modalidade de um aparelho de processamento de dados 30 para proporcionar uma estrutura em árvore de elementos em uma interface gráfica de usuário dependendo de uma posição de um cursor com relação à estrutura em árvore proporcionada compreende um dispositivo de processamento 31, um dispositivo de mostrador 32 e um dispositivo de memória 33 armazenando instruções que, quando executadas, fazem o dispositivo de processamento[0106] As shown in Figure 3, an embodiment of a data processing apparatus 30 for providing a tree structure of elements in a graphical user interface depending on a position of a cursor with respect to the tree structure provided comprises a device processing device 31, a display device 32 and a memory device 33 storing instructions which, when executed, make the processing device

[0107] - gerar uma visualização em árvore que mostra, usando o dispositivo de exibição 32, a estrutura da árvore sendo organizada em uma pluralidade de ramificações;[0107] - generating a tree view that shows, using the display device 32, the structure of the tree being organized into a plurality of branches;

[0108] - determinar a posição do cursor com relação à visualização em árvore, a posição consistindo em um primeiro valor de posição de acordo com uma primeira direção e um segundo valor de posição de acordo com uma segunda direção ortogonal à primeira direção;[0108] - determine the position of the cursor with respect to the tree view, the position consisting of a first position value according to a first direction and a second position value according to a second direction orthogonal to the first direction;

[0109] - selecionar automaticamente a ramificação com a qual a posição do cursor está alinhada de acordo com a primeira direção como uma ramificação ativa;[0109] - automatically select the branch with which the cursor position is aligned according to the first direction as an active branch;

[0110] - determinar subníveis da ramificação ativa a serem expandidos, dependendo do valor da segunda posição com relação a recuos dos subníveis; e[0110] - determine sublevels of the active branch to be expanded, depending on the value of the second position with respect to sublevel indents; It is

[0111] - atualizar automaticamente a visualização em árvore mostrada pelo dispositivo de exibição pela expansão dos subníveis determinados da ramificação ativa e recolhendo outras ramificações.[0111] - Automatically update the tree view shown by the display device by expanding the given sublevels of the active branch and collapsing other branches.

[0112] Por exemplo, o dispositivo de processamento pode ser um processa- dor adaptado para desempenhar as etapas de acordo com um dos métodos descritos. Em uma modalidade, a dita adaptação compreende que o processador é configurado, por exemplo, programado, para efetuar as etapas de acordo com um dos métodos descritos.[0112] For example, the processing device may be a processor adapted to perform the steps according to one of the described methods. In one embodiment, said adaptation comprises that the processor is configured, for example programmed, to carry out the steps according to one of the described methods.

[0113] No que se refere agora às Figuras 4 a 32, como um exemplo, uma modalidade de uma visualização em árvore de taxonomia sendo sujeita ao mecanismo de reconfiguração de visualização em árvore automática durante a interação de usuário por meio de um cursor no modo automático é esquematicamente ilustrada.[0113] With reference now to Figures 4 to 32, as an example, one embodiment of a taxonomy tree view being subject to the automatic tree view reconfiguration mechanism during user interaction via a cursor in mode automatic is schematically illustrated.

[0114] A Figura 4 mostra um exemplo de uma visualização em árvore de uma árvore de taxonomia em uma janela de visualização, tendo correntemente quatro subníveis expandidos. A posição do cursor está indicada por uma seta. A taxo- nomia exibida como árvore na visualização em árvore tem 9 conceitos de nível de topo (Concept_1, ..., Concept_9) com cada superconceito ou nó/elemento pai tendo 9 subconceitos ou nós/elementos filho, com 5 níveis de hierarquia no total. No exemplo ilustrado nas Figuras 4 a 32, esta taxonomia é manipulada. Na Figura 4, apenas a ramificação com a qual o cursor está verticalmente alinhado é expandida enquanto as outras ramificações são recolhidas, fornecendo uma apresentação compacta da árvore embora os elementos de árvore até o nível 5 sejam visíveis. De acordo com a solução proposta, a posição do cursor com relação à visualização em árvore é usada para controlar as operações de expandir/recolher automáticas da visualização em árvore. A posição vertical do cursor com relação aos elementos de árvore controla qual ramificação da árvore pode ser expandida como a ramificação ativa. As outras ramificações da árvore são recolhidas automaticamente. Estas são chamadas as ramificações inativas. A posição horizontal do cursor com relação ao recuo dos níveis de árvore controla quantos subníveis da ramificação ativa podem ser expandidos. Na expansão/recolhimento automático de elementos de árvore, a visualização em árvore atualizada pode também ser automaticamente movida verticalmente de modo que a posição real do cursor reflita a nova posição lógica de cursor com relação à visualização em árvore atualizada.[0114] Figure 4 shows an example of a tree view of a taxonomy tree in a viewport, currently having four sublevels expanded. The cursor position is indicated by an arrow. The taxonomy displayed as a tree in the tree view has 9 top level concepts (Concept_1, ..., Concept_9) with each superconcept or parent node/element having 9 subconcepts or child nodes/elements, with 5 levels of hierarchy in the total. In the example illustrated in Figures 4 to 32, this taxonomy is manipulated. In Figure 4, only the branch that the cursor is vertically aligned with is expanded while the other branches are collapsed, providing a compact presentation of the tree although tree elements up to level 5 are visible. According to the proposed solution, the position of the cursor relative to the tree view is used to control the automatic expand/collapse operations of the tree view. The vertical position of the cursor relative to tree elements controls which branch of the tree can be expanded as the active branch. The other branches of the tree are automatically collapsed. These are called the inactive branches. The horizontal position of the cursor relative to the indentation of tree levels controls how many sublevels of the active branch can be expanded. When auto expanding/collapsing tree elements, the updated tree view can also be automatically moved vertically so that the actual cursor position reflects the new logical cursor position relative to the updated tree view.

[0115]A Figura 5 mostra a visualização em árvore quando o cursor não aponta para a janela de visualização. A situação só é possível se o cursor é o cursor do sistema, isto é, um cursor padrão não criado especificamente para interagir com a visualização em árvore. Neste caso, não há nenhuma ramificação ativa por definição, independentemente da posição vertical do cursor. Portanto, somente os elementos de nível de topo da árvore são exibidos. Além disso, na modalidade mostrada a árvore é sempre exibida com o seu elemento mais no topo no canto esquerdo de topo da janela de visualização, incluindo indicadores de subelemento associados se aplicados aos elementos de árvore de nível de topo. Isso fornece ao usuário uma apresentação compacta e consistente da árvore como ponto de partida para navegação através da árvore quando o cursor é movido para o interior da janela de visualização. Tais movimentos já podem causar uma reconfiguração automática da visualização em árvore, dependendo da posição em que o cursor entra na janela de visualização com relação à visualização em árvore e à direção do movimento.[0115] Figure 5 shows the tree view when the cursor does not point to the view window. The situation is only possible if the cursor is the system cursor, ie a standard cursor not specifically created to interact with the tree view. In this case, there are no active branches by definition, regardless of the vertical position of the cursor. Therefore, only the top level elements of the tree are displayed. Furthermore, in the shown embodiment the tree is always displayed with its topmost element in the top left corner of the viewport, including associated subelement flags if applied to top level tree elements. This gives the user a compact and consistent presentation of the tree as a starting point for navigating through the tree when the cursor is moved into the viewport. Such movements can already cause an automatic reset of the tree view, depending on where the cursor enters the viewport relative to the tree view and the direction of movement.

[0116] A Figura 6 ilustra uma situação quando o cursor aponta para a janela de visualização, mas não está alinhado verticalmente com qualquer elemento de árvore. Nenhuma ramificação é selecionada como a ramificação ativa, o que resulta em que apenas os elementos de nível de topo da árvore são exibidos, também. Portanto, quando o cursor do sistema é movido para o interior da janela de visualização sem que a posição de entrada seja alinhada verticalmente com qualquer elemento de árvore, a visualização em árvore não muda. No entanto, devido ao elemento de árvore mais no topo ser exibido na borda de topo da janela de visualização quando o cursor não aponta para a janela de visualização, mover o cursor para o interior da janela de visualização a partir do topo faz com que a posição de entrada seja alinha- da verticalmente com o elemento de árvore mais no topo, a menos que não haja nenhuma árvore para ser exibida de todo. Quando o cursor aponta para a janela de visualização e é alinhado verticalmente com um elemento de árvore, a ramificação à qual este elemento pertence é a ramificação ativa. Quantos subníveis da ramificação ativa podem ser expandidos depende da posição horizontal do cursor. Se essa posição corresponde ao nível de árvore de topo, referido como nível de árvore 1, isto é, se o cursor é colocado à esquerda do recuo do nível de árvore 2, apenas o elemento de nível de topo da ramificação ativa é exibido, juntamente com os elementos de nível de topo das ramificações inativas, ver Figura 7. A partir da posição mostrada na Figura 7, o cursor pode ser movido para cima e para baixo dentro da janela de visualização sem alterar a visualização em árvore. Quanto a se existe ou não uma ramificação ativa e qual elemento de árvore de nível de topo está associado com as ramificações ativas, isso muda com o deslocamento vertical do cursor com relação à visualização em árvore.[0116] Figure 6 illustrates a situation when the cursor points to the viewport, but is not aligned vertically with any tree element. No branch is selected as the active branch, which results in only the top level elements of the tree being displayed, too. Therefore, when the system cursor is moved into the viewport without the input position being vertically aligned with any tree elements, the tree view does not change. However, because the topmost tree element is displayed at the top edge of the viewport when the cursor does not point to the viewport, moving the cursor to the inside of the viewport from the top causes the input position is aligned vertically with the topmost tree element, unless there is no tree to display at all. When the cursor points to the viewport and is vertically aligned with a tree element, the branch to which that element belongs is the active branch. How many sublevels of the active branch can be expanded depends on the horizontal position of the cursor. If this position corresponds to the top tree level, referred to as tree level 1, i.e., if the cursor is placed to the left of the tree level 2 indent, only the top level element of the active branch is displayed, along with with the top level elements of the branches inactive, see Figure 7. From the position shown in Figure 7, the cursor can be moved up and down within the viewport without changing the tree view. As for whether or not there is an active branch and which top level tree element is associated with the active branches, this changes with the vertical offset of the cursor relative to the tree view.

[0117] Quando há uma ramificação ativa e o cursor é movido para a direita além do recuo do próximo nível de árvore, o próximo subnível da ramificação ativa é expandido automaticamente, se existente. Se o cursor está verticalmente alinhado com um superelemento direto do nível de árvore que está sendo expandido, esse próximo subnível é naturalmente o subnível deste superelemento direto. Caso contrário, esse próximo subnível é definido como sendo o subnível do elemento de árvore mais no topo do nível de árvore expandido correntemente mais baixo da ramificação ativa. Por exemplo, se o cursor é movido para a direita por uma distância equivalente a um nível de recuo de árvore na visualização em árvore mostrada na Figura 7, a visualização em árvore resultante corresponde à Figura 8 porque a posição de cursor horizontal resultante corresponde ao nível de árvore 2, isto é, o cursor é colocado entre o recuo de nível de árvore 2 e 3. Portanto, o nível de árvore 2 da ramificação ativa é expandido automaticamente assim que o cursor cruza o recuo de nível de árvore 2 em seu caminho. Movendo-se o cursor mais para a direita por uma distância de 4 níveis de recuo de árvore, mais e mais subníveis da ramificação ativa são expandidos uma vez que os recuos correspondentes sejam cruzados, o que resulta na visualização em árvore reconfigurada mostrada na Figura 9, com a posição de cursor horizontal resultante correspondendo intencionalmente ao nível de árvore 6 para ilustrar que mover o cursor para recuos adicionais à direita do recuo do nível de árvore mais baixo de uma ramificação ativa não causa mais mudanças na visualização em árvore. A expansão automática de subníveis da ramificação ativa de acordo com a posição de cursor horizontal também acontece quando o cursor do sistema é movido para o interior da janela de visualização a partir da esquerda, da direita ou do topo e a posição de entrada é verticalmente alinhada com um elemento de árvore, o qual é sempre um dos elementos de árvore de nível de topo porque só estes são exibidos quando o cursor apontar não aponta para a janela de visualização. A ramificação que compreende o elemento de árvore de nível de topo com o qual o cursor está verticalmente alinhado se torna a ramificação ativa e é expandida automaticamente, dependendo da posição horizontal do cursor com relação à visualização em árvore, restrita pelo número de subníveis da ramificação ativa.[0117] When there is an active branch and the cursor is moved to the right beyond the next tree level indent, the next sublevel of the active branch is automatically expanded, if any. If the cursor is vertically aligned with a direct superelement of the tree level being expanded, that next sublevel is naturally the sublevel of that direct superelement. Otherwise, that next sublevel is defined to be the topmost tree element sublevel of the currently lowest expanded tree level of the active branch. For example, if the cursor is moved to the right by a distance equivalent to one tree indentation level in the tree view shown in Figure 7, the resulting tree view corresponds to Figure 8 because the resulting horizontal cursor position corresponds to the level tree level 2, that is, the cursor is placed between tree level 2 and tree level 3 indentation. Therefore, tree level 2 of the active branch is automatically expanded as soon as the cursor crosses tree level 2 indentation in its path . By moving the cursor further to the right by a distance of 4 tree indent levels, more and more sublevels of the active branch are expanded once the corresponding indents are crossed, resulting in the reconfigured tree view shown in Figure 9 , with the resulting horizontal cursor position intentionally corresponding to tree level 6 to illustrate that moving the cursor to additional indents to the right of the lowest tree level indent of an active branch no longer causes changes in the tree view. Automatic sublevel expansion of the active branch according to the horizontal cursor position also happens when the system cursor is moved into the viewport from the left, right, or top and the entry position is vertically aligned with a tree element, which is always one of the top level tree elements because only these are displayed when the cursor is not pointing to the viewport. The branch comprising the top-level tree element that the cursor is vertically aligned with becomes the active branch and is automatically expanded depending on the horizontal position of the cursor relative to the tree view, constrained by the number of sublevels in the branch active.

[0118] Tipicamente, um usuário não irá expandir mais de um subnível da ramificação ativa de cada vez, mas irá primeiro navegar pelos elementos de árvore de um subnível expandido recentemente para ver se há ou não um elemento de interesse e se ele quer ou não expandir um subnível abaixo deste elemento. Por exemplo, se um usuário decide expandir o subnível abaixo de Concept_3_3 na visualização em árvore mostrada na Figura 8, ele provavelmente irá mover o cursor para baixo até Concept_3_3 para fazer a ramificação que compreende Concept_3_3 a ramificação ativa, ver Figura 10, e então mover o cursor para a direita para expandir o próximo subnível, ver Figura 11. Se o usuário continua a expandir o subnível de cada terceiro elemento de cada nível de árvore na visualização em árvore mostrada na Figura 11, a visualização em árvore irá finalmente corresponder à Figura 4, exceto por ser cortada pela borda inferior da janela de visualização menor.[0118] Typically, a user will not expand more than one sublevel of the active branch at a time, but will first browse the tree elements of a newly expanded sublevel to see whether or not there is an element of interest and whether or not he wants to expand a sublevel below this element. For example, if a user decides to expand the sublevel below Concept_3_3 in the tree view shown in Figure 8, he will likely move the cursor down to Concept_3_3 to make the branch comprising Concept_3_3 the active branch, see Figure 10, and then move the cursor to the right to expand the next sublevel, see Figure 11. If the user continues to expand the sublevel of every third element of each tree level in the tree view shown in Figure 11, the tree view will finally match Figure 4, except it is clipped by the bottom edge of the smaller viewport.

[0119] Quando há uma ramificação ativa e o cursor é movido para a esquerda cruzando o recuo do nível de árvore mais baixo correntemente expandido exceto pelo nível de árvore 1, este nível de árvore é recolhido automaticamente. Se o cursor está alinhado verticalmente com um superelemento direto ou indireto do nível de árvore sendo recolhido, a ramificação ativa não muda. Por exemplo, se o cursor é movido para a esquerda por uma distância equivalente a quatro níveis de recuo de árvore na visualização em árvore mostrada na Figura 9, a visualização em árvore resultante corresponde à Figura 8, porque a posição de cursor horizontal resultante corresponde ao nível de árvore 2. Portanto, o nível de árvore 5 da ramificação ativa é recolhido automaticamente uma vez que o cursor cruza o recuo do nível de árvore 5 em seu caminho, e níveis de árvore 4 e 3 da ramificação ativa são recolhidos au-tomaticamente uma vez que os recuos correspondentes são cruzados posteriormente. Movendo-se o cursor mais para a esquerda por um nível de recuo de árvore, o nível de árvore 2 da ramificação ativa também é recolhido, o que resulta na visualização em árvore mostrada na Figura 7. De modo similar, mover o cursor para a esquerda na visualização em árvore mostrada na Figura 11 leva à visualização em árvore mostrada na Figura 10, uma vez que o recuo de nível de árvore 3 é cruzado pelo cursor.[0119] When there is an active branch and the cursor is moved to the left crossing the indentation of the lowest tree level currently expanded except for tree level 1, this tree level is automatically collapsed. If the cursor is vertically aligned with a direct or indirect superelement of the collapsing tree level, the active branch does not change. For example, if the cursor is moved to the left a distance equivalent to four levels of tree indentation in the tree view shown in Figure 9, the resulting tree view corresponds to Figure 8, because the resulting horizontal cursor position corresponds to the tree level 2. Therefore, tree level 5 of the active branch is automatically collapsed once the cursor crosses the indentation of tree level 5 on its path, and tree levels 4 and 3 of the active branch are automatically collapsed since the corresponding indents are crossed later. Moving the cursor further to the left by one level of tree indentation also collapses tree level 2 of the active branch, resulting in the tree view shown in Figure 7. Similarly, moving the cursor to the left left in the tree view shown in Figure 11 leads to the tree view shown in Figure 10 once the indentation of tree level 3 is crossed by the cursor.

[0120] Quando o cursor não está alinhado verticalmente com um superele- mento direto ou indireto do nível de árvore que está sendo recolhido devido ao fato de que mover o cursor para a esquerda, simplesmente recolher este nível de árvore faria com que um elemento de árvore arbitrário, se houvesse algum, fosse alinhado verticalmente com o cursor, dependendo do espaço anteriormente ocupado pelos elementos desse nível de árvore e da posição vertical do cursor com relação a esses elementos. Portanto, haveria uma nova ramificação ativa compreendendo esse ele- mento de árvore arbitrário ou mais nenhuma ramificação ativa, sem controle por parte do usuário. Portanto, na modalidade mostrada a visualização em árvore atualizada é automaticamente movida verticalmente de modo que o superelemento direto do nível de árvore que foi recolhido seja verticalmente alinhado com o cursor neste caso, com o mesmo deslocamento vertical deste superelemento com relação ao cursor como com o elemento de árvore com o qual o cursor estava verticalmente alinhado com antes da atualização da visualização em árvore, uma vez que esta posição é a nova posição lógica de cursor dentro da visualização em árvore atualizada. Isto também faz a ramificação que compreende este superelemento a ramificação ativa, habilitando navegação adicional contínua através da árvore. Outra abordagem seria em vez disso mover o cursor para a posição deste superelemento, o que se supõe ser confuso para o usuário. Além disso, este superelemento pode não ser correntemente visível, exigindo mover a visualização em árvore atualizada de qualquer maneira.[0120] When the cursor is not vertically aligned with a direct or indirect superelement of the tree level being collapsed due to the fact that moving the cursor to the left, simply collapsing this tree level would cause a tree level element to collapse. arbitrary tree, if any, were aligned vertically with the cursor, depending on the space previously occupied by elements at that level of the tree and the vertical position of the cursor relative to those elements. Therefore, there would be either a new active branch comprising this arbitrary tree element or no other active branches, uncontrolled by the user. Therefore, in the embodiment shown the updated tree view is automatically moved vertically so that the direct superelement of the tree level that was collapsed is vertically aligned with the cursor in this case, with the same vertical offset of this superelement with respect to the cursor as with the tree element that the cursor was vertically aligned with before the tree view was updated, as this position is the new logical cursor position within the updated tree view. This also makes the branch comprising this superelement the active branch, enabling continuous further navigation through the tree. Another approach would instead be to move the cursor to the position of this superelement, which is supposed to be confusing for the user. Furthermore, this superelement may not currently be visible, requiring moving the updated tree view anyway.

[0121] O movimento vertical automático da visualização em árvore atualizada pode fazer com que o elemento mais no topo da árvore seja exibido a alguma distância da borda de topo da janela de visualização. Tais deslocamentos são resolvidos rapidamente uma vez que o usuário expanda e faça uma rolagem através dos próximos subníveis de interesse. Por conveniência, em outra modalidade o mecanismo inclui uma funcionalidade de correção movendo o elemento mais no topo da visualização em árvore para a borda de topo da janela de visualização novamente, incluindo mover o cursor de modo que ele permaneça na mesma posição com relação à visualização em árvore. Essa funcionalidade de correção pode ser disparada mediante solicitação do usuário, por exemplo, por um teclado ou controle de mouse, ou um gesto multitoque, ou automaticamente uma vez que tal deslocamento ocorreria se configurado como preferido pelo usuário.[0121] Automatic vertical movement of the updated tree view may cause the topmost element in the tree to be displayed some distance from the top edge of the viewport. Such displacements are quickly resolved once the user expands and scrolls through the next sublevels of interest. For convenience, in another embodiment the mechanism includes correction functionality by moving the topmost element of the tree view to the top edge of the viewport again, including moving the cursor so that it remains in the same position relative to the view in tree. This correction functionality can be triggered upon user request, for example by a keyboard or mouse control, or a multitouch gesture, or automatically as such shifting would occur if configured as preferred by the user.

[0122] Um exemplo de recolhimento automático de níveis de árvore resul- tando em movimento vertical da visualização em árvore atualizada, causado pelo movimento do cursor para a esquerda, é ilustrado pela Figura 12 até a Figura 14. A Figura 12 mostra a vista antes do movimento de cursor. Agora o cursor é movido para a esquerda por uma distância equivalente a um nível de recuo de árvore, resultando na visualização em árvore mostrada na Figura 13 porque, uma vez que o cursor cruza o recuo de nível de árvore 3 no seu caminho, o nível de árvore 3 é recolhido automaticamente e a visualização em árvore atualizada é movida para baixo au-tomaticamente, de modo que Concept_3_3, o superelemento direto de Con- cept_3_3_3, seja exibido na posição vertical na qual Concept_3_3_3 foi exibido antes da atualização da visualização em árvore. Movimento adicional de cursor para a esquerda por um nível de recuo de árvore leva à visualização em árvore mostrada na Figura 14, com Concept_3 na Figura 14 sendo exibido na mesma posição vertical que Concept_3_3 na Figura 13.[0122] An example of automatic collapse of tree levels resulting in vertical movement of the updated tree view, caused by moving the cursor to the left, is illustrated by Figure 12 to Figure 14. Figure 12 shows the view before of cursor movement. The cursor is now moved to the left by a distance equivalent to one tree indentation level, resulting in the tree view shown in Figure 13 because, once the cursor crosses tree level 3 indentation in its path, the level tree view 3 is automatically collapsed and the updated tree view is automatically moved down so that Concept_3_3, the direct superelement of Concept_3_3_3, is displayed in the vertical position in which Concept_3_3_3 was displayed before the tree view was updated . Further left cursor movement by one level of tree indentation leads to the tree view shown in Figure 14, with Concept_3 in Figure 14 displayed in the same vertical position as Concept_3_3 in Figure 13.

[0123] A expansão ou recolhimento automáticos de níveis de árvore também podem ser disparados por rolagem horizontal da janela de visualização se o deslocamento horizontal da visualização em árvore com relação à posição de cursor inalterada resulta na posição horizontal de cursor corresponder a um nível de árvore diferente do de antes, com a expansão automática restrita pelo número de subníveis da ramificação ativa. Em princípio, a rolagem da janela de visualização para a direita é restrita pelo fato do elemento da visualização em árvore que chega mais à direita estar alinhado à direita com a borda direita da janela de visualização, independen-temente de se este elemento é ou não realmente visível dentro da janela de visualização. No entanto, como o recuo do próximo nível de árvore à direita do recuo do nível de árvore correntemente expandido mais baixo da ramificação ativa deve ser acessível pelo cursor, por qualquer combinação de rolagem horizontal e movimento horizontal de cursor, para permitir a expansão do próximo subnível da ramificação ativa se existente, a janela de visualização permite ser rolada para a direita, de modo que esse recuo seja claramente acessível pelo cursor. Isso resulta no elemento de visualização em árvore que chega o mais à direita possível sendo mostrado a alguma distância da borda direita da janela de visualização se este elemento é realmente visível e não longo o suficiente para se estender claramente até este recuo. Por outro lado, não há recuos de níveis de árvore a serem acessados à esquerda dos elementos de nível de topo da árvore, sendo assim a rolagem da janela de visualização para a esquerda pode ser restrita por esses elementos de nível de topo sendo mostrados na borda esquerda da janela de visualização, incluindo indicadores de sube- lemento associados se aplicados aos mesmos.[0123] Automatic expansion or collapse of tree levels can also be triggered by horizontal scrolling of the viewport if the horizontal displacement of the tree view with respect to the unchanged cursor position results in the horizontal cursor position corresponding to a tree level different than before, with auto-expansion constrained by the number of sublevels of the active branch. In principle, scrolling the viewport to the right is constrained by the fact that the rightmost tree view element is right-aligned with the right edge of the viewport, regardless of whether or not this element is actually visible within the preview window. However, because the indentation of the next tree level to the right of the indentation of the lowest currently expanded tree level of the active branch must be accessible by the cursor, by any combination of horizontal scrolling and horizontal cursor movement, to allow the expansion of the next sublevel of the active branch if any, the viewport allows to be scrolled to the right, so that this indentation is clearly accessible by the cursor. This results in the tree view element that reaches as far to the right as possible being shown some distance from the right edge of the viewport if this element is actually visible and not long enough to clearly extend to this indentation. On the other hand, there are no tree-level indents to be accessed to the left of the top-level elements of the tree, so scrolling the viewport to the left can be constrained by these top-level elements being shown on the border. left of the viewport, including associated sub-element tags if applied to them.

[0124]Um exemplo de expansão automática de subníveis da ramificação ativa, causada por rolagem da janela de visualização para a direita, é ilustrada na Figura 15 até a Figura 17. A Figura 15 mostra a vista antes da rolagem. Quando o cursor quase atingiu a borda direita da janela de visualização, subníveis adicionais da ramificação ativa não podem ser expandidos movendo o cursor para a direita, mas têm de ser expandidos deslocando-se em vez disso a janela de visualização para a direita. Além disso, os elementos de nível de árvore 3 da ramificação ativa são cortados pela borda direita da janela de visualização de modo que o usuário possa também rolar a vista para a direita para estar habilitado a ler mais do texto desses elementos. Agora a janela de visualização é rolada para a direita por uma distância equivalente a um nível de recuo de árvore, resultando na posição de cursor inalterada corresponder horizontalmente ao nível de árvore 4, portanto, o nível de árvore 4 da ramificação ativa é expandido automaticamente, ver Figura 16. Seja para expandir o próximo subnível da ramificação ativa ou para estar apto a ler os elementos cortados de imagem parada de nível de árvore 3 da ramificação ativa, a janela de visualização é agora rolada para a direita por um nível de recuo de árvore novamente, resultando na posição de cursor inalterada corresponder horizontalmente ao nível de árvore 5 e o nível de árvore de 5 da ramificação ativa, portanto, sendo expandido automatica- mente, ver Figura 17. O usuário pode agora tentar expandir subníveis adicionais da ramificação ativa rolando a janela de visualização adicionalmente para a direita, mas como não existem tais subníveis, isso só vai levar à visualização em árvore inalterada ser movida para a esquerda dentro da janela de visualização até que nenhum elemento de nível de árvore 5 da ramificação ativa seja mais cortado pela borda direita da janela de visualização, dado que todos os esses elementos sejam longos o suficiente para se estender claramente até o recuo de nível de árvore 6, tornando desnecessário deslocamento adicional desses elementos com relação à borda direita da janela de visualização. Se a rolagem foi realizada para que se possa em vez disso ler o texto dos elementos de nível de árvore 3 da ramificação ativa, o usuário provavelmente irá mover o cursor para a esquerda a seguir até que sua posição horizontal corresponda ao nível de árvore 3, para recolher automaticamente níveis de árvore 4 e 5 da ramificação ativa novamente. Quando o cursor está verticalmente alinhado com uma superelemento direto ou indireto do nível de árvore sendo recolhido devido à rolagem da janela de visualização para a esquerda, a ramificação ativa não muda. Por exemplo, se a janela de visualização mostrada na Figura 17 é rolada para a esquerda por uma distância equivalente a um nível de recuo de árvore, a visualização em árvore resultante corresponde à Figura 16, porque a posição de cursor inalterada corresponde horizontalmente ao nível de árvore 4, portanto, o nível de árvore 5 da ramificação ativa é simplesmente recolhido automaticamente. Por outra operação de rolagem para a esquerda por um nível de recuo de árvore, o nível de árvore 4 da ramificação ativa também é recolhido automaticamente, resultando na visualização em árvore mostrada na Figura 15. Quando o cursor não está alinhado verticalmente com um superelemento direto ou indireto do nível de árvore sendo recolhido devido a rolagem da janela de visualização para a esquerda, a visualização em árvore atualizada também é movida verticalmente, de modo que o supere- lemento direto do nível de árvore que foi recolhido seja alinhado verticalmente com a posição de cursor inalterada, similar ao comportamento ao se mover o cursor para a esquerda sob circunstâncias similares e pelas mesmas razões. Isto pode novamente levar a deslocamentos do elemento mais no topo da visualização em árvore com relação à borda de topo da janela de visualização, o que pode ser resolvido como descrito acima.[0124] An example of automatic expansion of sublevels of the active branch, caused by scrolling the viewport to the right, is illustrated in Figure 15 to Figure 17. Figure 15 shows the view before scrolling. When the cursor has almost reached the right edge of the viewport, additional sublevels of the active branch cannot be expanded by moving the cursor to the right, but must be expanded by moving the viewport to the right instead. In addition, tree-level 3 elements of the active branch are clipped by the right edge of the viewport so that the user can also scroll the view to the right to be able to read more of the text in these elements. The viewport is now scrolled to the right by a distance equivalent to one tree indentation level, resulting in the unchanged cursor position horizontally corresponding to tree level 4, so tree level 4 of the active branch is automatically expanded, see Figure 16. Either to expand the next sub-level of the active branch or to be able to read the clipped still-picture elements of tree level 3 of the active branch, the viewport is now scrolled to the right by an indent level of tree again, resulting in the unchanged cursor position horizontally matching tree level 5 and tree level 5 of the active branch, therefore being automatically expanded, see Figure 17. The user can now try to expand further sublevels of the active branch scrolling the viewport further to the right, but as there are no such sublevels this will just lead to the unchanged tree view being moved to the left within the viewport until no tree level 5 elements of the active branch are any more clipped by the right edge of the viewport, given that all of these elements are long enough to clearly extend to the tree-level 6 indent, making further offset of these elements relative to the right edge of the viewport unnecessary. If scrolling was performed so that one can instead read the text of tree level 3 elements of the active branch, the user will likely move the cursor to the left next until its horizontal position corresponds to tree level 3, to automatically collapse tree levels 4 and 5 of the active branch again. When the cursor is vertically aligned with a direct or indirect superelement of the tree level collapsing due to the viewport scrolling to the left, the active branch does not change. For example, if the viewport shown in Figure 17 is scrolled to the left by a distance equivalent to one tree indentation level, the resulting tree view corresponds to Figure 16, because the unchanged cursor position corresponds horizontally to the level of indentation. tree 4, so tree level 5 of the active branch is simply automatically collapsed. By another left scroll operation by one tree indentation level, tree level 4 of the active branch is also automatically collapsed, resulting in the tree view shown in Figure 15. When the cursor is not aligned vertically with a direct superelement or indirect view of the tree level being collapsed due to the viewport scrolling to the left, the updated tree view is also moved vertically, such that the direct superelement of the collapsed tree level is vertically aligned with the position unchanged, similar to the behavior when moving the cursor to the left under similar circumstances and for the same reasons. This can again lead to offsets of the topmost element in the treeview relative to the top edge of the viewport, which can be resolved as described above.

[0125] Um exemplo de recolhimento automático de níveis de árvore, com o resultante movimento vertical da visualização em árvore atualizada, causado por rolagem da janela de visualização para a esquerda, é ilustrado pelas Figuras 18 a 20. A Figura 18 mostra a vista antes da rolagem. Então a janela de visualização é rolada para a esquerda por uma distância equivalente a um nível de recuo de árvore, resultando na posição do cursor inalterada corresponder horizontalmente ao nível de árvore 4, portanto, o nível de árvore 5 é recolhido automaticamente e a visualização em árvore atualizada é movida para baixo automaticamente de modo que Con- cept_2_2_2_2, o superelemento direto de Concept_2_2_2_2_2, seja exibido na posição vertical em que Concept_2_2_2_2_2 foi exibido antes da atualização da visualização em árvore, ver Figura 19. Outra operação de rolagem para a esquerda por um nível de recuo de árvore leva à visualização em árvore mostrada na Figura 20, com Concept_2_2_2 na Figura 20 sendo exibido na mesma posição vertical que Concept_2_2_2_2 na Figura 19.[0125] An example of automatic collapse of tree levels, with the resulting vertical movement of the updated tree view, caused by scrolling the viewport to the left, is illustrated by Figures 18 to 20. Figure 18 shows the view before of the scroll. Then the viewport is scrolled to the left by a distance equivalent to one tree indentation level, resulting in the unchanged cursor position corresponding horizontally to tree level 4, so tree level 5 is automatically collapsed and the view in The updated tree is automatically moved down so that Concept_2_2_2_2, the direct superelement of Concept_2_2_2_2_2, is displayed in the vertical position that Concept_2_2_2_2_2 was displayed before the tree view was updated, see Figure 19. Another left scroll operation by one level of tree indentation leads to the tree view shown in Figure 20, with Concept_2_2_2 in Figure 20 displayed in the same vertical position as Concept_2_2_2_2 in Figure 19.

[0126]Expansão ou recolhimento automáticos de níveis de árvore podem também ser disparados por movimento vertical do cursor dentro da janela de visualização ou rolagem vertical da janela de visualização se o deslocamento vertical resultante do cursor com relação à visualização em árvore faz com que uma ramificação inativa se torne a ramificação ativa ou vice-versa. Isso inclui recolhimento de automática da ramificação correntemente ativa, se houver uma, e expansão automática da nova ramificação ativa, se houver uma, esta última dependendo da posição horizontal do cursor com relação à visualização em árvore, restrita pelo número de sub- níveis da nova ramificação ativa. Como as vistas de árvore a serem exibidas antes e depois dessas operações de síntese podem ter mais ou menos elementos de árvore em comum, a atualização resultante da visualização em árvore pode realmente ser mais ou menos visível, até o ponto em que nenhuma mudança é visível de todo. Além disso, o mecanismo proposto pode mover automaticamente a visualização em árvore atualizada verticalmente de modo que a posição de cursor atual reflita a nova posição lógica de cursor com relação à visualização em árvore atualizada. Isto pode novamente levar a deslocamentos do elemento mais no topo da visualização em árvore com relação à borda de topo da janela de visualização, o que pode ser resolvido como descrito acima.[0126] Automatic expansion or collapse of tree levels can also be triggered by vertical movement of the cursor within the visualization window or vertical scrolling of the visualization window if the resulting vertical displacement of the cursor with respect to the tree visualization causes a branch inactive branch becomes the active branch or vice versa. This includes automatically collapsing the currently active branch, if there is one, and automatically expanding the new active branch, if there is one, the latter depending on the horizontal position of the cursor relative to the tree view, constrained by the number of sublevels in the new branch. active branch. As the tree views to be displayed before and after these synthesis operations can have more or less tree elements in common, the resulting update of the tree view can actually be more or less visible, up to the point where no changes are visible at all. Furthermore, the proposed mechanism can automatically move the updated tree view vertically so that the current cursor position reflects the new logical cursor position relative to the updated tree view. This can again lead to offsets of the topmost element in the treeview relative to the top edge of the viewport, which can be resolved as described above.

[0127]A rolagem vertical de vistas de árvore padrão é tipicamente restrita pelo elemento mais no topo da visualização em árvore sendo mostrada na borda de topo da janela de visualização e pelo elemento mais no fundo da visualização em árvore sendo mostrado na borda inferior da janela de visualização. No entanto, este esquema não se encaixa bem em uma visualização em árvore usando o mecanismo proposto. Em primeiro lugar, reconfigurações automáticas da visualização em árvore no deslocamento do cursor com relação à visualização em árvore irão de qualquer maneira frequentemente causar deslocamentos verticais do elemento mais no topo ou mais no fundo da visualização em árvore com relação à borda de topo ou inferior da janela de visualização, respectivamente, de modo que há pouca utilidade em evitar este comportamento apenas na rolagem vertical da janela de visualização. Em segundo lugar, a própria rolagem vertical da janela de visualização irá frequentemente causar reconfigurações da vista, restringindo assim tal rolagem de acordo com a visualização em árvore que está sendo exibida antes que a rolagem pudesse resultar em que operações de rolagem alternadas e movimentos de cursor sejam exigidos para alcançar um elemento de árvore de interesse porque rolagem adicional poderia ser impedida até que movimento adicional do cursor destrave a mesma novamente. Além disso, se um aplicativo usando em vez disso o mecanismo proposto verificasse se a visualização em árvore atualizada poderia ou não ser exibida obedecendo tais restrições de rolagem padrão e se a distância de rolagem pretendida violasse tais restrições, a distância de rolagem teria que ser reduzida e a verificação teria de ser desempenhada novamente, possivelmente múltiplas vezes. Portanto, na modalidade mostrada rolagem vertical de acordo com a solução proposta é restrita pelo elemento mais no topo ou mais no fundo da visualização em árvore estar alinhado verticalmente com o cursor dentro da janela de visualização, para rolar a janela de visualização para cima ou para baixo, respectivamente. Isso permite que o usuário role toda a visualização em árvore para cima ou para baixo abaixo da posição de cursor inalterada. Além disso, o usuário pode facilmente selecionar quanto da visualização em árvore pode ser exibido acima ou abaixo do cursor pela escolha de uma posição de cursor vertical correspondente dentro da janela de visualização. A nova posição lógica de cursor com relação à visualização em árvore resultante de um deslocamento vertical do cursor com relação à visualização em árvore causado pelo movimento vertical do cursor dentro da janela de visualização ou rolagem vertical da janela de visualização, chamada nova posição lógica de cursor, é definida por meio de uma visualização em árvore conceitual chamada visualização em árvore ajustada. A visualização em árvore ajustada é definida como sendo a visualização em árvore real com todos os elementos e ramificações expandidos até o nível de árvore cor-respondente à posição horizontal do cursor, independentemente da posição vertical de cursor, com a posição horizontal de cursor com relação à visualização em árvore real e ajustada sendo a mesma. A posição vertical de cursor com relação à visualização em árvore real e ajustada é definida como a seguir: quando o cursor é colocado acima do elemento mais no topo da visualização em árvore real, o mesmo também é conceitualmente colocado acima do elemento mais no topo da visualização em árvore ajustada, com a mesma distância vertical em relação a esses elemen- tos. Quando o cursor está verticalmente alinhado com um elemento da visualização em árvore real, o mesmo está também conceitualmente alinhado verticalmente com o mesmo elemento da visualização em árvore ajustada, com o mesmo deslocamento vertical com relação a esses elementos. Quando o cursor está colocado abaixo do elemento mais no fundo da visualização em árvore real, o mesmo está também con- ceitualmente colocado abaixo do elemento mais no fundo da visualização em árvore ajustada, com a mesma distância vertical em relação a esses elementos. A nova posição lógica de cursor é definida como sendo a posição que o cursor teria com relação à visualização em árvore ajustada, se em vez disso o deslocamento vertical do cursor com relação à visualização em árvore real fosse aplicado à visualização em árvore ajustada, com a mesma direção e distância.[0127] Vertical scrolling of standard tree views is typically constrained by the topmost element of the treeview being shown at the top edge of the viewport and the bottommost element of the treeview being shown at the bottom edge of the window of visualization. However, this scheme does not fit well in a tree view using the proposed mechanism. Firstly, automatic tree view resets on cursor offset relative to the tree view will anyway often cause vertical shifts of the topmost or bottommost element of the treeview relative to the top or bottom edge of the tree view. viewport, respectively, so there is little use in avoiding this behavior only on vertical scrolling of the viewport. Second, vertical scrolling of the viewport itself will often cause view resets, thus restricting such scrolling according to the tree view being displayed before scrolling could result in alternate scrolling operations and cursor movements. are required to reach a tree element of interest because further scrolling would be prevented until further cursor movement unlocks it again. Furthermore, if an application using the proposed mechanism instead were to check whether or not the updated tree view could be displayed obeying such default scrolling constraints, and if the intended scrolling distance violated such constraints, the scrolling distance would have to be reduced. and the check would have to be performed again, possibly multiple times. Therefore, in the embodiment shown, vertical scrolling according to the proposed solution is restricted by the topmost or bottommost element of the tree view being aligned vertically with the cursor inside the viewport, to scroll the viewport up or down. down, respectively. This allows the user to scroll the entire tree view up or down below the unchanged cursor position. In addition, the user can easily select how much of the tree view can be displayed above or below the cursor by choosing a corresponding vertical cursor position within the viewport. The new logical cursor position relative to the tree view resulting from a vertical displacement of the cursor relative to the tree view caused by vertical movement of the cursor within the viewport or vertical scrolling of the viewport, called the new logical cursor position , is defined through a conceptual tree view called a fitted tree view. The fitted tree view is defined as the actual tree view with all elements and branches expanded to the tree level corresponding to the horizontal cursor position, regardless of the vertical cursor position, with the horizontal cursor position relative to to the real and adjusted tree view being the same. The vertical position of the cursor with respect to the real and adjusted tree view is defined as follows: when the cursor is placed above the topmost element of the real tree view, it is also conceptually placed above the topmost element of the adjusted tree view, with the same vertical distance in relation to these elements. When the cursor is vertically aligned with an element in the real tree view, it is conceptually also vertically aligned with the same element in the snapped tree view, with the same vertical offset relative to those elements. When the cursor is placed below the bottommost element of the real tree view, it is conceptually also placed below the bottommost element of the adjusted tree view, with the same vertical distance in relation to these elements. The new logical cursor position is defined to be the position the cursor would have relative to the fitted tree view, if instead the vertical offset of the cursor relative to the actual tree view were applied to the fitted tree view, with the same direction and distance.

[0128] Quando o cursor está colocado dentro da janela de visualização e acima do elemento mais no topo da visualização em árvore, não há nenhuma ramificação ativa, resultando em que apenas os elementos de nível de topo da árvore são exibidos, ver Figura 21. A partir da posição mostrada na Figura 21, o cursor pode ser movido para cima e para baixo dentro da janela de visualização sem mudar a visualização em árvore contanto que o cursor fique acima do elemento mais no topo da visualização em árvore. Quando o cursor é movido para baixo cruzando o limite vertical entre a área em branco e o elemento mais no topo da visualização em árvore, o mesmo também cruzaria o limite vertical entre a área em branco e o elemento mais no topo da visualização em árvore ajustada. Portanto, a nova posição lógica de cursor está verticalmente alinhada com o elemento mais no topo da visualização em árvore ajustada, e a ramificação compreendendo este elemento mais no topo se torna a nova ramificação ativa e é expandida automaticamente. Como o elemento mais no topo da visualização em árvore é sempre o mesmo elemento de árvore que o elemento mais no topo da visualização em árvore ajustada, a nova posição lógica de cursor corresponde à posição de cursor real, e não é necessário nenhum movimento vertical da visualização em árvore atualizada. Por exemplo, se o cursor, na janela de visualização mostrada na Figura 21, é movido para baixo para a posição mostrada na Figura 22, a visualização em árvore resultante corresponde à Figura 22 porque, uma vez que o cursor cruza o limite vertical entre a área em branco e Concept_1 em seu caminho, a nova posição lógica de cursor está verticalmente alinhada com Con- cept_1 e a ramificação compreendendo Concept_1 se torna a ramificação ativa e é expandida até o nível de árvore 2 devido à posição horizontal de cursor. Quando o cursor é movido para cima dentro da janela de visualização que cruza o limite vertical entre o elemento mais no topo da visualização em árvore e uma área em branco acima, o mesmo também cruzaria o limite vertical entre o elemento mais no topo da visualização em árvore ajustada e uma área em branco acima. Portanto, a nova posição lógica de cursor é logo acima do elemento mais no topo da visualização em árvore, e a ramificação compreendendo esse elemento mais no topo não é mais a ramificação ativa e é recolhida automaticamente. Devido à identidade do elemento mais no topo da visualização em árvore e do elemento mais no topo da visualização em árvore ajustada, a nova posição lógica de cursor corresponde à posição real de cursor, e não é necessário nenhum movimento vertical da visualização em árvore atualizada. Por exemplo, se o cursor, na janela de visualização mostrada na Figura 22, é movido para cima para a posição mostrada na Figura 21, a visualização em árvore resultante corresponde à Figura 21, porque, uma vez que o cursor cruza a fronteira vertical entre Concept_1 e a área em branco acima no seu caminho, a nova posição lógica de cursor não está alinhada verticalmente com qualquer elemento de árvore e a ramificação compreendendo Concept_1 não é mais a ramificação ativa e é recolhida automaticamente.[0128] When the cursor is placed inside the viewport and above the topmost element of the tree view, there are no active branches, resulting in only the top level elements of the tree being displayed, see Figure 21. From the position shown in Figure 21, the cursor can be moved up and down within the viewport without changing the tree view as long as the cursor is above the topmost element in the tree view. When the cursor is moved down crossing the vertical boundary between the blank area and the topmost element of the tree view, it would also cross the vertical boundary between the blank area and the topmost element of the snapped tree view . Therefore, the new logical cursor position is vertically aligned with the topmost element of the fitted tree view, and the branch comprising this topmost element becomes the new active branch and is automatically expanded. Since the topmost element in the tree view is always the same tree element as the topmost element in the fitted tree view, the new logical cursor position corresponds to the actual cursor position, and no vertical movement of the cursor is required. updated tree view. For example, if the cursor in the viewport shown in Figure 21 is moved down to the position shown in Figure 22, the resulting tree view corresponds to Figure 22 because once the cursor crosses the vertical boundary between the blank area and Concept_1 in its path, the new logical cursor position is vertically aligned with Concept_1 and the branch comprising Concept_1 becomes the active branch and is expanded to tree level 2 due to the horizontal cursor position. When the cursor is moved up within the viewport that crosses the vertical boundary between the topmost element in the treeview and a blank area above it, it would also cross the vertical boundary between the topmost element of the treeview in adjusted tree and a blank area above. Therefore, the new logical cursor position is just above the topmost element in the tree view, and the branch comprising that topmost element is no longer the active branch and is automatically collapsed. Due to the identity of the topmost element in the tree view and the topmost element in the adjusted tree view, the new logical cursor position corresponds to the actual cursor position, and no vertical movement of the updated tree view is required. For example, if the cursor in the viewport shown in Figure 22 is moved up to the position shown in Figure 21, the resulting tree view corresponds to Figure 21, because once the cursor crosses the vertical boundary between Concept_1 and the blank area above its path, the new logical cursor position is not vertically aligned with any tree elements, and the branch comprising Concept_1 is no longer the active branch and is automatically collapsed.

[0129] Quando o cursor é colocado dentro da janela de visualização e abaixo do elemento mais no fundo da visualização em árvore, não há nenhuma ramificação ativa, resultando em que apenas os elementos de nível de topo da árvore são exibi- dos, ver Figura 23. A partir da posição mostrada na Figura 23, o cursor pode ser movido para cima e para baixo dentro da janela de visualização sem mudar a visualização em árvore, contanto que o cursor permaneça abaixo do elemento mais no fundo da visualização em árvore. Quando o cursor é movido para cima cruzando o limite vertical entre a área em branco e elemento mais no fundo da visualização em árvore, o mesmo também iria cruzar o limite vertical entre a área em branco e elemento mais no fundo da visualização em árvore ajustada. Portanto, a nova posição lógica de cursor está verticalmente alinhada com o elemento mais no fundo da visualização em árvore ajustada, e a ramificação que compreende este elemento mais no fundo se torna a ramificação ativa e é expandida automaticamente. Como o elemento mais no fundo da visualização em árvore pode não ser o mesmo elemento de árvore que o elemento mais no fundo da visualização em árvore ajustada, isso pode resultar na nova posição lógica de cursor não corresponder à posição real de cursor. Se for este o caso, a visualização em árvore atualizada é também automaticamente movida verticalmente de modo que a nova posição lógica de cursor e a posição real de cursor sejam as mesmas, resultando em que o elemento mais no fundo da visualização em árvore atualizada é exibido na posição vertical, na qual o elemento mais no fundo de visualização em árvore foi exibido antes da atualização da visualização em árvore. Por exemplo, se o cursor, na janela de visualização apresentada na Figura 23, é movido para cima para a posição mostrada na Figura 24, a visualização em árvore resultante corresponde à Figura 24, porque, uma vez que o cursor cruza a fronteira vertical entre a área em branco e Concept_9 em seu caminho, a nova posição lógica de cursor é alinhada verticalmente com Concept_9_9, a ramificação compreendendo Concept_9_9 se torna a ramificação ativa e é expandida até o nível de árvore 2 devido à posição horizontal de cursor, e a visualização em árvore atualizada é movida para cima de modo que Concept_9_9 é exibido na posição vertical na qual Con- cept_9 foi exibido antes da atualização da visualização em árvore. Quando o cursor é movido para baixo dentro da janela de visualização que cruza o limite vertical entre o elemento mais no fundo da visualização em árvore e uma área em branco abaixo, o mesmo também iria cruzar o limite vertical entre o elemento mais no fundo da visualização em árvore ajustada e uma área em branco abaixo. Portanto, a nova posição lógica de cursor é logo abaixo do elemento mais no fundo da visualização em árvore, e a ramificação que compreende este elemento mais no fundo não é mais a ramificação ativa e é recolhida automaticamente. Como o elemento mais no fundo da visualização em árvore pode não ser o mesmo elemento de árvore que o elemento mais no fundo da visualização em árvore atualizada, isso pode resultar na nova posição lógica de cursor não corresponder à posição real de cursor. Se for este o caso, a visualização em árvore atualizada também é automaticamente movida verticalmente de modo que a nova posição lógica de cursor e a posição real de cursor sejam as mesmas, resultando no elemento mais no fundo da visualização em árvore atualizada ser exibido na posição vertical em que o elemento mais no fundo de visualização em árvore foi exibido antes da atualização da visualização em árvore. Por exemplo, se o cursor, na janela de visualização mostrada na Figura 24, é movido para baixo para a posição mostrada na Figura 23, a visualização em árvore resultante corresponde à Figura 23 porque, uma vez que o cursor cruza o limite vertical entre Concept_9_9 e a área em branco abaixo em seu caminho, a nova posição lógica de cursor não está alinhada verticalmente com qualquer elemento de árvore, a ramificação compreendendo Concept_9_9 não é mais a ramificação ativa e é recolhida automaticamente, e a visualização em árvore atualizada é movida para baixo de modo que Concept_9 seja exibido na posição vertical na qual Concept_9_9 foi exibido antes da atualização da visualização em árvore.[0129] When the cursor is placed inside the viewport and below the bottommost element of the tree view, there are no active branches, resulting in that only the top level elements of the tree are displayed, see Figure 23. From the position shown in Figure 23, the cursor can be moved up and down within the viewport without changing the tree view, as long as the cursor remains below the bottommost element of the tree view. When the cursor is moved upward crossing the vertical boundary between the blank area and the bottommost element of the treeview, it would also cross the vertical boundary between the blank area and the bottommost element of the adjusted treeview. Therefore, the new logical cursor position is vertically aligned with the bottommost element of the fitted tree view, and the branch comprising this bottommost element becomes the active branch and is automatically expanded. As the bottommost element of the tree view may not be the same tree element as the bottommost element of the fitted tree view, this may result in the new logical cursor position not matching the actual cursor position. If this is the case, the updated tree view is also automatically moved vertically so that the new logical cursor position and the actual cursor position are the same, resulting in the bottommost element of the updated tree view being displayed. in the vertical position, in which the bottommost element of the tree view was displayed before the tree view was updated. For example, if the cursor in the viewport shown in Figure 23 is moved up to the position shown in Figure 24, the resulting tree view corresponds to Figure 24, because once the cursor crosses the vertical boundary between the blank area and Concept_9 in its path, the new logical cursor position is aligned vertically with Concept_9_9, the branch comprising Concept_9_9 becomes the active branch and is expanded to tree level 2 due to the horizontal cursor position, and the preview The updated tree view is moved up so that Concept_9_9 is displayed in the vertical position in which Concept_9 was displayed before the tree view was updated. When the cursor is moved down within the viewport that crosses the vertical boundary between the bottommost element of the treeview and a blank area below, it would also cross the vertical boundary between the bottommost element of the view in a fitted tree and a blank area below. Therefore, the new logical cursor position is just below the bottommost element in the tree view, and the branch comprising this bottommost element is no longer the active branch and is automatically collapsed. Since the bottommost element in the tree view may not be the same tree element as the bottommost element in the updated tree view, this can result in the new logical cursor position not matching the actual cursor position. If this is the case, the updated tree view is also automatically moved vertically so that the new logical cursor position and the actual cursor position are the same, resulting in the bottommost element of the updated tree view being displayed at the same position. vertical where the bottommost element of the tree view was displayed before the tree view was updated. For example, if the cursor in the viewport shown in Figure 24 is moved down to the position shown in Figure 23, the resulting tree view corresponds to Figure 23 because once the cursor crosses the vertical boundary between Concept_9_9 and the blank area below in its path, the new logical cursor position is not vertically aligned with any tree elements, the branch comprising Concept_9_9 is no longer the active branch and is automatically collapsed, and the updated tree view is moved to down so that Concept_9 is displayed in the vertical position in which Concept_9_9 was displayed before the tree view was updated.

[0130]Movimentos de cursor que cruzam o limite vertical entre dois elementos adjacentes verticalmente da visualização em árvore resultam em uma mudança da ramificação ativa, com a ramificação correntemente ativa sendo automaticamente recolhida e a nova ramificação ativa sendo expandida automaticamente. A nova posição lógica de cursor está verticalmente alinhada com o elemento da visualização em árvore ajustada diretamente acima ou abaixo do elemento de árvore com o qual o cursor estava anteriormente verticalmente alinhado, dependendo da direção do movimento. Se a atualização da visualização em árvore leva a nova posição lógica de cursor a não corresponder à posição real de cursor, a visualização em árvore atualizada também é automaticamente movida verticalmente de modo que a nova posição lógica de cursor e a posição real de cursor sejam as mesmas, resultando em que o elemento da visualização em árvore atualizada que está alinhado verticalmente com o cursor é exibido na posição vertical na qual o elemento da visualização em árvore para a qual o cursor foi movido foi exibido antes da atualização da visualização em árvore. Por exemplo, se o cursor na janela de visualização mostrada na Figura 25 é movido para baixo para a posição mostrada na Figura 26, a visualização em árvore resultante corresponde à Figura 26 porque, uma vez que o cursor cruza o limite vertical entre Concept_1_9 e Concept_2 em seu caminho, a nova posição lógica de cursor está verticalmente alinhada com Concept_2, a ramificação compreen-dendo Concept_1_9 não é mais a ramificação ativa e é recolhida automaticamente, a ramificação compreendendo Concept_2 se torna a nova ramificação ativa e é expandida até o nível de árvore 2 devido à posição horizontal de cursor, e a visualização em árvore atualizada é movida para baixo de modo que Concept_2 é exibido na mesma posição vertical em que foi exibido antes da atualização da visualização em árvore. Se o cursor, na janela de visualização mostrada na Figura 26, é movido para cima para a posição mostrada na Figura 25, a visualização em árvore resultante corresponde à Figura 25 porque, uma vez que o cursor cruza o limite vertical entre Concept_2 e Concept_1 em seu caminho, a nova posição lógica de cursor é verti-calmente alinhada com Concept_1_9, a ramificação compreendendo Concept_2 não é mais a ramificação ativa e é recolhida automaticamente, a ramificação compreen- dendo Concept_1_9 se torna a nova ramificação ativa e é expandida até o nível de árvore 2 devido à posição horizontal de cursor, e a visualização em árvore atualizada é movida para cima de modo que Concept_1_9 seja exibido na posição vertical em que Concept_1 foi exibido antes da atualização da visualização em árvore.[0130] Cursor movements that cross the vertical boundary between two vertically adjacent elements of the tree view result in a change of the active branch, with the currently active branch being automatically collapsed and the new active branch being automatically expanded. The new logical cursor position is vertically aligned with the tree view element fitted directly above or below the tree element the cursor was previously vertically aligned with, depending on the direction of movement. If updating the tree view causes the new logical cursor position to not match the actual cursor position, the updated tree view is also automatically moved vertically so that the new logical cursor position and the actual cursor position are the same. same, resulting in the updated tree view element that is vertically aligned with the cursor being displayed in the vertical position in which the tree view element the cursor was moved to was displayed before the tree view was updated. For example, if the cursor in the viewport shown in Figure 25 is moved down to the position shown in Figure 26, the resulting tree view matches Figure 26 because once the cursor crosses the vertical boundary between Concept_1_9 and Concept_2 in its path, the new logical cursor position is vertically aligned with Concept_2, the branch comprising Concept_1_9 is no longer the active branch and is automatically collapsed, the branch comprising Concept_2 becomes the new active branch and is expanded to the level of tree 2 due to the horizontal cursor position, and the updated tree view is moved down so that Concept_2 is displayed in the same vertical position as it was displayed before the tree view was updated. If the cursor, in the viewport shown in Figure 26, is moved up to the position shown in Figure 25, the resulting tree view corresponds to Figure 25 because, once the cursor crosses the vertical boundary between Concept_2 and Concept_1 in its path, the new logical cursor position is vertically aligned with Concept_1_9, the branch comprising Concept_2 is no longer the active branch and is automatically collapsed, the branch comprising Concept_1_9 becomes the new active branch and is expanded to the level tree view 2 due to the horizontal cursor position, and the updated tree view is moved up so that Concept_1_9 is displayed in the vertical position that Concept_1 was displayed before the tree view was updated.

[0131]Para manter a consistência, a expansão automática de subníveis da ramificação ativa como se o cursor tivesse sido movido para uma nova ramificação ativa a partir de baixo, ou a partir de uma área em branco ou a partir de uma ramificação correntemente ativa, também acontece quando o cursor do sistema é movido para o interior da janela de visualização a partir do fundo e a posição de entrada está verticalmente alinhada com um elemento de árvore, o qual é sempre um dos elementos de árvore de nível de topo, porque só estes são exibidos quando o cursor não aponta para a janela de visualização. A ramificação que compreende o elemento de árvore com o qual a nova posição lógica de cursor está verticalmente alinhada se torna a ramificação ativa e é expandida automaticamente, dependendo da posição horizontal do cursor com relação à visualização em árvore, restrita ao número de subníveis da ramificação ativa, e a visualização em árvore atualizada é automaticamente movida na vertical de modo que a nova posição lógica de cursor corresponda à posição real de cursor.[0131] For consistency, automatic expansion of sublevels of the active branch as if the cursor had been moved to a new active branch from below, either from a blank area or from a currently active branch, it also happens when the system cursor is moved into the viewport from the bottom and the input position is vertically aligned with a tree element, which is always one of the top level tree elements, because only these are displayed when the cursor does not point to the viewport. The branch comprising the tree element with which the new logical cursor position is vertically aligned becomes the active branch and is automatically expanded depending on the horizontal position of the cursor relative to the tree view, constrained by the number of sublevels in the branch active, and the updated tree view is automatically moved vertically so that the new logical cursor position matches the actual cursor position.

[0132] A rolagem vertical da janela de visualização é tratada de modo similar ao movimento vertical do cursor dentro da janela de visualização, com duas diferenças notáveis: Primeiro, enquanto que o movimento vertical de cursor é sempre contínuo, a rolagem vertical pode não ser contínua, possivelmente resultando na nova posição lógica de cursor ser alinhada verticalmente com um elemento arbitrário de visualização em árvore ajustada em vez de com o que está mais no topo, com o mais no fundo, ou com um verticalmente adjacente. Segundo, enquanto a movimentação do cursor dentro da janela de visualização acima ou abaixo da visualização em árvore é irrestrita, o deslocamento vertical da janela de visualização pode ser restrito como descrito acima. Na modalidade mostrada, as restrições da rolagem vertical são aplicadas. Além disso, os exemplos a seguir ilustram apenas rolagem vertical por distâncias equivalentes a um múltiplo da altura de um elemento de árvore. Outras distâncias de rolagem iriam adicionalmente levar a diferentes deslocamentos verticais com relação ao cursor do elemento de árvore com o qual o cursor está verticalmente alinhado dentro da visualização em árvore reconfigurada e o elemento de árvore com o qual o cursor está verticalmente alinhado antes da reconfiguração da visualização em árvore, contanto que o cursor esteja verticalmente alinhado com um elemento de árvore antes e depois da reconfiguração da visualização em árvore.[0132] Viewport vertical scrolling is treated similarly to vertical cursor movement within the viewport, with two notable differences: First, while vertical cursor movement is always continuous, vertical scrolling may not be continuous, possibly resulting in the new logical cursor position being vertically aligned with an arbitrary fitted tree view element rather than the topmost, bottommost, or vertically adjacent one. Second, while cursor movement within the viewport above or below the tree view is unrestricted, vertical displacement of the viewport can be constrained as described above. In the shown mode, vertical scrolling restrictions are applied. Also, the following examples only illustrate vertical scrolling by distances equivalent to a multiple of the height of a tree element. Other scroll distances would additionally lead to different vertical offsets with respect to the tree element cursor with which the cursor is vertically aligned within the reconfigured tree view and the tree element with which the cursor is vertically aligned before the reset. tree view, as long as the cursor is vertically aligned with a tree element before and after resetting the tree view.

[0133]Quando o cursor é colocado dentro da janela de visualização e acima do elemento mais no topo da visualização em árvore, a janela de visualização só pode ser rolada para baixo, resultando na visualização em árvore inalterada simplesmente sendo movida para cima dentro da janela de visualização, contanto que a nova posição lógica de cursor não esteja ainda alinhada verticalmente com qualquer elemento da visualização em árvore ajustada. Uma vez que a nova posição lógica de cursor esteja verticalmente alinhada com um elemento da visualização em árvore ajustada pela primeira vez, a ramificação compreendendo esse elemento se torna a ramificação ativa e é expandida automaticamente. Se a atualização da visualização em árvore leva à nova posição lógica de cursor não corresponder à posição real de cursor, a visualização em árvore atualizada também é automaticamente movida verticalmente de modo que a nova posição lógica de cursor e a posição real de cursor sejam as mesmas. Por exemplo, se a janela de visualização mostrada na Figura 27 é rolada para baixo por uma distância equivalente à altura de 4 elementos de árvore, a visualização em árvore resultante corresponde à Figura 28, porque a nova posição lógica de cursor está verticalmente alinhada com Concept_1_1_1 e a ramificação compreendendo Concept_1_1_1 se torna a ramificação ativa e é expandida até o nível de árvore 3 devido à posição horizontal de cursor. Como a nova posição lógica de cursor já corresponde à posição real de cursor, não é necessário nenhum movimento vertical da visualização em árvore atualizada.[0133] When the cursor is placed inside the viewport and above the topmost element of the treeview, the viewport can only be scrolled down, resulting in the unchanged treeview simply being moved up within the window view, as long as the new logical cursor position is not already vertically aligned with any element of the adjusted tree view. Once the new logical cursor position is vertically aligned with an element of the first fitted tree view, the branch comprising that element becomes the active branch and is automatically expanded. If updating the tree view leads to the new logical cursor position not matching the actual cursor position, the updated tree view is also automatically moved vertically so that the new logical cursor position and the actual cursor position are the same . For example, if the viewport shown in Figure 27 is scrolled down by a distance equivalent to the height of 4 tree elements, the resulting tree view matches Figure 28, because the new logical cursor position is vertically aligned with Concept_1_1_1 and the branch comprising Concept_1_1_1 becomes the active branch and is expanded to tree level 3 due to the horizontal cursor position. Since the new logical cursor position already matches the actual cursor position, no vertical movement of the updated tree view is required.

[0134] Quando o cursor é colocado dentro da janela de visualização e abaixo do elemento mais no fundo da visualização em árvore, a janela de visualização só pode ser rolada para cima, resultando na visualização em árvore inalterada simplesmente ser movida para baixo dentro da janela de visualização contanto que a nova posição lógica de cursor não esteja ainda alinhada verticalmente com qualquer elemento da visualização em árvore ajustada. Uma vez que a nova posição lógica de cursor esteja verticalmente alinhada com um elemento da visualização em árvore ajustada pela primeira vez, a ramificação compreendendo esse elemento se torna a ramificação ativa e é expandida automaticamente. Se a atualização da visualização em árvore leva a nova posição lógica de cursor a não corresponder à posição real de cursor, a visualização em árvore atualizada é assim automaticamente movida verticalmente de modo que a nova posição lógica de cursor e a posição real de cursor sejam as mesmas. Por exemplo, se a janela de visualização mostrada na Figura 29 é rolada para cima por uma distância equivalente à altura de 4 elementos de árvore, a visualização em árvore resultante corresponde à Figura 30, porque a nova posição lógica de cursor está verticalmente alinhada com Concept_9_9_7, a ramificação compreendendo Concept_9_9_7 se torna a ramificação ativa e é expandida até o nível de árvore 3 devido à posição horizontal de cursor, e a visualização em árvore atualizada é movida para cima de modo que a nova posição lógica de cursor e a posição real de cursor sejam as mesmas.[0134] When the cursor is placed inside the viewport and below the bottommost element of the treeview, the viewport can only be scrolled up, resulting in the unchanged treeview simply being moved down within the window view as long as the new logical cursor position is not already vertically aligned with any element of the adjusted tree view. Once the new logical cursor position is vertically aligned with an element of the first fitted tree view, the branch comprising that element becomes the active branch and is automatically expanded. If updating the tree view causes the new logical cursor position to not match the actual cursor position, the updated tree view is thus automatically moved vertically so that the new logical cursor position and the actual cursor position are the same. same. For example, if the viewport shown in Figure 29 is scrolled up by a distance equivalent to the height of 4 tree elements, the resulting tree view matches Figure 30, because the new logical cursor position is vertically aligned with Concept_9_9_7 , the branch comprising Concept_9_9_7 becomes the active branch and is expanded to tree level 3 due to the horizontal cursor position, and the updated tree view is moved up so that the new logical cursor position and the actual position of cursor are the same.

[0135]Quando existe uma ramificação ativa e a rolagem vertical da janela de visualização resulta na nova posição lógica de cursor ser verticalmente alinhada com um elemento da visualização em árvore ajustada, com este elemento de árvore sendo diferente do elemento de árvore com o qual o cursor estava anteriormente alinhado verticalmente, a ramificação ativa muda. Portanto, a ramificação correntemen- te ativa é recolhida automaticamente, e a nova ramificação ativa é expandida automaticamente. Se a atualização da visualização em árvore leva a nova posição lógica de cursor a não corresponder à posição real de cursor, a visualização em árvore atualizada é também automaticamente movida verticalmente de modo que a nova posição lógica de cursor e a posição real de cursor sejam as mesmas. Por exemplo, se a janela de visualização mostrada na Figura 31 é rolada para baixo por uma distância equivalente à altura de 4 elementos de árvore, a visualização em árvore resultante corresponde à Figura 32, porque a nova posição lógica de cursor é verticalmente alinhada com Concept_8_9_2, a ramificação compreendendo Concept_8_8_8 não é mais a ramificação ativa e é recolhida automaticamente, a ramificação compreendendo Concept_8_9_2 se torna a nova ramificação ativa e é expandida até o nível de árvore 3 devido à posição horizontal de cursor, e a visualização em árvore atualizada é movida para baixo de modo que Concept_8_9_2 é exibido na posição vertical em que Concept_8_8_8 foi exibido antes da atualização da visualização em árvore. Se a janela de visualização representada na Figura 32 é rolada para cima por uma distância equivalente à altura de 4 elementos de árvore, a visualização em árvore resultante corresponde à Figura 31, porque a nova posição lógica de cursor está verticalmente alinhada com Concept_8_8_8, a ramificação compreendendo Concept_8_9_2 não é mais a ramificação ativa e é recolhida automaticamente, a ramificação compreendendo Concept_8_8_8 se torna a nova ramificação ativa e é expandida até o nível de árvore 3 devido à posição horizontal de cursor, e a visualização em árvore atualizada é movida para cima de modo que Concept_8_8_8 seja exibido na posição vertical na qual Concept_8_9_2 foi exibido antes da atualização da visualização em árvore.[0135] When there is an active branch and vertical scrolling of the viewport results in the new logical cursor position being vertically aligned with an element of the adjusted tree view, with this tree element being different from the tree element with which the cursor was previously aligned vertically, the active branch changes. Therefore, the currently active branch is automatically collapsed, and the new active branch is automatically expanded. If updating the tree view causes the new logical cursor position to not match the actual cursor position, the updated tree view is also automatically moved vertically so that the new logical cursor position and the actual cursor position are the same. same. For example, if the viewport shown in Figure 31 is scrolled down by a distance equivalent to the height of 4 tree elements, the resulting tree view matches Figure 32, because the new logical cursor position is vertically aligned with Concept_8_9_2 , the branch comprising Concept_8_8_8 is no longer the active branch and is automatically collapsed, the branch comprising Concept_8_9_2 becomes the new active branch and is expanded to tree level 3 due to the horizontal cursor position, and the updated tree view is moved down so that Concept_8_9_2 is displayed in the vertical position that Concept_8_8_8 was displayed before the tree view was updated. If the viewport depicted in Figure 32 is scrolled up by a distance equivalent to the height of 4 tree elements, the resulting tree view corresponds to Figure 31, because the new logical cursor position is vertically aligned with Concept_8_8_8, the branch comprising Concept_8_9_2 is no longer the active branch and is automatically collapsed, the branch comprising Concept_8_8_8 becomes the new active branch and is expanded to tree level 3 due to the horizontal cursor position, and the updated tree view is moved up from so that Concept_8_8_8 is displayed in the vertical position in which Concept_8_9_2 was displayed before the tree view was updated.

[0136] Quando rolar a janela de visualização para cima ou para baixo levaria a uma nova posição lógica de cursor acima do elemento mais no topo ou abaixo do elemento mais no fundo da visualização em árvore, respectivamente, as restrições de rolagem fazem efeito, reduzindo a distância de deslocamento de modo que a nova posição lógica de cursor esteja verticalmente alinhada com o elemento mais no topo ou mais no fundo da visualização em árvore ajustada, respectivamente. Portanto, a ramificação correntemente ativa, se houver uma, é automaticamente recolhida, e a ramificação compreendendo o elemento mais no topo ou o mais no fundo da visualização em árvore ajustada, respectivamente, se torna a nova ramificação ativa e é expandido automaticamente. Se a atualização da visualização em árvore leva a nova posição lógica de cursor a não corresponder à posição real de cursor, a visualização em árvore atualizada é também automaticamente movida verticalmente de modo que a nova posição lógica de cursor e a posição real de cursor sejam as mesmas. Este é o mesmo comportamento que o comportamento causado por rolamento vertical da janela de visualização levando diretamente a nova posição lógica de cursor a ser alinhada verticalmente com o elemento mais no topo ou mais no fundo da visualização em árvore ajustada, respectivamente.[0136] When scrolling the viewport up or down would lead to a new logical cursor position above the topmost element or below the bottommost element of the treeview, respectively, the scrolling constraints take effect, reducing the offset distance so that the new logical cursor position is vertically aligned with the topmost or bottommost element of the adjusted tree view, respectively. Therefore, the currently active branch, if there is one, is automatically collapsed, and the branch comprising the topmost or bottommost element of the adjusted tree view, respectively, becomes the new active branch and is automatically expanded. If updating the tree view causes the new logical cursor position to not match the actual cursor position, the updated tree view is also automatically moved vertically so that the new logical cursor position and the actual cursor position are the same. same. This is the same behavior as the behavior caused by vertically scrolling the viewport directly causing the new logical cursor position to be aligned vertically with the topmost or bottommost element of the adjusted treeview, respectively.

[0137]Como será apreciado por um especialista na técnica, aspectos dos presentes princípios podem ser incorporados como um aparelho, um sistema, método ou meio legível por computador. Consequentemente, aspectos dos presentes princípios podem tomar a forma de uma modalidade de hardware, modalidade de software ou uma modalidade que combina aspectos de software e hardware. Além disso, aspectos dos presentes princípios podem tomar a forma de um meio de armazenamento legível por computador. Qualquer combinação de um ou mais meio(s) de armazenamento legível (legíveis) por computador pode ser utilizada.[0137] As will be appreciated by one skilled in the art, aspects of the present principles may be incorporated as an apparatus, system, method, or computer-readable medium. Accordingly, aspects of the present principles may take the form of a hardware embodiment, a software embodiment, or an embodiment that combines both software and hardware aspects. In addition, aspects of these principles may take the form of a computer-readable storage medium. Any combination of one or more computer readable (readable) storage medium(s) may be used.

[0138] Aspectos dos presentes princípios podem, por exemplo, pelo menos em parte ser implantados em um programa de computador que compreende porções de código para desempenhar etapas do método de acordo com uma modalidade da invenção quando executada em um aparelho programável ou habilitar um aparelho programável a desempenhar funções de um aparelho ou sistema de acordo com uma modalidade da invenção.[0138] Aspects of the present principles can, for example, at least in part be implemented in a computer program comprising portions of code to perform method steps according to an embodiment of the invention when executed in a programmable apparatus or to enable an apparatus programmable to perform functions of an apparatus or system according to an embodiment of the invention.

[0139]Além disso, qualquer conexão mostrada na Figura 2 e na Figura 3 pode ser uma conexão direta ou indireta. Além disso, os especialistas na técnica irão reconhecer que as fronteiras entre blocos lógicos são meramente ilustrativas e que modalidades alternativas podem misturar blocos lógicos ou impor uma decomposição alternativa de funcionalidade em vários blocos lógicos.[0139] In addition, any connection shown in Figure 2 and Figure 3 can be a direct or indirect connection. Furthermore, those skilled in the art will recognize that the boundaries between logic blocks are merely illustrative and that alternative embodiments may mix logic blocks or impose an alternative decomposition of functionality on multiple logic blocks.

Claims (15)

1. Método (10) para renderizar uma estrutura em árvore de elementos em uma interface gráfica de usuário dependendo de uma posição de um cursor com relação à estrutura em árvore renderizada, CARACTERIZADO pelo fato de que compreende: gerar (11) pelo menos uma visualização em árvore da estrutura em árvore sendo organizada em uma pluralidade de ramificações, em que pelo menos uma dentre a pluralidade de ramificações inclui uma hierarquia de uma pluralidade de subníveis da estrutura em árvore; determinar (14) a posição do cursor com relação à visualização em árvore, a posição compreendendo um primeiro valor de posição de acordo com uma primeira direção e um segundo valor de posição de acordo com uma segunda direção ortogonal à primeira direção, o primeiro valor de posição determinando uma ramificação ativa selecionada como a ramificação para a qual a posição do cursor está alinhada de acordo com a primeira direção e o segundo valor de posição determinando (16) subníveis da ramificação ativa a serem expandidos, dependendo do segundo valor de posição com relação a recuos na renderização da estrutura em árvore indicando a pluralidade de subníveis de modo que um valor crescente do segundo valor de posição determina um primeiro subnível mais profundo na hierarquia da pluralidade de subníveis da estrutura em árvore e um valor decrescente do segundo valor de posição determina um segundo subnível mais alto na hierarquia da pluralidade de subníveis da estrutura em árvore; e atualizar a visualização em árvore pela expansão dos subníveis determinados da ramificação ativa e recolhendo outras ramificações quando pelo menos um dentre o primeiro valor de posição ou o segundo valor de posição mudar.1. Method (10) for rendering a tree structure of elements in a graphical user interface depending on a position of a cursor with respect to the rendered tree structure, CHARACTERIZED in that it comprises: generating (11) at least one view a tree of the tree structure being organized into a plurality of branches, wherein at least one of the plurality of branches includes a hierarchy of a plurality of sublevels of the tree structure; determining (14) the position of the cursor with respect to the tree view, the position comprising a first position value according to a first direction and a second position value according to a second direction orthogonal to the first direction, the first value of position determining a selected active branch as the branch to which the cursor position is aligned according to the first direction and second position value determining (16) sublevels of the active branch to be expanded depending on the second position value with respect to indentations in the rendering of the tree structure indicating the plurality of sublevels such that an increasing value of the second position value determines a first sublevel deeper in the hierarchy of the plurality of sublevels of the tree structure and a decreasing value of the second position value determines a second higher sub-level in the hierarchy of the plurality of sub-levels of the tree structure; and updating the tree view by expanding certain sublevels of the active branch and collapsing other branches when at least one of the first position value or the second position value changes. 2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a primeira direção corresponde a uma direção vertical e a segunda direção cor- responde a uma direção horizontal em uma tela de um dispositivo de exibição que exibe a visualização em árvore na interface gráfica de usuário.2. Method according to claim 1, CHARACTERIZED by the fact that the first direction corresponds to a vertical direction and the second direction corresponds to a horizontal direction on a screen of a display device that displays the tree view in the graphical user interface. 3. Método, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de que as etapas são continuamente repetidas.3. Method, according to claim 1 or 2, CHARACTERIZED by the fact that the steps are continuously repeated. 4. Método, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que, se uma quantidade dos subníveis a serem expandidos é menor do que uma quantidade de subníveis correntemente expandidos, a visualização em árvore é atualizada pelo recolhimento de um subnível excedente da ramificação ativa e a visualização em árvore atualizada é movida na primeira direção até que um elemento correspondente que esconde o subnível excedente recolhido se torna alinhado com a posição do cursor de acordo com a primeira direção.4. Method, according to any one of the preceding claims, CHARACTERIZED by the fact that, if a number of sublevels to be expanded is less than a number of sublevels currently expanded, the tree view is updated by collapsing an excess sublevel of the active branch and the updated tree view is moved in the first direction until a matching element that hides the collapsed overflow sublevel becomes aligned with the cursor position according to the first direction. 5. Método, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que a estrutura em árvore de elementos corresponde a uma taxonomia de conceitos.5. Method, according to any of the preceding claims, CHARACTERIZED by the fact that the tree structure of elements corresponds to a taxonomy of concepts. 6. Método, de acordo com qualquer uma das reivindicações 1 a 4, CARACTERIZADO pelo fato de que a estrutura em árvore de elementos corresponde a uma estrutura de diretório de arquivos.6. Method, according to any one of claims 1 to 4, CHARACTERIZED by the fact that the tree structure of elements corresponds to a file directory structure. 7. Método, de acordo com qualquer uma das reivindicações anteriores, CARACTERIZADO pelo fato de que compreende selecionar (12) entre um modo automático e um modo manual em resposta a uma entrada de seleção de modo por um usuário; em que a determinação da posição do cursor (14), a seleção da ramificação ativa (15), a determinação de subníveis a serem expandidos (16), e a atualização da visualização em árvore (17) são executadas apenas no modo automático, e em que a visualização em árvore é atualizada (13) em resposta a uma entrada manual de usuário adicional na interface gráfica de usuário no modo manual.7. Method, according to any one of the preceding claims, CHARACTERIZED by the fact that it comprises selecting (12) between an automatic mode and a manual mode in response to a mode selection input by a user; wherein determining the cursor position (14), selecting the active branch (15), determining sublevels to be expanded (16), and updating the tree view (17) are performed in automatic mode only, and wherein the tree view is updated (13) in response to further manual user input in the graphical user interface in manual mode. 8. Método, de acordo com qualquer das reivindicações anteriores, CARACTERIZADO pelo fato de que o cursor é gerado especificamente para interação de usuário com a visualização em árvore.8. Method, according to any of the previous claims, CHARACTERIZED by the fact that the cursor is generated specifically for user interaction with the tree view. 9. Aparelho (20) para renderizar uma estrutura em árvore de elementos em uma interface gráfica de usuário, dependendo de uma posição de um cursor com relação à estrutura em árvore renderizada, CARACTERIZADO pelo fato de que compreende: pelo menos um processador configurado para: gerar uma visualização em árvore da estrutura em árvore sendo organizada em uma pluralidade de ramificações, em que pelo menos uma dentre a pluralidade de ramificações inclui uma hierarquia de uma pluralidade de subníveis da estrutura em árvore; determinar a posição do cursor com relação à visualização em árvore, a posição compreendendo um primeiro valor de posição de acordo com uma primeira direção e um segundo valor de posição de acordo com uma segunda direção ortogonal à primeira direção, o primeiro valor de posição determinando uma ramificação ativa selecionada como a ramificação para a qual a posição do cursor está alinhada de acordo com a primeira direção e o segundo valor de posição determinando sub- níveis da ramificação ativa a serem expandidos, dependendo do segundo valor de posição com relação a recuos na renderização da estrutura em árvore indicando a pluralidade de subníveis de modo que um valor crescente do segundo valor de posição determina um primeiro subnível mais profundo na hierarquia da pluralidade de subníveis da estrutura em árvore e um valor decrescente do segundo valor de posição determina um segundo subnível mais alto na hierarquia da pluralidade de subní- veis da estrutura em árvore; e atualizar a visualização em árvore pela expansão dos subníveis determinados da ramificação ativa e recolhendo outras ramificações quando pelo menos um dentre o primeiro valor de posição ou o segundo valor de posição mudar.9. Apparatus (20) for rendering a tree structure of elements in a graphical user interface depending on a position of a cursor with respect to the rendered tree structure, CHARACTERIZED by the fact that it comprises: at least one processor configured for: generating a tree view of the tree structure being organized into a plurality of branches, wherein at least one of the plurality of branches includes a hierarchy of a plurality of sublevels of the tree structure; determining the position of the cursor with respect to the tree view, the position comprising a first position value according to a first direction and a second position value according to a second direction orthogonal to the first direction, the first position value determining a active branch selected as the branch to which the cursor position is aligned according to the first direction and the second position value determining sub-levels of the active branch to be expanded depending on the second position value with respect to indents in the rendering of the tree structure indicating the plurality of sublevels such that an increasing value of the second position value determines a first sublevel deeper in the hierarchy of the plurality of sublevels of the tree structure and a decreasing value of the second position value determines a second deeper sublevel high in the hierarchy of the plurality of sublevels of the tree structure; and updating the tree view by expanding certain sublevels of the active branch and collapsing other branches when at least one of the first position value or the second position value changes. 10. Aparelho, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que o pelo menos um processador é adicionalmente configurado para repetir continuamente a determinação da posição do cursor e a atualização da visualização em árvore.10. Apparatus, according to claim 9, CHARACTERIZED by the fact that the at least one processor is additionally configured to continuously repeat the determination of the cursor position and the updating of the tree view. 11. Aparelho, de acordo com a reivindicação 9 ou 10, CARACTERIZADO pelo fato de que o pelo menos um processador é adicionalmente configurado para atualizar a visualização em árvore por recolhimento de um subnível excedente da ramificação ativa e para mover a visualização em árvore atualizada na primeira direção até que um elemento correspondente escondendo o subnível excedente recolhido se torna alinhado com a posição do cursor de acordo com a primeira direção com base na determinação de que uma quantidade de subníveis a serem expandidos é menor que uma quantidade de subníveis correntemente expandidos.11. Apparatus, according to claim 9 or 10, CHARACTERIZED by the fact that the at least one processor is additionally configured to update the tree view by collapsing an excess sublevel of the active branch and to move the updated tree view in the first direction until a corresponding element hiding the collapsed overflow sublevel becomes aligned with the cursor position according to the first direction based on the determination that the amount of sublevels to be expanded is less than the amount of currently expanded sublevels. 12. Aparelho, de acordo com qualquer uma das reivindicações 9 a 11, CARACTERIZADO pelo fato de que o pelo menos um processador é adicionalmente configurado para: selecionar entre um modo automático e um modo manual em resposta a uma entrada de seleção de modo por um usuário; executar, apenas no modo automático, a determinação da posição do cursor que usa uma unidade de determinação de posição (24), incluindo selecionar a ramificação ativa e determinar subníveis a serem expandidos e executar atualização da visualização em árvore; e atualizar, no modo manual, a visualização em árvore em resposta a entrada manual adicional de usuário na interface gráfica de usuário.12. Apparatus according to any one of claims 9 to 11, CHARACTERIZED by the fact that the at least one processor is additionally configured to: select between an automatic mode and a manual mode in response to a mode selection input by a user; performing, in automatic mode only, determining the position of the cursor using a position determination unit (24), including selecting the active branch and determining sublevels to be expanded and performing tree view updating; and updating, in manual mode, the tree view in response to additional manual user input in the graphical user interface. 13. Aparelho, de acordo com qualquer uma das reivindicações 9 a 12, CARACTERIZADO pelo fato de que o pelo menos um processador é adicionalmente configurado para gerar o cursor especificamente para interação de usuário com a visualização em árvore.13. Apparatus according to any one of claims 9 to 12, CHARACTERIZED by the fact that the at least one processor is additionally configured to generate the cursor specifically for user interaction with the tree view. 14. Aparelho (30), CARACTERIZADO pelo fato de que compreende: pelo menos um processador configurado para: gerar uma visualização em árvore de uma estrutura em árvore sendo organizada em uma pluralidade de ramificações, em que pelo menos uma dentre a pluralidade de ramificações inclui uma hierarquia de uma pluralidade de subníveis da estrutura em árvore; determinar uma posição de um cursor com relação à visualização em árvore, a posição compreendendo um primeiro valor de posição de acordo com uma primeira direção e um segundo valor de posição de acordo com uma segunda direção ortogonal à primeira direção, o primeiro valor de posição determinando uma ramificação ativa selecionada como a ramificação para a qual a posição do cursor está alinhada de acordo com a primeira direção, e o segundo valor de posição determinando subníveis da ramificação ativa a serem expandidos, dependendo do segundo valor de posição com relação a recuos na renderização da estrutura em árvore indi-cando a pluralidade de subníveis de modo que um valor crescente do segundo valor de posição determina um primeiro subnível mais profundo na hierarquia da pluralidade de subníveis da estrutura em árvore e um valor decrescente do segundo valor de posição determina um segundo subnível mais alto na hierarquia da pluralidade de subníveis da estrutura em árvore; e atualizar a visualização em árvore contínua e imediatamente em resposta a pelo menos um dentre o primeiro valor de posição ou à mudança do segundo valor de posição, em que a atualização compreende expandir os subníveis determinados da ramificação ativa e recolher outras ramificações.14. Apparatus (30), characterized in that it comprises: at least one processor configured to: generate a tree view of a tree structure being organized into a plurality of branches, wherein at least one of the plurality of branches includes a hierarchy of a plurality of sub-levels of the tree structure; determining a position of a cursor with respect to the tree view, the position comprising a first position value according to a first direction and a second position value according to a second direction orthogonal to the first direction, the first position value determining an active branch selected as the branch to which the cursor position is aligned according to the first direction, and the second position value determining sublevels of the active branch to be expanded depending on the second position value with respect to indentations in the rendering of the tree structure indicating the plurality of sublevels such that an increasing value of the second position value determines a first sublevel deeper in the hierarchy of the plurality of sublevels of the tree structure and a decreasing value of the second position value determines a second highest sublevel in the hierarchy of the plurality of sublevels of the tree structure; and updating the tree view continuously and immediately in response to at least one of the first position value or the change of the second position value, wherein the update comprises expanding the determined sublevels of the active branch and collapsing other branches. 15. Mídia de armazenamento não transitória legível por computador, CARACTERIZADA pelo fato de que tem armazenado na própria instruções que, quando executadas por um computador, fazem o computador: determinar uma posição de um cursor com relação a uma visualização em árvore de uma estrutura em árvore de elementos em uma interface gráfica de usuário, em que a estrutura em árvore compreende uma pluralidade de ramificações, e pelo menos uma dentre uma pluralidade de ramificações inclui um hierarquia de uma pluralidade de subníveis da estrutura em árvore, e a posição compreende um primeiro valor de posição de acordo com a primeira direção e um segundo valor de posição de acordo com uma segunda direção ortogonal à primeira direção, o primeiro valor de posição determinando uma ramificação ativa selecionada como a ramificação para a qual a posição do cursor está alinhada de acordo com a primeira direção e o segundo valor de posição determinando subníveis da ramificação ativa a serem expandidos, dependendo do segundo valor de posição com relação a recuos na rende- rização da estrutura em árvore indicando a pluralidade de subníveis de modo que um valor crescente do segundo valor de posição determina um primeiro subnível mais profundo na hierarquia da pluralidade de subníveis da estrutura em árvore e um valor decrescente do segundo valor de posição determina um segundo subnível mais alto na hierarquia da pluralidade de subníveis da estrutura em árvore; e atualizar a visualização em árvore expandindo os subníveis determinados da ramificação ativa e recolhendo outras ramificações quando pelo menos um dentre o primeiro valor de posição e o segundo valor de posição mudar.15. Computer-readable, non-transient storage media, CHARACTERIZED in that it has stored within it instructions that, when executed by a computer, cause the computer to: determine a position of a cursor relative to a tree view of a structure in tree of elements in a graphical user interface, wherein the tree structure comprises a plurality of branches, and at least one of the plurality of branches includes a hierarchy of a plurality of sublevels of the tree structure, and the position comprises a first position value according to the first direction and a second position value according to a second direction orthogonal to the first direction, the first position value determining a selected active branch as the branch to which the cursor position is aligned accordingly with the first direction and second position value determining sublevels of the active branch to be expanded, depending on the second position value with respect to indentations in the rendering of the tree structure indicating the plurality of sublevels so that an increasing value of the second position value determines a first deeper sublevel in the hierarchy of the plurality of sublevels of the tree structure and a decreasing value of the second position value determines a second higher sublevel in the hierarchy of the plurality of sublevels of the tree structure; and updating the tree view by expanding the given sublevels of the active branch and collapsing other branches when at least one of the first position value and the second position value changes.
BR112017013119-6A 2014-12-19 2015-11-27 METHOD, APPARATUS, AND COMPUTER READABLE NON-TRANSITORY STORAGE MEDIA FOR RENDERING A TREE STRUCTURE OF ELEMENTS IN A GRAPHIC USER INTERFACE BR112017013119B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP14307100.9 2014-12-19
EP14307100.9A EP3035179A1 (en) 2014-12-19 2014-12-19 Data processing apparatus and method for rendering a tree structure
PCT/EP2015/077876 WO2016096368A1 (en) 2014-12-19 2015-11-27 Data processing apparatus and method for rendering a tree structure

Publications (2)

Publication Number Publication Date
BR112017013119A2 BR112017013119A2 (en) 2017-12-26
BR112017013119B1 true BR112017013119B1 (en) 2023-06-20

Family

ID=

Similar Documents

Publication Publication Date Title
US11163420B2 (en) Data processing apparatus and method for rendering a tree structure
US11763067B2 (en) User interface for editing web content
US10175854B2 (en) Interaction in chain visualization
JP5905541B2 (en) Control gallery organized hierarchically
US9256587B2 (en) Editor for website and website menu
CN105339931B (en) Method and apparatus for processing data containers
KR101811464B1 (en) Spin control user interface for selecting options
JP6018045B2 (en) Temporary formatting and graphing of selected data
RU2627113C2 (en) User interface for editing value on-site
US20100169832A1 (en) Floating Hierarchical Menu of Navigation History
US20070162844A1 (en) Automatic layout of objects
US20120254733A1 (en) Method for Users to Create and Edit Web Page Layouts
DE112015003723T5 (en) INTELLIGENT SCRUBBER IN AN E-BOOK NAVIGATION INTERFACE
US9460059B2 (en) Method and apparatus for visualizing the underlying structure of a document using an interactive viewport overlay
JP2009015431A (en) Display processing apparatus and display control method
US20130238977A1 (en) Method and system for master-page based integrated editing and dynamic layout activation
JP2007233565A (en) Design support program
CN113536731A (en) Method, apparatus and medium for formatting document object
US10241651B2 (en) Grid-based rendering of nodes and relationships between nodes
BR112017013119B1 (en) METHOD, APPARATUS, AND COMPUTER READABLE NON-TRANSITORY STORAGE MEDIA FOR RENDERING A TREE STRUCTURE OF ELEMENTS IN A GRAPHIC USER INTERFACE
Hussain et al. Data Visualisation on Mobile
US10175856B2 (en) Drawer for displaying hierarchical data