СПОСОБ ВИЗУАЛИЗАЦИИ WEB-СТРАНИЦЫ С ИСПОЛЬЗОВАНИЕМ ВНЕШНИХ ПРОГРАММНЫХ ТЕМ
METHOD OF VIEWING WEB-PAGES USING EXTERNAL PROGRAM THEMES

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение в целом относится к технике визуализации web-страниц. Более конкретно, настоящее изобретение относится к механизмам (процессам обработки), в которых темы (наборы элементов страницы) могут быть применены к web-странице без использования конкретных атрибутов, ассоциированных с темой, задаваемых в определении web-страницы.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Вычислительная техника преобразовала способ, посредством которого работают и развлекаются. Например, пользователь с сетевой или поддерживающей Интернет вычислительной системой или устройством, имеющими браузер, может перемещаться по тысячам различных web-сайтов, распространенных по всему земному шару. Навигация включает в себя посылку запроса web-страницы на сервер, который поддерживает web-сайт, и затем прием от сервера представления web-страницы на языке разметки. Затем браузер отображает web-страницу на экране, используя представление web-страницы на языке разметки.
Традиционно, web-страницы включают в себя интерактивные элементы, которые при визуализации имеют управляющие элементы, которые предоставляют пользователю возможность некоторого уровня взаимодействия с web-страницей. Например, управляющий элемент может включать в себя кнопку, которую пользователь может выбирать посредством мыши, чтобы выполнить некоторую функцию (например, кнопку "go" (перейти), кнопку "help" (справка), кнопки "send" (послать) и "submit" (подать), кнопку "next" (далее) или подобные). Управляющий элемент также может быть текстовым окном (полем), в которое пользователь может вводить текстовую информацию, такую как адрес, номер телефона, параметры поиска, наименование изделия (программы), или подобное. Управляющий элемент также может быть меткой. Более сложным управляющим элементом может быть календарь, по которому пользователь может осуществлять навигацию, выбирая различные просмотры изображения, или осуществлять ввод календарных данных или данных о назначенных событиях.
Существует множество технологий, обеспечивающих возможность вставки таких управляющих элементов в web-страницу. Один обычный подход проиллюстрирован на Фиг. 5, на которой документ 501 текста web-страницы (конкретно, документ web-страницы ASPX (Активная серверная страница визуальных элементов) преобразован в набор 502 управляющих элементов, который затем используют для визуализации web-страницы 503 в формате языка разметки (например, языка разметки гипертекста), который может быть непосредственно интерпретирован браузером.
В данном примере документ 501 текста web-страницы включает ссылку на ряд управляющих элементов, включая ссылки 512-515, на управляющие элементы, которые могут быть вставлены в промежутки между другим статическим языком 511 разметки, как представлено вертикальным точками 511A-511E. Каждая из ссылок на управляющие элементы включает один или несколько атрибутов, определяющих поведения управляющих элементов. Каждая из ссылок на управляющие элементы имеет атрибут "runat" (исполнять на), имеющий значение, которое обозначает, что управляющий элемент должен быть на сервере отображен в язык разметки, который может быть непосредственно интерпретирован браузером. Кроме того, ссылка 512 на управляющий элемент ссылается на управляющий элемент Label («метка»), имеющий атрибут идентификатора "input" (ввод) и имеющий текстовый атрибут "Name:" (наименование). Ссылка 513 на управляющий элемент ссылается на управляющий элемент TextBox («текстовое окно»). Ссылка 514 на управляющий элемент ссылается на управляющий элемент Calendar («календарь»). Ссылка 515 на управляющий элемент ссылается на управляющий элемент Button («кнопка»), имеющий текстовый атрибут "Go" (перейти) и атрибут "OnClick" (щелчок на), который приводит к исполнению функции, названной "foo" ("что угодно"), когда пользователь щелкает по соответствующему визуальному представлению управляющего элемента «кнопка». Функция "foo" может быть внутренней или внешней для документа 501 текста web-страницы.
Документ 501 текста web-страницы анализируют и компилируют, как представлено стрелкой 515, в набор 502 управляющих элементов. Набор 502 управляющих элементов включает в себя некоторое количество объектных классов, включая объектный класс 520 (верхнего уровня) «Page» (страница), который создает экземпляры объектов «страница» (как представлено стрелкой 525), которые при исполнении визуализируют web-страницу 503 в язык разметки, который может быть непосредственно интерпретирован браузером. Для ясности web-страница 503 показана, как если бы была в конечном счете представлена браузером, нежели так, какой она была бы на данной стадии, а именно, документом на языке разметки.
Объектный класс 520 «страница» включает в себя несколько подчиненных объектных классов, включая класс 521 «литеральная константа» (Literal), который создает экземпляры объектов «литеральная константа», которые при исполнении визуализируют статические части 531 языка разметки (как представлено частями 531A и 531B в web-странице 503). Объектный класс 520 «страница» включает в себя подчиненный класс 522 «метка» (Label), который создает экземпляр объекта «метка», который при исполнении визуализирует управляющий элемент 532 Label («Метка»). Объектный класс 520 «страница» включает в себя подчиненный класс 523 «текстовое окно», который создает экземпляр объекта «текстовое окно», который при исполнении визуализирует управляющий элемент 533 TextBox («Текстовое окно»). Объектный класс 520 «страница» включает в себя подчиненный объектный класс 524 «календарь», который создает экземпляры объекта «календарь», который при исполнении визуализирует управляющий элемент 534 Calendar («Календарь»). Кроме того, объектный класс 520 «страница» включает в себя подчиненный объектный класс 525 «кнопка» (Button), который создает экземпляр объекта «кнопка», который при исполнении визуализирует управляющий элемент 535 Calendar.
Описанная выше технология визуализации предпочтительна, поскольку она допускает гибкость функциональности управляющих элементов. Кроме того, дополнительные управляющие элементы могут быть определены, как это требуется для конкретной web-страницы. Управляющие элементы предусматривают дополнительные атрибуты, которые влияют на общий внешний вид управляющего элемента. Например, управляющие элементы могут иметь атрибут для цвета фона, основного цвета, размера шрифта, типа шрифта, текстового содержимого, изображения, шаблонов, сложных свойств или подобного. Посредством применения конкретных атрибутов к различным управляющим элементам «впечатление и ощущение» от использования web-страницы могут быть настраиваемыми и могут даже стать узнаваемыми, как ассоциированные с конкретным предприятием или изделием, таким образом расширяя узнавание торговой марки.
Однако, чтобы применить сходный внешний вид или тему к другой связанной web-странице, связанная web-страница должна была бы также иметь управляющие элементы со сходными установками значений атрибутов. Если бы потребовалось изменить общую тему для таких связанных web-страниц, то в типовом случае следовало бы изменить каждую web-страницу тщательным изменением атрибутов управляющих элементов в каждом документе. Это может потребовать больших временных затрат.
Соответственно, был бы полезным механизм, предназначенный для применения тем к документу web-страницы таким образом, чтобы тема могла быть согласованно и более легко применима по множеству связанных документов и при этом изменения в теме можно было бы более легко применить по всем связанным документам текстов web-страниц. Также было бы полезно, если бы тема могла быть применимой в контексте объектного класса «страница», имеющего один или несколько подчиненных классов управляющих элементов, таким образом сохраняя преимущество гибкости типа и механизма для визуализации управляющих элементов и соответствующую гибкую функциональность, допускаемую управляющими элементами.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Вышеупомянутые недостатки предшествующего состояния уровня техники преодолены посредством принципов настоящего изобретения, которые направлены на механизм визуализации web-страницы, которым вычислительная система генерирует web-страницу из определения web-страницы таким образом, что тема применяется к web-странице, не требуя ассоциированных с темой свойств в определении web-страницы.
Определение web-страницы содержит ссылки на управляющие элементы, такие как метки, кнопки, текстовые окна, календари или подобные. В течение процедуры визуализации определяется, что web-страница, соответствующая определению web-страницы, должна применить тему. Это может быть определено по умолчанию (например, использованием установочного параметра настройки) или выявлением директивы, обозначающей, что должна быть применена тема. В ответ осуществляют доступ к одному из нескольких темо-ориентированных текстовых документов. Темо-ориентированные документы совместно описывают свойства или атрибуты, ассоциированные с управляющими элементами, и которые содействуют требуемому «впечатлению и ощущению» от темы. Такие атрибуты могут включать в себя цвет фона, основной цвет, размер шрифта, тип шрифта, изображения, шаблоны, сложные свойства или подобное и могут быть заданы для каждого типа управляющего элемента. Они могут также включать в себя более сложные поведения, как, например, инициализирован ли дисплей календаря для ежедневного режима с подробностями о дне, или инициализирован ли дисплей календаря для еженедельного или ежемесячного режима.
Затем класс «тема» (Theme) формируют и компилируют на основании одного или нескольких темо-ориентированных документов. Объект «тема» создают из класса «тема». Объект «тема» включает в себя части, которые при исполнении имеют результатом применение конкретных темо-ориентированных свойств к управляющему элементу. Управляющий элемент вместе со свойствами своей темы, должным образом установленными, может быть затем исполнен при вызове экземпляром объекта, который визуализирует управляющий элемент. В одном примере объект «тема» включает в себя подчиненные объекты, которые соответствуют конкретному типу управляющего элемента.
Механизм визуализации также формирует объект «web-страница» на основании определения web-страницы. Объект «web-страница» включает в себя объект, который визуализирует управляющий элемент и который включает в себя вызов функции к объекту «тема», который применяет темо-ориентированные свойства к управляющему элементу. Затем web-страница визуализируется посредством исполнения экземпляра класса «web-страница».
Дополнительные признаки и преимущества настоящего изобретения будут сформулированы в описании, которое следует ниже, и частично будут очевидны из описания или могут быть изучены посредством осуществления изобретения на практике. Признаки и преимущества изобретения могут быть осуществлены и получены при помощи инструментальных средств и комбинаций, конкретно указанных в прилагаемой формуле изобретения. Эти и другие признаки настоящего изобретения будут очевидны из нижеследующего описания и прилагаемой формулы изобретения, или могут быть изучены посредством практического осуществления настоящего изобретения, как сформулировано далее в настоящем документе.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Чтобы описать способ, которым вышеупомянутые и другие преимущества и признаки настоящего изобретения могут быть получены, ниже предоставлено более конкретное описание настоящего изобретения, кратко описанного выше, путем ссылки на конкретные варианты его осуществления, которые проиллюстрированы на прилагаемых чертежах. Подразумевая, что эти чертежи изображают только типичные варианты осуществления настоящего изобретения и не должны рассматриваться в качестве ограничивающих его объем, изобретение будет описано и объяснено более конкретно со ссылками на чертежи, на которых:
Фиг. 1 - соответствующая вычислительная система, в которой могут быть осуществлены признаки настоящего изобретения;
Фиг. 2 - блок-схема способа визуализации web-страницы вместе с темой в соответствии с принципами настоящего изобретения;
Фиг. 3 - последовательность обработки структур данных, ассоциированная с процедурой визуализации, в соответствии с принципами настоящего изобретения;
Фиг. 4A - пользовательский интерфейс без примененной темы;
Фиг. 4B - пользовательский интерфейс по фиг. 4А с примененной темой;
Фиг. 5 - последовательность обработки структур данных, ассоциированная с процедурой визуализации, в соответствии с предшествующим уровнем техники.
ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Принципы настоящего изобретения относятся к механизму визуализации web-страницы, в котором вычислительная система генерирует web-страницу из определения web-страницы. Процедура визуализации визуализирует управляющие элементы вместе с конкретной темой, не требуя, чтобы определенные темой свойства управляющего элемента подлежали включению в определение web-страницы. Вместо этого определенные темой свойства описывают в одном или нескольких темо-ориентированных текстовых документах. Темо-ориентированные текстовые документы компилируют в класс «тема», тогда как определение web-страницы компилируют в класс «web-страница». Web-страница визуализируется посредством исполнения экземпляра класса «web-страница» с привязкой к экземпляру класса «тема».
Варианты осуществления в рамках объема настоящего изобретения включают в себя машиночитаемые носители, переносящие или имеющие в составе машиноисполняемые команды или структуры данных, сохраняемые на них. Такие машиночитаемые носители могут быть произвольным доступным носителем, к которому может осуществлять доступ универсальный или специализированный компьютер. В качестве примера, а не ограничения, такие машиночитаемые носители могут содержать физические машиночитаемые носители, такие как ОЗУ (RAM), ПЗУ (ROM), ЭСППЗУ (EEPROM), КД-ПЗУ (CD-ROM) или другие устройства хранения на оптическом диске, магнитном диске или на других устройствах хранения на магнитном носителе, или любом другом носителе, который может быть использован для переноса или хранения требуемых программных средств в форме машиноисполняемых команд или структур данных, и к которым может осуществлять доступ универсальный или специализированный компьютер.
Когда информация передается или обеспечивается по сети или другому коммуникационному соединению (либо проводному, либо беспроводному, либо комбинации проводного и беспроводного) на компьютер, то компьютер соответствующим образом рассматривает соединение в качестве машиночитаемого носителя. Таким образом, любое подобное соединение соответственно определяется как машиночитаемый носитель. Комбинации из вышеупомянутого следует также включать в рамки машиночитаемых носителей. Машиноисполняемые команды содержат, например, любые команды и данные, которые побуждают универсальный или специализированный компьютер, или специализированное устройство обработки выполнить некоторую функцию или группу функций. Машиноисполняемая команда может быть, например, двоичным кодом, командами промежуточного формата, такими как язык ассемблера, или даже исходным кодом. Хотя не является требуемым, настоящее изобретение описано в общем контексте машиноисполняемых команд, таких как программные модули, исполняемые компьютерами в сетевых средах. В общем случае программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или осуществляют конкретные абстрактные типы данных.
Специалистам в данной области техники должно быть понятно, что изобретение может быть осуществлено на практике в сетевых вычислительных средах с помощью многих типов конфигураций вычислительных систем, включая в них персональные компьютеры, портативные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, сетевые ПК, мини-компьютеры, мейнфреймы (большие ЭВМ) и подобное. Изобретение также может быть осуществлено на практике в распределенных вычислительных средах, в которых задачи выполняют посредством локальных и удаленных устройств обработки, которые соединены (либо проводными соединениями, либо беспроводными соединениями, либо комбинацией проводных или беспроводных соединений) через коммуникационную сеть. В распределенной вычислительной среде программные модули могут находиться как на локальных, так и на удаленных устройствах хранения данных.
На Фиг. 1 показана соответствующая вычислительная среда, в которой могут быть применены принципы настоящего изобретения, в варианте для компьютера 120. Компьютер 120 включает в себя процессор или блок 121 обработки, системное запоминающее устройство 122 и системную шину 123, которая связывает различные системные компоненты, включая системное запоминающее устройство 122, с блоком 121 обработки.
Системная шина 123 может быть произвольным типом из нескольких типов шинных архитектур, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую произвольную шинную архитектуру из множества шинных архитектур. Системное запоминающее устройство включает в себя постоянное запоминающее устройство (ПЗУ, ROM) 124 и запоминающее устройство с произвольным доступом или оперативное запоминающее устройство (ОЗУ, RAM) 125. Базовая система ввода/вывода (БСВВ, BIOS) 126, содержащая основные программы, которые помогают передавать информацию между элементами компьютера 120, как например, при запуске, могут быть хранимыми в ПЗУ 124.
Компьютер 120 может также включать в себя накопитель 127 на жестких магнитных дисках для чтения с жесткого магнитного диска и записи на жесткий магнитный диск 139, дисковод 128 магнитных дисков для чтения со сменного магнитного диска 129 или записи на сменный магнитный диск 129 и дисковод 130 оптических дисков для чтения со сменного оптического диска 131 или записи на сменный оптический диск 131, например, на ПЗУ на компакт-диске (CD ROM), или другой оптический носитель. Накопитель 127 на жестких магнитных дисках, дисковод 128 магнитных дисков и дисковод 130 оптических дисков соединены с системной шиной 123 посредством интерфейса 132 накопителя на жестких дисках, интерфейса 133 дисковода магнитных дисков и интерфейса 134 дисковода оптических дисков соответственно. Накопители и дисководы и ассоциированные с ними машиночитаемые носители обеспечивают энергонезависимое хранение читаемых компьютером команд, структур данных, программных модулей и других данных для компьютера 120. Несмотря на то, что примерная среда, описанная в настоящем документе, применяет жесткий магнитный диск 139, сменный магнитный диск 129 и сменный оптический диск 131, для сохранения данных могут быть использованы другие типы машиночитаемых носителей, включая магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи Bernoulli, запоминающие устройства с произвольным доступом (ОЗУ), постоянные запоминающие устройства (ПЗУ) и подобное.
Программные средства, содержащие один или несколько программных модулей, могут быть сохранены на жестком диске 139, магнитном диске 129, оптическом диске 131, ПЗУ 124 или ОЗУ 125, включая операционную систему 135, одну или несколько прикладных программ 136, другие программные модули 137 и программные данные 138. Пользователь может вводить команды и информацию в компьютер 120 посредством клавиатуры 140, указывающего устройства 142 или других устройств ввода данных (не показаны), таких как микрофон, джойстик, игровая панель, спутниковая антенна, сканер или подобных. Эти и другие устройства ввода обычно соединены с блоком 121 обработки через интерфейс 146 последовательного порта, сопряженный с системной шиной 123. В качестве альтернативы, устройства ввода могут быть соединены посредством других интерфейсов, например, параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 147 или другое устройство отображения также соединены с системной шиной 123 через интерфейс, такой как видеоадаптер 148. В дополнение к монитору персональные компьютеры обычно включают в себя другие периферийные устройства вывода (не показаны), такие как громкоговорители и принтеры.
Компьютер 120 может функционировать в сетевой среде, используя логические соединения с одним или несколькими удаленными компьютерами, таким как удаленные компьютеры 149a и 149b. Каждый из удаленных компьютеров 149a и 149b может быть другим персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым узлом или другим узлом сети общего пользования и обычно включает в себя многие или все элементы из описанных выше элементов, относящихся к компьютеру 120, хотя на Фиг. 1 были показаны только запоминающие устройства 150a и 150b и ассоциированные с ними прикладные программы 136a и 136b. Логические соединения, изображенные на Фиг. 1, включают в себя локальную сеть (ЛС, LAN) 151 и глобальную сеть (ГС, WAN) 152, которые представлены в качестве примера, а не ограничения. Подобные сетевые среды являются обычными для учреждений или сетей масштаба предприятия, внутренних сетей и Интернет.
При использовании в сетевой среде ЛС компьютер 120 соединен с локальной сетью 151 через сетевой интерфейс или адаптер 153. При использовании в сетевой среде ГС компьютер 120 может включать в себя модем 154, беспроводную линию связи или другие средства для установления связи в глобальной сети 152, такой как Интернет. Модем 154, который может быть внутренним или внешним, соединен с системной шиной 123 через интерфейс 146 последовательного порта. В сетевой среде программные модули, изображенные относящимися к персональному компьютеру 120, или их части, могут сохраняться на удаленном запоминающем устройстве. Понятно, что показанные сетевые соединения являются иллюстративным примером и могут быть использованы другие средства установления связи в глобальной сети 152.
Хотя на Фиг. 1 представлена подходящая для настоящего изобретения операционная среда, принципы настоящего изобретения могут быть применены в любой вычислительной системе, имеющей возможность просмотра сетевых сайтов. Вычислительная система, показанная на Фиг. 1, является лишь иллюстративной и не представляет даже малой части из широкого многообразия сред, в которых могут быть осуществлены принципы настоящего изобретения. В описании и в формуле изобретения "вычислительная система" определена широко как любой компонент или компоненты аппаратного обеспечения, которые могут использовать программное обеспечение для выполнения одной или нескольких функций. Примеры вычислительных систем включают в себя настольные компьютеры, портативные компьютеры, персональные цифровые ассистенты (ПЦА, PDA), телефонные аппараты или любую другую систему или устройство, которое имеет возможность обработки данных.
На Фиг. 2 показана блок-схема способа 200 генерации web-страницы из определения web-страницы таким образом, что к web-странице применяется тема без свойств, ассоциированных с темой, включаемых в определение web-страницы. На Фиг. 3 проиллюстрирована последовательность 300 обработки структур данных. Последовательность 300 обработки структур данных, соответствующая Фиг. 3, описана со ссылками на способ 200 по Фиг. 2.
Последовательность 300 обработки структур данных включает в себя текстовый документ 301 web-страницы, который служит в качестве примера определения web-страницы. В одном варианте осуществления текстовым документом web-страницы является документ web-страницы ASPX, хотя это не является необходимым. Определение web-страницы также может быть извлечено из базы данных или из web-сервиса. Однако в проиллюстрированном варианте осуществления определение web-страницы имеет форму текстового документа web-страницы, и таким образом принципы настоящего изобретения будут описаны относительно текстового документа web-страницы. Однако специалистам в данной области техники должно быть ясно, что web-страница из любого другого определения web-страницы входит в объем настоящего изобретения. Текстовый документ 301 web-страницы включает в себя директиву 310, обозначающую, что должна быть применена тема и что наименованием темы является "Contemporary" (Современный). Вычислительная система имеет доступ к некоторому количеству темо-ориентированных текстовых документов 341, которые соответствуют данной теме. Могут быть также другие темо-ориентированные документы, ассоциированные с одной или несколькими другими темами. В одном варианте осуществления все темо-ориентированные документы размещены в общем каталоге. Каталог может иметь некоторое количество подкаталогов, по одному для каждой возможной темы. Хотя на чертеже показано некоторое количество темо-ориентированных документов (конкретно, документы 341A-341D, возможно, в числе других, как обозначено многоточием 341E), может иметься только один или любое другое количество темо-ориентированных документов, как это потребуется.
Согласно Фиг. 2 способ 200 включает в себя действие приема от клиентской вычислительной системы запроса web-страницы (действие 201). Эта web-страница динамически генерируется из текстового документа web-страницы, такого как, например, текстовый документ 301 web-страницы по Фиг. 3. В современных протоколах, ориентированных на запрос/ответ (например, протокол (HTTP) передачи гипертекста, общий для извлечения Web-страниц через сети), Web-страницы обычно извлекают в ответ на запрос. Однако принципы настоящего изобретения не ограничены применением в среде, ориентированной на запрос/ответ. Web-страница может динамически создаваться на иной основе, не связанной с выполнением какого-либо конкретного запроса, полученного по сети.
Если вычислительная система определяет, что должна быть создана web-страница, соответствующая текстовому документу web-страницы (в ответ на запрос или иным образом), то затем вычислительная система определяет, что web-страница, соответствующая текстовому документу web-страницы, должна применить тему (действие 202). Это может быть выполнено считыванием вычислительной системой директивы в соответствующем текстовом документе web-страницы. Например, для текстового документа 301 web-страницы может быть считана и оценена директива 310. В качестве альтернативы, заданное по умолчанию правило (например, как указано установочным параметром настройки) может обозначать, что должна быть применена некоторая тема. В случае, если вычислительная система определяет, что отсутствует что-либо, что противоречит заданному по умолчанию правилу, то соответственно вычислительная система может определить, что должна быть применена некоторая тема. Как предварительно упомянуто, может иметься множество тем, доступных для визуализации. Соответственно, директива или заданное по умолчанию правило могут также определять, какая тема должна быть применена.
Затем вычислительная система выполняет функциональный, ориентированный на результат этап, предназначенный для применения темы к текстовому документу web-страницы, не требуя подробной информации о теме в текстовом документе web-страницы (этап 210). Он может включать в себя любые соответствующие действия по достижению такого результата. Однако в проиллюстрированном варианте осуществления этап 210 включает в себя соответствующие действия 211-214 и 221-223.
Конкретно, вычислительная система осуществляет доступ к одному из нескольких темо-ориентированных текстовых документов, которые соответствуют теме и которые совместно описывают, по меньшей мере, одно свойство, подлежащее применению к управляющему элементу текстового документа web-страницы (действие 211). На Фиг. 3 темо-ориентированные текстовые документы представлены посредством темо-ориентированных текстовых документов 341.
Иллюстрируется содержимое первого темо-ориентированного текстового документа 341A. Следует отметить, что формат ссылок на управляющие элементы в темо-ориентированном документе 341A сходен, если не идентичен, с форматом управляющих ссылок в текстовом документе 301 web-страницы, используемым для ссылок на управляющие элементы обычного типа. Действительно, для любого заданного типа схема ссылок на управляющие элементы в темо-ориентированном документе 341A может быть идентична схеме ссылок на управляющие элементы текстового документа 301 web-страницы.
Например, для каждого документа схема ссылки на управляющий элемент включает в себя управляющий элемент «стороны сервера» (серверный управляющий элемент), имеющий префикс "asp:". Ссылки на управляющие элементы содержат нуль или несколько атрибутов, атрибут "runat", который имеет значение, обозначающее, где соответствующий управляющий элемент должен быть отображен в язык разметки, непосредственно интерпретируемый браузером. В проиллюстрированном варианте осуществления атрибут "runat" для всех ссылок на управляющие элементы имеет значение "server" (сервер), обозначающее, что вся процедура визуализации для всех управляющих элементов должна управляться вычислительной системой, на которой находится web-страница, а не какой-либо удаленный браузер. Поскольку схема ссылок на управляющие элементы является сходной или даже идентичной, то темо-ориентированные документы могут быть весьма легко созданы посредством простых операций «вырезать» (cut) или «вставить» (paste) либо «копировать» (copy), с незначительным редактированием для задания темо-ориентированных свойств.
Затем вычислительная система формирует класс «тема» на основании одного или нескольких темо-ориентированных текстовых документов (действие 212). Класс «тема» может быть представлен в исходном коде или другими компилируемыми инструкциями. В одном варианте осуществления класс «тема» сформирован на языке C#. Затем данный класс «тема» компилируется в такой класс «тема», который может быть использован для создания экземпляра объектов «темы» (действие 213). Затем создается экземпляр объекта «тема» с использованием скомпилированного класса «тема» (действие 214). Такая операция генерации, компилирования и создания экземпляра класса представлена на Фиг. 3 стрелкой 355 и в результате приводит к генерации набора 342 управляющих элементов темы.
Набор 342 управляющих элементов темы включает в себя объект 360 «тема» в качестве корня. Объект 360 «тема» включает в себя несколько подчиненных (порожденных) объектов, соответствующих управляющим элементам 361-367.
Например, управляющий элемент 361 Label соответствует конкретной поверхности изображения, имеющей идентификатор поверхности "Sticker" («Наклейка»). Управляющий элемент 361 Label генерируется тем, что ссылка 351 на управляющий элемент в исходном темо-ориентированном текстовом документе 341A обеспечивает процедуру генерации, компилирования и создания экземпляра класса, относящуюся к действиям 212-214. Как обозначено в ссылке 351 на управляющий элемент Label, управляющий элемент Label при исполнении будет применять некоторый основной цвет к любому управляющему элементу Label, который активизирует поверхность "Sticker".
Управляющий элемент 362 Label не соответствует какой-либо конкретной поверхности. Соответственно, управляющий элемент 362 Label применяется по умолчанию к любому управляющему элементу Label, который не задает идентификатор поверхности или который задает несуществующий идентификатор поверхности. Управляющий элемент 362 Label генерируется тем, что ссылка 352 на управляющий элемент в исходном темо-ориентированном текстовом документе 341A обеспечивает процедуру генерации, компилирования и создания экземпляра класса. Как обозначено в ссылке 352 на управляющий элемент Label, управляющий элемент Label при исполнении будет применять некоторый другой основной цвет к метке.
Управляющий элемент 363 TextBox не соответствует какой-либо конкретной поверхности. Соответственно, управляющий элемент 363 TextBox применяется по умолчанию к любому управляющему элементу TextBox, который не задает идентификатор поверхности или который задает несуществующий идентификатор поверхности. Управляющий элемент 363 TextBox генерируется тем, что ссылка 353 на управляющий элемент в исходном темо-ориентированном текстовом документе 341A обеспечивает процедуру генерации, компилирования и создания экземпляра класса. Как обозначено в ссылке на управляющий элемент 353 TextBox, управляющий элемент TextBox при исполнении будет применять некоторый другой цвет фона к метке.
Управляющий элемент TextBox 364 соответствует конкретной поверхности, имеющей идентификатор поверхности "Modern" («Современный»). Управляющий элемент 364 TextBox генерируется тем, что ссылка на управляющий элемент 354 в исходном темо-ориентированном текстовом документе обеспечивает процедуру генерации, компилирования и создания экземпляра класса. Как обозначено в ссылке 354 на управляющий элемент TextBox, управляющий элемент TextBox при исполнении будет применять некоторый цвет фона к любому управляющему элементу TextBox, который активизирует поверхность "Modern".
Объект 365 Calendar также генерируется тем, что соответствующая ссылка на управляющий элемент Calendar (не показано) одного из темо-ориентированных текстовых документов 341 обеспечивает процедуру генерации, компилирования и создания экземпляра класса, относящуюся к действиям 212-214. Объект 365 Calendar не соответствует конкретной поверхности и таким образом применяется по умолчанию.
Объект 366 Button генерируется тем, что соответствующая ссылка (не показано) на управляющий элемент Button в одном из темо-ориентированных текстовых документов 341 обеспечивает процедуру генерации, компилирования и создания экземпляра класса, и он соответствует поверхности, имеющей идентификатор "CommandButton".
Объект 367 Other (Другой) представляет, что один или несколько объектов других управляющих элементов также могут генерироваться тем, что соответствующие одна или несколько находящихся в одном или нескольких темо-ориентированных текстовых документах ссылок на другие управляющие элементы (не показано) обеспечивают процедуру генерации, компилирования и создания экземпляра класса.
Согласно фиг. 2 экземпляр объекта «тема» создается (действие 214) после доступа к темо-ориентированным документам (действие 211), генерации класса «тема» (действие 212) и компилирования класса «тема» (действие 213). Однако операции доступа, генерации и компилирования, относящиеся к действиям 211-213, не нуждаются в повторении, если класс «тема» уже существует вследствие предыдущего исполнения действий 211-213.
Вычислительная система также генерирует класс «web-страница», по которому может генерироваться экземпляр объекта «web-страница» на основании текстового документа web-страницы (действие 221). Класс «web-страница» может быть компилирован непосредственно из документа web-страницы. В качестве альтернативы класс «web-страница» может генерироваться сначала генерацией некомпилированного класса «web-страница» (например, может включать в себя исходный код или другой компилируемый текст) на основании текстового документа web-страницы и затем компилированием некомпилированного класса «web-страница» в класс «web-страница».
Затем вычислительная система создает экземпляр объекта «web-страница», используя класс «web-страница» (действие 222). Web-страница может визуализироваться (то есть, в язык разметки, который может быть непосредственно интерпретирован браузером) посредством исполнения объекта «web-страница» (действие 223). Если визуализацию web-страницы осуществляют в ответ на запрос клиента, как в действии 201, то визуализированная web-страница может быть затем загружена клиенту (действие 231).
Например, согласно Фиг. 3 текстовый документ 301 web-страницы, как представлено стрелкой 315, может подвергаться относящимся к действиям 221 и 222 процедурам генерирования класса и создания экземпляра класса, для генерации набора 302 управляющих элементов для страницы, или управляющих элементов страницы, который включает в себя объект 320 «страница» в качестве его корневого узла.
Объект 320 «страница» включает в себя несколько подчиненных объектов, включая объект 321 Literal, который при исполнении отображает статические части языка разметки отображаемой страницы 303. Такой объект Literal генерируется тем, что статические части 311A-311F из документа 301 текста web-страницы подвергаются процедурам генерации и создания экземпляра класса, относящимся к действиям 221 и 222.
Подчиненный объект 322, соответствующий управляющему элементу Label, при исполнении визуализирует управляющий элемент Label визуализируемой страницы 303. Объект 322 управляющего элемента Label генерируется тем, что ссылка 312 на управляющий элемент Label подвергается процедуре генерации и создания экземпляра класса. Управляющий элемент Label будет применять текст "Name:" к метке и будет идентифицирован посредством идентификатора "input", как представлено атрибутами ссылки 312 на управляющий элемент Label. Следует отметить, что ссылка 312 на управляющий элемент Label имеет атрибут соответствующего идентификатора поверхности "Sticker". Соответственно, при исполнении объекта 322 управляющего элемента Label для генерации управляющего элемента Label в визуализируемой web-странице 303 будет также исполняться объект 361 управляющего элемента Label, относящийся к объекту 360 «тема», чтобы таким образом применить поверхность Sticker к объекту Label.
Подчиненный объект 323, соответствующий управляющему элементу TextBox, при исполнении визуализирует управляющий элемент TextBox визуализируемой страницы 303. Объект 323 управляющего элемента TextBox генерируется тем, что ссылка 313 на управляющий элемент TextBox подвергается процедуре генерации и создания экземпляра класса. Ссылка 313 на управляющий элемент TextBox не имеет атрибута соответствующего идентификатора поверхности. Соответственно, при исполнении объекта 323 управляющего элемента TextBox для генерации управляющего элемента TextBox в визуализируемой web-странице 303 объект 363 из объекта 360 «тема», являющийся управляющим элементом TextBox «по умолчанию», также будет исполняться для применения темы к объекту Label.
Объект 324, соответствующий управляющему элементу Calendar, при исполнении визуализирует управляющий элемент Calendar визуализируемой страницы 303. Объект 324 управляющего элемента Calendar генерируется тем, что ссылка 314 на управляющий элемент Calendar подвергается процедуре генерации и создания экземпляра класса. Ссылка 314 на управляющий элемент Calendar не имеет соответствующего атрибута идентификатора поверхности. Соответственно, при исполнении объекта 324 управляющего элемента Calendar для генерации управляющего элемента Calendar в визуализируемой web-странице 303, объект 365 из объекта 360 «тема», являющийся управляющим элементом Calendar «по умолчанию», также будет исполняться, чтобы таким образом применить тему к объекту Calendar.
Объект 325, соответствующий управляющему элементу Button, при исполнении визуализирует управляющий элемент Button визуализируемой страницы 303. Объект 324 управляющего элемента Button генерируется тем, что ссылка 315 на управляющий элемент Button подвергается процедуре генерации и создания экземпляра класса. Ссылка 315 на управляющий элемент Button имеет атрибут соответствующего идентификатора поверхности "CommandButton". Соответственно, при исполнении объекта 325 управляющего элемента Button для генерации управляющего элемента Button в визуализируемой web-странице 303 объект 366 управляющего элемента Button из объекта 360 «тема» также будет исполняться, чтобы таким образом применить тему к объекту управляющего элемента Button.
Объект 326, соответствующий управляющему элементу Other («Другой»), представляет один или несколько объектов управляющих элементов Other, который может генерироваться на основании ссылок на «другие» управляющие элементы в текстовом документе 301 web-страницы. Например, ссылка 316 на управляющий элемент Image («изображение») обозначает использование изображения в некотором местоположении в web-странице. Ссылка 316 на управляющий элемент Image идентифицирует поверхность "LogoImage". Соответственно, должна быть соответствующая ссылка на управляющий элемент темы в одном из темо-ориентированных документов 341. Соответствующей ссылкой на управляющий элемент темы должна быть ссылка на управляющий элемент Image, которая должна идентифицировать конкретный файл изображения для визуализации управляющего элемента Image. Изображение может являться, например, логотипом.
При исполнении объекта 320 «web-страница» как в действии 223 каждый из управляющих элементов должен визуализироваться посредством исполнения соответствующего управляющего элемента, относящегося к объекту «страница», а также соответствующего объекта управляющего элемента темы из темо-ориентированных документов. Таким образом, общая тема для множества web-страниц может быть легко изменена простым изменением отдельного набора темо-ориентированных документов. Кроме того, темо-ориентированные документы могут генерироваться весьма просто и интуитивно, поскольку для конкретного типа управляющего элемента ссылки на управляющие элементы в темо-ориентированных текстовых документах могут следовать той же схеме, что и ссылки на управляющие элементы в текстовом документе web-страницы.
Принципы настоящего изобретения могут быть дополнительно разъяснены с помощью конкретного примера, который формирует конкретный пользовательский интерфейс.
На Фиг. 4A проиллюстрирован пользовательский интерфейс без применения темы. Пользовательский интерфейс может быть сформирован посредством выполнения описанной выше процедуры по отношению к текстовому документу web-страницы. Конкретный текстовый документ web-страницы сформулирован, как изложено ниже:
<form runat="server">
<asp:Image runat="server" SkinId="LogoImage"/><br>
<b>Страница поиска</b><br>
Поисковый запрос:<asp:TextBox runat="server" id="SearchEdit"/><br>
<asp:Button runat="server" id="GoButton" SkinID="CommandButton"
Text= "Go"/>
<asp:Button runat="server" id="HelpButton" Text="Help"/></form>
Хотя идентификаторы поверхности включены в множество управляющих элементов, в данном варианте нет доступных темо-ориентированных документов, и пользовательский интерфейс согласно Фиг. 4A отражает явно нетематический стиль.
Теперь предположим, что доступен нижеследующий темо-ориентированный документ, соответствующий теме, применяемой текстовым документом web-страницы (нумерация строк добавлена для ясности:
1. <asp:Image runat="server" SkinID="LogoImage" ImageURL="ABC.gif"/>
2. <asp:TextBox runat="server" id="SearchEdit" BackColor="#eeeeee"/><br>
3. <asp:Button runat="server" SkinID="CommandButton" BackColor=
"#006699" ForeColor="#ffffff" Font-Name="Arial" Font-Size="10pt" />
4.<asp:Button runat="server" BackColor="#cccccc" ForeColor="#000000"
Font-Name="Arial" Font-Size="10pt" />
На Фиг. 4B проиллюстрирован пользовательский интерфейс для Фиг. 4A для случая, если доступен данный темо-ориентированный документ. Следует отметить, как теперь применен логотип, поскольку управляющий элемент Image в документе текста web-страницы теперь визуализирован с учетом ссылки на управляющий элемент Image в строке 1 в темо-ориентированном текстовом документе. К тому же, «впечатление и ощущение» от управляющих элементов TextBox и Button были также изменены, поскольку они также визуализированы с учетом ссылок на соответствующие управляющие элементы темо-ориентированного текстового документа.
Настоящее изобретение может быть воплощено в других конкретных формах без отклонения от его сущности или существенных характеристик. Описанные варианты осуществления должны рассматриваться во всех отношениях только в качестве иллюстративных, но не ограничительных примеров. Объем изобретения, следовательно, определен в соответствии с прилагаемой формулой изобретения, а не предшествующим описанием. Все изменения, которые охватываются значением и областью эквивалентности формулы изобретения, должны быть включены в ее объем.