выравнивание в списках, сформированных по шаблону

Классы МПК:G06T1/00 Обработка данных изображения общего применения
G06T11/60 редактирование фигур или текста; комбинирование фигур или текста
Автор(ы):,
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2005-05-25
публикация патента:

Изобретение относится к области компьютерной графики и может быть использовано для формирования контуров объектов на дисплее. Техническим результатом является получение улучшенного управляющего элемента списка с обеспечением возможности реализации сложного поведения с перекрытием и выполнением вычислений размеров интеллектуальным способом без усложнения. При выравнивании в списках, сформированных по шаблону, управляющий элемент списка обеспечивает возможность гармонизированного отображения неоднородных данных элементов списка с использованием, по меньшей мере, двух шаблонов. Шаблоны определяют разметку для данных элементов списка. К шаблонам обращается интерфейс при вычислении разметки. Интерфейс обеспечивает информацию относительно местоположения, по меньшей мере, одной линии сетки; разметка для данных элементов списка основана на этом местоположении. Управляющий элемент списка реализует интерфейс, тем самым обеспечивая возможность неоднородным шаблонам основываться на одном интерфейсе, обеспечивающем одно местоположение линии сетки. Для учета требований каждого элемента списка к местоположению линии сетки интерфейс запрашивает информацию, касающуюся предварительного определения местоположения линии сетки для каждого элемента списка, и основывает окончательное местоположение линии сетки на этой информации. 5 н. и 32 з.п. ф-лы, 9 ил.

выравнивание в списках, сформированных по шаблону, патент № 2386171 выравнивание в списках, сформированных по шаблону, патент № 2386171 выравнивание в списках, сформированных по шаблону, патент № 2386171 выравнивание в списках, сформированных по шаблону, патент № 2386171 выравнивание в списках, сформированных по шаблону, патент № 2386171 выравнивание в списках, сформированных по шаблону, патент № 2386171 выравнивание в списках, сформированных по шаблону, патент № 2386171 выравнивание в списках, сформированных по шаблону, патент № 2386171 выравнивание в списках, сформированных по шаблону, патент № 2386171

Формула изобретения

1. Способ генерирования информации отображения для набора данных списка, причем упомянутые данные списка содержат, по меньшей мере, один набор данных элементов списка, заключающийся в том, что выбирают для каждого набора данных элементов списка шаблон из набора шаблонов, состоящего, по меньшей мере, из двух возможных шаблонов, причем каждый из возможных шаблонов обеспечивает соответствующую стратегию разметки для вычисления графической разметки упомянутого поднабора данных элементов списка, и, по меньшей мере, две из упомянутых соответствующих стратегий разметки обеспечивают графическую разметку на основе местоположения линии сетки, и обеспечивают интерфейс для использования каждым из упомянутых шаблонов, причем упомянутый интерфейс обеспечивает информацию, устанавливающую местоположение упомянутой линии сетки.

2. Способ по п.1, в котором дополнительно отображают упомянутые данные списка путем отображения каждого из упомянутых наборов данных элементов списка в соответствии с выбранным шаблоном и соответствующей стратегией разметки.

3. Способ по п.1, в котором упомянутый интерфейс устанавливает местоположение линии сетки путем определения для каждых данных элементов списка, где выбранный шаблон для упомянутого набора обеспечивает соответствующую стратегию разметки для отображения данных элементов списка на основе местоположения, по меньшей мере, одной линии сетки, предварительное вычисление местоположения упомянутой линии сетки.

4. Способ по п.1, в котором линия сетки содержит границу столбца для упомянутых данных списка.

5. Способ по п.1, в котором упомянутый способ реализован в управляющем элементе списка.

6. Способ по п.1, в котором графическая разметка включает в себя информацию границы для, по меньшей мере, одного элемента из данных элементов списка в упомянутом наборе данных элементов списка.

7. Способ по п.6, в котором для каждого набора данных элементов списка, где выбранный шаблон для упомянутого набора обеспечивает соответствующую стратегию разметки для отображения данных элементов списка на основе местоположения упомянутой линии сетки, упомянутая информация границы определяет границу для, по меньшей мере, одного элемента данных элементов списка на основе упомянутой линии сетки.

8. Способ по п.1, в котором, по меньшей мере, две из соответствующих стратегий разметки обеспечивают графическую разметку на основе местоположения двух или более линий сетки, причем упомянутый интерфейс обеспечивает информацию, устанавливающую местоположение для каждой из упомянутых двух или более линий сетки.

9. Способ определения графической разметки данных элементов списка, заключающийся в том, что выбирают шаблон из набора шаблонов, состоящего, по меньшей мере, из двух возможных шаблонов, причем каждый из возможных шаблонов обеспечивает соответствующую стратегию разметки для вычисления графической разметки данных элементов списка на основе местоположения, по меньшей мере, одной линии сетки; используют интерфейс для запроса местоположения для выбранной линии сетки из упомянутых, по меньшей мере, одной линий сетки, и используют упомянутое местоположение для вычисления графической разметки для упомянутых данных элементов списка.

10. Способ по п.9, в котором дополнительно в ответ на запрос с интерфейса вычисляют предварительные данные местоположения для упомянутой, по меньшей мере, одной линии сетки.

11. Способ по п.9, в котором выбранная линия сетки содержит границу столбца для упомянутых данных списка.

12. Способ по п.9, в котором интерфейс реализован в управляющем элементе списка.

13. Способ по п.9, в котором графическая разметка включает в себя информацию границы для, по меньшей мере, одного элемента данных из упомянутых данных элементов списка.

14. Способ по п.13, в котором информация границы определяет границу для, по меньшей мере, одного элемента данных элементов списка на основе одной из упомянутых, по меньшей мере одной, линий списка.

15. Способ по п.9, в котором этап использования интерфейса для запроса местоположения включает запрос местоположения для каждой из упомянутых, по меньшей мере, одной линий сетки.

16. Способ по п.9, в котором дополнительно после запроса с упомянутого интерфейса вычисляют предварительное местоположение линии сетки для упомянутых данных элементов списка.

17. Устройство отображения, предназначенное для отображения на нем данных разметки списка, содержащих, по меньшей мере, один набор данных разметки элементов списка, причем каждые из упомянутых данных разметки элементов списка соответствуют набору данных разметки элементов списка и вычисляются путем выбора для каждого набора данных элементов списка шаблона из набора шаблонов, состоящего, по меньшей мере, из двух возможных шаблонов, причем каждый из возможных шаблонов обеспечивает соответствующую стратегию разметки для вычисления графической разметки упомянутого набора данных элементов списка, и, по меньшей мере, две из упомянутых соответствующих стратегий разметки обеспечивают графическую разметку на основе местоположения, по меньшей мере, одной линии сетки, и обеспечения интерфейса для использования каждым из упомянутых шаблонов, причем упомянутый интерфейс обеспечивает информацию, устанавливающую местоположение упомянутой, по меньшей мере, одной линии сетки.

18. Устройство отображения по п.17, в котором упомянутый интерфейс устанавливает упомянутое местоположение линии сетки путем определения для каждого набора данных элементов списка, где выбранный шаблон для упомянутого набора обеспечивает соответствующую стратегию разметки для отображения данных элементов списка на основе местоположения, по меньшей мере, одной линии сетки, предварительное вычисление местоположения упомянутой линии сетки.

19. Устройство отображения по п.17, в котором упомянутая, по меньшей мере, одна линия сетки содержит границу столбца для упомянутых данных списка.

20. Устройство отображения по п.17, в котором упомянутые данные разметки списка вычисляются управляющим элементом списка.

21. Устройство отображения по п.17, в котором графическая разметка включает в себя информацию границы для, по меньшей мере, одного элемента данных элементов списка в упомянутом наборе данных элементов списка.

22. Устройство отображения по п.21, в котором для каждого набора данных элементов списка, где выбранный шаблон для упомянутого набора обеспечивает соответствующую стратегию разметки для отображения данных элементов списка на основе местоположения, по меньшей мере, одной линии сетки, упомянутая информация границы определяет границу для, по меньшей мере, одного элемента данных элементов списка на основе упомянутой линии сетки.

23. Машиночитаемый носитель, содержащий исполняемые компьютером инструкции для генерации информации отображения для набора данных списка, причем данные списка содержат, по меньшей мере, один набор данных элементов списка, причем упомянутые инструкции предназначены для выполнения этапов, включающих в себя выбор для каждого набора данных элементов списка шаблона из набора шаблонов, состоящего, по меньшей мере, из двух возможных шаблонов, причем каждый из возможных шаблонов обеспечивает соответствующую стратегию разметки для вычисления графической разметки упомянутого набора данных элементов списка, и, по меньшей мере, две из упомянутых соответствующих стратегий разметки обеспечивают графическую разметку на основе местоположения линии сетки, и обеспечение интерфейса для использования каждым из упомянутых шаблонов, причем упомянутый интерфейс обеспечивает информацию, устанавливающую местоположение упомянутой, по меньшей мере, одной линии сетки.

24. Машиночитаемый носитель по п.23, в котором упомянутые этапы дополнительно включают в себя отображение упомянутых данных списка путем отображения каждого из упомянутых наборов данных элементов списка в соответствии с выбранным шаблоном и соответствующей стратегией разметки.

25. Машиночитаемый носитель по п.23, в котором упомянутый интерфейс устанавливает упомянутое местоположение линии сетки путем определения для каждого набора данных элементов списка, где выбранный шаблон для упомянутого набора обеспечивает соответствующую стратегию разметки для отображения данных элементов списка на основе местоположения, по меньшей мере, одной линии сетки, предварительное вычисление местоположения упомянутой линии сетки.

26. Машиночитаемый носитель по п.23, в котором упомянутая, по меньшей мере, одна линия сетки содержит границу столбца для упомянутых данных списка.

27. Машиночитаемый носитель по п.23, в котором графическая разметка включает в себя информацию границы для, по меньшей мере, одного элемента данных элементов списка в упомянутом наборе данных элементов списка.

28. Машиночитаемый носитель по п.27, в котором для каждого набора данных элементов списка, где выбранный шаблон для упомянутого набора обеспечивает соответствующую стратегию разметки для отображения данных элементов списка на основе местоположения упомянутой, по меньшей мере, одной линии сетки, упомянутая информация границы определяет границу для, по меньшей мере, одного элемента данных элементов списка на основе упомянутой линии сетки.

29. Машиночитаемый носитель по п.23, в котором, по меньшей мере, две из упомянутых соответствующих стратегий разметки обеспечивают графическую разметку на основе местоположения двух или более линий сетки, причем интерфейс обеспечивает информацию, устанавливающую местоположение для каждой из упомянутых двух или более линий сетки.

30. Машиночитаемый носитель, содержащий исполняемые компьютером инструкции для определения графической разметки данных элементов списка, причем упомянутые инструкции предназначены для выполнения этапов, включающих в себя выбор шаблона из набора шаблонов, состоящего, по меньшей мере, из двух возможных шаблонов, причем каждый из возможных шаблонов обеспечивает соответствующую стратегию разметки для вычисления графической разметки данных элементов списка на основе местоположения, по меньшей мере, одной линии сетки; использование интерфейса для запроса местоположения для выбранной линии сетки из упомянутых, по меньшей мере, одной линий сетки, и использование упомянутого местоположения для вычисления графической разметки для упомянутых данных элементов списка.

31. Машиночитаемый носитель по п.30, в котором упомянутые этапы дополнительно включают в себя в ответ на запрос с интерфейса вычисление предварительных данных местоположения для упомянутой, по меньшей мере, одной линии сетки.

32. Машиночитаемый носитель по п.30, в котором выбранная линия сетки содержит границу столбца для упомянутых данных списка.

33. Машиночитаемый носитель по п.30, в котором интерфейс реализован в управляющем элементе списка.

34. Машиночитаемый носитель по п.30, в котором графическая разметка включает в себя информацию границы для, по меньшей мере, одного элемента данных из упомянутых данных элементов списка.

35. Машиночитаемый носитель по п.34, в котором информация границы определяет границу для, по меньшей мере, одного элемента данных элементов списка на основе одной из упомянутых, по меньшей мере одной, линий списка.

36. Машиночитаемый носитель по п.30, в котором этап использования интерфейса для запроса местоположения включает в себя запрос местоположения для каждой из упомянутых, по меньшей мере, одной линий сетки.

37. Машиночитаемый носитель по п.30, в котором упомянутые этапы дополнительно включают в себя после запроса с упомянутого интерфейса вычисление предварительного местоположения линии сетки для упомянутых данных элементов списка.

Описание изобретения к патенту

Область техники

Настоящее изобретение относится к области компьютерной графики. Более конкретно, настоящее изобретение относится к формированию контуров объектов на дисплее.

Предшествующий уровень техники

Для отображения данных пользователю согласованным и понятным способом используются различные методы. Например, данные могут отображаться в пронумерованном списке. Чтобы представить данные с различными компонентами более четко, данные могут также отображаться в таблице. Имеющееся пространство разделяется на отдельные ячейки, причем каждая ячейка представляет собой контейнер для ее содержимого. Часто крупные элементы (например, изображения) должны сегментироваться по ячейкам, чтобы создать желаемый контур.

Ячейки в таблице упорядочиваются в строки и столбцы. Должна обеспечиваться информация для определения ширины столбцов и высоты строк, причем эта информация будет определять размеры и размещение каждой ячейки в таблице. Например, для столбца может быть задана фиксированная ширина. Альтернативно, ширина столбца может подстраиваться на основе данных в столбце. Чтобы обеспечить более сложное представление, ячейки таблицы также могут объединяться. Однако поскольку ширина столбцов в общем случае постоянна в таблице (за исключением случаев слияний), там, где имеется ряд таких слияний, настройка ширины строк и столбцов таким образом, чтобы получаемая в результате таблица была четкой и не искаженной, может оказаться невозможной.

С появлением пользовательских интерфейсов в стиле браузера развилось новое направление в связи с включением изображений и заливки текста в отображения данных. Для обеспечения возможности реализации более сложного характера таблиц может быть использован управляющий элемент пользовательского интерфейса (UI), известный как табличный список. Управляющий элемент UI в форме табличного списка используется для того, чтобы обеспечить возможность реализации сложного характера списка для отображения данных пользователю. Управляющий элемент UI в форме табличного списка обеспечивает значительное преимущество за счет предоставления единой поведенческой реализации для создания таблиц. Управляющий элемент UI в форме табличного списка осуществляет это за счет обеспечения визуального «шаблона», который используется для описания представления каждого элемента в списке.

Одной проблемой, сохраняющейся при использовании управляющего элемента UI в форме табличного списка, является выравнивание элементов в списке относительно друг друга. Может быть полезным представить неоднородные данные посредством управляющего элемента UI в форме табличного списка. Данные могут быть неоднородными по размеру, типу или иным образом. Неоднородные данные могут также включать в себя элементы дизайна, такие как фоны. Современные реализации не позволяют создавать табличный список, который учитывает неоднородность данных, чтобы обеспечить возможность надлежащего размещения элементов списка, что позволит создавать таблицу, включающую в себя неоднородные данные, при обеспечении возможности выравнивания неоднородных данных регулярным образом, не требуя от пользователя трудовых затрат как на первоначальном этапе, так и в случае изменений в таблице. Дополнительно, современные реализации не обеспечивают возможность сложного поведения, с перекрытием. Такое поведение может быть желательным для создания более понятного или хорошо проработанного представления для пользователя.

Ввиду описанного выше, существует потребность в системах и способах, которые преодолевают ограничения и недостатки, свойственные предшествующему уровню техники.

Сущность изобретения

Настоящее изобретение направлено на улучшенный управляющий элемент списка, который обеспечивает возможность реализации сложного поведения с перекрытием и выполняет вычисления размеров интеллектуальным способом без усложнения. Для выполнения этого предложен управляющий элемент списка с функциональными возможностями разметки сетки.

Предусмотрен интерфейс, который обеспечивает возможность информационного обмена между списком и элементами списка по шаблону. Чтобы обеспечить результат с выравниванием столбцов (или с выравниванием строк) в списке с элементами, использующими неоднородные шаблоны, шаблоны основываются на интерфейсе для выполнения вычислений столбцов (или вычислений строк). Шаблоны, при включении в качестве части списка, подчиняются списку как функции реализации интерфейса. По умолчанию функция реализации является самим шаблоном, так что шаблон, не помещенный в контекст списка, будет вычислять значения ширины своих собственных столбцов или строк.

Дополнительные признаки и преимущества изобретения поясняются в последующем подробном описании иллюстративных вариантов осуществления со ссылками на иллюстрирующие чертежи.

Краткое описание чертежей

Приведенная выше сущность изобретения, а также последующее детальное описание предпочтительных вариантов осуществления будут лучше поняты при изучении во взаимосвязи с приложенными чертежами. Для целей иллюстрации изобретения на чертежах показаны приведенные для примера структуры, соответствующие изобретению; однако изобретение не ограничивается конкретными раскрытыми способами и инструментальными средствами. На чертежах представлено следующее.

Фиг. 1 - блок-схема, иллюстрирующая примерную вычислительную среду, в которой может быть реализовано изобретение.

Фиг. 2А - блок-схема примера шаблона для списка.

Фиг. 2В - блок-схема второго примера шаблона для элемента списка.

Фиг. 3А - блок-схема первого примера шаблона с линиями сетки.

Фиг. 3В - блок-схема второго примера шаблона с линиями сетки.

Фиг. 4 - блок-схема списка, выровненного в соответствии с линиями сетки согласно первому и второму примерам шаблонов.

Фиг. 5 - блок-схема, иллюстрирующая управляющий элемент списка согласно одному варианту осуществления изобретения.

Фиг. 6 - пример способа генерации информации отображения для набора данных списка согласно одному варианту осуществления изобретения.

Фиг. 7 - пример способа определения графической разметки данных элемента списка согласно одному варианту осуществления изобретения.

Детальное описание предпочтительных вариантов осуществления

Примерная вычислительная среда

На фиг. 1 представлена блок-схема, иллюстрирующая примерную вычислительную среду, в которой может быть реализовано изобретение. Среда 100 вычислительной системы является только одним примером подходящей вычислительной среды и не предполагает никаких ограничений объема использования или функциональных возможностей изобретения. Вычислительная среда 100 не должна интерпретироваться как имеющая какую-либо зависимость или требование относительно любого одного или комбинации компонентов, показанных в примерной операционной среде 100.

Изобретение может быть реализовано с использованием других сред или конфигураций универсальных или специализированных вычислительных систем. Примеры хорошо известных вычислительных систем, сред и/или конфигураций, которые могут использоваться в связи с изобретением, включают в себя, без ограничения указанным, персональные компьютеры, серверные компьютеры, переносные или портативные устройства, мультипроцессорные системы, микропроцессорные системы, приставки, программируемые приборы бытовой электроники, сетевые ПК, миникомпьютеры, центральные компьютеры, встроенные системы, распределенные вычислительные среды, которые включают в себя любые из вышеуказанных систем или устройств, и т.п.

Изобретение может быть описано в общем контексте исполняемых компьютером команд, таких как программные модули, исполняемые компьютером. В общем случае программные модули включают в себя стандартные программы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют некоторые абстрактные типы данных. Изобретение также может быть реализовано в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, которые связаны коммуникационной сетью или другой средой передачи данных. В распределенной вычислительной среде программные модули и другие данные могут размещаться как в локальных, так и удаленных компьютерных носителях для хранения данных, включая устройства памяти.

Как показано на фиг. 1, приведенная для примера система для реализации изобретения включает в себя универсальное вычислительное устройство в форме компьютера 110. Компоненты компьютера 110 могут включать в себя, без ограничения указанным, блок 120 обработки, системную память 130 и системную шину 121, которая связывает различные системные компоненты, включая системную память, с блоком 120 обработки. Блок 120 обработки может представлять множество логических блоков обработки, таких как поддерживаемые на многозадачном процессоре. Системная шина 121 может быть любой из различных типов шинных структур, включая шину памяти или контроллер памяти, шину периферийных устройств, локальную шину, использующую любую из разнообразных шинных архитектур. В качестве примера, но не ограничения, такие архитектуры включают в себя шину ISA (Архитектура, соответствующая промышленному стандарту), шину MCA (Микроканальная архитектура), усовершенствованную шину ISA (EISA), локальную шину VESA (Ассоциации по стандартам в области видеоэлектроники), шину соединения периферийных компонентов (PCI), также известную как шина Mezzanine. Системная шина 121 может также быть реализована как двухточечное соединение, переключающее средство и т.п. между устройствами, осуществляющими информационный обмен.

Компьютер 110 в типовом случае включает в себя множество считываемых компьютером сред (носителей). Считываемые компьютером носители могут представлять собой любые известные носители, к которым компьютер 110 может осуществлять доступ, и включают в себя энергозависимые и энергонезависимые носители, съемные и несъемные носители. К примеру, но не в качестве ограничения, считываемые компьютером носители могут содержать компьютерные носители записи и коммуникационную среду. Компьютерные носители записи включают в себя энергозависимые и энергонезависимые носители, съемные и несъемные носители, реализованные любым методом или по любой технологии для хранения информации такой, как считываемые компьютером команды, структуры данных, программные модули или иные данные. Компьютерные носители записи содержат, не ограничиваясь указанным, оперативную память (RAM, ОЗУ), постоянную память (ROM, ПЗУ), электронно-стираемую программируемую постоянную память (EEPROM, ЭСППЗУ), память с групповой перезаписью (флэш-память) или другие технологии памяти, CD-ROM, универсальные цифровые диски (DVD) или иные устройства памяти на оптических дисках, магнитных кассетах, магнитных лентах, устройства памяти на магнитных дисках или иные магнитные устройства памяти, или любые иные носители, которые могут быть использованы для хранения желательной информации и к которым может быть обеспечен доступ компьютера 110. Коммуникационная среда (среда передачи) в типовом случае воплощает считываемые компьютером команды, структуры данных, программные модули или иные данные в модулированном сигнале данных, таком как несущее колебание или иной транспортный механизм (механизм передачи), и включает в себя любую среду доставки информации. Термин «модулированный сигнал данных» означает сигнал, у которого одна или более характеристик установлены или изменяются таким образом, чтобы кодировать информацию в сигнале. В качестве примера, но не ограничения, коммуникационная среда включает в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводную среду передачи, такую как акустическая, радиочастотная, инфракрасная и другая беспроводная среда передачи. Комбинации любых вышеуказанных сред также должны быть включены в объем носителей (сред), считываемых компьютером.

Системная память 130 включает в себя компьютерный носитель записи в форме энергозависимой и/или энергонезависимой памяти такой, как постоянная память (ПЗУ, ROM) 131 и оперативная память (ОЗУ, RAM) 132. Базовая система ввода/вывода (BIOS) 133, содержащая базовые подпрограммы, которые способствуют переносу информации между элементами в компьютере 110, например, при запуске, в типовом случае сохранена в ПЗУ 131. ОЗУ 132 в типовом случае содержит данные и/или программные модули, которые непосредственно доступны и/или обрабатываются блоком 120 обработки. В качестве примера, но не ограничения, на фиг. 1 показаны операционная система 134, прикладные программы 135, другие программные модули 136 и программные данные 137.

Компьютер 110 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители записи. Например, на фиг. 1 показан дисковод 141 жестких дисков для считывания с несъемного энергонезависимого магнитного носителя и записи на него, дисковод 151 магнитных дисков для считывания со съемного энергонезависимого магнитного диска 152 и записи на него и дисковод 155 оптических дисков для считывания со съемного энергонезависимого оптического диска 156 или записи на оптический диск, такой как, например, ПЗУ на компакт-диске (CD-ROM), или иные оптические носители записи. Другие съемные и несъемные, энергозависимые и энергонезависимые компьютерные носители записи, которые могут быть использованы в приведенной для примера операционной среде, включают в себя, не ограничиваясь указанным, кассеты на магнитных лентах, карты флэш-памяти, DVD, цифровые видеомагнитные ленты, твердотельные ОЗУ, твердотельные ПЗУ и т.п. Дисковод 141 жестких дисков в типовом случае соединен с системной шиной 121 посредством интерфейса несъемной памяти, такого как интерфейс 140, и дисковод 151 магнитных дисков и дисковод 155 оптических дисков соединены с системной шиной 121 в типовом случае посредством интерфейса съемной памяти, такого как интерфейс 150.

Дисководы и связанные с ними считываемые компьютером носители, описанные выше и показанные на фиг. 1, обеспечивают хранение считываемых компьютером команд, структур данных, программных модулей и других данных для компьютера 110. На фиг. 1, например, показано, что дисковод 141 жесткого диска хранит операционную систему 144, прикладные программы (приложения) 145, другие программные модули 146 и программные данные 147. Заметим, что эти компоненты могут быть теми же самыми или отличающимися от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147 обозначены отличающимися ссылочными позициями для иллюстрации того, что они, как минимум, являются другими копиями. Пользователь может вводить команды и информацию в компьютер 110 посредством устройств ввода, например, клавиатуры 162 и координатно-указательного устройства 161, такого как мышь, трекбол или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую панель, спутниковую параболическую антенну, сканер и т.п. Эти и другие устройства ввода часто соединяются с блоком 120 обработки через интерфейс 160 пользовательского ввода, связанный с системной шиной 121, но могут быть соединены и посредством других интерфейсов и структур шин, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB) и т.д. Монитор 191 или иное устройство отображения также соединено с системной шиной 121 через интерфейс, например, такой как видеоинтерфейс 190. Помимо монитора компьютеры также могут включать в себя другие периферийные устройства вывода, например, громкоговорители 197 и принтер 196, которые могут быть соединены через интерфейс 195 устройств вывода.

Компьютер 110 может работать в сетевой или распределенной среде с использованием логических соединений с одним или более удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может представлять собой персональный компьютер (ПК), сервер, маршрутизатор, сетевой ПК, одноранговое устройство или другой обычный сетевой узел и в типовом случае включает в себя многие или все из элементов, описанных выше применительно к компьютеру 110, хотя на фиг. 1 показано только устройство 181 памяти. Логические соединения, показанные на фиг. 1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (сеть широкого охвата - WAN) 173, но могут включать в себя и другие сети/шины. Такие сетевые среды являются общеизвестными в офисах, компьютерных сетях предприятий, интранетах и в Интернет.

При использовании в сетевой среде локальной сети (LAN) компьютер 110 соединяется с локальной сетью 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде глобальной сети (WAN) компьютер 110 в типовом случае включает в себя модем 172 или иное средство для установления связи в глобальной сети 173, такой как Интернет. Модем 172, который может быть внутренним или внешним, может быть соединен с системной шиной 121 через интерфейс 160 пользовательского ввода или иной подходящий механизм. В сетевой среде программные модули, изображенные по отношению к компьютеру 110, или их части могут быть сохранены в удаленном устройстве памяти. В качестве примера, но не ограничения, фиг. 1 иллюстрирует удаленные прикладные программы 185 как хранящиеся в устройстве 181 памяти. Следует иметь в виду, что показанные сетевые соединения приведены для примера и что могут быть использованы и другие средства установления канала связи между компьютерами.

Выравнивание неоднородных разметок в списке А

Для того чтобы обеспечить представление неоднородной информации в списке для элементов списка создаются неоднородные шаблоны. Элементы списка содержатся в управляющем элементе списка, являющемся группирующим контейнером для элементов списка. Управляющий элемент списка использует шаблоны для обеспечения разметки для данных списка.

На фиг. 2А представлена блок-схема приведенного для примера шаблона элемента списка. На фиг. 2А показан первый шаблон 200, который включает в себя подэлементы поля 210 фотографии, поля 220 имени и поля 240 контактной информации. Поле 210 фотографии и поле 220 имени показаны как перекрывающиеся. Шаблон может включать в себя информацию о том, каким образом размещать эти поля относительно друг друга.

Такие шаблоны используются для отображения данных. Если используется только один шаблон, такой как первый шаблон 200, то список состоит из одного или более элементов списка, упорядоченных в соответствии со спецификациями первого шаблона 200. Первый шаблон 200 может обеспечить то, что каждый из подэлементов 210, 220 и 240 шаблона будет иметь только определенный размер. В этом случае представление списка будет упорядоченным, хотя если данные, подлежащие отображению в подэлементе, превышают назначенный им размер, то может оказаться, что эти данные не смогут быть отображены в области, предназначенной для этого подэлемента.

Альтернативно, шаблон может позволить подэлементам данного элемента списка иметь различные размеры. Например, первый шаблон 200 может обеспечить возможность заполнения поля 220 имени и поля 240 контактной информации текстовыми строками с различной длиной. Поле 220 имени может быть также заполнено графикой, например, в случае, когда поле 220 имени используется для имени компании, и то же самое используемое поле 220 имени является графическим представлением логотипа компании. Поле 210 фотографии 210 может быть ограничено шаблоном до конкретного размера или может быть переменным в зависимости от используемой фотографии. Шаблон может быть достаточно гибким для обработки в ситуациях, когда не обеспечивается никакой фотографии. Можно видеть, что в этих различных сценариях различные элементы списка, введенные в соответствии с первым шаблоном 200, могут иметь подэлементы различных размеров.

Дополнительно различные шаблоны могут включать в себя различные подэлементы. На фиг. 2В показана блок-схема второго приведенного для примера шаблона для элемента списка. На фиг. 2В показан второй шаблон 202, который включает в себя подэлементы поля 222 имени, поля 232 информации принадлежности и поля 242 контактной информации. Во втором шаблоне 202 отсутствует поле фотографии. Подэлемент для информации принадлежности, включенный во второй шаблон 202, отсутствует в первом шаблоне 200.

В заданном списке используются два или более шаблонов, таких как первый шаблон 200 и второй шаблон 202. Для обеспечения выравнивания сходных элементов по отношению друг к другу шаблоны используют линии сетки. На фиг. 3А показана блок-схема первого примерного шаблона с линиями сетки. Как показано на фиг. 3А, представлены четыре линии сетки по отношению к первому примерному шаблону 200. Первая линия 300 сетки указывает начало поля 220 имени. Вторая линия 310 сетки указывает конец поля 220 имени. Третья линия 320 сетки указывает начало поля 240 контактной информации, и четвертая линия 330 сетки указывает конец поля 240 контактной информации. Если положения линий сетки в ряде элементов списка согласно первому шаблону 200 скоординированы, то элементы списка будут отображать данные неоднородным способом.

На фиг. 3В показана блок-схема второго примерного шаблона с линиями сетки. Как показано на фиг. 3В, представлены четыре линии сетки по отношению ко второму примерному шаблону 202. Первая линия 302 сетки указывает начало поля 222 имени. Вторая линия 312 сетки указывает конец поля 222 имени. Третья линия 322 сетки указывает начало поля 242 контактной информации, и четвертая линия 332 сетки указывает конец поля 242 контактной информации.

В списке, содержащем элементы списка, которые упорядочены по шаблону согласно первому шаблону 200 и второму шаблону 202, если положения всех первых линий 300 и 302 сетки выровнены, то различные экземпляры поля 220 и 222 имени будут начинаться в одинаковом местоположении. Аналогичным образом, если положения всех вторых линий 310 и 312 сетки во всех элементах списка выровнены, то все различные экземпляры поля 220 и 222 имени будут заканчиваться в одинаковом местоположении. Это обеспечивает некоторую регулярность представления списка по отношению к полю имени, даже если шаблоны требуют обязательного включения различной информации или использования различных разметок для информации.

Аналогичным образом, если положения всех третьих линий 320 и 322 сетки и всех четвертых линий 330 и 332 сетки выровнены, то во всех различных экземплярах элементов списка поля 240 и 242 контактной информации будут выровнены. На фиг. 4 представлена блок-схема списка, выровненного в соответствии с линиями сетки в первом и втором примерных шаблонах. На фиг. 4 список 400 состоит из трех элементов 401, 402 и 403 списка. Элементы 401 и 402 списка размечены в соответствии с первым примерным шаблоном. Таким образом, фотографии 411 и 412 размечены в соответствии с информацией поля фотографии в первом шаблоне. Информация 421 и 422 имени размечена в соответствии с информацией поля имени в первом шаблоне. Контактная информация 441 и 442 размечена в соответствии с полем контактной информации в первом шаблоне.

Элемент 403 списка размечен в соответствии со вторым примерным шаблоном. Таким образом, информация 423 имени размечена в соответствии с информацией поля имени во втором шаблоне, информация 433 принадлежности - в соответствии с полем информации принадлежности во втором шаблоне, и контактная информация - в соответствии с полем 443 контактной информации

В списке 400 можно видеть, что начало и конец областей, содержащих информацию 421, 422 и 423 имени, выровнены и что начало и конец областей, содержащих контактную информацию 441, 442 и 443, выровнены. Это выравнивание обусловлено выравниванием линий сетки в шаблонах, используемых для отображения каждого из элементов 401, 402 и 403 списка.

Создание выравнивания для неоднородных шаблонов

Чтобы обеспечить возможность использования неоднородных шаблонов для создания списка, выровненного по отношению к предварительно определенным линиям сетки, шаблоны, используемые для элементов списка, факторизуют определенные вычисления столбцов на интерфейс. Если вычисляется местоположение линий сетки, шаблон ссылается на функцию реализации интерфейса. Установкой по умолчанию для функции реализации интерфейса является сам шаблон, так что шаблон, который не помещается в контекст списка, будет вычислять для себя самого местоположение линий сетки.

В одном варианте управляющий элемент списком создает содержимое (контент) путем итерации по элементам данных списка, выбирая соответствующий шаблон для каждого элемента данных, создавая экземпляр управляющего элемента из такого шаблона и добавляя этот управляющий элемент в качестве дочернего элемента. Когда этот дочерний управляющий элемент добавляется, интерфейс, который управляет вычислениями столбцов, настраивается на интерфейс вычисления столбцов управляющего элемента списка. Таким путем, когда шаблон для дочернего элемента вычисляет местоположение линий сетки при определении ширины столбцов, он будет ссылаться на управляющий элемент списка, в частности, на интерфейс вычисления столбцов, реализованный управляющим элементом списка.

В одном варианте осуществления шаблон выполняет предварительное вычисление линий сетки на основе требований по пространству для полей, определенных шаблоном, и данных, помещаемых в шаблон. Интерфейс вычисления столбцов управляющего элемента списка запрашивает каждый элемент списка о результатах этого предварительного вычисления. Интерфейс вычисления столбцов управляющего элемента списка затем вычисляет местоположение для линий сетки на основе этих вычислений и любой дополнительной стратегии или ограничений. Местоположения для линий сетки затем возвращаются в шаблоны через интерфейс.

На фиг. 5 представлена блок-схема, иллюстрирующая управляющий элемент списка в соответствии с одним вариантом осуществления изобретения. Как показано на фиг. 5, управляющий элемент 530 списка включает в себя интерфейс вычисления столбцов - интерфейс 520 администратора линий сетки. Каждый элемент 500А-500N списка включает в себя стратегии 510А-510N разметки шаблона соответственно. Различные шаблоны могут быть использованы для создания элементов 500А-500N списка. Каждая стратегия 510А-510N разметки шаблона выводится из шаблона, который используется для элемента списка. Стратегии разметки шаблона описывают разметку элемента списка. Однако, как показано на фиг. 5, в управляющем элементе 530 списка стратегии 510А-510N разметки шаблона ссылаются на интерфейс 520 администратора линий сетки для определения конкретных местоположений столбцов. Как описано выше, размещение некоторых линий сетки определяется интерфейсом 520 администратора линий сетки. Таким образом, может быть обеспечена гармонизация неоднородных шаблонов.

Управляющий элемент списка генерирует информацию отображения с использованием шаблонов и данных списка. На фиг. 6 показан примерный способ генерации информации отображения для набора данных списка в соответствии с одним вариантом осуществления изобретения. Данные списка группируются в наборы данных элементов списка. Каждый набор данных элементов списка содержит подэлементы для элемента списка. Например, данные элемента списка могут включать в себя фотографию, имя и контактную информацию, которые должны быть отображены в одном элементе списка.

Как показано на фиг. 6, на этапе 600 для каждого набора данных элементов списка выбирается шаблон. Шаблон выбирается из набора шаблонов, состоящего, по меньшей мере, из двух возможных шаблонов. Каждый из двух возможных шаблонов обеспечивает стратегию разметки для вычисления графической разметки для данных элементов списка. По меньшей мере, два возможных шаблона основываются на местоположении, по меньшей мере, одной линии сетки для определения графической разметки для элементов данных списка. В одном варианте осуществления шаблоном может использоваться более одной линии сетки для определения графической разметки для элементов данных списка.

На этапе 610 обеспечивается интерфейс для использования соответствующим шаблоном. Интерфейс обеспечивает информацию, устанавливающую местоположение используемых линий сетки. Это может быть сделано путем запроса предварительной информации, относящейся к местоположению линии сетки из шаблонов, которые используют линию сетки. Таким способом требования шаблонов для элементов списка учитываются, когда интерфейс определяет местоположение линии сетки. Хотя описано определение местоположения одной линии сетки, более чем одна линия сетки может быть определена по своему местоположению таким же образом, посредством интерфейса, который запрашивает элементы списка, определенные по шаблону, относительно предварительных местоположений линий сетки и с использованием затем этих местоположений (и другой информации разметки списка), чтобы определить местоположение линий сетки.

Разметка для каждого элемента списка определяется с использованием шаблона и интерфейса для определения местоположения конкретных линий сетки. Фиг. 7 иллюстрирует примерный способ определения графической разметки данных элементов списка в соответствии с одним вариантом осуществления изобретения. Для данных элементов списка, как показано на фиг. 7, на этапе 700 выбирается шаблон из набора шаблонов, включающего в себя, по меньшей мере, два возможных шаблона. Каждый из возможных шаблонов обеспечивает соответствующую стратегию разметки для вычисления графической разметки упомянутого поднабора данных элементов списка на основе местоположения, по меньшей мере, одной линии сетки. На этапе 710 используется интерфейс для запроса местоположения выбранной линии сетки. На этапе 720 местоположение выбранной лини сетки используется для вычисления графической разметки для данных элементов списка.

Одномерный элемент управления разметкой

Хотя приведенные для примера варианты осуществления изобретения описаны в связи с управлением шириной столбцов, подразумевается гармонизация элементов списка по любому измерению. Таким образом, в случае, когда список формируется с элементами списка, выровненными рядом друг с другом по горизонтали, методы настоящего изобретения могут быть использованы для управления вертикальным выравниванием подэлементов в элементах списка. Любая гармонизация ряда элементов списка по одному измерению может быть выполнена в соответствии с методами настоящего изобретения.

Выводы

Как указано выше, хотя приведенные для примера варианты осуществления настоящего изобретения описаны в связи с различными вычислительными устройствами, основополагающие принципы могут быть применены к любому вычислительному устройству или системе.

Различные способы, описанные здесь, могут быть реализованы в связи с аппаратными средствами или программным обеспечением, или, при необходимости, комбинацией того и другого. Таким образом, способы и устройство, соответствующие настоящему изобретению, или определенные аспекты или их части могут принимать форму программного кода (то есть инструкций), воплощенных в материальном носителе, таком как дискеты, CD-ROM, дисководы жестких дисков или любой другой машиночитаемый носитель, причем, когда программный код загружается в машину, например, в компьютер, и исполняется в ней, такая машина становится устройством для реализации изобретения. В случае исполнения программного кода на программируемых компьютерах вычислительное устройство в общем случае будет включать в себя процессор, запоминающее устройство, считываемое процессором (включая энергозависимые и энергонезависимые блоки памяти и/или элементы хранения), по меньшей мере, одно устройство ввода и, по меньшей мере, одно устройство вывода. Программы могут быть реализованы на языке ассемблера или в машинном коде, если желательно. В любом случае язык может представлять собой компилируемый или интерпретируемый язык и может комбинироваться с аппаратными реализациями.

Способы и устройство, соответствующие настоящему изобретению, могут также быть реализованы посредством информационного обмена, воплощенного в форме программного кода, который передается по некоторой среде передачи, например по электрическим проводникам или кабелям, посредством волоконной оптики или любой другой среде передачи, причем, когда программный код принимается и загружается в машину и исполняется в ней, например, с использованием EPROM, вентильной матрицы, программируемых логических устройств (PLD), клиентского компьютера, машина становится устройством для реализации изобретения. При реализации на универсальном процессоре программный код комбинируется с процессором для обеспечения уникального устройства, которое действует для активизации функциональных средств, соответствующих настоящему изобретению. Дополнительно, любые методы хранения, используемые во взаимосвязи с настоящим изобретением, могут представлять собой комбинацию аппаратных средств и программного обеспечения.

Хотя настоящее изобретение описано в связи с предпочтительными вариантами осуществления, представленными на чертежах, понятно, что другие подобные варианты осуществления могут быть использованы, или модификации и дополнения могут быть осуществлены в отношении описанных вариантов для выполнения тех же самых функций настоящего изобретения без отклонения от его сущности. Поэтому настоящее изобретение не должно ограничиваться каким-либо одним вариантом осуществления, а должно толковаться по своей сущности и объему в соответствии с формулой изобретения.

Класс G06T1/00 Обработка данных изображения общего применения

система оповещения о программной ошибке и недостатке эффективности -  патент 2527208 (27.08.2014)
устройство обработки изображения и способ управления устройством обработки изображения -  патент 2527198 (27.08.2014)
устройство формирования изображений, система формирования изображений, способ управления устройством и системой и программа -  патент 2527076 (27.08.2014)
устройство фильтрации динамических цифровых изображений в условиях ограниченного объема априорных данных -  патент 2522043 (10.07.2014)
двойная буферизация в режиме транзакции для визуализации графического интерфейса пользователя -  патент 2519034 (10.06.2014)
устройство составления изображений -  патент 2517266 (27.05.2014)
многоуровневое стохастическое псевдосмешение с подавлением шума путем последовательного осреднения с использованием шаблонов -  патент 2511574 (10.04.2014)
устройство для внедрения водяного знака в информационное представление, детектор для обнаружения водяного знака в информационном представлении, способ и компьютерная программа -  патент 2510078 (20.03.2014)
устройство для нанесения макияжа на лицо и способ нанесения макияжа с его использованием -  патент 2509330 (10.03.2014)
устройство обработки изображения, способ обработки изображения и система передачи данных -  патент 2507584 (20.02.2014)

Класс G06T11/60 редактирование фигур или текста; комбинирование фигур или текста

устройство захвата изображения, сервер обеспечения дополнительной информации и система фильтрации дополнительной информации -  патент 2463663 (10.10.2012)
устройство для обработки изображений, способ обработки изображений и носитель, хранящий программу для осуществления способа -  патент 2437155 (20.12.2011)
применение эффектов к объединенной текстовой дорожке -  патент 2430421 (27.09.2011)
способ цифрового цветографического генерирования тайл-изображений -  патент 2425419 (27.07.2011)
форматы файлов, способы и компьютерные программные продукты для представления презентаций -  патент 2400816 (27.09.2010)
способ формирования статических и динамических изображений на коммуникационных устройствах -  патент 2393539 (27.06.2010)
способ формирования статических, динамических или анимационных изображений на мобильных коммуникационных устройствах, оборудованных фотокамерой -  патент 2390055 (20.05.2010)
правка текста произвольной графики посредством иерархического списка -  патент 2386172 (10.04.2010)
печатная система для изготовления обоев -  патент 2380237 (27.01.2010)
цифровая промежуточная (цп) обработка и распространение с масштабируемым сжатием при пост-обработке кинофильмов -  патент 2376632 (20.12.2009)
Наверх