Код документа: RU2402063C2
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Это изобретение в целом относится к области редактирования графического представления. Более точно, это изобретение относится к системе и способу предоставления стилевого механизма, который используется, чтобы применять атрибуты к графическим и другим типам объектов в вычислительной среде.
УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ
Стиль, как понимается специалистом в данной области техники, является художественной манерой, в которой представлен письменный материал, обычно в конкретном издании или конкретным издателем. Стили, например, используются в MICROSOFT WORD и MICROSOFT VISIO, чтобы определять путь, которым представляются текст, линии и/или заливка. Описания стилей принудительно применяют некоторые характеристики текста, линий и/или заливки, для того чтобы обеспечивать единообразный внешний вид по всему документу.
Одной из областей, где стили не были реализованы в общем смысле, является проектирование пользовательского интерфейса (UI), где было бы целесообразным определять, принудительно применять и поддерживать описания внешнего вида UI как в период проектирования, так и в период исполнения. Были предприняты попытки с этой целью, к примеру, CSS (Вложенные таблицы стилей) и XSL (Расширяемый язык стилей), которые используются в проектировании веб-страниц. Однако оба эти способа являются заведомо сложными и трудными для понимания. Более важно, что было доказано, что очень трудно писать инструментальные программные средства, которые их эффективно используют, в частности инструментальные средства WYSIWYG («Что видишь на экране, то и получишь при печати»), которые предоставляют возможность непосредственного манипулирования и понимания проекта.
Одна из проблем состоит в том, каким образом инструментальные средства периода проектирования программных средств могут определять стили UI, наряду с тем, что программные средства периода исполнения принудительно применяют эти правила и предоставляют им возможность изменяться, не нарушая функциональных возможностей интерфейса. В частности, механизм стилизации должен быть: общим и применимым ко всем аспектам проектирования UI, способным манипулировать посредством графических инструментальных средств и инструментальных средств разработки, и простым и привычным, с тем чтобы проектировщики UI могли легко овладевать им. Однако никакой традиционный стилевой механизм не предоставляет этих особенностей.
Следовательно, необходим механизм стилизации, который предусматривает функциональные возможности, отмеченные выше. Настоящее изобретение предоставляет такое решение.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Настоящее изобретение направлено на способы для реализации стилевой модели, которая применяется к объектам в пределах пользовательского интерфейса, чтобы определять любые атрибуты объектов. Модель делится на две части: «периода исполнения», которая использует описание стиля, чтобы оказывать влияние на внешний вид и ощущение от использования пользовательского интерфейса, и «периода проектирования», которая является данными восприятия, представленными инструментальными средствами WYSIWYG, используемыми, чтобы определять внешний вид и ощущение от использования пользовательского интерфейса. Период проектирования может быть реализован на основе объектов периода исполнения. Свойства, ассоциативно связанные со стилями, могут быть установлены в отношении объектов с использованием UI периода проектирования и применены в периоде исполнения. Стили могут быть сгруппированы в темы, чтобы обеспечить удобный механизм для применения изменений ко многим объектам.
Дополнительные признаки и преимущества изобретения станут очевидными из последующего подробного описания иллюстративных вариантов осуществления, которое приведено со ссылкой на сопроводительные чертежи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Предыдущее краткое изложение, также как и последующее подробное описание предпочтительных вариантов осуществления, лучше понимается при чтении со ссылками на приложенные чертежи. Ради цели иллюстрации изобретения на чертежах показаны примерные структуры изобретения, однако изобретение не ограничено раскрытыми отдельными способами и средствами содействия. На чертежах:
фиг. 1 - структурная схема, показывающая примерную вычислительную среду, в которой аспекты изобретения могут быть реализованы;
фиг. 2 - блок-схема алгоритма последовательностей операций, выполняемых компонентом периода исполнения в соответствии с настоящим изобретением;
фиг. 3 и 4 - примерные пользовательские интерфейсы периода проектирования.
ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЕЛНИЯ
Примерная Вычислительная Среда
Фиг.1 иллюстрирует пример пригодной среды 100 вычислительной системы, в которой изобретение может быть реализовано. Вычислительная среда 100 системы является только одним из примеров подходящей вычислительной среды и не имеет намерением наводить на мысль, о каком бы то ни было ограничении объема использования или функциональных возможностей изобретения. Вычислительная среда 100 также не должна быть истолкована как имеющая какую бы то ни было зависимость или требование, относящиеся к любому одному или сочетанию компонентов, проиллюстрированных в примерной рабочей среде 100.
Изобретение является работоспособным с многочисленными другими конфигурациям или средами вычислительных систем общего применения или специального назначения. Примеры хорошо известных вычислительных систем, сред и/или конфигураций, которые могут быть пригодными для использования с изобретением, включают в себя, но не в качестве ограничения, персональные компьютеры, серверные компьютеры, «карманные» или «дорожные» устройства, многопроцессорные системы, основанные на микропроцессорах системы, телевизионные приставки, программируемую бытовую электронную аппаратуру, сетевые ПК (персональные компьютеры, PC), миникомпьютеры, универсальные вычислительные машины, распределенные вычислительные среды, которые включают в себя любые из вышеприведенных систем или устройств, и тому подобное.
Изобретение может быть описано в общем контексте машинно-исполняемых инструкций, к примеру программных модулей, исполняемых компьютером. Как правило, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и так далее, которые выполняют конкретные задачи или реализуют специфические абстрактные типы данных. Изобретение также может быть осуществлено на практике в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки данных, которые связаны через сеть передачи данных или другую среду передачи данных. В распределенной вычислительной среде программные модули и другие данные могут быть расположены как на локальных, так и удаленных компьютерных запоминающих носителях, в том числе запоминающих устройствах хранения.
Со ссылкой на фиг. 1, примерная система для реализации изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не в качестве ограничения, процессор 120 (блок обработки данных), системную память 130 и системную шину 121, которая соединяет различные системные компоненты, в том числе системную память, с процессором 120. Системная шина 121 может быть любой из нескольких типов шинных структур, в том числе шиной памяти или контроллером памяти, периферийной шиной, и локальной шиной, использующей любую из многообразия шинных архитектур. В качестве примера, но не ограничения, такие архитектуры включают в себя шину стандартной архитектуры для промышленного применения (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), шину стандарта (VESA) локальной видеошины для ПК, шину соединения периферийных компонентов (PCI) (также известную как шина расширения), ускоренную PCI (PCI-Express) и системную управляющую шину (SMBus).
Компьютер 110 типично включает в себя многообразие машиночитаемых носителей. Машиночитаемые носители могут быть любыми имеющимися в распоряжении носителями, к которым может быть осуществлен доступ компьютером 110, и включают в себя как энергозависимые и энергонезависимые носители, так и съемные и несъемные носители. В качестве примера, а не ограничения, машиночитаемые носители могут содержать компьютерные запоминающие носители и среду передачи данных. Компьютерные запоминающие носители включают в себя как энергозависимые и энергонезависимые, так и съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные запоминающие носители включают в себя, но не в качестве ограничения, ОЗУ (оперативное запоминающее устройство, RAM), ПЗУ (постоянное запоминающее устройство, ROM), EEPROM (электрически стираемое и программируемое ПЗУ), флэш-память или память другой технологии, CD-ROM (ПЗУ на компакт-диске), универсальные цифровые диски (DVD) или другие оптические дисковые запоминающие устройства, магнитные кассеты, магнитную ленту, магнитное дисковое запоминающее устройство или другие магнитные запоминающие устройства, или любой другой носитель, который может быть использован, чтобы хранить желаемую информацию и к которому может быть осуществлен доступ компьютером 110. Среда передачи данных типично воплощает машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как сигнал несущей или другой транспортный механизм, и включает в себя любую среду доставки информации. Термин «модулированный сигнал данных» означает сигнал, который имеет одну или более своих характеристик, установленных или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среда передачи данных включает в себя проводную среду, такую как проводная сеть или непосредственное проводное соединение, и беспроводную среду, такую как акустическая, РЧ (радиочастотная, RF), инфракрасная и другую беспроводную среду. Сочетания любых из вышеприведенных также должны быть включены в понятие машиночитаемых носителей.
Системная память 130 включает в себя компьютерные запоминающие носители в виде энергозависимой и/или энергонезависимой памяти, такой как ПЗУ 131 и ОЗУ 132. Базовая система 133 ввода/вывода (BIOS), содержащая базовые процедуры, которые помогают передавать информацию между элементами в пределах компьютера 110, к примеру, во время запуска, обычно сохранена в ПЗУ 131. ОЗУ 132 обычно содержит данные и/или программные модули, которые доступны непосредственно и/или, собственно, являются приводимыми в действие процессором 120. В качестве примера, но не ограничения, фиг. 1 иллюстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137.
Компьютер 110 также может включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители. Только в качестве примера, фиг. 1 иллюстрирует накопитель 141 на жестком диске, который считывает с или записывает на несъемные энергонезависимые магнитные носители, привод 151 магнитного диска, который считывает с или записывает на съемный энергонезависимый магнитный диск 152, и привод 155 оптического диска, который считывает с или записывает на съемный энергонезависимый оптический диск 156, такой как CD-ROM, или другие оптические носители. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие носители, которые могут быть использованы в примерной рабочей среде, включают в себя, но не в качестве ограничения, кассеты магнитной ленты, карты флэш-памяти, универсальные цифровые диски, цифровую видеоленту, твердотельное ОЗУ, твердотельное ПЗУ и тому подобное. Накопитель 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 ввода, который соединен с системной шиной, но могут быть подключены посредством других интерфейсов и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 191, или другой вид устройства отображения, также подключен к системной шине 121 через интерфейс, такой как видеоинтерфейс 190. В дополнение к монитору, компьютеры также могут включать в себя другие периферийные устройства вывода, такие как динамики 197 и принтер 196, которые могут быть подключены через интерфейс 195 периферийных устройств вывода.
Персональный компьютер 110 может работать в сетевой среде с использованием логических соединений с одним или более удаленных компьютеров, таких как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым устройством или другим общим узлом сети, и типично включает в себя многие или все из элементов, описанных выше относительно компьютера 110, хотя только запоминающее устройство 181 памяти проиллюстрировано на фиг. 1. Изображенные логические соединения включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но также могут включать в себя другие сети. Такие сетевые среды являются обычными в офисах, корпоративных компьютерных сетях, сетях интранет (локальных сетях, основанных на технологиях Интернет) и Интернете.
При использовании в сетевой среде LAN компьютер 110 подключен к LAN 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде WAN персональный компьютер 110 типично включает в себя модем 172 или другое средство для установления соединений через WAN 173, такую как Интернет. Модем 172, который может быть внутренним и внешним, может быть подключен к системной шине 121 через интерфейс 160 пользовательского ввода, или другой подходящий механизм. В сетевой среде программные модули, изображенные относительно компьютера 110, или их части, могут быть сохранены в удаленном запоминающем устройстве памяти. В качестве примера, а не ограничения, фиг. 1 иллюстрирует удаленные прикладные программы 185 как находящиеся в устройстве 181 памяти. Понятно, что показанные сетевые соединения являются примерными, и может быть использовано другое средство установления линии связи между компьютерами.
Примерные варианты осуществления стилизации для проектирования UI
Современный пользовательский интерфейс (UI) типично определен набором объектов, представляющих элементы в пределах UI (например, кнопки, прямоугольники, окна) и свойства таких элементов (например, цвет, расположение, текстовые значения). Настоящее изобретение реализует «стиль» в виде набора свойств, включающего в себя, но не в качестве ограничения, цвет, расположение, геометрическую форму и т.д., и присвоение значений этим свойствам, например зеленый, середина экрана, овальная и т. д. Каждый стиль может иметь наименование или другой идентификатор, который может быть использован, чтобы однозначно указывать на него ссылкой, и стили могут быть применены к объектам в описании UI. Например, проектировщик пользовательского интерфейса может определить два стиля, один, названный «Zebra» («Зебра»), в котором цвет изображения и фона определены как черный и белый, а другой, названный «Tiger» («Тигр»), в котором цвет изображения и фона определены как черный и оранжевый. Если «Zebra» применен к набору кнопок и позициям списка, они могут появляться черными и белыми, или проектировщик может применить «Tiger», чтобы получать черную и оранжевую схемы.
Механизм описания стиля по настоящему изобретению может быть разделен на две части: компонент «периода исполнения», который использует описание стиля, чтобы оказывать влияние на внешний вид и ощущение от использования пользовательского интерфейса, и компонент «периода проектирования», который является данными восприятия, представленными инструментальными средствами WYSIWYG, чтобы определять внешний вид и ощущение от использования пользовательского интерфейса. Компонент периода проектирования может быть реализован на основе объектов периода исполнения.
Стилевые объекты периода исполнения
Стилевым объектом является именованный набор свойств с присваиваниями значений. Свойства могут происходить из любого класса. Общий механизм для осуществления ссылки на свойства используется так, что общеязыковая среда исполнения (CLR) и другие объектные системы могли ссылаться на свойство посредством задания наименования типа и наименования свойства. Например, «Button.Background», где «Button» является наименованием типа, а «Background» является наименованием свойства этого типа. CLR является частью базовой структуры NET, доступной для приобретения у MICROSOFT CORP., и управляет исполнением программ и предусматривает совместное использование общих объектно-ориентированных классов.
Учитывая это, возможно объявлять стиль на XML (расширяемом языке разметки), например:
Если реализовано стилевое наследование, стиль может быть основан на другом стиле. Это значит, что стиль может перенимать любые пары свойства и/или значения у родительского стиля. Присваивания свойств в новом стиле имеют старшинство и, как говорят, «подменяют» родительские установки. Например:
Псевдоописание на C# стилевого класса может быть следующим:
class Style
{
public string Name { get; set; }
public Dictionary
public Style BasedOn { get; set; }
}
Каждый элемент включает в себя названный свойством стиль, чье значение является ID (идентификатором) стиля. Значение этого свойства является стилем элемента.
Именованные и совместно используемые ресурсы могут быть определены для любого типа свойства.
Value=”RGB(0,0,1,1)”/> Значение любого допускающего стилизацию свойства задается посредством проверки, есть ли локальное значение у элемента. Если ни одного нет, используется значение свойства из стиля элемента. Стили и ресурсы могут быть объединены в темы. Темой является группа описаний стиля, которая делает удобным изменять общий вид набора контента. Value=”RGB(0,0,1,1)”/>