УСТРОЙСТВО ОБРАБОТКИ ДАННЫХ И СПОСОБ ДЛЯ ВИЗУАЛИЗАЦИИ ДРЕВОВИДНОЙ СТРУКТУРЫ
DATA PROCESSING DEVICE AND METHOD FOR VISUALIZING TREE STRUCTURE

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Представляются устройство обработки данных и реализуемый компьютером способ для визуализации древовидной структуры элементов. В частности, настоящее раскрытие относится к устройству обработки данных и реализуемому компьютером способу для визуализации древовидной структуры элементов в графическом интерфейсе пользователя в зависимости от позиции указывающего курсора относительно визуализированной древовидной структуры, и к соответствующему машиночитаемому носителю информации.
УРОВЕНЬ ТЕХНИКИ
Понятия (концепты), используемые, например, для семантической аннотации метаданных мультимедийных данных часто организованы в соответствии со схемой иерархического супер-понятия/подпонятия, что приводит к таксономиям понятия. Например, таксономия транспортного средства может содержать подпонятия наземного транспортного средства, водного транспортного средства, воздушного транспортного средства, и т.д. при этом наземные транспортные средства дополнительно содержат подпонятия подобные легковому автомобилю, грузовому автомобилю, автобусу и т.д. В таксономиях, любое подпонятие является видом всех его супер-понятий. Вследствие этого, если конкретное понятие, которое должно быть аннотировано, отсутствует в таксономии, аннотатор может вернуться к супер-понятию с наилучшим совпадением. Например, боевой танк может быть аннотирован в качестве наземного транспортного средства, а НЛО (неопознанный летающий объект) может быть аннотирован в качестве транспортного средства.
Большая и комплексная таксономия может иметь несколько независимых понятий верхнего уровня, множество уровней иерархии ниже каждого понятия верхнего уровня, и много подпонятий из одних супер-понятий. Данный большой объем глубоко вложенных понятий может быть сложным для удобной визуализации в графическом интерфейсе пользователя (GUI) приложения, использующего данную таксономию, например, на виде, показывающем данную таксономию для выбора понятий, которые должны быть аннотированы.
Одной возможностью визуализации таксономий является использование табличного вида. Здесь, каждое понятие верхнего уровня может получать свою собственную таблицу или быть заголовком столбца или строки таблицы. Например, заголовок столбца показывает супер-понятие, а содержимое столбца соответствующие подпонятия. Если требуется дальнейшая детализация, столбцы могут содержать подтаблицы, например, с непосредственным подпонятием, показанным жирным шрифтом и его понятиями более низкого уровня, показанными нормальным шрифтом. Такой табличный вид может показывать много понятий и их иерархию на небольшом пространстве и может обеспечивать хороший обзор понятий. Тем не менее, он может показывать лишь небольшое число уровней иерархии за раз, не становясь запутанным. Если пользователю требуется обозревать дальнейшие подуровни, пользователь должен выбирать понятие, для которого должны быть показаны дальнейшие подуровни, например, посредством обновления показываемой в настоящий момент таблицы или показывая дополнительную таблицу. В глубоко вложенной таксономии, множество таких выборов может потребоваться для достижения конкретного понятия. Если не найдено интересующее понятие, пользователь может пожелать вернуться обратно к таблице, показывающей вновь понятия более высокого уровня. Данное переключение между более грубо и более тонко детализированным видом таксономии схоже с операциями проникновения внутрь/наружу при визуализации и обработке многомерных данных в онлайновой аналитической обработке (OLAP) баз данных и сводных таблиц.
Другой возможностью визуализации таксономий является использование вида дерева. Такие виды используются, чтобы показать глубоко вложенные иерархии в разнообразных приложениях, например, проводниках файловой системы или инструментах структурирования документов. Такие приложения могут предоставлять элементы управления для расширения/сокращения показываемого в настоящий момент количества уровней дерева ниже выбираемого одного за другим или более уровней, разворачивания/сворачивания всех уровней дерева ниже выбранного, сворачивания специально сконфигурированного поддерева до выбранного уровня и позже показа данного поддерева вновь как сконфигурировано ранее, показа конкретного количества уровней дерева ниже верхнего уровня, и т.д. Вид дерева с такой функциональностью также может быть использован для визуализации таксономий с тем, чтобы пользователь мог просматривать и разворачивать интересующие поддеревья, чтобы найти и выбрать интересующее понятие. Такой вид дерева может визуализировать огромные таксономии со многими уровнями иерархии. Тем не менее, он менее пригоден для предоставления обзора понятий: Если развернуто много уровней дерева, необходимо долго прокручивать, чтобы найти понятие в развернутом виде, и сложно отслеживать взаимосвязи понятий. Если, применительно к более компактному виду, разворачивается лишь несколько уровней дерева, много операций разворачивания/сворачивания требуется для проникновения внутрь или наружу из понятий низкого уровня.
Применительно к небольшим таксономиям GUI приложения, использующего таксономии, может содержать табличные виды, но табличный вид едва ли может обрабатывать большое количество уровней иерархии большой таксономии должным образом, вызывая потребность частого обновления табличного вида или быстрого показа таблиц-потомков. С другой стороны, в некоторых приложениях конфигурируемый вручную вид дерева используется для больших таксономий, но в этом недостаточно удобства из-за проблемы компактного обзора против требуемого объема операций реконфигурации вида. Точно такая же проблема возникает не только в отношении поиска понятий в таксономии, но также в отношении элементов в других сложных видах дерева, например, в отношении поиска файла в глубоко вложенной структуре каталогов файлов или применительно к записи базы данных в глубоко вложенной структуре базы данных.
Остается потребность в решении проблем удобства у конфигурируемого вручную вида дерева, например, для визуализации больших таксономий, и предоставления более эффективного интерфейса человек-машина, который обеспечивает улучшенный поиск и выбор элементов, т.е., узла, в древовидной структуре элементов, отображаемой на виде дерева, например, понятий в таксономии, отображаемой на виде дерева.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Предлагаются реализуемый компьютером способ и устройство обработки данных для визуализации древовидной структуры элементов в графическом интерфейсе пользователя (GUI) в зависимости от позиции указывающего курсора относительно визуализированной древовидной структуры, а так же машиночитаемый носитель информации, в соответствии с приложенной формулой изобретения.
В соответствии с вариантом осуществления, реализуемый компьютером способ для визуализации древовидной структуры элементов в графическом интерфейсе пользователя в зависимости от позиции указывающего курсора относительно визуализированной древовидной структуры, содержит этапы, на которых:
- генерируют вид дерева древовидной структуры, организованной во множестве ветвей;
- определяют позицию указывающего курсора относительно вида дерева, причем позицию состоит из первого значения позиции в соответствии с первым направлением и второго значения позиции в соответствии со вторым направлением ортогональным первому направлению;
- автоматически выбирают ветвь, с которой выровнена позиция указывающего курсора в соответствии с первым направлением, в качестве активной ветви;
- определяют подуровни активной ветви, которые должны быть развернуты, в зависимости от второго значения позиции относительно меток подуровней; и
- автоматически обновляют вид дерева посредством разворачивания определенных подуровней активной ветви и сворачивания других ветвей.
Соответственно, устройство обработки данных для визуализации древовидной структуры элементов в графическом интерфейсе пользователя в зависимости от позиции указывающего курсора относительно визуализированной древовидной структуры содержит:
- блок графического представления, выполненный с возможностью генерирования вида дерева древовидной структуры, организованной во множестве ветвей;
- блок определения позиции, выполненный с возможностью определения позиции указывающего курсора относительно вида дерева, причем позиция состоит из первого значения позиции в соответствии с первым направлением и второго значения позиции в соответствии со вторым направлением ортогональным первому направлению;
- блок выбора активной ветви, выполненный с возможностью автоматического выбора ветви, с которой выровнена позиция указывающего курсора в соответствии с первым направлением, в качестве активной ветви; и
- блок определения разворачивания, выполненный с возможностью определения подуровней активной ветви, которые должны быть развернуты, в зависимости от второго значения позиции относительно меток подуровней;
- блок графического представления, дополнительно выполненный с возможностью автоматического обновления вида дерева посредством разворачивания определенных подуровней активной ветви и сворачивания других ветвей.
Блоки, которые содержатся в устройстве, такие как блок графического представления, блок определения позиции, блок выбора активной ветви и блок определения разворачивания, могут быть предоставлены в качестве отдельных устройств, вместе в качестве, по меньшей мере, одного устройства или логической схемы, или функциональности, выполняемой посредством микропроцессора, микроконтроллера или другого устройства обработки, компьютера или другого программируемого устройства.
В соответствии с вариантом осуществления, устройство обработки данных для визуализации древовидной структуры элементов в графическом интерфейсе пользователя в зависимости от позиции указывающего курсора относительно визуализированной древовидной структуры содержит:
- устройство обработки;
- устройство отображения; и
- устройство памяти, хранящее инструкции, которые, когда исполняются, предписывают устройству обработки:
- генерировать вид дерева, показывающий, используя устройство отображения, древовидную структуру, организованную во множестве ветвей;
- определять позицию указывающего курсора относительно вида дерева, причем позиция состоит из первого значения позиции в соответствии с первым направлением и второго значения позиции в соответствии со вторым направлением ортогональным первому направлению;
- автоматически выбирать ветвь, с которой выровнена позиция указывающего курсора в соответствии с первым направлением, в качестве активной ветви;
- определять подуровни активной ветви, которые должны быть развернуты, в зависимости от второго значения позиции относительно меток подуровней; и
- автоматически обновлять вид дерева, показываемый посредством устройства отображения, посредством разворачивания определенных подуровней активной ветви и сворачивания других ветвей. Устройства соединены посредством шины или других линий связи.
Кроме того, машиночитаемый носитель информации имеет хранящиеся на нем инструкции, обеспечивающие визуализацию древовидной структуры элементов в графическом интерфейсе пользователя в зависимости от позиции указывающего курсора относительно визуализированной древовидной структуры, которые, когда исполняются компьютером, предписывают компьютеру:
- генерировать вид дерева древовидной структуры, организованной во множестве ветвей;
- определять позицию указывающего курсора относительно вида дерева, причем позиция состоит из первого значения позиции в соответствии с первым направлением и второго значения позиции в соответствии со вторым направлением ортогональным первому направлению;
- автоматически выбирать ветвь, с которой выровнена позиция указывающего курсора в соответствии с первым направлением, в качестве активной ветви;
- определять подуровни активной ветви, которые должны быть развернуты, в зависимости от второго значения позиции относительно меток подуровней; и
- автоматически обновлять вид дерева посредством разворачивания определенных подуровней активной ветви и сворачивания других ветвей.
Машиночитаемый носитель информации вещественным образом воплощает программу из инструкций, которые, когда исполняются компьютером, предписывают компьютеру выполнять описанные этапы способа.
Графический интерфейс пользователя является отвечающим на ввод пользователя, управляющий позицией указывающего курсора относительно визуализированной древовидной структуры элементов. Указывающий курсор может быть перемещен или манипулированием им может осуществляться, используя устройство манипулирования указывающим курсором, например, компьютерную мышь, шаровой манипулятор, манипулятор TrackPoint или сенсорную панель. Если устройство отображения является устройством сенсорного экрана, указывающий курсор также может быть перемещен или манипулирование им может осуществляться используя, например, палец пользователя или стилус. В варианте осуществления указывающий курсор может быть перемещен в ответ на отслеживание руки или пальца и распознавание жеста во время анализа видео в реальном времени, предоставляемого камерой, показывающей пользователя.
Древовидная структура организована во, т.е. содержит, множестве ветвей или путей соединенных узлов, которые могут состоять из подуровней, т.е. уровней дерева ниже узла-родителя, при этом элементы или узлы, которые содержатся на подуровне, соединены с точно такой же меткой как и узлы-братья точно того же узла-родителя.
Вид дерева является графическим представлением древовидной структуры. Вид дерева показывается в элементе GUI, например, окне или рамке. Он обеспечивает автоматический выбор активной ветви, т.е., позиция указывающего курсора определяется без щелчка, лишь посредством оценки позиции указывающего курсора относительно вида дерева. Активная ветвь является ветвью, которая выбирается для исследования пользователем, например, посредством разворачивания подуровней. Данная относительная позиция указывающего курсора может быть изменена, либо посредством перемещения указывающего курсора по виду дерева, либо посредством прокрутки окна просмотра, показывающего вид дерева, в то время как абсолютная позиция указывающего курсора, т.е., позиция по отношению к границам окна просмотра или экрана устройства отображения, отображающего окно просмотра, содержащее вид дерева, может или может не оставаться неизменившимся.
Затем вычисляется, сколько подуровней активной ветви должно быть развернуто, в зависимости от оценки смещений второго значения позиции относительно меток подуровней. Позже, без взаимодействия пользователя вручную, автоматический механизм распознавания вида дерева предписывает автоматическое обновление вида дерева посредством разворачивания определенных подуровней активной ветви и сворачивания других ветвей.
Автоматический механизм распознавания вида дерева в соответствии с предложенным решением обеспечивает быстрый осмотр комплексной подобной дереву структуры данных. Он имитирует поведение пользователя, используя элементы управления вручную, чтобы просматривать вложенные данные, например, таксономии, файловой системы или базы данных, организованной в древовидной структуре и отображаемой в качестве дерева на виде дерева, находить и выбирать интересующий элемент, т.е., понятие, файл или запись базы данных, соответственно, начиная с элементов верхнего уровня, затем проникая внутрь одной ветви дерева только за раз, и возможно вновь проникая наружу, если интересующий элемент не найден, включая сворачивание оставленных подуровней. Механизм использует позицию указывающего курсора по отношению к виду дерева, чтобы управлять тем, какие ветви дерева разворачивать/сворачивать автоматически. Он реконфигурирует вид дерева для компактного представления дерева без потребности в явных операциях разворачивания/сворачивания посредством щелчка мыши, нажатий клавиши, легких ударов по сенсорному экрану, или подобного, и требуя меньшего числа перемещений указывающего курсора, чем требуется для соответствующей схемы управления вручную.
Механизм в соответствии с предложенным решением, по меньшей мере, обладает эффектом, состоящим в том, что пользователь может выполнять задачу поиска/выбора интересующего элемента более быстрым и более удобным образом, чем посредством использования элементов управления вручную, т.е., обеспечивается более эффективный интерфейс человек-машина.
В одном варианте осуществления первое направление соответствует вертикальному направлению, а второе направление соответствует горизонтальному направлению на экране устройства отображения, отображающего виде дерева в графическом интерфейсе пользователя. Здесь, вертикальная позиция указывающего курсора по отношению к элементам дерева используется, чтобы управлять тем, какая ветвь дерева выбирается в качестве активной ветви, которая может быть развернута, а горизонтальная позиция указывающего курсора по отношению к меткам уровней дерева используется, чтобы управлять тем, сколько подуровней активной ветви будет развернуто. Подуровень активной ветви определяется в качестве разворачиваемого, если метка подуровня находится слева от позиции указывающего курсора. В другом варианте осуществления первое направление соответствует горизонтальному направлению, а второе направление соответствует вертикальному направлению.
В одном варианте осуществления определение позиции указывающего курсора, автоматический выбор активной ветви, определение подуровней, которые должны быть развернуты, и автоматическое обновление вида дерева повторяются непрерывно. Автоматический механизм постоянно отслеживает перемещение указывающего курсора и, при необходимости, сразу автоматически реконфигурирует вид дерева для компактного представления дерева. В варианте осуществления короткая задержка может быть введена перед автоматическим выполнением операций разворачивания/сворачивания. В другом варианте осуществления задержка операций разворачивания и/или сворачивания осуществляется до тех пор, пока не будет выполнено дополнительное нажатие клавиши, например, клавиши стрелки.
В одном варианте осуществления вид дерева обновляется посредством сворачивания выходящего за рамки подуровня активной ветви и обновленный вид дерева перемещается, автоматически без дальнейшего взаимодействия пользователя, в первом направлении до тех пор, пока соответствующий элемент, скрывающий, т.е., содержащий, свернутый выходящий за рамки подуровень, не становится выровненным с позицией указывающего курсора в соответствии с первым направлением, если количество подуровней, которые должны быть развернуты, меньше количества подуровней развернутых в настоящий момент. Другими словами, если отображаемая позиция указывающего курсора становится несовместимой с автоматически реконфигурированным видом дерева из-за операций разворачивания/сворачивания, обновленный вид дерева автоматически перемещается в первом направлении, например, вертикальном, с тем, чтобы фактическая позиция указывающего курсора отражала новую логическую позицию указывающего курсора по отношению к обновленному виду дерева. Если первое направление является вертикальным направлением и указывающий курсор не является вертикально выровненным с прямым или непрямым супер-элементом уровня дерева, развернутого из-за перемещения указывающего курсора влево, простое сворачивание данного уровня дерева иначе может вызывать то, что произвольный элемент дерева, если есть, будет вертикально выровнен с указывающим курсором, в зависимости от пространства, которое ранее занималось элементами данного уровня дерева, и вертикальной позиции указывающего курсора по отношению к этим элементам. Это может привести к тому, что больше не будет автоматически выбрана активная ветвь или будет автоматически выбрана новая активная ветвь, содержащая данный произвольный элемент дерева. С другой стороны, перемещение вида дерева в соответствии с вариантном осуществления оставляет ветвь, содержащую супер-элемент, активной ветвью и обеспечивает гладкую дальнейшую навигацию по дереву. В некоторых случаях, такие автоматические реконфигурации или вертикальная прокрутка вручную окна просмотра, содержащего вид дерева, может предписывать отображение самого верхнего элемента деверева на некотором расстоянии от верхнего края окна просмотра. Вследствие этого, в одном варианте осуществления, вид дерева совместно с отображаемым указывающим курсором сдвигается в направлении упомянутого края на упомянутое расстояние.
В одном варианте осуществления древовидная структура элементов соответствует таксономии, т.е. схеме классификации понятий, например, понятий из таксономий, используемых для мультимедийных данных. Здесь, графический интерфейс пользователя с интерактивным видом дерева соответствует браузеру таксономии для иерархических метаданных, т.е., таксономия визуализируется в GUI, например, для семантической аннотации метаданных для мультимедийных данных. Автоматический механизм реконфигурации вида дерева, адаптированный для задачи поиска и выбора понятия в таксономии, отображаемой в качестве дерева на виде дерева в соответствии с предложенным решением, обеспечивает эффективную визуализацию даже больших таксономий.
В другом варианте осуществления древовидная структура элементов соответствует структуре каталогов файлов. В целом, автоматический механизм реконфигурации вида дерева в соответствии с предложенным решением также может быть использован для видов дерева, показывающих другое содержимое отличное от таксономий в разнообразных приложениях, если предполагаемым использованием этих видов является быстрый просмотр и выбор элемента дерева. Например, любой базе данных, инструменту структурирования документов, файловому проводнику или диалогу «Открыть Файл», содержащему вид дерева, используя предложенный механизм реконфигурации вида дерева может потребоваться меньшее число операций управления, чтобы найти и выбрать элемент, в сравнении с приложениями, использующими стандартный вид дерева, требующий явных операций разворачивания/сворачивания поддеревьев, например, подпапок.
В одном варианте осуществления реализуемый компьютером способ содержит этапы, на которых:
- выбирают между автоматическим режимом и ручным режимом в ответ на ввод выбора режима пользователем; при этом
- определение позиции указывающего курсора, автоматический выбор активной ветви, определение подуровней, которые должны быть развернуты, и автоматическое обновление вида дерева исполняются только в автоматическом режиме, и при этом
- вид дерева обновляется в ответ на дальнейший ввод пользователя вручную в графический интерфейс пользователя в ручном режиме.
Устройство, выполняющее способ в соответствии с предложенным решением, может предоставлять как функциональности конфигурации вида дерева вручную, так и предложенный автоматический механизм, со средством для переключения между двумя режимами. В варианте осуществления, оно сохраняет созданную вручную конфигурацию вида, когда включается автоматический режим и восстанавливает ранее сохраненную конфигурацию, когда автоматический режим вновь выключается.
В одном варианте осуществления указывающий курсор генерируется специально для взаимодействия пользователя с видом дерева. Это применяется, например, к системам, не использующим стандартный указывающий курсор. Применительно к устройствам, которые используют, например, курсор мыши в качестве их стандартного ввода, могут быть предоставлены решения прокрутки независимые от полос прокрутки, тогда как устройства с управлением сенсорным экраном, не использующие такой стандартный указывающий курсор, могут использовать стандартные жесты проводки для прокрутки. В системах, использующих указывающий курсор, управление которым осуществляется посредством указывающего устройства ввода, например, мыши, шарового манипулятора, сенсорной панели, или манипулятора TrackPoint, позиция указывающего курсора определяется позицией данного указывающего курсора. В системах, не использующих такой стандартный указывающий курсор, например, устройствах с управлением сенсорным экраном, вместо этого используется указывающий курсор в частности предназначенный для окна просмотра вида дерева. Управление позицией данного предназначенного указывающего курсора осуществляется посредством перетаскивания указывающего курсора по окну просмотра, например, посредством пальца пользователя или стилуса. В частности, в системах, использующих стандартный указывающий курсор и когда является активным автоматический механизм в соответствии с предложенным решением, приложение, использующее данный автоматический механизм не использует стандартные полосы прокрутки на краях окна просмотра, чтобы прокручивать вид, поскольку перемещение указывающего курсора по виду дерева, чтобы осуществлять доступ к таким полосам прокрутки, может вызывать реконфигурации вида. Вместо этого, используется другое средство управления прокруткой, например, элементы управления клавиатуры, колесо мыши (например, вертикальная прокрутка используя колесо как обычно, и горизонтальная прокрутка посредством нажатия колеса, в сочетании с перемещениями мыши, или наклон влево/вправо колеса, если поддерживается), или автоматическая прокрутка, когда указывающий курсор перемещается на края окна просмотра. С другой стороны, приложение с управлением сенсорным экраном может использовать стандартные жесты проводки по окну просмотра, чтобы прокручивать вид, при условии, что жест проводки не начинается в позиции указывающего курсора, которая может быть интерпретирована вместо этого в качестве перетаскивания указывающего курсора.
В одном варианте осуществления вид дерева содержит визуальные указания, соответствует или нет элемент дерева метке и имеет суб-элементы, т.е., скрывает поддерево. Визуальные указания могут быть пиктограммами, такими как плюс, указывающим направо треугольником или стрелкой. В качестве примера, визуальные указания могут быть даны посредством визуализации элементов дерева в других стилях, например, другом цвете или гарнитуре, жирной/наклонной или нет, и т.д. В варианте осуществления, визуальные указания дополнительно содержат графическое предложение комплексности еще неразвернутых уровней или поддеревьев, как например, число или полоса, указывающая количество скрытых элементов.
Кроме того, в одном варианте осуществления один или более индикаторы позиции, визуализирующие позицию видимого раздела древовидной структуры по отношению к виду дерева, показываются как часть окна просмотра. Это обеспечивает информацию навигации, например, при прокрутке вида или автоматической реконфигурации вида, которая привела к тому, что внутри окна просмотра фактически не видна ни одна часть вида дерева. Индикаторы позиции могут быть, например, полосами прокрутки, небольшими линиями с более широкой частью, указывающей позицию, и/или простыми линиями, указывающими позицию по отношению к высоте/ширине окна просмотра. Если индикаторы позиции обеспечивают функциональность управления прокруткой, они не используются для прокрутки окна просмотра, чтобы избежать потенциально нежелательной реконфигурации вида дерева при перемещении указывающего курсора по виду. В другом варианте осуществления индикаторы позиции показываются в отдельном окне или рамке графического интерфейса пользователя.
Несмотря на то, что не описано явным образом, настоящие варианты осуществления могут быть использованы в любом сочетании или суб-сочетании.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 схематично иллюстрирует вариант осуществления способа для визуализации древовидной структуры элементов в графическом интерфейсе пользователя в зависимости от позиции указывающего курсора относительно визуализированной древовидной структуры;
Фиг. 2 схематично иллюстрирует вариант осуществления устройства обработки данных для визуализации древовидной структуры элементов в графическом интерфейсе пользователя в зависимости от позиции указывающего курсора относительно визуализированной древовидной структуры;
Фиг. 3 схематично иллюстрирует другой вариант осуществления устройства обработки данных для визуализации древовидной структуры элементов в графическом интерфейсе пользователя в зависимости от позиции указывающего курсора относительно визуализированной древовидной структуры; и
Фиг. 4-32 схематично иллюстрируют вариант осуществления вида дерева, который подвергается механизму реконфигурации вида дерева во время взаимодействия пользователя через указывающий курсор. В частности,
Фиг. 4 иллюстрирует примерный вид дерева;
Фиг. 5 иллюстрирует ситуацию, когда указывающий курсор находится вне окна просмотра вида дерева;
Фиг. 6 иллюстрирует ситуацию, когда указывающий курсор не является вертикально выровненным с элементом дерева;
Фиг. 7 иллюстрирует ситуацию, когда отображается активная ветвь только с элементом верхнего уровня;
Фиг. 8 иллюстрирует ситуацию, когда автоматически разворачивается следующий подуровень активной ветви;
Фиг. 9 иллюстрирует ситуацию, когда автоматически разворачиваются дальнейшие подуровни активной ветви;
Фиг. 10 иллюстрирует ситуацию, когда активная ветвь выбирается через элемент дерева подуровня;
Фиг. 11 иллюстрирует ситуацию, когда автоматически разворачивается следующий подуровень ниже элемента дерева подуровня;
Фиг. 12 иллюстрирует первую часть ситуации, когда уровни дерева автоматически сворачиваются;
Фиг. 13 иллюстрирует вторую часть ситуации, когда уровни дерева автоматически сворачиваются;
Фиг. 14 иллюстрирует третью часть ситуации, когда уровни дерева автоматически сворачиваются;
Фиг. 15 иллюстрирует первую часть ситуации, когда подуровни автоматически разворачиваются посредством прокрутки;
Фиг. 16 иллюстрирует вторую часть ситуации, когда подуровни автоматически разворачиваются посредством прокрутки;
Фиг. 17 иллюстрирует третью часть ситуации, когда подуровни автоматически разворачиваются посредством прокрутки;
Фиг. 18 иллюстрирует третью часть ситуации, когда подуровни автоматически сворачиваются посредством прокрутки;
Фиг. 19 иллюстрирует вторую часть ситуации, когда подуровни автоматически сворачиваются посредством прокрутки;
Фиг. 20 иллюстрирует третью часть ситуации, когда подуровни автоматически сворачиваются посредством прокрутки;
Фиг. 21 иллюстрирует первую часть ситуации, когда самая верхняя ветвь автоматически разворачивается;
Фиг. 22 иллюстрирует вторую часть ситуации, когда самая верхняя ветвь автоматически разворачивается;
Фиг. 23 иллюстрирует первую часть ситуации, когда самая нижняя ветвь автоматически разворачивается;
Фиг. 24 иллюстрирует вторую часть ситуации, когда самая нижняя ветвь автоматически разворачивается;
Фиг. 25 иллюстрирует первую часть ситуации автоматического сворачивания/разворачивания при смене активной ветви;
Фиг. 26 иллюстрирует вторую часть ситуации автоматического сворачивания/разворачивания при смене активной ветви;
Фиг. 27 иллюстрирует первую часть ситуации автоматического разворачивания ветви наверху посредством прокрутки;
Фиг. 28 иллюстрирует вторую часть ситуации автоматического разворачивания ветви наверху посредством прокрутки;
Фиг. 29 иллюстрирует первую часть ситуации автоматического разворачивания ветви внизу посредством прокрутки;
Фиг. 30 иллюстрирует вторую часть ситуации автоматического разворачивания ветви внизу посредством прокрутки;
Фиг. 31 иллюстрирует первую часть ситуации автоматического сворачивания/разворачивания при смене активной ветви посредством прокрутки; и
Фиг. 32 иллюстрирует вторую часть ситуации автоматического сворачивания/разворачивания при смене активной ветви посредством прокрутки.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Для лучшего понимания, предлагаемое решение теперь будет объяснено более подробно в нижеследующем описании со ссылкой на чертежи. Следует понимать, что решение не ограничивается этими примерными вариантами осуществления и что указанные признаки также могут быть соответствующим образом объединены и/или модифицированы, не отступая от объема настоящего изобретения, как определяется в прилагаемой формуле изобретения.
Обращаясь к Фиг. 1, схематично показан вариант осуществления реализуемого компьютером способа 10 для визуализации древовидной структуры элементов в графическом интерфейсе пользователя в зависимости от позиции указывающего курсора относительно визуализированной древовидной структуры. В соответствии с показанным вариантом осуществления, способ предоставляет автоматический механизм, который непрерывно реконфигурирует вид дерева для компактного представления дерева.
На первом этапе 11, генерируется вид дерева древовидной структуры, которая организована во множестве ветвей. В соответствии с показанным вариантом осуществления, на следующем этапе 12 выбор между автоматическим режимом и ручным режимом выполняется в ответ на ввод выбора режима пользователем. В ручном режиме вид дерева обновляется на следующем этапе 13 в ответ на дальнейший ввод пользователя вручную в графический интерфейс пользователя.
В автоматическом режиме выполняются следующие этапы:
На следующем этапе 14 определяется позиция указывающего курсора относительно вида дерева. Позиция состоит из первого значения позиции в соответствии с первым направлением и второго значения позиции в соответствии со вторым направлением ортогональным первому направлению.
На следующем этапе 15 ветвь, с которой выровнена позиция указывающего курсора в соответствии с первым направлением, автоматически выбирается в качестве активной ветви. На следующем этапе 16 подуровни активной ветви, которые должны быть развернуты, определяются в зависимости от второго значения позиции относительно меток подуровней. На следующем этапе 17 вид дерева автоматически обновляется посредством разворачивания определенных подуровней активной ветви и сворачивания других ветвей.
Если позиция указывающего курсора относительно вида дерева продолжает меняться на следующем этапе 18, этап определения позиции указывающего курсора, этап 15 выбора активной ветви, этап 16 определения разворачивания подуровня и этап 17 автоматического обновления дерева непрерывно повторяются. В противном случае, в показанном варианте осуществления способ ожидает любого дальнейшего изменения позиции указывающего курсора относительно вида дерева.
Теперь обращаясь к Фиг. 2 и Фиг. 3, схематично показаны варианты осуществления устройств обработки данных для визуализации древовидной структуры элементов в графическом интерфейсе пользователя в зависимости от позиции указывающего курсора относительно визуализированной древовидной структуры. Устройство, показанное на Фиг. 2, и устройство, показанное на Фиг. 3, обеспечивают реализацию преимуществ и характеристик описанного способа для визуализации древовидной структуры как части устройства для визуализации древовидной структуры элементов в графическом интерфейсе пользователя в зависимости от позиции указывающего курсора относительно визуализированной древовидной структуры.
Устройство 20 обработки данных, показанное на Фиг. 2 содержит блок 21 выбора, выполненный с возможностью выбора между автоматическим режимом и ручным режимом в ответ на ввод 22 выбора режима пользователем.
Блок 23 графического представления выполнен с возможностью генерирования вида дерева древовидной структуры, организованной во множестве ветвей. Блок 23 графического представления соединен, или может быть соединен, с или содержит устройство отображения для отображения вида дерева. В ручном режиме блок 23 графического представления обновляет вид дерева в ответ на дальнейший ввод пользователя вручную в графический интерфейс пользователя. В автоматическом режиме блок 23 графического представления обновляет вид дерева в ответ на ввод от, по меньшей мере, блока 27 определения разворачивания.
Блок 24 определения позиции соединен с блоком 23 графического представления и выполнен с возможностью определения позиции указывающего курсора относительно вида дерева. Позиция состоит из первого значения позиции в соответствии с первым направлением и второго значения позиции в соответствии со вторым направлением ортогональным первому направлению.
Позиция определяется на основании ввода 25 от пользователя, управляющего позицией указывающего курсора посредством прокрутки и перемещения указывающего курсора.
Блок 26 выбора активной ветви выполнен с возможностью автоматического выбора ветви, с которой выровнена позиция указывающего курсора в соответствии с первым направлением, в качестве активной ветви, и блок 27 определения разворачивания выполнен с возможностью определения подуровней активной ветви, которые должны быть развернуты, в зависимости от второго значения позиции относительно меток подуровней.
Блок 23 графического представления выполнен с возможностью автоматического обновления вида дерева посредством разворачивания определенных подуровней активной ветви и сворачивания других ветвей.
В варианте осуществления, показанном на Фиг. 2, блок 21 выбора, блок 23 графического представления, блок 24 определения позиции, блок 26 выбора активной ветви, и блок 27 определения разворачивания непосредственно осуществляют связь друг с другом. В другом варианте осуществления устройство содержит блок контроллера, соединенный с одним или более из блоков и который управляет их связью.
Блок 21 выбора, блок 23 графического представления, блок 24 определения позиции, блок 26 выбора активной ветви и блок 27 определения разворачивания могут быть предоставлены в качестве отдельных устройств, вместе в качестве, по меньшей мере, одного устройства или логической схемы, или функциональности, выполняемой посредством микропроцессора, микроконтроллера или другого устройства обработки, компьютера или другого программируемого устройства, выполненного с возможностью выполнения обработки, соединенного с или содержащего, по меньшей мере, одно устройство памяти.
Как показано на Фиг. 3, вариант осуществления устройства 30 обработки данных для визуализации древовидной структуры элементов в графическом интерфейсе пользователя в зависимости от позиции указывающего курсора относительно визуализированной древовидной структуры содержит устройство 31 обработки, устройство 32 отображения и устройство 33 памяти, хранящее инструкции, которые, когда исполняются, предписывают устройству обработки:
- генерировать вид дерева, показывающий, используя устройство 32 отображения, древовидную структуру, организованную во множестве ветвей;
- определять позицию указывающего курсора относительно вида дерева, причем позиция состоит из первого значения позиции в соответствии с первым направлением и второго значения позиции в соответствии со вторым направлением ортогональным первому направлению;
- автоматически выбирать ветвь, с которой выровнена позиция указывающего курсора в соответствии с первым направлением, в качестве активной ветви;
- определять подуровни активной ветви, которые должны быть развернуты, в зависимости от второго значения позиции относительно меток подуровней; и
- автоматически обновлять вид дерева, показываемый посредством устройства отображения, посредством разворачивания определенных подуровней активной ветви и сворачивания других ветвей.
Например, устройство обработки может быть процессором, выполненным с возможностью выполнения этапов в соответствии с одним из описанных способов. В варианте реализации упомянутая адаптация содержит то, что процессор выполнен с возможностью, например запрограммирован, выполнения этапов в соответствии с одним из описанных способов.
Теперь обращаясь к Фиг. с 4 по 32, в качестве примера, схематично иллюстрируется вариант осуществления вида дерева таксономии, подвергаемый механизму автоматической реконфигурации вида дерева во время взаимодействия пользователя через указывающий курсор в автоматическом режиме.
Фиг. 4 показывает пример вида дерева у дерева таксономии в окне просмотра, у которого в настоящий момент развернуто четыре подуровня. Позиция указывающего курсора указывается стрелкой. Таксономия, отображаемая в качестве дерева на виде дерева, имеет 9 понятий верхнего уровня (Понятие_1, …, Понятие_9) при этом каждое супер-понятие или узел-родитель/элемент-родитель с 9 подпонятиями или узлами-потомками/элементами-потомками, суммарно с 5 уровнями иерархии. В примере, иллюстрируемом на Фиг. с 4 по 32, осуществляется манипулирование данной таксономией. На Фиг. 4 развернута только ветвь, с которой вертикально выравнен указывающий курсор, в то время как другие ветви свернуты, обеспечивая компактное представление дерева несмотря на то, что видны элементы дерева вплоть до уровня 5. В соответствии с предложенным решением, позиция указывающего курсора по отношению к виду дерева используется для управления автоматическими операциями разворачивания/сворачивания вида дерева. Вертикальная позиция указывающего курсора по отношению к элементам дерева управляет тем, какая ветвь дерева может быть развернута в качестве активной ветви. Другие ветви дерева сворачиваются автоматически. Они именуются неактивными ветвями. Горизонтальная позиция указывающего курсора по отношению к метке уровней дерева управляет тем, сколько подуровней активной ветви может быть развернуто. При автоматическом разворачивании/сворачивании элементов дерева, обновленный вид дерева также может быть автоматически перемещен вертикально с тем, чтобы фактическая позиция указывающего курсора отражала новую логическую позицию указывающего курсора по отношению к обновленному виду дерева.
Фиг. 5 показывает вид, когда указывающий курсор не указывает на окно просмотра. Ситуация возможна только если указывающий курсор является указывающим курсором системы, т.е. стандартным указывающим курсором не созданным специально для взаимодействия с видом дерева. В данном случае, отсутствует активная ветвь по определению, независимо от вертикальной позиции указывающего курсора. Вследствие этого, отображаются только элементы верхнего уровня дерева. Кроме того, в показанном варианте осуществления дерево всегда отображается с его самым верхним элементом в верхнем левом углу окна просмотра, включая ассоциированные индикаторы элемента, если применяются к элементам дерева верхнего уровня. Это предоставляет пользователю компактное и согласованное представление дерева в качестве начально точки для навигации по дереву, когда указывающий курсор перемещается в окно просмотра. Такие перемещения могут уже вызывать автоматическую реконфигурацию вида дерева, в зависимости от позиции, в которой указывающий курсор входит в окно просмотра по отношению к виду дерева, и направления перемещения.
Фиг. 6 иллюстрирует ситуацию, когда указывающий курсор указывает на окно просмотра, но не является вертикально выровненным с каким-либо элементом дерева. Никакая ветвь не выбрана в качестве активной ветви, что приводит к тому, что также отображаются только элементы верхнего уровня дерева. Вследствие этого, когда указывающий курсор системы перемещается в окно просмотра без того, что позиция вхождения является вертикально выровненной с каким-либо элементом дерева, вид дерева не меняется. Тем не менее, из-за того, что самый верхний элемент дерева отображается у верхнего края окна просмотра, когда указывающий курсор не указывает на окно просмотра, перемещение указывающего курсора в окно просмотра сверху вызывает то, что позиция вхождения является вертикально выровненной с самым верхним элементом дерева, за исключением того, когда вовсе нет дерева для отображения. Когда указывающий курсор указывает на окно просмотра и является вертикально выровненным с элементом дерева, ветвь, к которой принадлежит данный элемент, является активной ветвью. Сколько подуровней активной ветви может быть развернуто зависит от горизонтальной позиции указывающего курсора. Если данная позиция соответствует верхнему уровню дерева, именуемому как уровень 1 дерева, т.е. если указывающий курсор помещен слева от метки уровня 2 дерева, то отображается только элемент верхнего уровня активной ветви, совместно с элементами верхнего уровня неактивных ветвей, см. Фиг. 7. Из позиции, показанной на Фиг. 7, указывающий курсор может быть перемещен вверх и вниз внутри окна просмотра без изменения вида дерева. Просто присутствует или нет активная ветвь и какой элемент дерева верхнего уровня ассоциирован с активной ветвью меняется с вертикальным отклонением указывающего курсора по отношению к виду дерева.
Когда присутствует активная ветвь и указывающий курсор перемещается вправо за пределы метки следующего уровня дерева, следующий подуровень активной ветви разворачивается автоматически, если существует. Если указывающий курсор вертикально выровнен с прямым супер-элементом развернутого уровня дерева, данный следующий подуровень естественно является подуровнем данного прямого супер-элемента. В противном случае, данный следующий подуровень определяется как подуровень самого верхнего элемента дерева у самого низкого развернутого в настоящий момент уровня дерева у активной ветви. Например, если указывающий курсор перемещается вправо на расстояние эквивалентное одному уровню метки дерева на виде дерева, показанном на Фиг. 7, результирующий вид дерева соответствует Фиг. 8 так как результирующая горизонтальная позиция указывающего курсора соответствует уровню 2 дерева, т.е., указывающий курсор помещен между метками уровней 2 и 3 дерева. Вследствие этого, уровень 2 дерева активной ветви разворачивается автоматически, как только указывающий курсор пересекает метку уровня 2 дерева на своем пути. Посредством перемещения указывающего курсора далее вправо на расстояние 4 уровней метки дерева, все больше и больше подуровней активной ветви разворачивается, как только пересекаются соответствующие метки, приводя к реконфигурированному виду дерева, показанному на Фиг. 9, с результирующей горизонтальной позицией указывающего курсора целенаправленно соответствующей уровню 6 дерева, чтобы проиллюстрировать, что перемещение указывающего курсора до дальнейших меток справа от метки самого низкого уровня дерева активной ветви не вызывает каких-либо изменений в виде дерева. Автоматическое разворачивание подуровней активной ветви в соответствии с горизонтальной позицией указывающего курсора также происходит, когда указывающий курсор системы перемещается в окно просмотра слева, справа, или сверху и позиция вхождения является вертикально выровненной с элементом дерева, который всегда является одним из элементов дерева верхнего уровня, так как только они отображаются, когда указывающий курсор не указывает на окно просмотра. Ветвь, содержащая элемент дерева верхнего уровня, с которым вертикально выровнен указывающий курсор, становится активной ветвью и разворачивается автоматически, в зависимости от горизонтальной позиции указывающего курсора по отношению к виду дерева, ограничиваясь количеством подуровней активной ветви.
Как правило, пользователь не будет разворачивать более одного подуровня активной ветви за раз, а сначала будет просматривать элементы дерева недавно развернутого подуровня, чтобы увидеть, присутствует ли интересующий элемент, и желает ли он развернуть подуровень ниже данного элемента. Например, если пользователь решает развернуть подуровень ниже элемента Понятие_3_3 на виде дерева, показанном на Фиг. 8, он вероятно будет перемещать указывающий курсор вниз к элементу Понятие_3_3, чтобы сделать ветвь, содержащую элемент Понятие_3_3, активной ветвью, см. Фиг. 10, и затем перемещать указывающий курсор вправо, чтобы разворачивать следующий подуровень, см. Фиг. 11. Если пользователь продолжает разворачивать подуровень каждого третьего элемента каждого уровня дерева на виде дерева, показанном на Фиг. 11, вид дерева в итоге будет соответствовать Фиг. 4, за исключением того, что будет обрезан нижним краем меньшего окна просмотра.
Когда присутствует активная ветвь и указывающий курсор перемещается влево, пересекая метку самого низкого развернутого уровня дерева за исключением уровня 1 дерева, данный уровень дерева сворачивается автоматически. Если указывающий курсор является вертикально выровненным с прямым или непрямым супер-элементом свернутого уровня дерева, активная ветвь не меняется. Например, если указывающий курсор перемещается влево на расстояние эквивалентное 4 уровням метки дерева на виде дерева, показанном на Фиг. 9, то результирующий вид дерева соответствует Фиг. 8, так как результирующая горизонтальная позиция указывающего курсора соответствует уровню 2 дерева. Вследствие этого, уровень 5 дерева активной ветви сворачивается автоматически, как только указывающий курсор пересекает метку уровня 5 дерева на своем пути, и уровни 4 и 3 дерева у активной ветви сворачиваются автоматически как только соответствующие метки пересекаются позже. Посредством перемещения указывающего курсора дальше влево на один уровень метки дерева, уровень 2 дерева активной ветви также сворачивается, приводя к виду дерева, показанному на Фиг. 7. Сходным образом, перемещение указывающего курсора влево на виде дерева, показанном на Фиг. 11, приводит к виду дерева, показанному на Фиг. 10, как только метка уровня 3 дерева пересекается указывающим курсором.
Когда указывающий курсор не является вертикально выровненным с прямым или непрямым супер-элементом свернутого уровня дерева из-за перемещения указывающего курсора влево, простое сворачивание данного уровня дерева приведет к тому, что произвольный элемент дерева, если есть, станет вертикально выровненным с указывающим курсором, в зависимости от пространства ранее занимаемого элементами данного уровня дерева и вертикальной позиции указывающего курсора по отношению к этим элементам. Вследствие этого, будет присутствовать новая активная ветвь, содержащая данный произвольный элемент дерева или не будет более активной ветви, при отсутствии управления со стороны пользователя. Вследствие этого, в показанном варианте осуществления обновленный вид дерева автоматически перемещается вертикально таким образом, что прямой супер-элемент уровня дерева, который был свернут, является вертикально выровненным с указывающим курсором в данном случае, при том же самом вертикальном отклонении данного супер-элемента по отношению к указывающему курсору, как у элемента дерева, с которым указывающий курсор был вертикально выровнен до обновления вида дерева, так как данная позиция является новой логической позицией указывающего курсора внутри обновленного вида дерева. Это также делает ветвь, содержащую данный супер-элемент, активной ветвью, обеспечивая гладкую дальнейшую навигацию по дереву. Другим подходом вместо этого будет перемещение указывающего курсора в позицию данного супер-элемента, который считается запутывающим для пользователя. Кроме того, данный супер-элемент может быть невидимым в настоящий момент, требуя в любом случае перемещения обновленного вида дерева.
Автоматическое вертикальное перемещение обновленного вида дерева может вызывать отображение самого верхнего элемента дерева на некотором расстоянии от верхнего края окна просмотра. Такие отклонения быстро разрешаются, как только пользователь разворачивает и прокручивает следующие интересующие подуровни. Для удобства, в другом варианте осуществления механизм включает в себя функциональность коррекции, вновь перемещающую самый верхний элемент вида дерева к верхнему краю окна просмотра, включая перемещение указывающего курсора так, что он остается в той же самой позиции по отношению к виду дерева. Данная функциональность коррекции может быть инициирована по запросу пользователя, например, посредством управления клавиатурой или мышью, или жеста множественного касания, или автоматически, как только такое отклонение произойдет, если сконфигурировано в качестве предпочитаемого пользователем.
Пример автоматического сворачивания уровней дерева с результирующим вертикальным перемещением обновленного вида дерева, вызываемого перемещением указывающего курсора влево, иллюстрируется с Фиг. 12 по Фиг. 14. Фиг. 12 показывает вид до перемещения указывающего курсора. Теперь, указывающий курсор перемещается влево на расстояние, эквивалентное одному уровню метки дерева, приводя к виду дерева, показанному на Фиг. 13 так как, как только указывающий курсор пересекает метку уровня 3 дерева на своем пути, уровень 3 дерева сворачивается автоматически и обновленный вид дерева перемещается вниз автоматически так, чтобы элемент Понятие_3_3, прямой супер-элемент у элемента Понятие_3_3_3, отображался в вертикальной позиции, в которой элемент Понятие_3_3_3 отображался до обновленного вида дерева. Дальнейшее перемещение указывающего курсора влево на один уровень метки дерева приводит к виду дерева, показанному на Фиг. 14, при этом элемент Понятие_3 на Фиг. 14 отображается в той же самой вертикальной позиции, что и элемент Понятие_3_3 на Фиг. 13.
Автоматическое разворачивание или сворачивание уровней дерева также может быть инициировано горизонтальной прокруткой окна просмотра, если горизонтальное отклонение вида дерева по отношению к неизменившейся позиции указывающего курсора приводит к тому, что горизонтальная позиция указывающего курсора соответствует другому уровню дерева, чем до этого, при автоматическом разворачивании ограниченном количеством подуровней активной ветви. В принципе, прокрутка окна просмотра вправо ограничивается элементом вида дерева, который находится дальше всех вправо, который выровнен по правую сторону с правым краем окна просмотра, независимо от того, является ли данный элемент фактически видимым внутри окна просмотра. Тем не менее, поскольку метка следующего уровня дерева справа от метки самого низкого развернутого в настоящий момент уровня дерева активной ветви должна быть доступна указывающему курсору, посредством любого сочетания горизонтальной прокрутки и горизонтального перемещения указывающего курсора, чтобы обеспечить разворачивание следующего подуровня активной ветви, если существует, то обеспечивается прокрутка окна просмотра вправо таким образом, чтобы данная метка являлась безусловно доступной указывающему курсору. Это приводит к тому, что элемент вида дерева, находящийся дальше всех вправо, показывается с некоторым расстоянием от правого края окна просмотра, если данный элемент является фактически видимым и недостаточно длинным, чтобы безусловно расширяться до данной метки. С другой стороны, отсутствуют метки уровней дерева, к которым должен быть осуществлен доступ, слева от элементов верхнего уровня дерева, таким образом прокрутка окна просмотра влево может быть ограничена этими элементами верхнего уровня, которые показываются по левому краю окна просмотра, включая ассоциированные индикаторы суб-элементов, если применяются к ним.
Пример автоматического разворачивания подуровней активной ветви, вызываемого прокруткой окна просмотра вправо, иллюстрируется на с Фиг. 15 по Фиг. 17. Фиг. 15 показывает вид до прокрутки. Когда указывающий курсор почти достиг правого края окна просмотра, дальнейшие подуровни активной ветви не могут быть развернуты посредством перемещения указывающего курсора вправо, но вместо этого должны быть развернуты посредством прокрутки окна просмотра вправо. Кроме того, элементы уровня 3 дерева активной ветви обрезаны правым краем окна просмотра, так что пользователь может также желать прокрутить вид вправо, чтобы иметь возможность прочесть еще текст этих элементов. Теперь окно просмотра прокручивается вправо на расстояние эквивалентное одному уровню метки дерева, приводя к неизменившейся позиции указывающего курсора горизонтально соответствующей уровню 4 дерева, вследствие чего уровень 4 дерева активной ветви разворачивается автоматически, см. Фиг. 16. Было ли это для того, чтобы развернуть следующий подуровень активной ветви или чтобы иметь возможность прочесть до сих пор обрезанные элементы уровня 3 дерева активной ветви, окно просмотра теперь вновь прокручено вправо на один уровень метки дерева, приводя к неизменившейся позиции указывающего курсора горизонтально соответствующей уровню 5 дерева и уровень 5 дерева активной ветви вследствие этого разворачивается автоматически, см. Фиг. 17. Пользователь теперь может попытаться развернуть дальнейшие подуровни активной ветви посредством прокрутки окна просмотра дальше вправо, но поскольку такие подуровни отсутствуют, это приведет лишь к тому, что неизменившийся вид дерева переместиться влево внутри окна просмотра до тех пор, пока ни один элемент уровня 5 дерева активной ветви более не будет обрезан правым краем окна просмотра, при условии, что все эти элементы достаточно длинные, чтобы безусловно расширяться до метки уровня 6 дерева, делая ненужным дальнейшее отклонение этих элементов по отношению к правому краю окна просмотра. Если вместо этого прокрутка была выполнена, чтобы позволить прочитать текст элементов уровня 3 дерева активной ветви, пользователь будет вероятно перемещать указывающий курсор влево дальше до тех пор, пока его горизонтальная позиция не будет соответствовать уровню 3 дерева, чтобы вновь автоматически сворачивать уровни 4 и 5 дерева активной ветви. Когда указывающий курсор вертикально выровнен с прямым или непрямым супер-элементом свернутого уровня дерева из-за прокрутки окна просмотра влево, активная ветвь не меняется. Например, если окно просмотра, показанное на Фиг. 17, прокручивается влево на расстояние эквивалентное одному уровню метки дерева, результирующий вид дерева соответствует Фиг. 16, так как неизменившаяся позиция указывающего курсора горизонтально соответствует уровню 4 дерева, вследствие чего уровень 5 дерева активной ветви просто сворачивается автоматически. Посредством другой операции прокрутки влево на один уровень метки дерева, уровень 4 дерева активной ветви также сворачивается автоматически, приводя к виду дерева, показанному на Фиг. 15. Когда указывающий курсор не является вертикально выровненным с прямым или непрямым супер-элементом свернутого уровня дерева из-за прокрутки окна просмотра влево, обновленный вид дерева также перемещается вертикально так, что прямой супер-элемент свернутого уровня дерева является вертикально выровненным с неизменившейся позицией указывающего курсора, сходно с поведением перемещения указывающего курсора влево при сходных обстоятельствах и по тем же самым причинам. Это вновь может привести к отклонениям самого верхнего элемента вида дерева по отношению к верхнему краю окна просмотра, что может быть разрешено как описано выше.
Пример автоматического сворачивания уровней дерева с результирующим вертикальным перемещением обновленного вида дерева, вызываемого прокруткой окна просмотра влево, иллюстрируется Фиг. с 18 по 20. Фиг. 18 показывает вид до прокрутки. Когда окно просмотра прокручивается влево на расстояние эквивалентное одному уровню метки дерева, приводя к неизменившейся позиции указывающего курсора горизонтально соответствующей уровню 4 дерева, вследствие этого уровень 5 дерева сворачивается автоматически и обновленный вид дерева перемещается вниз автоматически так, что элемент Понятие_2_2_2_2, прямой супер-элемент у элемента Понятие_2_2_2_2_2, отображается в вертикальной позиции, в которой элемент Понятие_2_2_2_2_2 отображался до обновления вида дерева, см. Фиг. 19. Другая операция прокрутки влево на один уровень метки дерева приводит к виду дерева, показанному на Фиг. 20, с элементом Понятие_2_2_2 на Фиг. 20 отображаемым в той же самой вертикальной позиции, что и элемент Понятие_2_2_2_2 на Фиг. 19.
Автоматическое разворачивание или сворачивание уровней дерева также может быть инициировано посредством вертикального перемещения указывающего курсора внутри окна просмотра или вертикальной прокрутки окна просмотра, если результирующее вертикальное отклонение указывающего курсора по отношению к виду дерева вызывает то, что неактивная ветвь становится активной ветвью, или наоборот. Это включает в себя автоматическое сворачивание текущей активной ветви, если такая имеется, и автоматическое разворачивание новой активной ветви, если такая имеется, причем последняя зависит от горизонтальной позиции указывающего курсора по отношению к виду дерева, ограниченная количеством подуровней новой активной ветви. Поскольку виды дерева, которые должны отображаться до и после этих операций могут иметь больше или меньше элементов дерева в общем, результирующее обновление вида дерева может фактически быть больше или меньше видимым, вплоть до того, что никаких изменений не видно вообще. Кроме того, предложенный механизм может автоматически перемещать обновленный вид дерева вертикально так, что фактическая позиция указывающего курсора отражает новую логическую позицию указывающего курсора по отношению к обновленному виду дерева. Это вновь может приводить к отклонениям самого верхнего элемента вида дерева по отношению к верхнему краю окна просмотра, что может быть разрешено как описано выше.
Вертикальная прокрутка стандартных видов дерева как правило ограничивается самым верхним элементом вида дерева, который показывается у верхнего края окна просмотра, и самым нижним элементом вида дерева, который показывается у нижнего края окна просмотра. Тем не менее, данная схема не очень хорошо подходит для вида дерева, использующего предложенный механизм. Во-первых, автоматические реконфигурации вида дерева по отклонению указывающего курсора по отношению к виду дерева будут в любом случае часто вызывать вертикальные отклонения самого верхнего или самого нижнего элемента вида дерева по отношению к верхнему или нижнему краю окна просмотра, соответственно, поэтому мало пользы в том, чтобы избегать данного поведения только по вертикальной прокрутке окна просмотра. Во-вторых, вертикальная прокрутка окна просмотра сама по себе будет часто вызывать реконфигурации вида, так что ограничение такой прокрутки в соответствии с отображаемым видом дерева до прокрутки может приводить к чередующимся операциям прокрутки и перемещениям указывающего курсора, которые требуются для достижения интересующего элемента дерева, поскольку дальнейшая прокрутка может быть предотвращена до тех пор, пока дальнейшее перемещение указывающего курсора вновь ее не разблокирует. Кроме того, если приложение, использующее предложенный механизм, вместо этого проверяется на предмет того, может ли обновленный вид дерева отображаться подчиняясь таким стандартным ограничениям прокрутки и нарушает ли предназначенное расстояние прокрути эти ограничения, то расстояние прокрутки должно быть сокращено и проверка должна выполняться вновь, возможно несколько раз. Вследствие этого, в показанном варианте осуществления вертикальная прокрутка в соответствии с предложенным решением ограничивается самым верхним или самым нижним элементом вида дерева, вертикально выровненным с указывающим курсором внутри окна просмотра, для прокрутки окна просмотра вверх или вниз, соответственно. Это позволяет пользователю прокручивать весь вид дерева вверх и вниз ниже неизменившейся позиции указывающего курсора. Кроме того, пользователь может легко выбирать, какая величина вида дерева может быть отображена выше или ниже указывающего курсора посредством выбора соответствующей вертикальной позиции указывающего курсора внутри окна просмотра. Новая логическая позиция указывающего курсора по отношению к виду дерева, который получается из вертикального отклонения указывающего курсора по отношению к виду дерева, вызываемого вертикальным перемещением указывающего курсора внутри окна просмотра или вертикальной прокруткой окна просмотра, именуемая новой логической позицией указывающего курсора, определяется посредством абстрактного вида дерева, именуемого подогнанным видом дерева. Подогнанный вид дерева определяется в качестве фактического вида дерева со всеми элементами и ветвями развернутыми вплоть до уровня дерева, соответствующего горизонтальной позиции указывающего курсора, независимо от вертикальной позиции указывающего курсора, с одинаковой горизонтальной позицией указывающего курсора по отношению к фактическому и подогнанному виду дерева. Вертикальная позиция указывающего курсора по отношению к фактическому и подогнанному виду дерева определяется следующим образом: Когда указывающий курсор помещен выше самого верхнего элемента фактического вида дерева, он концептуально также помещен выше самого верхнего элемента подогнанного вида дерева, с одинаковым вертикальным расстоянием от этих элементов. Когда указывающий курсор является вертикально выровненным с элементом фактического вида дерева, он концептуально также вертикально выровнен с точно таким же элементом подогнанного вида дерева, с одинаковым вертикальным отклонение по отношению к этим элементам. Когда указывающий курсор помещен ниже самого нижнего элемента фактического вида дерева, он концептуально также помещен ниже самого нижнего элемента подогнанного вида дерева, с одинаковым вертикальным расстоянием от этих элементов. Новая логическая позиция указывающего курсора определяется как позиция, которую указывающий курсор будет иметь по отношению к подогнанному виду дерева, если вертикальное отклонение указывающего курсора по отношению к фактическому виду дерева вместо этого было применено к подогнанному виду дерева, с одинаковым направлением и расстоянием.
Когда указывающий курсор помещен внутри окна просмотра и выше самого верхнего элемента вида дерева, активная ветвь отсутствует, что приводит к тому, что отображаются только элементы верхнего уровня дерева, см. Фиг. 21. С позиции, показанной на Фиг. 21, указывающий курсор может быть перемещен вверх или вниз внутри окна просмотра без изменения вида дерева при условии, что указывающий курсор остается выше самого верхнего элемента вида дерева. Когда указывающий курсор перемещается вниз пересекая вертикальную границу между пустой зоной и самым верхним элементом вида дерева, он также будет пересекать вертикальную границу между пустой зоной и самым верхним элементом подогнанного вида дерева. Вследствие этого, новая логическая позиция указывающего курсора является вертикально выровненной с самым верхним элементом подогнанного вида дерева, и ветвь, содержащая данный самый верхний элемент, становится новой активной ветвью и разворачивается автоматически. Поскольку самый верхний элемент вида дерева всегда является точно таким же элементом дерева, что и самый верхний элемент подогнанного вида дерева, новая логическая позиция указывающего курсора совпадает с фактической позицией указывающего курсора, и не требуется вертикальное перемещение обновленного вида дерева. Например, если указывающий курсор, в окне просмотра, показанном на Фиг. 21, перемещается вниз в позицию, показанную на Фиг. 22, результирующий вид дерева соответствует Фиг. 22, поскольку, как только указывающий курсор пересекает вертикальную границу между пустой зоной и элементом Понятие_1 на своем пути, новая логическая позиция указывающего курсора является вертикально выровненной с элементом Понятие_1 и ветвь, содержащая элемент Понятие_1, становится активной ветвью и разворачивается вплоть до уровня 2 дерева из-за горизонтальной позиции указывающего курсора. Когда указывающий курсор перемещается вверх внутри окна просмотра пересекая вертикальную границу между самым верхним элементом вида дерева и пустой зоной выше, он также будет пересекать вертикальную границу между самым верхним элементом подогнанного вида дерева и пустой зоной выше. Вследствие этого, новая логическая позиция указывающего курсора находится как раз выше самого верхнего элемента вида дерева, и ветвь, содержащая данный самый верхний элемент, более не является активной ветвью и сворачивается автоматически. Из-за идентичности самого верхнего элемента вида дерева и самого верхнего элемента подогнанного вида дерева, новая логическая позиция указывающего курсора совпадает с фактической позицией указывающего курсора, и не требуется вертикальное перемещение обновленного вида дерева. Например, если указывающий курсор, в окне просмотра, показанном на Фиг. 22, перемещается вверх в позицию, показанную на Фиг. 21, результирующий вид дерева соответствует Фиг. 21, так как, как только указывающий курсор пересекает вертикальную границу между элементом Понятие_1 и пустой зоной выше на своем пути, новая логическая позиций указывающего курсора не является вертикально выровненной с каким-либо элементом дерева и ветвь, содержащая элемент Понятие_1 более не является активной ветвью и сворачивается автоматически.
Когда указывающий курсор помещен внутри окна просмотра и ниже самого нижнего элемента вида дерева, то отсутствует активная ветвь, приводя к тому, что отображаются только элементы верхнего уровня дерева, см. Фиг. 23. Из позиции, показанной на Фиг. 23, указывающий курсор может быть перемещен вверх и вниз внутри окна просмотра без изменения вида дерева при условии, что указывающий курсор остается ниже самого нижнего элемента вида дерева. Когда указывающий курсор перемещается вверх, пересекая верхнюю границу между пустой зоной и самым нижним элементом вида дерева, он также будет пересекать вертикальную границу между пустой зоной и самым нижним элементом подогнанного вида дерева. Вследствие этого, новая логическая позиция указывающего курсора является вертикально выровненной с самым нижним элементом подогнанного вида дерева, и ветвь, содержащая данный самый нижний элемент, становится активной ветвью и разворачивается автоматически. Поскольку самый нижний элемент вида дерева может не быть точно таким же элементом дерева, что и самый нижний элемент подогнанного вида дерева, это может привести к новой логической позиции указывающего курсора, не совпадающей с фактической позицией указывающего курсора. Если это имеет место, обновленный вид дерева также автоматически перемещается вертикально с тем, чтобы новая логическая позиция указывающего курсора и фактическая позиция указывающего курсора были одинаковыми, приводя к том, что самый нижний элемент обновленного вида дерева отображается в вертикальной позиции, в которой самый нижний элемент вида дерева отображался до обновления вида дерева. Например, если указывающий курсор, в окне просмотра, показанном на Фиг. 23, перемещается вверх в позицию, показанную на Фиг. 24, результирующий вид дерева соответствует Фиг. 24, так как, как только указывающий курсор пересекает вертикальную границу между пустой зоной и элементом Понятие_9 на своем пути, новая логическая позиция указывающего курсора является вертикально выровненной с элементом Понятие_9_9, ветвь, содержащая элемент Понятие_9_9 становится активной ветвью и разворачивается вплоть до уровня 2 дерева из-за горизонтальной позиции указывающего курсора, и обновленный вид дерева перемещается вверх так, что элемент Понятие_9_9 отображается в вертикальной позиции, в которой элемент Понятие_9 отображался до обновления вида дерева. Когда указывающий курсор перемещается вниз внутри окна просмотра пересекая вертикальную границу между самым нижним элементом вида дерева и пустой зоной ниже, он также будет пересекать вертикальную границу между самым нижним элементом подогнанного вида дерева и пустой зоной ниже. Вследствие этого, новая логическая позиция указывающего курсора находится как раз ниже самого нижнего элемента вида дерева, и ветвь, содержащая данный самый нижний элемент, более не является активной ветвью и сворачивается автоматически. Поскольку самый нижний элемент вида дерева может не быть тем же самым элементом как самый нижний элемент обновленного вида дерева, это может привести к тому, что новая логическая позиция указывающего курсора не совпадает с фактической позицией указывающего курсора. Если это имеет место, обновленный вид дерева также автоматически перемещается вертикально так, что новая логическая позиция указывающего курсора и фактическая позиция указывающего курсора являются одинаковыми, приводя к тому, что самый нижний элемент обновленного вида дерева отображается в вертикальной позиции, в которой самый нижний элемент вида дерева отображался до обновления вида дерева. Например, если указывающий курсор, в окне просмотра, показанном на Фиг. 24, перемещается вниз в позицию, показанную на Фиг. 23, результирующий вид дерева соответствует Фиг. 23 так как, как только указывающий курсор пересекает вертикальную границу между элементом Понятие_9_9 и пустой зоной ниже на своем пути, новая логическая позиция указывающего курсора не является вертикально выровненной с каким-либо элементом дерева, ветвь, содержащая элемент Понятие_9_9 более не является активной ветвью и сворачивается автоматически, и обновленный вид дерева перемещается вниз так, что элемент Понятие_9 отображается в вертикальной позиции, в которой элемент Понятие_9_9 отображался до обновления вида дерева.
Перемещения указывающего курсора, пересекающие вертикальную границу между двумя вертикально смежными элементами вида дерева приводят к изменению активной ветви, при этом в настоящий момент активная ветвь сворачивается автоматически, а новая активная ветвь разворачивается автоматически. Новая логическая позиция указывающего курсора является вертикально выровненной с элементом подогнанного вида дерева непосредственно выше или ниже элемента дерева, с которым указывающий курсор был ранее вертикально выровнен, в зависимости от направления перемещения. Если обновление вида дерева приводит к тому, что новая логическая позиция указывающего курсора не совпадает с фактической позицией указывающего курсора, обновленный вид дерева также автоматически перемещается вертикально так, чтобы новая логическая позиция указывающего курсора и фактическая позиция указывающего курсора были одинаковыми, приводя к тому, что элемент обновленного вида дерева является вертикально выровненным с указывающим курсором, отображаемым в вертикальной позиции, в которой элемент вида дерева, на который указывающий курсор был перемещен, отображался до обновления вида дерева. Например, если указывающий курсор в окне просмотра, показанном на Фиг. 25, перемещается вниз в позицию, показанную на Фиг. 26, результирующий вид дерева соответствует Фиг. 26 так как, как только указывающий курсор пересекает вертикальную границу между элементом Понятие_1_9 и элементом Понятие_2 на своем пути, новая логическая позиция указывающего курсора является вертикально выровненной с элементом Понятие_2, ветвь, содержащая элемент Понятие_1_9, более не является активной ветвью и сворачивается автоматически, ветвь, содержащая элемент Понятие_2, становится новой активной ветвью и разворачивается вплоть до уровня 2 дерева из-за горизонтальной позиции указывающего курсора, и обновленный вид дерева перемещается вниз так, что элемент Понятие_2 отображается в той же самой вертикальной позиции, как он отображался до обновления вида дерева. Если указывающий курсор, в окне просмотра, показанном на Фиг. 26, перемещается вверх в позицию, показанную на Фиг. 25, результирующий вид дерева соответствует Фиг. 25, так как, как только указывающий курсор пересекает вертикальную границу между элементом Понятие_2 и элементом Понятие_1 на своем пути, новая логическая позиция указывающего курсора является вертикально выровненной с элементом Понятие_1_9, ветвь, содержащая элемент Понятие_2, более не является активной ветвью и сворачивается автоматически, ветвь, содержащая элемент Понятие_1_9, становится новой активной ветвью и разворачивается вплоть до уровня 2 дерева из-за горизонтальной позиции указывающего курсора, и обновленный вид дерева перемещается вверх так, что элемент Понятие_1_9 отображается в вертикальной позиции, в которой элемент Понятие_1 отображался до обновления вида дерева.
Для согласованности, автоматическое разворачивание подуровней активной ветви, как если бы указывающий курсор был перемещен в новую активную ветвь снизу, либо из пустой зоны либо из текущей активной ветви, также происходит, когда указывающий курсор системы перемещается в окно просмотра снизу и позиция вхождения является вертикальной с элементом дерева, который всегда является одним из элементов дерева верхнего уровня, так как только они отображаются, когда указывающий курсор не указывает на окно просмотра. Ветвь, содержащая элемент дерева, с которым новая логическая позиция указывающего курсора является вертикально выровненной, становится активной ветвью и разворачивается автоматически, в зависимости от вертикальной позиции указывающего курсора по отношению к виду дерева, ограниченной количеством подуровней активной ветви, и обновленный вид дерева автоматически перемещается вертикально так, что новая логическая позиция указывающего курсора совпадает с фактической позицией указывающего курсора.
Вертикальная прокрутка окна просмотра обрабатывается аналогично вертикальному перемещению указывающего курсора внутри окна просмотра, с двумя заметными отличиями: Во-первых, тогда как вертикальное перемещение указывающего курсора всегда непрерывно, вертикальная прокрутка может не быть непрерывной, возможно приводя к тому, что новая логическая позиция указывающего курсора является вертикально выровненной с произвольным элементом подогнанного вида дерева вместо самого верхнего, самого нижнего, или вертикально смежного. Во-вторых, тогда как перемещение указывающего курсора внутри окна просмотра выше и ниже вида дерева является неограниченным, вертикальная прокрутка окна просмотра может быть ограничена как описано выше. В показанном варианте осуществления, применяются ограничения вертикальной прокрутки. Кроме того, нижеследующие примеры иллюстрируют только вертикальную прокрутку на расстояния кратные высоте элемента дерева. Другие расстояния прокрутки дополнительно приведут к другим вертикальным отклонениям по отношению к указывающему курсору у элемента дерева, с которым указывающий курсор является вертикально выровненным, внутри реконфигурированного вида дерева и у элемента дерева, с которым указывающий курсор был вертикально выровнен до реконфигурации вида дерева, при условии, что указывающий курсор является вертикально выровненным с элементом дерева до и после реконфигурации вида дерева.
Когда указывающий курсор помещается внутри окна просмотра и выше самого верхнего элемента вида дерева, окно просмотра может быть прокручено только вниз, приводя к тому, что неизменившийся вид дерева просто перемещается внутри окна просмотра при условии, что новая логическая позиция указывающего курсора не является еще вертикально выровненной с каким-либо элементом подогнанного вида дерева. Как только новая логическая позиция указывающего курсора является вертикально выровненной с элементом подогнанного вида дерева первый раз, ветвь, содержащая данный элемент, становится активной ветвью и разворачивается автоматически. Если обновление вида дерева приводит к тому, что новая логическая позиция указывающего курсора не совпадает с фактической позицией указывающего курсора, обновленный вид дерева также автоматически перемещается вертикально так, что новая логическая позиция указывающего курсора и фактическая позиция указывающего курсора являются одинаковыми. Например, если окно просмотра, показанное на Фиг. 27, прокручивается вниз на расстояние эквивалентное высоте 4 элементов дерева, результирующий вид дерева соответствует Фиг. 28 так как новая логическая позиция указывающего курсора является вертикально выровненной с элементом Понятие_1_1_1 и ветвь, содержащая элемент Понятие_1_1_1 становится активной ветвью и разворачивается вплоть до уровня 3 дерева из-за горизонтальной позиции указывающего курсора. Поскольку новая логическая позиция указывающего курсора совпадает с фактической позицией указывающего курсора, не требуется вертикальное перемещение обновленного вида дерева.
Когда указывающий курсор помещается внутри окна просмотра и ниже самого нижнего элемента вида дерева, окно просмотра может быть прокручено только вверх, приводя к тому, что неизменившийся вид дерева просто перемещается вниз внутри окна просмотра при условии, что новая логическая позиция указывающего курсора не является еще вертикально выровненной с каким-либо элементом подогнанного вида дерева. Как только новая логическая позиция указывающего курсора является вертикально выровненной с элементом подогнанного вида дерева в первый раз, ветвь, содержащая данный элемент, становится активной ветвью и разворачивается автоматически. Если обновленный вид дерева приводит к тому, что новая логическая позиция указывающего курсора не совпадает с фактической позицией указывающего курсора, обновленный вид дерева также автоматически перемещается вертикально так, чтобы новая логическая позиция указывающего курсора и фактическая позиция указывающего курсора были одинаковыми. Например, если окно просмотра, показанное на Фиг. 29, прокручивается вверх на расстояние, эквивалентное высоте 4 элементов дерева, результирующий вид дерева соответствует Фиг. 30, так как новая логическая позиция указывающего курсора является вертикально выровненной с элементом Понятие_9_9_7, ветвь, содержащая Понятие_9_9_7, становится активной ветвью и разворачивается вплоть до уровня 3 дерева из-за горизонтальной позиции указывающего курсора, и обновленный вид дерева перемещается вверх так, что новая логическая позиция указывающего курсора и фактическая позиция указывающего курсора являются одинаковыми.
Когда присутствует активная ветвь и вертикальная прокрутка окна просмотра приводит к тому, что новая логическая позиция указывающего курсора, вертикально выровнена с элементом подогнанного вида дерева, при этом данный элемент дерева отличается от элемента дерева, с которым указывающий курсор был вертикально выровнен ранее, активная ветвь меняется. Вследствие этого, в настоящий момент активная ветвь сворачивается автоматически, а новая активная ветвь разворачивается автоматически. Если обновление вида дерева приводит к тому, что новая логическая позиция указывающего курсора не совпадает с фактической позицией указывающего курсора, обновленный вид дерева также автоматически перемещается вертикально так, что новая логическая позиция указывающего курсора и фактическая позиция указывающего курсора являются одинаковыми. Например, если окно просмотра, показанное на Фиг. 31, прокручивается вниз на расстояние эквивалентное высоте 4 элементов дерева, результирующий вид дерева соответствует Фиг. 32, так как новая логическая позиция указывающего курсора является вертикально выровненной с элементом Понятие_8_9_2, ветвь, соответствующая элементу Понятие_8_8_8, более не является активной ветвью и сворачивается автоматически, ветвь, содержащая элемент Понятие_8_9_2, становится новой активной ветвью и разворачивается вплоть до уровня 3 дерева из-за горизонтальной позиции указывающего курсора, и обновленный вид дерева перемещается так, что элемент Понятие_8_9_2 отображается в вертикальной позиции, в которой элемент Понятие_8_8_8 отображался до обновления вида дерева. Если окно просмотра, показанное на Фиг. 32, прокручивается вверх на расстояние эквивалентное высоте 4 элементов дерева, результирующий вид дерева соответствует Фиг. 31, так как новая логическая позиция указывающего курсора является вертикально выровненной с элементом Понятие_8_8_8, ветвь, содержащая элемент Понятие_9_9_2, более не является активной ветвью и сворачивается автоматически, ветвь, содержащая элемент Понятие_8_8_8 становится новой активной ветвью и разворачивается вплоть до уровня 3 дерева из-за горизонтальной позиции указывающего курсора, и обновленный вид дерева перемещается вверх так, что элемент Понятие_8_8_8 отображается в вертикальной позиции, в которой элемент Понятие_8_9_2 отображался до обновления вида дерева.
Когда прокрутка окна просмотра вверх или вниз приведет к тому, что новая логическая позиция указывающего курсора находится над самым верхним элементом или ниже самого нижнего элемента вида дерева, соответственно, возымеют действие ограничения прокрутки, сокращая расстояние прокрутки так, что новая логическая позиция указывающего курсора является вертикально выровненной с самым верхним или самым нижним элементом подогнанного вида дерева, соответственно. Вследствие этого, текущая активная ветвь, если такая присутствует, автоматически сворачивается, и ветвь, содержащая самый верхний или самый нижний элемент подогнанного вида дерева, соответственно, становится новой активной ветвью и разворачивается автоматически. Если обновление вида дерева приводит к тому, что новая логическая позиция указывающего курсора не совпадает с фактической позицией указывающего курсора, обновленный вид дерева также автоматически перемещается вертикально так, что новая логическая позиция указывающего курсора и фактическая позиция указывающего курсора являются одинаковыми. Это точно такое же поведение как поведение, вызываемое вертикальной прокруткой окна просмотра непосредственно приводящее к тому, что новая позиция указывающего курсора является вертикально выровненной с самым верхним или самым нижним элементом подогнанного вида дерева, соответственно.
Как будет понятно специалисту в соответствующей области техники, аспекты настоящих принципов могут быть воплощены в качестве устройства, системы, способа, или машиночитаемого носителя информации. Соответственно, аспекты настоящих принципов могут принимать форму варианта осуществления аппаратного обеспечения, варианта осуществления программного обеспечения или варианта осуществления, объединяющего аспекты программного и аппаратного обеспечения. Кроме того, аспекты настоящих принципов могут принимать форму машиночитаемого носителя информации. Может быть использовано любое сочетание одного или более машиночитаемых носителей информации.
Аспекты настоящих принципов могут, например, по меньшей мере частично, быть реализованы в компьютерной программе, содержащей фрагменты кода для выполнения этапов способа в соответствии с вариантом осуществления изобретения, при выполнении на программируемом устройстве или позволяя программируемому устройству выполнять функции устройства или системы в соответствии с вариантом осуществления изобретения.
Кроме того, любое соединение, показанное на Фиг. 2 и Фиг. 3 может быть прямым или непрямым соединением. Кроме того, специалист в соответствующей области техники должен признать, что границы между логическими блоками всего лишь иллюстративные и что альтернативные варианты осуществления могут объединять логические блоки или предписывать альтернативное разложение функциональности по различным логическим блокам.