Представление элементов пользовательского интерфейса в упрощенном виде
Иллюстрации
Показать всеИзобретение относится к внутреннему представлению элементов пользовательского интерфейса. Техническим результатом изобретения является обеспечение упрощенного вида пользовательского интерфейса. Технический результат достигается благодаря тому, что в способе автоматической генерации субэлементов составного элемента пользовательского интерфейса вставляют повторитель, используемый для генерирования узлов, представляющих элементы пользовательского интерфейса, в иерархическое представление составного элемента пользовательского интерфейса, связывают упомянутый повторитель с источником данных, генерируют с помощью упомянутого повторителя упомянутые узлы, представляющие элементы пользовательского интерфейса, с использованием содержимого из упомянутого источника данных, при этом упомянутый повторитель указывается как отображаемый по выбору в упрощенном виде упомянутого иерархического представления составного элемента пользовательского интерфейса, и упомянутый повторитель, указанный как отображаемый по выбору в упрощенном виде, не отображается на упомянутом упрощенном виде. 31 ил.
Реферат
Область техники
Область техники относится к внутреннему представлению элементов пользовательского интерфейса.
Уровень техники
С быстрым распространением компьютеров появились нововведения в области пользовательских интерфейсов программного обеспечения. Например, в настоящее время имеется множество инструментов, с помощью которых программисты могут создавать пользовательские интерфейсы и управлять ими. Далее, ныне элементы пользовательского интерфейса могут помещаться в документы, такие как web-страницы или документы обработки текстов.
Элементы пользовательского интерфейса могут принимать множество форм: полей редактирования, блоков списка, полос прокрутки, списков выбора, экранных кнопок и т.п. Хотя элемент пользовательского интерфейса может казаться пользователю одним составным, в действительности его можно представить в компьютере в виде ряда отдельных частей или субэлементов, которые были объединены вместе. Кроме того, каждый из указанных субэлементов сам по себе может состоять из других субэлементов. Подобным способом элементы пользовательского интерфейса могут служить в качестве строительных блоков для построения других, более сложных элементов пользовательского интерфейса. Такой подход полезен, поскольку программное обеспечение, управляющее пользовательским интерфейсом (например, оболочка пользовательского интерфейса), может повторно использовать определения некоторых общих элементов при сборке их в составные элементы.
Однако сложность, внесенная представлением элементов пользовательского интерфейса в качестве составных элементов пользовательского интерфейса, может оказаться значительной. Например, неопытные или неквалифицированные программисты могут не захотеть знакомиться с тем, как составлен составной пользовательский интерфейс, или даже с тем, что составной пользовательский интерфейс является прежде всего составным. Такие программисты могли бы легко избежать подобной сложности, если бы они имели дело с элементами составного пользовательского интерфейса. Действительно, даже опытный программист может захотеть избежать столкновения с такой сложностью. Таким образом, существует потребность в том, чтобы как-то упростить представление составных элементов пользовательского интерфейса.
Сущность изобретения
Как описано ниже, можно обеспечить упрощенный вид представления одного или нескольких элементов пользовательского интерфейса. Например, некоторые узлы, представляющие элементы пользовательского интерфейса в иерархическом представлении, могут быть выборочно отображаемыми (отображаемыми по выбору). Указанные узлы могут отображаться при некоторых обстоятельствах и не отображаться при других обстоятельствах. В указанном иллюстративном способе можно обеспечить упрощенный репрезентативный вид (например, не отображая выборочно отображаемые узлы).
В одном из вариантов воплощения, при обеспечении услуг пользовательского интерфейса на упрощенном виде представления пользовательского интерфейса могут быть выполнены различные операции. Например, при выполнении операций выборочно отображаемые узлы могут не отображаться. Такой подход может быть полезен для программиста, который не хочет знакомиться с деталями представления.
Например, многочисленные элементы пользовательского интерфейса могут быть объединены в один составной модуль, над которым могут выполняться операции. Тот факт, что составной модуль составлен из многочисленных элементов пользовательского интерфейса, может быть прозрачно отражен в упрощенном виде представления элементов пользовательского интерфейса. Таким образом, программа может исследовать и управлять представлением, не касаясь отображенных узлов. В результате, программист может записывать более простой код или разметку. И, кроме того, программисту нет необходимости полностью знакомиться с главной структурой, которая может содержать более одного узла для составного модуля.
Таким образом, услуга (функция, служба) пользовательского интерфейса, обеспечивающая упрощенный вид, может обеспечить мощный инструмент, с помощью которого стимулируется повторное использование программного обеспечения, а неискушенные пользователи могут взаимодействовать с элементами пользовательского интерфейса на базовом уровне.
Дополнительные признаки и преимущества станут очевидными из нижеследующего подробного описания иллюстрируемых вариантов воплощения, которые обсуждаются со ссылками на сопровождающие чертежи.
Краткое описание чертежей
В дальнейшем изобретение поясняется описанием конкретных вариантов его воплощения со ссылками на сопровождающие чертежи, на которых:
Фиг.1 изображает иллюстративное представление элемента пользовательского интерфейса, имеющего упрощенный вид;
Фиг.2 изображает иллюстративный упрощенный вид представления элемента пользовательского интерфейса, изображенного на Фиг.1;
Фиг.3 изображает представление другого иллюстративного элемента пользовательского интерфейса, имеющего упрощенный вид;
Фиг.4 изображает иллюстративный упрощенный вид представления элемента пользовательского интерфейса, изображенного на Фиг.3;
Фиг.5 изображает блок-схему иллюстративного способа для осуществления упрощенного вида представления элемента пользовательского интерфейса;
Фиг.6 изображает блок-схему иллюстративного способа для обработки определения элемента пользовательского интерфейса, имеющего представление в упрощенном виде;
Фиг.7 изображает блок-схему иллюстративного способа для привлечения определения элемента пользовательского интерфейса, имеющего упрощенный вид, такого как на Фиг.6;
Фиг.8 изображает блок-схему иллюстративного способа для выполнения операции на иерархическом представлении элемента пользовательского интерфейса, такого как на Фиг.7;
Фиг.9 изображает «снимок экрана» иллюстративного элемента пользовательского интерфейса, упоминаемого здесь как комбинированный блок;
Фиг.10А изображает иллюстративное иерархическое представление комбинированного блока, такого как на Фиг.9;
Фиг.10Б изображает иллюстративное иерархическое представление комбинированного блока, подобного такому, как на Фиг.10, и включает в себя иллюстративные границы инкапсуляции;
Фиг.11 изображает иллюстративный упрощенный вид иерархического представления комбинированного блока, такого как показан на Фиг.10;
Фиг.12 изображает блок-схему иллюстративного способа для создания иерархического представления элемента пользовательского интерфейса, имеющего выборочно отображаемые узлы;
Фиг.13 изображает иллюстративное определение разметки для комбинированного блока, включающее индикацию, по меньшей мере, одного элемента как выборочно отображаемого;
Фиг.14А изображает иллюстративное программное определение комбинированного блока, включающее индикацию, по меньшей мере, одного элемента как выборочно отображаемого;
Фиг.14Б изображает продолжение иллюстративного определения разметки Фиг.14А;
Фиг.15 изображает иллюстративное привлечение разметки комбинированного блока, такого как определен на Фиг.13 или Фиг.14А и 14Б;
Фиг.16 изображает иллюстративное программное привлечение комбинированного блока, такого как определен на Фиг.13 или Фиг.14А и 14Б;
Фиг.17 изображает блок-схему иллюстративного способа для выполнения операции, используя упрощенный вид представления элемента пользовательского интерфейса;
Фиг.18 изображает иллюстративный полный вид иерархического представления комбинированного блока, такого как изображен на Фиг.9, с соответствующими узлами, обозначенными как не отображаемые в упрощенном виде, после выполнения операции с помощью упрощенного вида;
Фиг.19 изображает иллюстративный упрощенный вид, соответствующий представлению Фиг.18;
Фиг.20А изображает альтернативное представление выборочно отображаемых узлов пользователя для элемента пользовательского интерфейса;
Фиг.20Б изображает упрощенный вид, соответствующий представлению, показанному на Фиг.20А;
Фиг.21 изображает снимок экрана элемента пользовательского интерфейса - блока списка, в котором используется признак повторителя;
Фиг.22 изображает иллюстративное иерархическое представление элемента пользовательского интерфейса, включающего в себя повторитель;
Фиг.23 изображает иллюстративный упрощенный вид, соответствующий Фиг.22;
Фиг.24 изображает блок-схему иллюстративного способа для создания иерархического представления элемента пользовательского интерфейса, включающего в себя повторитель, такой как показан на Фиг.22;
Фиг.25 изображает иллюстративное привлечение разметки повторителя, обозначенного как выборочно отображаемый;
Фиг.26 изображает иллюстративное программное привлечение повторителя, обозначенного как выборочно отображаемый;
Фиг.27 изображает другое иллюстративное привлечение разметки повторителя, обозначенного как выборочно отображаемый;
Фиг.28 изображает иллюстративное определение разметки блока списка, такого как изображен на Фиг.21, без использования признака повторителя.
Подробное описание предпочтительных вариантов воплощения изобретения
Краткий обзор
Различные технологии, описанные ниже, полезны для создания, представления и управления элементами пользовательского интерфейса. Элементы пользовательского интерфейса могут принимать множество форм типа графических экранных кнопок, окон редактирования, полос прокрутки, списков выбора, раскрывающихся меню, средств управления ACTIVEX, изображений и т.п. Элементы пользовательского интерфейса могут выглядеть как часть программы (например, управлять функциональными возможностями программы) или находиться в документе. Упрощенный вид внутреннего представления таких элементов пользовательского интерфейса может сделать более простым программирование для элементов пользовательского интерфейса. Например, случайный или неискушенный программист может написать программу, взаимодействующую с упрощенным видом без необходимости знакомиться с некоторыми сложностями. Также более искушенный программист может захотеть оградиться от таких сложностей, чтобы избежать возможных ошибок программирования.
При желании, описанные здесь технологии (например, упрощенный вид) могут быть обеспечены как часть услуги (функции, службы) пользовательского интерфейса. Таким образом, программы, взаимодействующие с услугой, могут воспользоваться преимуществом признаков так, как это требуется.
В некоторых вариантах воплощений элемент пользовательского интерфейса может быть определен как имеющий иерархическое представление с упрощенным видом. Такое определение может вызываться для того, чтобы создавать иерархическое представление с упрощенным видом. Впоследствии над иерархическим представлением может быть выполнена операция. Такая операция может выполняться как над полным, так и над упрощенным видом иерархического представления.
Если элемент пользовательского интерфейса является составным элементом пользовательского интерфейса, содержащим множество элементов пользовательского интерфейса, то может отображаться главный узел (например, родительский), а другие узлы составного элемента пользовательского интерфейса могут быть определены как выборочно отображаемые (отображаемые по выбору). В случае неотображения, вид представления изображает главный узел, а не другие, выборочно отображаемые узлы. Таким образом, для составного элемента пользовательского интерфейса, скорее, может отображаться один узел, чем множество узлов.
Полный вид представления составного элемента пользовательского интерфейса может быть относительно сложным, сложность заключается в том, что в иерархическом представлении, представляющем элемент пользовательского интерфейса, может существовать множество узлов. Программист, желающий обращаться с полным видом, вынужден знакомиться с различными узлами и их иерархическими отношениями. Как описано ниже, вместо этого программа может выполнять операции, используя упрощенный вид.
В упрощенном виде при выполнении операций на узле неотображенные узлы могут игнорироваться (например, родительский или дочерний узел в иерархии). Например, при добавлении дочерних узлов к узлу, неотображенные промежуточные узлы могут игнорироваться или пропускаться. Таким образом, в упрощенном виде иерархического представления пользовательского интерфейса запрос добавить дочерние узлы к некоторому узлу может фактически приводить к добавлению дочерних узлов к соответствующему дочернему узлу этого узла (например, представляя элемент составного элемента пользовательского интерфейса). Такой подход полезен, поскольку добавление дочерних узлов в упрощенном виде не требует знания сложностей многочисленных узлов, формирующих элемент пользовательского интерфейса и их взаимосвязи.
Например, блок списка может быть представлен как множество узлов в иерархических соотношениях, а один из узлов может быть обозначен как специфический узел, предназначенный для приема отображенных выборов для блока списка в качестве дочерних узлов. Однако программист мог бы не захотеть знакомиться с такими сложностями.
Используя упрощенный вид, указанные операции легко могут быть выполнены путем добавления дополнительных выборов пользователя в качестве дочерних узлов главного узла элемента пользовательского интерфейса (например, через упрощенный вид). В упрощенном виде запрос добавить дочерние узлы к главному узлу выполняется как запрос добавить дочерние узлы к соответствующему узлу (например, потомку главного узла). Таким образом, для того чтобы выполнять операции над элементом пользовательского интерфейса, программа может использовать упрощенное представление элемента пользовательского интерфейса. В результате, программисту нет необходимости знакомиться со сложностями полного вида, и может использоваться более простой код или разметка.
Один из способов осуществления упрощенного вида состоит в том, чтобы определять различные узлы в представлении как инкапсулирующие родительские узлы или инкапсулирующие контейнеры. Таким образом, специфический узел может быть обозначен как главный узел (например, инкапсулирующий родительский), а другой (например, дочерний) узел может быть обозначен как специфический узел для приема дочерних (например, если родительский узел имеет или будет иметь дочерние узлы в упрощенном виде).
Другой способ воплощения упрощенного вида состоит в том, чтобы определять выборочно отображаемый узел таким образом, что его дочерние узлы считались в упрощенном виде как родственные узлы родственных узлов выборочно отображаемого узла.
Как здесь описано, для того чтобы изучить или осуществить управление представлением элемента пользовательского интерфейса, может быть выполнено множество операций, отличных от добавления дочерних узлов. Кроме того, операции могут быть выполнены на любом узле в представлении и при этом обладать преимуществом упрощенного вида.
К тому же значения свойств могут быть определены (например, для добавленных узлов) в свете выборочно отображаемых узлов. В некоторых случаях может потребоваться использование значений свойств, ассоциированных с главным узлом (например, игнорируя выборочно отображаемые узлы) ближайшего (например, неотображенного) родительского узла, или их комбинации.
Поскольку некоторые детали, имеющие отношение к представлению элемента пользовательского интерфейса, являются скрытыми, главный узел и выборочно отображаемые узлы для составного элемента пользовательского интерфейса иногда упоминаются как формирующие «инкапсулированный» элемент пользовательского интерфейса.
Программа или язык разметки, взаимодействующие с упрощенным видом, могут быть ограждены от некоторой сложности лежащего в основе представления. Таким образом, составной элемент пользовательского интерфейса может быть собран из множества элементов пользовательского интерфейса, не внося дополнительную сложность в программу, использующую составной пользовательский интерфейс. Такой подход может быть полезен тем, что он может поощрять разработчиков элемента пользовательского интерфейса повторно использовать существующие элементы пользовательского интерфейса при создании новых элементов без необходимости внесения ненужной сложности при работе с элементом пользовательского интерфейса. Далее, может поддерживаться вложение определения, специфицирующего выборочно отображаемые узлы.
Иллюстративное иерархическое представление элемента пользовательского интерфейса
Один из способов представления элемента пользовательского интерфейса в программном обеспечении состоит в том, чтобы хранить его в форме иерархического дерева, имеющего различные узлы. Фиг.1 изображает иллюстративное иерархическое представление 100 элемента пользовательского интерфейса. Узлы 110 и 120 изображены имеющими родительско-дочерние отношения. Например, узел 110 является родительским элементом дочернего элемента 120. Поскольку представление 100 включает в себя более одного узла, иногда говорят, что оно представляет «составной» элемент пользовательского интерфейса. В случае составных элементов пользовательского интерфейса узел 110 может соответствовать одному визуальному представлению, а узел 120 может соответствовать другому визуальному представлению. Однако, по меньшей мере, один из узлов 110 или 120 может не иметь никакой визуальной картинки.
Один или несколько узлов в представлении 100 может быть обозначен как выборочно отображаемый. В примере узел 120 обозначен именно так. При представлении упрощенного вида представления 100 выборочно отображаемый узел 120 не отображается. В результате, отображается только корневой узел 110 из узлов, представляющих элемент пользовательского интерфейса иерархического представления 100. Таким образом, отображаемый узел 110 иногда называется «главным» узлом.
Способом, изображенным на Фиг.1, могут быть представлены намного более сложные пользовательские интерфейсы, содержащие многочисленные элементы. Каждый из элементов может сам содержать другие элементы пользовательского интерфейса, добавляющие дополнительные слои сложности (например, большее количество узлов, включая выборочно отображаемые узлы), не изображенные на Фиг.1. Кроме того, различные дочерние узлы могут быть главными узлами для представлений других элементов пользовательского интерфейса.
Фиг.1 изображает полный вид иерархического представления элемента пользовательского интерфейса, включая выборочно отображаемые дочерние узлы (например, узел 120). Однако полный вид иерархического представления 100 может быть нежелателен при выполнении различных операций на представлении элемента пользовательского интерфейса. Например, непосредственное взаимодействие с узлом 120 может оказаться ненужным при некоторых обстоятельствах. Если это так, то может быть представлен иллюстративный упрощенный вид 200 представления, как изображено на Фиг.2.
Иллюстративный упрощенный вид 200 изображает только один узел 210. Узел 210 может быть либо объединенным представлением узлов 110 и 120 полного вида (например, где узел 120 инкапсулируется в узле 110), либо просто представлением узла 110 из полного вида.
Другое иллюстративное иерархическое представление элемента пользовательского интерфейса
Другое иллюстративное иерархическое представление 300 изображено на Фиг.3. В примере узлы 310, 320 и 325 представляют собой набор узлов 330, представляющих составной элемент пользовательского интерфейса. Из набора узлов 330 узел 310 представляет собой главный узел, а остальные узлы 320 и 325 определяются как выборочно отображаемые. Другой узел 340 не является отображаемым по выбору и показан как дочерний для одного из выборочно отображаемых узлов 320. Представление 300 включает в себя выборочно отображаемые узлы, и при необходимости обеспечивается полный вид.
Соответствующий упрощенный вид изображен на Фиг.4. Выборочно отображаемые узлы 320 и 325 не отображаются, когда требуется упрощенный вид. Вместо этого упрощенный вид 400 изображает узел 410 (например, узел 310 или комбинацию узлов 310, 320 и 325) и узел 340.
На Фиг.3 один из узлов 320 может быть обозначен как узел, под которым хранятся дочерние узлы упрощенного вида (например, узел 340). Такой узел иногда называется «контейнерным» узлом (например, для инкапсулированных узлов).
Таким образом, относительно сложное представление пользовательского интерфейса при желании может быть представлено в упрощенной форме. Нет необходимости в обеспечении полного вида 300 иерархического представления такого сложного пользовательского интерфейса для программы, написанной пользователем, который не имеет никакого интереса к отображенным по выбору узлам в иерархическом представлении. Например, программист может не интересоваться существованием или определением функциональных возможностей или же видом элементов пользовательского интерфейса, относящихся к выборочно отображаемым узлам 320 и 325. Однако у программы может возникнуть необходимость взаимодействовать с узлом 340. Таким образом, иногда желательно обеспечить упрощенный вид 400 иерархического представления пользовательского интерфейса, изображающего только узлы, представляющие интерес.
Технологии, описанные в настоящем изобретении, могут применяться к разнообразному множеству других представлений, имеющих дополнительное или меньшее количество узлов.
Краткий обзор иллюстративного варианта воплощения упрощенного вида
Фиг.5 изображает иллюстративный способ 500 осуществления упрощенного вида представления элемента пользовательского интерфейса (например, в функции пользовательского интерфейса). На шаге 510 определяется элемент пользовательского интерфейса, имеющий иерархическое представление. Например, определение может включать множество узлов, некоторые из которых являются выборочно отображаемыми.
После того как определение создано, оно может быть вызвано на шаге 520 для создания пользовательского интерфейса. Например, иерархическое представление определенного элемента пользовательского интерфейса может быть создано посредством определения и сохранено.
На шаге 530 над представлением могут быть выполнены одна или несколько операций. Такие операции могут быть выполнены через упрощенный вид иерархического представления без отображения отображаемых по выбору узлов в представлении.
При желании, вызов определения и выполнение операций над представлением может быть сделано независимо от полного вида представления. Таким образом, программисты могут записывать код или разметку без ознакомления с деталями полного вида. Практически любое из изображенных действий может быть независимо полезно, и не обязательно они должны выполняться все сразу или одной и той же программой.
Иллюстративный способ для определения элемента пользовательского интерфейса, имеющего упрощенный вид
Фиг.6 изображает иллюстративный способ для приема определения элемента пользовательского интерфейса, имеющего иерархическое представление с упрощенным видом. Определение может быть создано с использованием различных языков, таких как язык разметки (например, XML расширяемый язык разметки), или HTML (язык гипертекстовой разметки), или языки программирования (например, Java или C++). Таким образом, определение может быть получено из программы или задано в документе с разметкой.
На шаге 610 принимается индикационная информация одного или нескольких узлов, которые должны быть сохранены для представления элемента пользовательского интерфейса. Например, могут быть специфицированы элементы пользовательского интерфейса (например, субэлементы). Определение может показать иерархические отношения между элементами. Такое определение может включать в себя определения узлов для различных элементов, формирующих составной элемент пользовательского интерфейса.
На шаге 620 принимается индикационная информация, по меньшей мере, одного выборочно отображаемого узла. При желании выборочно отображаемые узлы могут выбираться автоматически, вместо того чтобы задаваться в определении. Когда обеспечивается упрощенный вид представления заданного элемента пользовательского интерфейса, выборочно отображаемые узлы являются неотображенными. Тогда определение может быть сохранено для дальнейшего вызова.
Иллюстративный способ вызова заданного элемента пользовательского интерфейса, имеющего упрощенный вид
Пример элемента пользовательского интерфейса может быть создан посредством вызова определения (например, такого, которое определяется через способ, показанный на Фиг.6). Фиг.7 изображает иллюстративный способ вызова определения элемента пользовательского интерфейса, имеющего упрощенный вид. На шаге 710 принимается запрос создать элемент пользовательского интерфейса. Такой запрос может быть принят посредством программного обеспечения (например, из программы программного обеспечения) или из документа с разметкой. Запрос необязательно должен приниматься из одного и того же объекта, который определяет элемент пользовательского интерфейса.
На шаге 720 определение иерархического представления элемента пользовательского интерфейса используется для создания подходящих узлов в иерархическом представлении пользовательского интерфейса (например, формирование составного элемента пользовательского интерфейса в соответствии с элементами пользовательского интерфейса). Созданные узлы обеспечиваются, если запрашивается полный вид представления.
На шаге 730 соответствующие узлы (например, как специфицировано определением) обозначаются как выборочно отображаемые. Такие выборочно отображаемые узлы не отображаются (например, не встречаются), когда запрашивается упрощенный вид (например, представления, в котором представлен элемент пользовательского интерфейса).
То обстоятельство, отображается ли узел на виде представления элемента пользовательского интерфейса, не зависит от того, отображается или нет (например, скрытый) соответствующий элемент пользовательского интерфейса на устройстве отображения, когда изображается элемент пользовательского интерфейса.
Иллюстративный способ выполнения операции над элементом пользовательского интерфейса, имеющим упрощенный вид
Как только определение пользовательского интерфейса вызвано для создания иерархического представления элемента пользовательского интерфейса (например, как изображено на Фиг.7), могут выполняться операции для представления. Такая операция может выполняться либо для полного, либо для упрощенного вида представления. Операции, выполняемые над упрощенным видом, включают в себя, например, перечисление дочерних узлов некоторого узла, добавление дочерних узлов к узлу, удаление дочерних узлов из узла с перемещением в пределах иерархического представления.
Иллюстративный способ для выполнения операции над упрощенным видом представления элемента пользовательского интерфейса изображен на Фиг.8. На шаге 810 принимается запрос выполнения операции над элементом пользовательского интерфейса (например, над главным узлом составного элемента пользовательского интерфейса). На шаге 820 выполняется запрошенная операция с использованием упрощенного вида иерархического представления элемента пользовательского интерфейса. Операция может привести к модификации иерархического представления (например, при добавлении или удалении узлов), или представление может не измениться (например, при перечислении или перемещении в пределах узлов).
Например, запрос на нумерацию дочерних узлов некоторого узла с использованием упрощенного вида может привести к нумерации дочерних узлов, сохраненных в дочернем узле (или внучатом узле) некоторого узла, если дочерний (внучатый) узел обозначается как выборочно отображаемый.
Запрос добавить дочерний узел к родительскому узлу, имеющему выборочно отображаемые дочерние узлы в упрощенном виде, может привести к добавлению дочернего узла на его соответствующее место в иерархии полного вида представления элемента пользовательского интерфейса, который может или не может быть родительским узлом, видимым в упрощенном виде.
Таким образом, в упрощенном виде будет казаться, как если бы дочерний узел был добавлен непосредственно под родительским узлом. Для операций, вызывающих дочерние узлы, определение иерархического представления элемента пользовательского интерфейса может использоваться для нахождения соответствующего места для добавления или нахождения дочерних узлов в пределах полного вида иерархического представления. В этом способе программа может быть написана так, чтобы взаимодействовать с упрощенным видом, и программист ограждается от неприятности знать детали полного вида, включая скрытые узлы и их расположение в иерархии.
Иллюстративные варианты воплощения, относящиеся к комбинированному блоку
Некоторые из следующих примеров описывают различную обработку, относящуюся к иллюстративному элементу пользовательского интерфейса, известному как комбинированный блок. Описанные методы могут применяться к любым элементам пользовательского интерфейса, уже существующим или разрабатываемым в дальнейшем.
Иллюстративный элемент пользовательского интерфейса - комбинированный блок
Фиг.9 изображает иллюстративный элемент 905 пользовательского интерфейса, вообще известный как комбинированный блок. В примере комбинированный блок 905 представляет собой составной элемент пользовательского интерфейса, содержащий несколько элементов пользовательского интерфейса, которые, в свою очередь, содержат дополнительные элементы пользовательского интерфейса. Комбинированный блок 905 содержит входной блок 910, раскрывающуюся кнопку 930 и всплывающее окно 920. Вообще говоря, когда пользователь щелкает на раскрывшейся кнопке 930, отображается всплывающее окно 920. В этом примере всплывающее окно 920 содержит блок 925 списка (например, визуально неразличимый из всплывающего окна 920). Однако всплывающее окно 920 может содержать альтернативные или дополнительные элементы пользовательского интерфейса (например, раскрывающееся меню). Блок 925 списка также представляет собой составной элемент пользовательского интерфейса со своими собственными элементами, такими как средство 926 просмотра с прокруткой (например, также визуально невидимое из всплывающего окна 920), содержащее панель 935 «сетки» и полосу 945 прокрутки для прокрутки пунктов 940 списка, которые заключены в пределах панели 935 сетки.
В иллюстративном примере комбинированного блока 905 элемент 925 блока списка изображается как визуально невидимый из элемента 926 средства просмотра с прокруткой и элемента 920 всплывающего окна. Таким образом, иллюстрация показывает, что всплывающее окно 920 содержит элемент 925 блока списка, который формируется добавлением панели 935 сетки к указателю пустого места, содержащемуся в пределах средства 926 просмотра с прокруткой. Возможны другие компоновки. Например, всплывающее окно 920 может содержать пользовательские элементы, отличные от блока 925 списка. Кроме того, также средство 926 просмотра с прокруткой может иметь элементы (например, меню), отличные от панели 935 сетки, содержащейся в пределах ее указателя пустого места.
Полоса 945 прокрутки также может быть представлена как составной элемент пользовательского интерфейса, содержащий элементы типа кнопок прокрутки 950, 951, 955 и 956 и бегунка 960 полосы прокрутки. Вместо изображенного комбинированного блока 905 может использоваться любое число вариаций. Например, элементы могут удаляться, могут добавляться дополнительные элементы, или могут задаваться альтернативные элементы. Например, также может быть добавлена панель горизонтальной прокрутки (не показана), чтобы помочь пользователю осуществлять прокрутку по пунктам списка, которые расположены по горизонтали.
Иллюстративное представление элемента пользовательского интерфейса - комбинированный блок (полный вид)
Фиг.10А изображает иллюстративное иерархическое представление 1000 комбинированного блока (например, которое изображено на Фиг.9), которое должно обеспечиваться (например, функцией пользовательского интерфейса), когда запрашивается полный вид. Как показано, узлы расположены в древовидной структуре иерархическим способом.
Главный узел комбинированного блока представлен номером позиции 1005, как самый верхний узел иерархии. Другие элементы комбинированного блока (например, такие, как изображены на Фиг.9) также представлены как узлы в пределах иерархического представления как всплывающий элемент 1020, входной блок 1010 и раскрывающаяся кнопка 1030. Всплывающий элемент 1020 изображен, как содержащий блок 1025 списка. Блок 925 списка представляет собой родительский узел иерархического представления, которое дополнительно содержит средство 1026 просмотра с прокруткой.
Средство 1026 просмотра с прокруткой само представляет собой родительский узел внутри иерархического представления. Средство 1026 просмотра с прокруткой само представляет собой родительский узел для элемента 1035 указателя места, для вертикальной полосы прокрутки 1030 и для горизонтальной полосы прокрутки 1040. Как отмечено выше относительно Фиг.9, нет визуальной разницы между родительским узлом 1025 блока списка и его дочерним элементом - средством 1026 просмотра с прокруткой. Это имеет место из-за того, что блок 1025 списка формируется путем добавления элемента 1045 панели сетки в качестве дочернего узла для узла 1035 элемента указателя места. Однако под элементами указателя места могут быть добавлены другие дочерние узлы для использования средства 1026 просмотра с прокруткой в комбинации с другими элементами пользователя, чтобы сформировать другие более сложные элементы пользовательского интерфейса. Наконец, пункты списка 1050А, 1050В и 1050С являются дочерними узлами панели 1045 сетки.
Пример иллюстрирует, как составной элемент пользовательского интерфейса может быть создан из других элементов пользовательского интерфейса, таким образом, может быть представлен многими узлами. Например, составной элемент пользовательского интерфейса - блок списка - может быть определен как узел 1025 блока списка вместе с его последующими узлами. Чтобы сконструировать составной элемент пользовательского интерфейса - блок списка, входной узел 1010, всплывающий узел 1020 и узел 1030 кнопки могут быть объединены под узлом 1005 комбинированного блока. Наконец, может быть вставлен (например, посредством разметки или программного обеспечения) составной элемент пользовательского интерфейса - блок списка (например, узел 1020 блока списка и его потомки). Простая ссылка к составному элементу пользовательского интерфейса - блоку списка - может привести к созданию узла 1025 блока списка и его потомков. Практически, узлы, относящиеся к пунктам списка (например, узлы 1050А, 1050В и 1050С), не могли бы быть включены в определение элемента пользовательского интерфейса - блока списка.
Многократное вложение узлов, изображенных в примере, может добавить сложность определения и управления элементом пользовательского интерфейса. Хотя представление комбинированного блока является относительно сложным, даже более сложные примеры могут быть осуществлены. Однако эти технологии могут также применяться к более простым примерам.
В примере набор узлов 1060, содержащий узлы 1010, 1020, 1025, 1026, 1030, 1031А, 1031В, 1033, 1034А, 1034В, 1035, 1040, 1041А, 1041В, 1043, 1044А, 1044В и 1045, определен как выборочно отображаемый. Когда представляется упрощенный вид представления, отображаемые по выбору узлы не отображаются.
Может быть желателен упрощенный вид иерархического представления элемента пользовательского интерфейса. Например, может быть желательно добавлять дополнительные пункты списка, не сталкиваясь с относительными сложностями иерархического представления (например, где добавить пункты списка в качестве дочерних узлов).
Иллюстративное представление элемента пользовательского интерфейса