Open Source
English version
 

Главная
Команда
Структура проекта
Не утвержденные участники
Управление форумом
Форумы
Download center

Выход
Словарь UIML 20030724

revision
20030724 UIML Dictions1L by Pavel V. Trusov
based on:
20030420 TZ RFC by Eugene A. Pivnev
20020208 UIML Specification by Harmonia Inc.

Словарь UIML специфичный для проекта 1L

Различные представления

В стандарте UIML предполагается, что данные о представлении элементов интерфейса хранятся  в файлах  словарей, которые представляют собой обычные uiml файлах в которых задан шаблон и идентификатором vocab, в котором в элементе presentation и содержится представление.

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

Пример такого представления приведен ниже (пример взят из словаря Java_1.3_Harmonia_1.0). Этот пример показывает отображение виджета BUTTON в соответствующий ему класс языка Java с использование библиотеки AWT.

<?xml version="1.0"?>
<!DOCTYPE uiml PUBLIC "-//Harmonia//DTD UIML 2.0 Draft//EN"
"http://www.uiml.org/dtds/UIML2_0g.dtd">
<uiml>
<template id="vocab">
<presentation base="Java_1.3_Harmonia_1.0">
<d-class id="Button" used-in-tag="part" maps-type="class" maps-to="java.awt.Button">
  <d-property id="mustPackAndShow" maps-type="method" maps-to="false"/>
  <d-property id="background" maps-type="setMethod" maps-to="setBackground">
       <d-param type="java.awt.Color"/>
  </d-property>
  <d-property id="background" return-type="java.awt.Color" maps-type="getMethod" maps-to="getBackground"/>
  <d-property id="bounds" maps-type="setMethod" maps-to="setBounds">
       <d-param type="java.awt.Rectangle"/>
  </d-property>
  <d-property id="bounds" return-type="java.awt.Rectangle" maps-type="getMethod" maps-to="getBounds"/>
  <d-property id="cursor" maps-type="setMethod" maps-to="setCursor">
       <d-param type="java.awt.Cursor"/>
  </d-property>
  <d-property id="cursor" return-type="java.awt.Cursor" maps-type="getMethod" maps-to="getCursor"/>
  <d-property id="enabled" maps-type="setMethod" maps-to="setEnabled">
       <d-param type="boolean"/>
  </d-property>
  <d-property id="enabled" return-type="boolean" maps-type="getMethod" maps-to="isEnabled"/>
  <d-property id="font" maps-type="setMethod" maps-to="setFont">
       <d-param type="java.awt.Font"/>
  </d-property>
  <d-property id="font" return-type="java.awt.Font" maps-type="getMethod" maps-to="getFont"/>
  <d-property id="foreground" maps-type="setMethod" maps-to="setForeground">
       <d-param type="java.awt.Color"/>
  </d-property>
  <d-property id="foreground" return-type="java.awt.Color" maps-type="getMethod" maps-to="getForeground"/>
  <d-property id="location" maps-type="setMethod" maps-to="setLocation">
       <d-param type="java.awt.Point"/>
  </d-property>
  <d-property id="location" return-type="java.awt.Point" maps-type="getMethod" maps-to="getLocation"/>
  <d-property id="name" maps-type="setMethod" maps-to="setName">
       <d-param type="java.lang.String"/>
  </d-property>
  <d-property id="name" return-type="java.lang.String" maps-type="getMethod" maps-to="getName"/>
  <d-property id="size" maps-type="setMethod" maps-to="setSize">
       <d-param type="java.awt.Dimension"/>
  </d-property>
  <d-property id="size" return-type="java.awt.Dimension" maps-type="getMethod" maps-to="getSize"/>
  <d-property id="visible" maps-type="setMethod" maps-to="setVisible">
       <d-param type="boolean"/>
  </d-property>
  <d-property id="visible" return-type="boolean" maps-type="getMethod" maps-to="isVisible"/>
  <d-property id="label" maps-type="setMethod" maps-to="setLabel">
       <d-param type="java.lang.String"/>
  </d-property>
  <d-property id="label" return-type="java.lang.String" maps-type="getMethod" maps-to="getLabel"/>
  <listener class="java.awt.event.ActionListener" attacher="addActionListener"/>
  <listener class="java.awt.event.FocusListener" attacher="addFocusListener"/>
  <listener class="java.awt.event.MouseListener" attacher="addMouseListener"/>
  <listener class="java.awt.event.MouseMotionListener" attacher="addMouseMotionListener"/>
  <listener class="java.awt.event.KeyListener" attacher="addKeyListener"/>
</d-class>
</presentation>
</template>
</uiml>

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

<part id="btn1" class=button>
<property name="background"></property>
<property name="bounds"></property>
<property name="cursor"></property>
<property name="enabled"></property>
<property name="font"></property>
<property name="foreground"></property>
<property name="location"></property>
<property name="name"></property>
<property name="visible"></property>
<property name="label"></property>
</part>

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

Однако на текущем этапе разработки проекта 1L было решено использовать словари без привязки к языкам программирования, то есть после описания виджета на человеческом языке будет следовать описание этого виджета как словаря UIML в котором будет опущен атрибуты MAPS-TO.

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

Части UI

Части пользовательского интерфейса - это множество всех элементарных частей из которых состоит пользовательский интерфейс. Такие части мы будем так же называть виджетами (Widget). Таким образом UIML-документ описывающий пользовательский интерфейс так же состоит из частей.

Для определения функциональной нагрузки каждой части вводится понятие классов (например класс кнопок, класс полей ввода, класс картинок). Каждый класс имеет имя, которое состоит из одной или нескольких символов английского алфавита и цифр, при этом имя класса не может начинаться с цифры. При задании имени класса необходимо учесть, что имена являются нечувствительными к регистру (так Button, button, BUTTON - являются именами одного класса). Кроме указания класса для виджета необходимо указать его имя - уникальный идентификатор. Правила присвоения имен аналогичны правилам присвоения имен для классов. Ниже приводится пример который задает три части интерфейса одного класса.

<part class="Button" id="A"/>
<part class="button" id="B"/>
<part class="BUTTON" id="C"/>

Как видно из примера для задания частей интерфейса  используется элемент <part>. Он должен содержать имя класса (аттрибут class) к которому относится эта часть интерфейса и уникальный идентификатор части (аттрибут id).

<part class="button" id="myButton"/>

Обратите внимание что элементы в XML обязаны иметь закрывающий тэг, либо символ "/" в конце, который указывает что элемент состоит из одного тэга. Ниже приведен пример правильных элементов.

<part class="button" id="myButton"/>
<part class="button" id="myButton">
</part>

Первый вариант используется если для виджета не указано никаких свойств внутри него (например все свойства вынесены в элемент <style> следующий после элемента <structure>) и этот виджет не содержит вложенных виджетов, второй вариант применим в противных случаях.

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

<part class="layer" id="A">
<part class="button" id="button1.at.layer.A"/>
<part class="button" id="button2.at.layer.A"/>
</part>
<part class="layer" id="B">
<part class="button" id="button1.at.layer.B"/>
</part>

Свойства частей UI

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

<property name="color" class-name="button">Green</property>
<property name="color" part-name="button1.at.layer.B">Red</property>

В первом случае устанавливается свойство ЦВЕТ для всех кнопок, а во втором переопределяется это свойство для одной из кнопок с определенным идентификатором.

Имена свойств частей пользовательского интерфейса подчиняются тем же правилам что и имена классов.

Типы значений свойств UI

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

Если в дальнейшем мы будем говорить что свойство width (ширина) имеет тип int (целое число), то это означает что между тэгами <property part-name="button1" name="width"> и </property> должно содержаться целое число. Например вот так:

<property part-name="button1" name="width">64</property>

Примеры даны в одинарных кавычках, которые не указываются при практическом применении, если это не оговорено явно.

Типы данных:

Тип (Eng.)
Тип (Cyr.) Описание
Пример
string Строка
любая строка символов в кодировке файла XML. В случае если строка содержит служебные символы XML или недопустимые символы то она заключается в конструкцию <![CDATA[ ... ]]>. Например так:
<property part-name="E" name="Text">
<![CDATA[Character &]]>
</property>
'label'
int
Целое
Целое положительное или отрицательное число. Разделение троичных разрядов какими бы то ни было символами в тысячах, миллионах не допускается. Отрицательные числа задаются минусом перед числом.
'-125'
fixed
Дробное
Дробное положительное или отрицательное число. Разделение троичных разрядов какими бы то ни было символами в тысячах, миллионах не допускается. Отрицательные числа задаются минусом перед числом. Запись числа в научной нотации (например, 1.2e-10) не допускается. Разделитель целой и дробной части - символ "." (точка) вне зависимости от системных установок.  '-123.45'
digit
Число
Общее обозначение для целых и дробных чисел. Правила аналогичные.
'-123.45'
cortege Кортеж
Набор значений, разделенных запятой. Текст, содержащий запятые может быть заключен в двойные или одинарные кавычки или перед запятой должен стоять экранирующий символ '\'. При указании строки в кавычках при нахождении такой же кавычки, как и ограничивающие текст кавычки, она также предваряется экранирующим символом '\'. Например: '"Label", 33, -8, Test, checking...'. Все пробелы как с правой, так и с левой стороны элемента будут удалены. Исключение составляет текст, указанный в кавычках. '"Label", 33, -8, Test, checking...'
matrix Матрица
Многострочный кортеж, строки которого разделены символом перевода строки 'n'. В случае если в одной из строк количество значений меньше чем в других, то эти значения подразумеваются пустыми. '"Apple", 3.50
"Orange", 4.80'
URL Ссылка на ресурс
Адрес ресурса Интернета, он же URI (Unificated Resource Indexer) 'http://www.host.com/dir/img.png'
color
Цвет
Строка, указывающая на соответствующие величины составляющих красного, зеленого и синего, указанных в шестнадцатеричной системе счисления каждый двумя знаками. Перед такой записью цвета должен стоять символ '#'. Например, '#ffffff' - белый цвет. Альтернативная запись основных цветов - по их названию на английском языке. Регистр несущественен. Например, тот же белый цвет можно указать как 'white' или 'White'. '#c6ef04'
boolean Логическое значение
Может принимать только два значения. Логическая истина может быть указана одним из следующих слов в любом регистре: True, On, Yes, 1. Логическая ложь - соответственно: False, Off, No, 0. 'Yes'
enum Перечисление
Указание одной ключевой фразы из определенного набора. Регистр ключевого слова несущественен. Например, в наборе есть элементы: 'normal,bold,italic,bolditalic'. Указать можно только один элемент из перечисления. 'bold'
keys Код клавиши
Комбинация нажатия одной или нескольких клавиш. Нажимаемые клавиши соответствуют надписям на них и перечисляются через '+'. 'Ctrl+Shift+A

Части интерфейса 1С

В документации к системе 1С декларируются следующие элементы диалога:

  • Текст
  • Поле ввода
  • Многострочная часть (таблица)
  • Дерево
  • Список
  • Таблица значений
  • Поле со списком
  • Флажок
  • Кнопка
  • Картинка
  • Рамка
  • Переключатель
  • Реквизит

Однако существуют дополнительные элементы, которые не декларируются как элементы диалога:

  • Диалог (сам по себе)
  • Слой
  • Панель Инструментов

В нашем проекте должны быть реализованы аналоги для всех этих элементов, а так же несколько дополнительных. Такие как например:

  • Окно
  • Статусная строка
  • Главное меню
  • Всплывающее меню
  • Пункт меню
  • и другие...

Классы UI

Данная версия спецификации словаря включает следующие классы виджетов.

Класс UIML
Аналог 1С
Описание виджета
Окна
Window

Главное окно приложения. Является родительским (MDI Parent)окном для всех диалогов (Dialog).
Dialog
Форма Окно диалог для непосредственного взаимодействия пользователя с системой. Является (MDI Child) для главного окна (Window).
Меню, закладки и панели инструментов
MenuBar

Главное меню окна или диалога. Может содержать виджеты класса MenuItem
PopupMenu

Всплывающее меню.Может содержать виджеты класса MenuItem
MenuItem

Элемент всплывающего или главного меню.
ToolBar
ПанельИнструментов
Панель инструментов окна или диалога. Может содержать различные виджеты, например кнопки.
Separator

Служит для включения промежутков между виджетами на панели инструментов.
TabCtrl
Закладки
Закладки для представления многостраничных диалоговых окон. Содержит непосредственно виджеты класса TabItem.
TabItem

Составная часть элемента TabCtrl описывающая одну из закладок.
Внимание: TabItem не может содержать других виджетов. Сами виджеты относящиеся к определенной закладке размещаются на слое layer, который в свою очередь делается видимым при активации закладки.
StatusBar

Определяет статусную строку окна или диалога.
StatusItem

Определяет отдельную панель на статусной строке
Элементы размещения и группировки
Layer
Слой
Не визуальная часть интерфейса. Служит для группировки других частей и последующего комплексного управления их видимостью. Может содержать виджеты, которые будут видимы тогда и только тогда, когда и у слоя и у самого виджета свойство "видимость" установлено в положение "истинно".
Panel
Рамка группы
Служит для визуальной группировки функционально похожих частей интерфейса с помощью панели или рамки.
GroupBox
Рамка группы
Служит для визуальной группировки Переключателей (RadioButton) с помощью панели или рамки а так же для реализации их взаимного переключения.
Элементы отображения данных
Label
Текст
Служит для вывода текста, например пояснения к полю ввода данных.
TreeView
Дерево
Служит для отображения данных в виде дерева.
ListView

Служит для отображение данных в виде многоколоночного списка
Image
Картинка
Служит для вывода картинки
Icon

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

Служит для задания внешнего вида нового курсора мыши, который в последствие может быть использован с разными виджетами. Представляет собой Icon, дополненную дополнительным параметром горячая точка (HotPoint).
Animation

Служит для вывода анимационной последовательности
Line

Служит для вывода, горизонтальной. вертикальный или произвольной линии или стрелки.
Shape

Служит для вывода геометрического изображения окружность, эллипс, квадрата, квадрата со скругленными углами, прямоугольника или прямоугольника со скругленными углами.
ProgressBar

Строка отображающая ход работы. Может быть горизонтальной или вертикальной. Ход работы отображается в форме закраски соответствующей горизонтальной или вертикальной части виджета.
ProgressCircle

Еще один виджет для отображения хода работы. Ход работы отображается в форме закраски соответствующего сектора виджета.
Widget

Заглушка. Абстрактный виджет. Служит для временного занятия места любого виджета. В связи с этим может иметь любые свойства, даже те которые не определены ни в одном виджете.
Элементы ввода данных
Edit

Однострочное поле для ввода данных, может так же использоваться для ввода по маске или ввода пароля.
SpinEdit

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

Многострочное поле ввода.
RadioButton

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

Флажок. Служит для установки булевых данных.
ListBox

Список выбора.
ComboBox

Строка ввода с возможностью выбора значений из списка.
Table
Таблица
Таблица. Элемент для представления табличной части документа 1С. Может содержать объединение строк и столбцов.
Элементы управления
Button
Кнопка
Задает кнопку. Кнопка может располагаться как непосредственно на форме, так и на панели инструментов.
ScrollBar

Задает строку прокрутки. Задает дополнительную строку прокрутки несвязанную с полосами прокрутки формы.

Класс WINDOW

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

Имя свойства
Тип
Описание
Caption
String
Задает заголовок окна. К этой надписи добавляется надпись на окне активного диалога если он развернут на все окно.
По умолчанию надпись - пустая строка.
Geometry
Cortege of Int (4)
Задает положение и размеры окна. Представляет собой кортеж из 4 целых чисел. Порядок следования координат и размеров следующий 'координата_Х, координата_У, ширина, высота'. Например параметр <property part-name="a" name="Geometry">10, 20, 50, 25</property> задает виджет верхний левый угол которой расположен в точке (Х,У) 10,20, ширина виджета составляет 50 точек, высота 25. Для языков в которых разместить виджет по строгим координатам невозможно или нецелесообразно этот параметр игнорируется, а виджет помещается в общем потоке формы.
В случае диалог развернут на все окно то эти параметры игнорируются.
Position
Cortege of Int (2) Задает положение окна. Представляет собой кортеж из 2 целых чисел. Порядок следования координат следующий 'координата_Х, координата_У'.
Size
Cortege of Int (2)
Задает размеры окна. Представляет собой кортеж из 2 целых чисел. Порядок следования размеров следующий 'ширина, высота'.
Left
Int
Задает координату Х верхнего левого угла окна
Top
Int
Задает координату Y верхнего левого угла окна
Width
Int
Задает ширину окна
Height
Int
Задает высоту окна
Font-family
String
Задает семейство шрифтов по умолчанию для всех виджетов находящихся в окне для которых этот параметр не задан.
Font-size
Fixed
Задает размер кегля шрифта в типографских пунктах для всех виджетов находящихся в окне для которых этот параметр не задан.
Font-color
Color
Задает цвет шрифта для всех виджетов находящихся на диалоге для которых этот параметр не задан для всех виджетов находящихся в окне для которых этот параметр не задан.
Font-bold
Boolean
Задает признак жирного шрифта для всех виджетов находящихся в окне для которых этот параметр не задан.
Font-italic
Boolean Задает признак курсива для всех виджетов находящихся в окне для которых этот параметр не задан.
Font-underline
Boolean Задает признак подчеркнутого шрифта для всех виджетов находящихся на диалоге для которых этот параметр не задан.
Font-strikeout
Boolean Задает признак зачеркнутого шрифта для всех виджетов находящихся в окне для которых этот параметр не задан.
Font
Cortege (7) [String, Fixed, Color, Boolean, Boolean, Boolean, Boolean]
[Font-family, Font-size, Font-color, Font-bold, Font-italic, Font-underline, Font-strikeout]
Задает предыдущие 7 параметров относящихся к шрифту надписи на виджетах окна в одном кортеже. Если один или несколько свойств надо оставить по умолчанию, то их места оставляются пустыми. Например при задании жирного шрифта семейства "Serif" с остальными параметрами по умолчанию используется элемент: <property name="Font"> Arial,,,Yes,,,, </property> По умолчанию совпадает с системным по умолчанию.
Color
Color
Задает цвет лицевой панели окна. По умолчанию совпадает с системным по умолчанию.
Visible
Boolean Задает признак видимости виджета - в случае логического отрицания виджет невидим. По умолчанию "Истина".
Hint
String
Строка задающая подсказку появляющуюся при наведении указателя мыши на окно. По умолчанию пустая строка.
PopupMemu
String
Задает имя всплывающего меню отображаемого при нажатии правой кнопки мыши на окне. Меню с таким именем должно быть задано в UIML документе.
SystemMenu
String
Задает имя системного меню отображаемого при нажатии на системную иконку окна или при нажатии на правую кнопку мыши на "панели окон". Меню с таким именем должно быть задано в UIML документе. 
SystemIcon
String
Задает имя изображения отображаемого в качестве системеной иконки окна. По умолчанию отсутствует. Изображение с таким именем должно быть задано в виджете Icon.
BackgroundImage
String
Задает имя изображения для запонения фона окна. Изображение с таким именем должно быть задано в виджете Icon.
BackgroundType
Enum
{Title, Scale, Center, Normal}
Задает тип заполнения фона окна изображением заданным в BackgroundImage. Title - фон замощается изображением, Scale - изображение масштабируется для заполнения всего размера окна, Normal - изображение помещается в левый верхний угол, Center - изображение помещается в центр окна.
Style
Enum:
{3d,Shadow3d,Old}
Задает стил начертания диалога: 3d: трехмерный диалог - верхняя и левая граница будет более светлой, а нижняя и правая будет более темной.
shadow3d - аналогично 3d, но окно имеет тень. Old - окно имеет обычну не трехмерную рамку, как в Win3.0 и MacOS старых версий. По уморлчанию 3d.
Cursor
String
Указывает имя курсора мыши описанного внутри элемента или одно из стандартных имен курсоров для отображения при нахождении мыши внутри окна.
State
Enum:
{Normal; Minimized, Maximized}
Отображает состоянием окна. Normal - обычное стостояние - окно отображается с заданными координатами и положением. Minimized - окно свернуто на "панель задач", "Maximized" - окно развернуто во весь размер рабочего стола. По умолчанию Normal.
ScreenPosition
Enum {Designed,  DesktopCenter, ScreenCenter}
Задает положение окна на экране. Designed - означает, что размер и положение задается в соответствующих свойствах. DesktopCenter - окно располагается в центре рабочего стола, ScreenCenter - окно распологается в центре экрана. По умолчанию Designed.
ScrollBars
Enum {None, Horizontal, Vertical, Both, Auto}
Задает будет ли окно иметь полосы прокрутки. None - не будет, Horizontal - только горизонтальная полоса прокрутки, Vertical - только вертикальная, Both - обе полосы, Auto - полосы появляются только если все контролы не помещаются в текущий размер окна. По умолчанию Auto.
TransparentColor
Boolean
Признак того что на окне имеется прозрачный цвет. По умолчанию Ложь.
TransparentColorValue
Color
Задает прозрачный цвет, в случае если TransparentColor истина, то все что отображено на окне этим цветом будет прозрачным. По умолчанию Black.
AlphaBlend
Boolean
Признак того что на окно полупрозрачно. По умолчанию Ложь.
AlphaBlendValue

Int
Степень прозрачности: 0 - полностью прозрачно. 255 не прозрачно. По умолчанию 255.
Sizeble
Boolean
Признак того что размер окна может быть изменен пользователем. По умолчанию - истина.

Примером задания окна будет следующий код на языке UIML:

<structure>

<part class="Window" id="MainWnd">
<part class="Icon" id="DisketaColor">
<style>
<property name="Size">22,22</property>
<property name="Pixmap">
<![CDATA[
"22 22 5 1",
" c None",
". c #000000",
"+ c #353535",
"@ c #FFFFFF",
"# c #A7A7A7",
" ",
" .................. ",
" .++@@@@@@@@@@@@@@++. ",
" .@+@@@@@@@@@@@@@@+@. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@++++++++++++@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@++++++++++++@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@++++++++++++@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++++++++++++++++++. ",
" .+++########+++++++. ",
" .+++#++#####+++++++. ",
" .+++#++#####+++++++. ",
" .+++#++#####+++++++. ",
" .++########+++++++. ",
" ................. ",
" ";
]]>
</property>
</style>
</part>
<part class="PopupMenu" id="SysMenu">
<part class="MenuIten" id="MinItem">
<style>
<property name="Caption">Свернуть</property>
</style>
</part>
<part class="MenuIten" id="MaxItem">
<style>
<property name="Caption">Развернуть</property>
</style>
</part>
<part class="MenuIten" id="CloseItem">
<style>
<property name="Caption">Закрыть</property>
</style>
</part>
</part>
<part class="PopupMenu" id="SysPopup">
<part class="MenuIten" id="MinAll">
<style>
<property name="Caption">Свернуть все окна</property>
</style>
</part>
<part class="MenuIten" id="TitleAll">
<style>
<property name="Caption">Замостить окнами</property>
</style>
</part>
<part class="MenuIten" id="HelpAll">
<style>
<property name="Caption">Помощь</property>
</style>
</part>
</part>
<part class="MainMenu" id="MainMnu">
<part class="MenuIten" id="FileM">
<style>
<property name="Caption">Файл</property>
</style>
<part class="MenuIten" id="NewM">
<style>
<property name="Caption">Новый</property>
</style>
</part>
<part class="MenuIten" id="OpenM">
<style>
<property name="Caption">Открыть</property>
</style>
</part>
<part class="MenuIten" id="SaveM">
<style>
<property name="Caption">Сохранить</property>
</style>
</part>
<part class="MenuIten" id="ExitM">
<style>
<property name="Caption">Выход</property>
</style>
</part>
</part>
<part class="MenuIten" id="EditM">
<style>
<property name="Caption">Правка</property>
</style>
</part>
<part class="MenuIten" id="WindowM">
<style>
<property name="Caption">Окна</property>
</style>
</part>
<part class="MenuIten" id="HelpM">
<style>
<property name="Caption">Помощь</property>
</style>
<part class="MenuIten" id="Help1">
<style>
<property name="Caption">Справка</property>
</style>
</part>
<part class="MenuIten" id="Help2">
<style>
<property name="Caption">Содержание</property>
</style>
</part>
<part class="MenuIten" id="Help3">
<style>
<property name="Caption">О програме</property>
</style>
</part>
</part>
</part>
<style>
<property name="Caption">1L Бухгалтерия</property>
<property name="Geometry">10,10,430,420</property>
<property name="SystemIcon">DisketaColor</property>
<property name="SystemMenu">SysMenu</property>
<property name="PopupMenu">SysPopup</property>
<property name="Hint">Главное окно приложения</property>
<property name="Style">3d</property>
<property name="ScreenPosition">Design</property>
<property name="State">Normal</property>
<property name="ScrollBars">Auto</property>
<property name="Sizeble">Yes</property>
</style>
</part>

</structure>

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

Класс DIALOG

Класс Dialog задает диалоговое окно и является основным классом большинства UIML документов. Он является подчиненным окном (MDI Child) для главного окна приложения (Window). Все прочие элементы интерфейса находятся внутри элемента класса Dialog. Таким образом этот элемент может содержать элементы любого класса кроме классов Dialog и Window.

Имя свойства
Тип
Описание
Caption
String
Задает заголовок окна диалога. Это надпись добавляется к надписи на главном окне если диалог развернут на все окно, или в строке заголовка окна в проивном случае. Кроме того эта строка используется для вывода на "панель окон" в нижней части родительского окна.
По умолчанию надпись - пустая строка.
Geometry
Cortege of Int (4)
Задает положение и размеры диалога. Представляет собой кортеж из 4 целых чисел. Порядок следования координат и размеров следующий 'координата_Х, координата_У, ширина, высота'. Например параметр <property part-name="a" name="Geometry">10, 20, 50, 25</property> задает виджет верхний левый угол которой расположен в точке (Х,У) 10,20, ширина виджета составляет 50 точек, высота 25. Для языков в которых разместить виджет по строгим координатам невозможно или нецелесообразно этот параметр игнорируется, а виджет помещается в общем потоке формы.
В случае диалог развернут на все окно то эти параметры игнорируются.
Position
Cortege of Int (2) Задает положение диалога. Представляет собой кортеж из 2 целых чисел. Порядок следования координат следующий 'координата_Х, координата_У'.
Size
Cortege of Int (2)
Задает размеры диалога. Представляет собой кортеж из 2 целых чисел. Порядок следования размеров следующий 'ширина, высота'.
Left
Int
Задает координату Х верхнего левого угла диалога
Top
Int
Задает координату Y верхнего левого угла диалога
Width
Int
Задает ширину диалога
Height
Int
Задает высоту диалога
Font-family
String
Задает семейство шрифтов по умолчанию для всех виджетов находящихся на диалоге для которых этот параметр не задан.
Font-size
Fixed
Задает размер кегля шрифта в типографских пунктах для всех виджетов находящихся на диалоге для которых этот параметр не задан.
Font-color
Color
Задает цвет шрифта для всех виджетов находящихся на диалоге для которых этот параметр не задан для всех виджетов находящихся на диалоге для которых этот параметр не задан.
Font-bold
Boolean
Задает признак жирного шрифта для всех виджетов находящихся на диалоге для которых этот параметр не задан.
Font-italic
Boolean Задает признак курсива для всех виджетов находящихся на диалоге для которых этот параметр не задан.
Font-underline
Boolean Задает признак подчеркнутого шрифта для всех виджетов находящихся на диалоге для которых этот параметр не задан.
Font-strikeout
Boolean Задает признак зачеркнутого шрифта для всех виджетов находящихся на диалоге для которых этот параметр не задан.
Font
Cortege (7) [String, Fixed, Color, Boolean, Boolean, Boolean, Boolean]
[Font-family, Font-size, Font-color, Font-bold, Font-italic, Font-underline, Font-strikeout]
Задает предыдущие 7 параметров относящихся к шрифту надписи виджетах диалога в одном кортеже. Если один или несколько свойств надо оставить по умолчанию, то их места оставляются пустыми. Например при задании жирного шрифта семейства "Serif" с остальными параметрами по умолчанию используется элемент: <property name="Font"> Arial,,,Yes,,,, </property> По умолчанию совпадает с системным по умолчанию.
Color
Color
Задает цвет лицевой панели диалога. По умолчанию совпадает с системным по умолчанию.
Visible
Boolean Задает признак видимости виджета - в случае логического отрицания виджет невидим. По умолчанию "Истина".
Hint
String
Строка задающая подсказку появляющуюся при наведении указателя мыши на диалог. По умолчанию пустая строка.
PopupMemu
String
Задает имя всплывающего меню отображаемого при нажатии правой кнопки мыши на диалоге. Меню с таким именем должно быть задано в UIML документе.
SystemMenu
String
Задает имя системного меню отображаемого при нажатии на системную иконку окна или при нажатии на правую кнопку мыши на "панели окон". Меню с таким именем должно быть задано в UIML документе. 
SystemIcon
String
Задает имя изображения отображаемого в качестве системеной иконки диалога. По умолчанию отсутствует. Изображение с таким именем должно быть задано в виджете Icon.
BackgroundImage
String
Задает имя изображения для запонения фона диалога. Изображение с таким именем должно быть задано в виджете Icon.
BackgroundType Enum
{Title, Scale, Center, Normal}
Задает тип заполнения фона окна изображением заданным в BackgroundImage. Title - фон замощается изображением, Scale - изображение масштабируется для заполнения всего размера окна, Normal - изображение помещается в левый верхний угол, Center - изображение помещается в центр окна.
Style
Enum:
{3d,Shadow3d,Old}
Задает стил начертания диалога: 3d: трехмерный диалог - верхняя и левая граница будет более светлой, а нижняя и правая будет более темной.
shadow3d - аналогично 3d, но окно имеет тень. Old - окно имеет обычну не трехмерную рамку, как в Win3.0 и MacOS старых версий. По уморлчанию 3d.
Cursor
String
Указывает имя курсора мыши описанного внутри элемента или одно из стандартных имен курсоров для отображения при нахождении мыши внутри окна.
State
Enum:
{Normal; Minimized, Maximized}
Отображает состоянием диалога. Normal - обычное стостояние - диалог отображается с заданными координатами и положением. Minimized - диалог свернут на "панель окон", "Maximized" - диалог развернут во весь размер родительского окна и изменяет размеры вмете с ним. По умолчанию Normal.
Modal
Enum {None, AppModal, SysModal}
Управляет модальностью диалога. None - окно не является модальным. AppModal - окно является модальным для всего приложения, пока оно не будет закрыто работа с другими окнами приложения невозможна. SysModal - окно является модальным для всей системы, пока оно не будет закрыто работа с другими приложениями невозможна. По умолчанию None.
ScreenPosition
Enum {Designed, MainWndCenter}
Задает положение окна на экране. Designed - означает, что размер и положение задается в соответствующих свойствах. MainWndCenter - диалог распологается в середине родительского окна. По умолчанию Designed.
ScrollBars
Enum {None, Horizontal, Vertical, Both, Auto}
Задает будет ли окно иметь полосы прокрутки. None - не будет, Horizontal - только горизонтальная полоса прокрутки, Vertical - только вертикальная, Both - обе полосы, Auto - полосы появляются только если все контролы не помещаются в текущий размер окна. По умолчанию Auto.
TransparentColor
Boolean
Признак того что на диалоге имеется прозрачный цвет. По умолчанию Ложь.
TransparentColorValue
Color
Задает прозрачный цвет, в случае если TransparentColor истина, то все что отображено на диалоге этим цветом будет прозрачным. По умолчанию Black.
AlphaBlend
Boolean
Признак того что на диалог полупрозрачен. По умолчанию Ложь.
AlphaBlendValue

Int
Степень прозрачности: 0 - полностью прозрачнен. 255 не прозрачен. По умолчанию 255.
Sizeble
Boolean
Признак того что размер диалога может быть изменен пользователем. По умолчанию - истина.

Примером задания диалога будет следующий код на языке UIML:

<structure>

<part class="Dialog" id="LoginDgl">
<part class="Icon" id="DisketaColor">
<style>
<property name="Size">22,22</property>
<property name="Pixmap">
<![CDATA[
"22 22 5 1",
" c None",
". c #000000",
"+ c #353535",
"@ c #FFFFFF",
"# c #A7A7A7",
" ",
" .................. ",
" .++@@@@@@@@@@@@@@++. ",
" .@+@@@@@@@@@@@@@@+@. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@++++++++++++@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@++++++++++++@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@++++++++++++@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++++++++++++++++++. ",
" .+++########+++++++. ",
" .+++#++#####+++++++. ",
" .+++#++#####+++++++. ",
" .+++#++#####+++++++. ",
" .++########+++++++. ",
" ................. ",
" "
]]>
</property>
</style>
</part>
<part class="PopupMenu" id="SysMenu">
<part class="MenuIten" id="MinItem">
<style>
<property name="Caption">Свернуть</property>
</style>
</part>
<part class="MenuIten" id="MaxItem">
<style>
<property name="Caption">Развернуть</property>
</style>
</part>
<part class="MenuIten" id="CloseItem">
<style>
<property name="Caption">Закрыть</property>
</style>
</part>
</part>
<part class="PopupMenu" id="LoginPopup">
<part class="MenuIten" id="SaveLogItem">
<style>
<property name="Caption">Сохранить имя пользователя</property>
</style>
</part>
<part class="MenuIten" id="SavePasItem">
<style>
<property name="Caption">Сохранить пароль</property>
</style>
</part>
<part class="MenuIten" id="HelpItem">
<style>
<property name="Caption">Помощь</property>
</style>
</part>
</part>
<style>
<property name="Caption">Вход в систему</property>
<property name="Geometry">10,10,230,120</property>
<property name="SystemIcon">DisketaColor</property>
<property name="SystemMenu">SysMenu</property>
<property name="PopupMenu">LoginPopup</property>
<property name="Hint">Форма регистрации в базе данных</property>
<property name="Style">3d</property>
<property name="ScreenPosition">Design</property>
<property name="State">Normal</property>
<property name="ScrollBars">None</property>
<property name="Sizeble">No</property>
</style>
<part class="Button" id="LoginButton">
<style>
<property name="Caption">Подключиться</property>
<property name="Position">8,64</property>
<property name="Size">75,25</property>
<property name="Hint">Передать имя пользователя и пароль</property>
<property name="Style">3d</property>
</style>
</part>
<part class="Button" id="CancelButton">
<style>
<property name="Caption">Отмена</property>
<property name="Left">136</property>
<property name="Top">64</property>
<property name="Width">75</property>
<property name="Height">25</property>
<property name="Hint">Отменить подключение</property>
<property name="Style">3d</property>
</style>
</part>
<part class="Edit" id="LoginEdit">
<style>
<property name="Text">Вася</property>
<property name="Left">88</property>
<property name="Top">8</property>
<property name="Width">121</property>
<property name="Height">21</property>
<property name="Hint">Имя пользователя</property>
<property name="Style">3d</property>
</style>
</part>
<part class="Edit" id="PasswordEdit">
<style>
<property name="Text">пароль</property>
<property name="PasswordChar">*</property>
<property name="PasswordType">Asterix</property>
<property name="Left">88</property>
<property name="Top">32</property>
<property name="Width">121</property>
<property name="Height">21</property>
<property name="Hint">Пароль</property>
<property name="Style">3d</property>
</style>
</part>
<part class="Label" id="LoginLabel">
<style>
<property name="Caption">Пользователь</property>
<property name="Left">8</property>
<property name="Top">12</property>
<property name="Width">73</property>
<property name="Height">13</property>
</style>
</part>
<part class="Label" id="PasswLabel">
<style>
<property name="Caption">Пароль</property>
<property name="Left">8</property>
<property name="Top">36</property>
<property name="Width">73</property>
<property name="Height">13</property>
</style>
</part>
</part>

</structure>

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

Класс BUTTON

Описывает кнопку. Кнопка может располагаться как непосредственно на форме, так и на панели инструментов. Может содержать надпись и (или) рисунок. Некоторые кнопки обладают способностью "залипать" - фиксироваться при нажатии. Если кнопка расположена на панели задач, то она может содержать выпадающее меню появляющиеся при нажатии на "стрелку вниз" в правой части кнопки.

Имя свойства
Тип
Описание
Caption
String
Задает надпись на кнопке, может отсутствовать в случае если кнопка не содержит надписей или содержит картинку. По умолчанию надпись - пустая строка.
Geometry
Cortege of Int (4)
Задает положение и размеры виджета. Представляет собой кортеж из 4 целых чисел. Порядок следования координат и размеров следующий 'координата_Х, координата_У, ширина, высота'. Например параметр <property part-name="a" name="Geometry">10, 20, 50, 25</property> задает виджет верхний левый угол которой расположен в точке (Х,У) 10,20, ширина виджета составляет 50 точек, высота 25. Для языков в которых разместить виджет по строгим координатам невозможно или нецелесообразно этот параметр игнорируется, а виджет помещается в общем потоке формы.
Position
Cortege of Int (2) Задает положение виджета. Представляет собой кортеж из 2 целых чисел. Порядок следования координат следующий 'координата_Х, координата_У'.
Size
Cortege of Int (2)
Задает размеры виджета. Представляет собой кортеж из 2 целых чисел. Порядок следования размеров следующий 'ширина, высота'.
Left
Int
Задает координату Х верхнего левого угла виджета
Top
Int
Задает координату Y верхнего левого угла виджета
Width
Int
Задает ширину виджета
Height
Int
Задает высоту виджета
Font-family
String
Задает семейство шрифтов для отображения надписи на кнопке. По умолчанию совпадает с этим параметром для родительского окна.
Font-size
Fixed
Задает размер кегля шрифта в типографских пунктах. По умолчанию совпадает с этим параметром для родительского окна.
Font-color
Color
Задает цвет шрифта.По умолчанию совпадает с этим параметром для родительского окна.
Font-bold
Boolean
Задает признак жирного шрифта. По умолчанию совпадает с этим параметром для родительского окна.
Font-italic
Boolean Задает признак курсива. По умолчанию совпадает с этим параметром для родительского окна.
Font-underline
Boolean Задает признак подчеркнутого шрифта. По умолчанию совпадает с этим параметром для родительского окна.
Font-strikeout
Boolean Задает признак зачеркнутого шрифта. По умолчанию совпадает с этим параметром для родительского окна.
Font
Cortege (7) [String, Fixed, Color, Boolean, Boolean, Boolean, Boolean]
[Font-family, Font-size, Font-color, Font-bold, Font-italic, Font-underline, Font-strikeout]
Задает предыдущие 7 параметров относящихся к шрифту надписи на кнопке в одном кортеже. Если один или несколько свойств надо оставить по умолчанию, то их места оставляются пустыми. Например при задании жирного шрифта семейства "Serif" с остальными параметрами по умолчанию используется элемент: <property name="Font"> Arial,,,Yes,,,, </property> По умолчанию совпадает с этим параметром для родительского окна.
Color
Color
Задает цвет лицевой панели кнопки. По умолчанию совпадает с системным по умолчанию.
Enabled
Boolean Задает признак активности виджета - в случае логического отрицания виджет недоступен. По умолчанию "Истина"
Visible
Boolean Задает признак видимости виджета - в случае логического отрицания виджет невидим. По умолчанию "Истина".
Default
Boolean Задает признак кнопки по умолчанию - в случае логической истины кнопка будет являться кнопкой по умолчанию. Только одна кнопка может быть кнопкой по умолчанию. Кнопка расположенная на Панели Инструментов не может быть кнопкой по умолчанию. По умолчанию "ложь".
Hint
String
Строка задающая подсказку появляющуюся при наведении указателя мыши на виджет. По умолчанию пустая строка.
TabOrder
Int
Порядковый номер виджета в порядке обхода формы, согласно этим номерам осуществляется обход формы по нажатию клавиши TAB. Каждый элемент должен иметь уникальный TabOrder. В случае если язык клиента не позволяет осуществить такую возможность или порядок обхода не задан, порядок обхода совпадает с порядком следования элементов на форме.
TabStop
Boolean
Задает признак того что виджет участвует в порядке обхода формы, то есть можно осуществляя навигацию по форме с помощью клавиши TAB достичь этого элемента. В случае же логического отрицания в этом свойстве виджет будет пропущен при навигации с помощью клавиши TAB. По умолчанию имеет значение "истина"
Checker
Boolean
Задает признак того, что кнопка используется как CheckBox, то есть обладает способностью "залипать" при нажатии. По умолчанию - логическая ложь.
Down
Boolean
Задает текущее значение "залипания". Логическая истина соответствует "залипнувшей" кнопке. По умолчанию - логическая ложь.
PopupMemu
String
Задает имя всплывающего меню отображаемого при нажатии правой кнопки мыши на виджете. Меню с таким именем должно быть задано в UIML документе и быть вложено в элемент описывающий кнопку.
DropDownMenu
String
Задает имя выпадающего меню отображаемого при нажатии на "стрелку вниз" в правой части кнопки Меню с таким именем должно быть задано в UIML документе и быть вложено в элемент описывающий кнопку. Если это свойство не установлено, то кнопка имеет обычный вид.
ImageNormal
String
Задает имя изображения отображаемого на кнопке в обычном состоянии. По умолчанию отсутствует. Изображение с таким именем должно быть задано в виджете Icon.
ImageDown
String
Задает имя изображения отображаемого на кнопке в состоянии "залипания". По умолчанию совпадает с ImageNormal.
ImageClick
String
Задает имя изображения отображаемого на кнопке в момент нажатия. По умолчанию совпадает с ImageNormal.
ImageActNormal
String
Задает имя изображения отображаемого на кнопке в обычном состоянии при наведении на нее мышью. Задает имя изображения отображаемого на кнопке в состоянии "залипания". По умолчанию совпадает с ImageNormal.
ImageActDown
String
Задает имя изображения отображаемого на кнопке в состоянии "залипания" при наведении на нее мышью. По умолчанию совпадает с ImageDown.
ImagePosition
Enum:
{Left,Right,Top,Bottom}
Задает расположение изображения на кнопке относительно надписи на кнопке. Может быть сверху, снизу, слева или справа. Если на кнопке имеется только изображение или только надпись, то это свойство игнорируется. По умолчанию имеет значение 'top'
Style
Enum:
{3d,Flat,Old}
Задает стиль начертания кнопки: 3d: трехмерная кнопка - верхняя и левая граница будет более светлой, а нижняя и правая будет более темной.
Flat - плоская трехмерная кнопка - в стиле Office2000/XP. Old - кнопка имеет обычну не трехмерную рамку, как в Win3.0 и MacOS старых версий.
Cursor
String
Указывает имя курсора мыши описанного внутри элемента или одно из стандартных имен курсоров для отображения при наведении мыши на виджет.

Если элемент класса BUTTON содержит элементы класса IMAGE, то эти изображения не является самостоятельными, а будет изображены на кнопке в соответствии со свойствами ImageNormal, ImageDown, ImageClick, ImageActNormal, ImageActDown.

Если кнопка ссылается на выпадающее или всплывающее меню, то эти элементы описывающие это меню должны быть заданны внутри элемента BUTTON.

Примером задания виджета Кнопка будет следующий код на языке UIML:

<structure>

<part class="Button" id="SaveButton">
<style>
<property name="Caption">Сохранить</property>
<property name="Geometry">10,10,100,50</property>
<property name="ImagePosition">top</property>
<property name="ImageNormal">DisketaBlack</property>
<property name="ImageActNormal">DisketaColor</property>
<property name="PopupMenu">SavePopup</property>
<property name="Hint">Сохранить текущий документ</property>
<property name="Style">3d</property>
</style>
<part class="Icon" id="DisketaBlack">
<style>
<property name="Size">22,22</property>
<property name="Pixmap">
<![CDATA[
/* XPM */
static char * diskette_xpm[] = {
"22 22 5 1",
" c None",
". c #000000",
"+ c #353535",
"@ c #FFFFFF",
"# c #A7A7A7",
" ",
" .................. ",
" .++@@@@@@@@@@@@@@++. ",
" .@+@@@@@@@@@@@@@@+@. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@++++++++++++@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@++++++++++++@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@++++++++++++@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++++++++++++++++++. ",
" .+++########+++++++. ",
" .+++#++#####+++++++. ",
" .+++#++#####+++++++. ",
" .+++#++#####+++++++. ",
" .++########+++++++. ",
" ................. ",
" "};
]]>
</property>
</style>
</part>
<part class="Icon" id="DisketaColor">
<style>
<property name="Size">22,22</property>
<property name="Pixmap">
<![CDATA[
/* XPM */
static char * diskette_xpm[] = {
"22 22 5 1",
" c None",
". c #000000",
"+ c #353535",
"@ c #FFFFFF",
"# c #A7A7A7",
" ",
" .................. ",
" .++@@@@@@@@@@@@@@++. ",
" .@+@@@@@@@@@@@@@@+@. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@++++++++++++@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@++++++++++++@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@++++++++++++@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++@@@@@@@@@@@@@@++. ",
" .++++++++++++++++++. ",
" .+++########+++++++. ",
" .+++#++#####+++++++. ",
" .+++#++#####+++++++. ",
" .+++#++#####+++++++. ",
" .++########+++++++. ",
" ................. ",
" "};
]]>
</property>
</style>
</part>
<part class="PopupMenu" id="SavePopup">
<part class="MenuIten" id="SaveItem">
<style>
<property name="Caption">Сохранить</property>
</style>
</part>
<part class="MenuIten" id="HelpItem">
<style>
<property name="Caption">Помощь</property>
</style>
</part>
</part>
</part>

</structure>

В приведенном примере создается кнопка с надписью "Сохранить", которая располагается по координатам X=10, Y=10, имеет  ширину 100 точек, а высоту 50. Над надписью имеется изображение дискеты, которое при наведении мыши превращается из черно-белого в цветное. Кроме того при наведении мыши появляется подсказка (Hint) "Сохранить текущий документ". А при нажатии правой кнопки мыши появляется всплывающее меню содержащее два пункта "Сохранить" и "Помощь".

Для представления кнопок 1С соответствие свойств следующее:
.........................................................................
.........................................................................
.........................................................................
.........................................................................
.........................................................................
.........................................................................(многоточие)

Класс LABEL

Служит для вывода текста, например пояснения к полю ввода данных.

Имя свойства
Тип Описание
Caption
String
Задает текст надписи. По умолчанию надпись - пустая строка.
Geometry
Cortege of Int (4) Задает положение и размеры виджета. Представляет собой кортеж из 4 целых чисел. Порядок следования координат и размеров следующий 'координата_Х, координата_У, ширина, высота'. Например параметр <property part-name="a" name="Geometry">10, 20, 50, 25</property> задает виджет верхний левый угол которой расположен в точке (Х,У) 10,20, ширина виджета составляет 50 точек, высота 25. Для языков в которых разместить виджет по строгим координатам невозможно или нецелесообразно этот параметр игнорируется, а виджет помещается в общем потоке формы.
Position
Cortege of Int (2) Задает положение виджета. Представляет собой кортеж из 2 целых чисел. Порядок следования координат следующий 'координата_Х, координата_У'.
Size
Cortege of Int (2) Задает размеры виджета. Представляет собой кортеж из 2 целых чисел. Порядок следования размеров следующий 'ширина, высота'.
Left
Int Задает координату Х верхнего левого угла виджета
Top
Int Задает координату Y верхнего левого угла виджета
Width
Int Задает ширину виджета
Height
Int Задает высоту виджета
Font-family
String Задает семейство шрифтов для отображения надписи. По умолчанию совпадает с этим параметром для родительского окна.
Font-size
Fixed
Задает размер кегля шрифта в типографских пунктах. По умолчанию совпадает с этим параметром для родительского окна.
Font-color
Color
Задает цвет шрифта.По умолчанию совпадает с этим параметром для родительского окна.
Font-bold
Boolean
Задает признак жирного шрифта. По умолчанию совпадает с этим параметром для родительского окна.
Font-italic
Boolean Задает признак курсива. По умолчанию совпадает с этим параметром для родительского окна.
Font-underline
Boolean Задает признак подчеркнутого шрифта. По умолчанию совпадает с этим параметром для родительского окна.
Font-strikeout
Boolean Задает признак зачеркнутого шрифта. По умолчанию совпадает с этим параметром для родительского окна.
Font
Cortege (7) [String, Fixed, Color, Boolean, Boolean, Boolean, Boolean]
[Font-family, Font-size, Font-color, Font-bold, Font-italic, Font-underline, Font-strikeout]
Задает предыдущие 7 параметров относящихся к шрифту надписи в одном кортеже. Если один или несколько свойств надо оставить по умолчанию, то их места оставляются пустыми. Например при задании жирного шрифта семейства "Serif" с остальными параметрами по умолчанию используется элемент: <property name="Font"> Arial,,,Yes,,,, </property> По умолчанию совпадает с этим параметром для родительского окна.
Color
Color
Задает цвет фона надписи. По умолчанию совпадает с системным по умолчанию.
Visible
Boolean Задает признак видимости виджета - в случае логического отрицания виджет невидим. По умолчанию "Истина".
Hint
String
Строка задающая подсказку появляющуюся при наведении указателя мыши на виджет. По умолчанию пустая строка.
PopupMemu
String
Задает имя всплывающего меню отображаемого при нажатии правой кнопки мыши на виджете. Меню с таким именем должно быть задано в UIML документе и быть вложено в элемент описывающий кнопку.
Cursor
String
Указывает имя курсора мыши описанного внутри элемента или одно из стандартных имен курсоров для отображения при наведении мыши на виджет.

Если надпись ссылается на всплывающее меню, то элемент описывающий это меню должн быть задан внутри элемента LABEL.

Примером задания виджета Надпись будет следующий код на языке UIML:

<structure>

<part class="Dialog" id="InfoDgl">
<part class="Label" id="Label1">
<style>
<property name="Caption">Адрес сервера баз данных</property>
<property name="Position">8,32</property>
<property name="Size">100,25</property>
</style>
</part>
<part class="Label" id="Label2">
<style>
<property name="Caption">192.168.100.16</property>
<property name="Position">108,32</property>
<property name="Size">100,25</property>
</style>
</part>
<part class="Button" id="CloseButton">
<style>
<property name="Caption">Закрыть</property>
<property name="Left">136</property>
<property name="Top">64</property>
<property name="Width">75</property>
<property name="Height">25</property>
<property name="Hint">Закрыть окно</property>
<property name="Style">3d</property>
</style>
</part>
</part>

</structure>

В приведенном примере создается диалог содержащий две надписи и кнопку закрыть.

Для представления надписи 1С соответствие свойств следующее:
.........................................................................
.........................................................................
.........................................................................
.........................................................................
.........................................................................
.........................................................................(многоточие)

Класс EDIT

Служит для ввода данных пользователем, например текстовых, цифровых данных, а так же паролей.

Имя свойства
Тип Описание
Text
String
Задает текст в поле ввода. По умолчанию текст - пустая строка.
Geometry
Cortege of Int (4) Задает положение и размеры виджета. Представляет собой кортеж из 4 целых чисел. Порядок следования координат и размеров следующий 'координата_Х, координата_У, ширина, высота'. Например параметр <property part-name="a" name="Geometry">10, 20, 50, 25</property> задает виджет верхний левый угол которой расположен в точке (Х,У) 10,20, ширина виджета составляет 50 точек, высота 25. Для языков в которых разместить виджет по строгим координатам невозможно или нецелесообразно этот параметр игнорируется, а виджет помещается в общем потоке формы.
Position
Cortege of Int (2) Задает положение виджета. Представляет собой кортеж из 2 целых чисел. Порядок следования координат следующий 'координата_Х, координата_У'.
Size
Cortege of Int (2) Задает размеры виджета. Представляет собой кортеж из 2 целых чисел. Порядок следования размеров следующий 'ширина, высота'.
Left
Int Задает координату Х верхнего левого угла виджета
Top
Int Задает координату Y верхнего левого угла виджета
Width
Int Задает ширину виджета
Height
Int Задает высоту виджета
Font-family
String Задает семейство шрифтов для отображения надписи. По умолчанию совпадает с этим параметром для родительского окна.
Font-size
Fixed
Задает размер кегля шрифта в типографских пунктах. По умолчанию совпадает с этим параметром для родительского окна.
Font-color
Color
Задает цвет шрифта.По умолчанию совпадает с этим параметром для родительского окна.
Font-bold
Boolean
Задает признак жирного шрифта. По умолчанию совпадает с этим параметром для родительского окна.
Font-italic
Boolean Задает признак курсива. По умолчанию совпадает с этим параметром для родительского окна.
Font-underline
Boolean Задает признак подчеркнутого шрифта. По умолчанию совпадает с этим параметром для родительского окна.
Font-strikeout
Boolean Задает признак зачеркнутого шрифта. По умолчанию совпадает с этим параметром для родительского окна.
Font
Cortege (7) [String, Fixed, Color, Boolean, Boolean, Boolean, Boolean]
[Font-family, Font-size, Font-color, Font-bold, Font-italic, Font-underline, Font-strikeout]
Задает предыдущие 7 параметров относящихся к шрифту надписи в одном кортеже. Если один или несколько свойств надо оставить по умолчанию, то их места оставляются пустыми. Например при задании жирного шрифта семейства "Serif" с остальными параметрами по умолчанию используется элемент: <property name="Font"> Arial,,,Yes,,,, </property> По умолчанию совпадает с этим параметром для родительского окна.
Color
Color
Задает цвет фона надписи. По умолчанию совпадает с системным по умолчанию.
Enabled
Boolean
Задает признак активности виджета - в случае логического отрицания виджет недоступен. По умолчанию "Истина"
ReadOnly
Boolean
Задает признак того, что виджет доступен только для чтения. По умолчанию "Ложь".
Visible
Boolean Задает признак видимости виджета - в случае логического отрицания виджет невидим. По умолчанию "Истина".
Hint
String
Строка задающая подсказку появляющуюся при наведении указателя мыши на виджет. По умолчанию пустая строка.
TabOrder
Int
Порядковый номер виджета в порядке обхода формы, согласно этим номерам осуществляется обход формы по нажатию клавиши TAB. Каждый элемент должен иметь уникальный TabOrder. В случае если язык клиента не позволяет осуществить такую возможность или порядок обхода не задан, порядок обхода совпадает с порядком следования элементов на форме.
TabStop
Boolean
Задает признак того что виджет участвует в порядке обхода формы, то есть можно осуществляя навигацию по форме с помощью клавиши TAB достичь этого элемента. В случае же логического отрицания в этом свойстве виджет будет пропущен при навигации с помощью клавиши TAB. По умолчанию имеет значение "истина"
Style
Enum:
{3d,Flat,Old}
Задает стиль начертания виджета: 3d: трехмерная кнопка - верхняя и левая граница будет более светлой, а нижняя и правая будет более темной.
Flat - плоская трехмерная кнопка - в стиле Office2000/XP. Old - кнопка имеет обычну не трехмерную рамку, как в Win3.0 и MacOS старых версий.
PopupMemu
String
Задает имя всплывающего меню отображаемого при нажатии правой кнопки мыши на виджете. Меню с таким именем должно быть задано в UIML документе и быть вложено в элемент описывающий кнопку.
Cursor
String
Указывает имя курсора мыши описанного внутри элемента или одно из стандартных имен курсоров для отображения при наведении мыши на виджет.
PasswordChar
String
Задает единичный символ, который отображается вместо реальных символов при вводе пароля. Если параметр не задан или представляет собой пустую строку, то поле имеет обычный вид и отображает то, что в него вводится. По умолчанию - пустая строка.
PasswordType
Enum
{Asterix,Multi,None}
Если поле является полем для ввода пароля, то этот параметр задает тип отображения пароля. None - пароль при вводе никак не отображается, поле остается пустым, Asterix - при вводе пароля вместо введенных данных отображается символ заданный в PasswordChar, Multi - аналогично предыдущему, но одному введенному символу соответсвует случайное число отображаемых символов (для того чтобы скрыть реальную длину пароля). По умолчанию Asterix.
MaxLenght
Int
Максимальная длинна строки, которую можно ввести в поле. По умолчанию 255.
AutoSelect
Boolean
Признак того, что при получении фокуса ввода текст в поле автоматически выделяется. По умолчанию - "Ложь"
CharCase
Enum
{Normal, UpperCase, LowerCase, Capitalize}
Регистр вводимого текста. Normal - текст вводится как есть, UpperCase - текст автоматически переводится в верхний регистр, LowerCase - текст автоматически переводится в нижний регистр, Capitalize - текст автоматически преобразуется так, чтобы первая буква была заглавной, а остальные строчными.
По умолчанию Normal.
Mask
String
Задает маску ввода текста в строку, если не заданно то вводить разрешено любой текст.
По умолчанию пустая строка.

Если надпись ссылается на всплывающее меню, то элемент описывающий это меню должн быть задан внутри элемента LABEL.

Пример задания виджета на языке UIML см. в классе DIALOG:

Для представления надписи 1С соответствие свойств следующее:
.........................................................................
.........................................................................
.........................................................................
.........................................................................
.........................................................................
.........................................................................(многоточие)

17.07.2003 г.
Изменения на сайте
В разделе "Ссылки", добавлены ссылки на тему - "Разработка программных систем". Так же в разделе "Документация" выложен черновой вариант ТЗ, группы  разработки клиента. В раделе "Организационная структура проекта" выложен ...
подробнее...

02.07.2003 г.
Изменения структуры групп разработки.
Произошли существенные изменения в составе групп разработки проекта. С ростом объёма решаемых задач, решено расширить состав группы "Разработки клиента" и добавить группе "Документирования" функции проектирования архитектуры сиситемы 1L.
подробнее...

21.06.2003 г.
Готовится обновление сайта 1L
Проект развивается- увеличивается объем сопутствующей информации, усложняется её структура и сайт, в текущем состоянии, уже не отвечает всем требованиям времени.
подробнее...

16.06.2003 г.
Начата работа по проектированию и реализации взаимодействия 1L с базами данных.
Настало время создания системы управления базами данных (CУБД). После обсуждения различных вариантов, было принято решение- в качестве первостепенной реализации использовать базу данных MySql.
подробнее...

09.06.2003 г.
UIML сервер 1L:Project v. 0.0.0.3
В DownLoad Centre of 1L Project можно увидеть UIML сервер 1L:Project v. 0.0.0.3. Добавлены переменные окружения, авторизация (в минимуме). Патч к v. 0.0.0.3 содержит криптование паролей в md5 и утилиту для добавления пользователе
подробнее...

04.06.2003 г.
Скелет UIML сервера 1L:Project v. 0.0.0.2
В DownLoad Centre of 1L Project можно увидеть cкелет UIML сервера v. 0.0.0.2
подробнее...

20.05.2003 г.
Вести с Фронта
С сегодняшнего дня мы запускаем серию новостей под общим названием "Вести с фронта". Это планируются краткие, но информативные выпуски. Цель - познакомить сообщество OpenSource с текущим положением дел в проекте 1L и, возможно, привлечь заинтересовавших

16.05.2003 г.
Произошло объединение интересов с проектом E/AS
В связи с общими интересами в разработке тонкого клиента работающего по протоколу UIML, произошло объединение усилий с проектом E/AS в данной области.
подробнее...

24.04.2003 г.
Появились текст лицензии GPL и Манифест совместимости с 1С
Смотрите в разделе "О проекте".

05.03.2003 г.
Список рассылки работает!
Список рассылки перенесен на новое место https://lists.sourceforge.net/lists/listinfo/lproject-develop

архив новостей


1C:TOP-100 Рейтинг ресурсов 1С Информационно-справочный ресурс