Панель - визуальная область, на которой можно размещать визуальные объекты.
<panel panel-attributes>
[прочие appxml-тэги]
<panel/>
| Название | Тип | Описание |
|---|---|---|
| id | id_name | Уникальный, в рамках приложения, идентификатор объекта. Доступ к объекту с помощью AppScript выполняется через этот идентификатор. Если id не задан, то интерпретатор автоматически заполнит его некоторым случайным в момент запуска приложения. В этом случае appxml-программист лишается возможности обращаться к объекту. |
| Название | Тип | Описание |
|---|---|---|
| layout | border | flow | null | row:n | col | grid:N1xN2 | line | vline | gridbag | Тип менеджера компоновки (в терминах Java). border расставляет поступающие объекты по местам top, left, right, bottom, center. Координаты (x, y) игнорируются. flow расставляет объекта в порядке их поступления (добавления) друг за другом. Координаты (x, y) игнорируются. null расставляет объекты в соответствии с их координатами (x, y). row создает строку из n ячеек и располагает объекты друг за другом слева направо в порядке их поступления (добавления). col выстраивает объекты в колонку, разделяя ее на равные части. Объекты растягиваются по ширине колонки. Параметры расположения задаются каждому объекту через атрибут position. Если объектам задать position=«weighty=0», то объекты соберутся в центре колонки. При position=«weighty=1» (по умолчанию) каждый объект будет располагаться в центре своей ячейки. Чтобы собрать все ячейки с объектами вверху, рекомендуется задать объектам position=«weighty=0» и в конец добавить пустую панель с position=«weighty=1». Прочие параметры для «col» - см. layout=«gridbag». grid:N1хN2 - раставляет объекты согласно координатной сетке. N1 - кол-во строк, N2 - кол-во колонок. line расположение объектов в горизонтальную строку. vline расположение объектов в вертикальную строку. Если объектами являются поля ввода, то при вертикальном расположении они выравниваются автоматически. gridbag выстаривает объекты по сетке. Размеры сетки, а также кол-во занимаемых ячеек под каждый объект можно регулировать самостоятельно. При добавлении объекта в контейнер объекту можно задавать дополнительные параметры через атрибут position. Например, position=«x=5 y=3 fill=both weightY=1 anchor=top». Параметры: x - номер ячейки по оси X. По умолчанию значение параметра x автоматически инкрементируется. y - номер ячейки по оси Y. Допускается использование значения «new» для перехода на начало новой строки. height - кол-во занимаемых клеток по оси Y. По умолчанию height=1. width - кол-во занимаемых клеток по оси X. По умолчанию width=1. weightX - коэффициент веса ячейки с точки зрения распределения пространства между объектами по оси X. Пустое пространство между объектами (не путать с ячейками) распределяется пропорционально установленным целочисленным коэффициентам. Если всем поставить weightX=0, то пространство не будет распределяться и объекты соберутся в центре строки по оси X. Если все поставить одинаковое ненулевое значение, то пространство будет распределяться одинаково на всех независимо от размеров объекта. По умолчанию у всех объектов weight=1. weightY - тоже что и weightX, только для оси Y. Если всем объектами задать position=«weightX=0 weightY=0», то объекта соберутся в центре контейнера. anchor - позиция объекта внутри ячейки (если позволяет свободное пространство). Допустимые значения: center, top, left, right, bottom, top-left, top-right, bottom-left, bottom-right. По умолчанию anchor=«center». fill - заполнение объектом пространства своей ячейки (растягивание объекта). Допустимые значения: horizontal, vertical, both, none. По умолчанию fill=«none». ipadX - минимальное расстояние между объектом и границами ячейки по оси X. По умолчанию ipadX=0. ipadY - минимальное расстояние между объектом и границами ячейки по оси Y. По умолчанию ipadY=0. |
| align | left | right | center | Выравнивание объектов на панели. Атрибут действует только для layout=«flow». |
| gap | number | Установка расстояния между размещаемыми объектами внутри данного объекта. Данный объект выступаетв роли контейнера. |
| gradient | boolean | Установка градиента цвета для фона всего объекта. Поддерживаются дополнительные атрибуты: gradient-start=«color_name», gradient-end=«color-name», gradient-direction=«horizontal | vertical». Поддерживается тэг <gradient> <gradient style-id="b" start-color="c1" end-color="c2" direction="20" /> |
| full-background-color | color-name | @full-background-color |
| margin | number | Установка отступов, равных n вокруг объекта. Поддерживаются дополнительные атрибуты: margin-top, margin-left, margin-bottom, margin-right. |
| stretch | boolean | Автоматическое принятие размеров под помещенные на нее компоненты. |
| moving | boolean | Перемещение окна перемещением panel. По умолчанию moving=«true». |
| x | number | Фактическое (вычисленное) значение (число) координаты X. |
| y | number | Фактическое (вычисленное) значение (число) координаты Y. |
| height | number | Фактическое (вычисленное) значение (число) высоты объекта. |
| width | number | Фактическое (вычисленное) значение (число) ширины объекта. Атрибут width поддерживает значение max в контейнере с layout=«null». Объект удлинятся максимально, ориентируясь на предыдущие объекты строками выше. Удобно при проектировании окон ввода. |
| oX | number | Заданное значение координаты Х. |
| oY | number | Заданное значение координаты Y. |
| oHeight | number | Заданное значение высоты объекта. |
| oWidth | number | Заданное значение ширины объекта. |
| Название | Тип | Описание |
|---|---|---|
| focus | boolean | Команда передачи фокуса ввода в поле ввода. |
| repaint | boolean | Перерисовка содержимого данного контейнера. |
| refresh | boolean | В отличие от repaint обновляет только границы панели. Т.е. если добавлен объект, а он не виден (и при этом не менялись вручную размеры панели), то нужно выполнить refresh. |
| revalidate | boolean | Команда пересчета размеров панели. Применяется редко, т.к. панель сама старается отслеживать свои размеры. |
| Название | Тип | Описание |
|---|---|---|
| h-gradient | boolean | Установка градиента цвета для фона заголовка объекта. Поддерживаются дополнительные атрибуты: h-gradient-start=«color_name», h-gradient-end=«color-name», h-gradient-direction=«horizontal | vertical» |
| h-margin | number | Установка отступов, равных n вокруг заголовка объекта. Поддерживаются дополнительные атрибуты: h-margin-top, h-margin-left, h-margin-bottom, h-margin-right. |
| h-visible | boolean | Флаг управления видимостью заголовка (header). |
| hCenter-* , hLeft-*, hRight-* | Заголовок панели делится на три части по горизонтали: левая (hLeft-*), центральная (hCenter-*) и правая (hRight-*). hCenter-*={<panel>-атрибуты} - семейство атрибутов для центральной части заголовка объекта. Поддерживаются все атрибуты <panel>. hLeft-*={<panel>-атрибуты} - семейство атрибутов для левой части заголовка объекта. Поддерживаются все атрибуты <panel>. hRight-*={<panel>-атрибуты} - семейство атрибутов для правой части заголовка объекта. Поддерживаются все атрибуты <panel>. |
|
| statusbar-visible | boolean | Управление видимостью статусбара для всех тэгов, поддерживающих атрибуты <panel> |
| title | string | Заголовок объекта. Атрибут имеет силу только при создании объекта. Изменение значения атрибута после создания объекта не будет иметь эффекта. Имеет дополнительные атрибуты:title-before, title-after, title-visible. |
| call-event-later | string | Вызов события по его имени для всех тэгов, поддерживающих атрибуты <panel> |
| Название | Тип | Описание |
|---|---|---|
| onKeyDown | code | Описание действий для события, возникающего при нажатии на клавишу, но до ее отпускания. Правила описания см. (Описание событий в ApplicationXML). |
| onKeyUp | code | Описание действий для события, возникающего при отпускании клавиши. Правила описания см. (Описание событий в ApplicationXML). |
| onKeyPressed | code | Описание действий для события, возникающего при нажатии на клавишу без учета фаз «нажатие/отпускание». Срабатывает после отпускания клавиши. Правила описания см. (Описание событий в ApplicationXML). |
| onCreated | code | Описание действий для события, возникающего единожды, после создания объекта. Правила описания см. (Описание событий в ApplicationXML). |
| onAction | code | Описание действий для события, возникающего после клика левой кнопки мышки по объекту. Правила описания см. (Описание событий в ApplicationXML). |
| onResized | code | Описание действий для события, возникающего после изменения размеров панели. Правила описания см. (Описание событий в ApplicationXML). |
| onMoved | code | Описание действий для события, возникающего после изменения координат панели. Правила описания см. (Описание событий в ApplicationXML). |
| onVisibled | code | Описание действий для события, возникающего после смены видимости панели на «true». Правила описания см. (Описание событий в ApplicationXML). |
| onHided | code | Описание действий для события, возникающего после смены видимости панели на «false». Правила описания см. (Описание событий в ApplicationXML). |
| onComponentAdded | code | Описание действий для события, возникающего после добавления какого-либо компонента на панель. Правила описания см. (Описание событий в ApplicationXML). |
| onComponentRemoved | code | Описание действий для события, возникающего после удаления какого-либо компонента с панели. Правила описания см. (Описание событий в ApplicationXML). |
| onAdded | code | Описание действий для события, возникающего во время добавления самого объекта в контейнер. Правила описания см. (Описание событий в ApplicationXML). |
| onRemoved | code | Описание действий для события, возникающего во время удаления самого объекта из контейнера. Правила описания см. (Описание событий в ApplicationXML). |
| onAncestorMoved | code | Описание действий для события, возникающего во время изменения положения контейнера, в котором находится данный объект. Правила описания см. (Описание событий в ApplicationXML). |
| onAncestorResized | code | Описание действий для события, возникающего во время изменения размеров контейнера, в котором находится данный объект. Правила описания см. (Описание событий в ApplicationXML). |
Панель - визуальная область, на которой можно размещать визуальные объекты.
Поддерживает следующие области для расположения объектов:
- left,
- right,
- top,
- bottom,
- center,
- left-toolbar,
- right-toolbar,
- top-toolbar,
- bottom-toolbar,
- left-menu,
- right-menu,
- top-menu,
- bottom-menu.
В этих местах можно располагать любые визуальные объекты. Области *-toolbar рекомендуется использовать только под тулбары, а области *-menu – под меню.
<panel id="mainPanel" layout="border" position="center"
width="300" height="200" margin="2" border="line:red"
background-color="pink">
<panel layout="flow" position="left" width="50" border="line:blue" margin="1">
<label text="Я панель"/>
<label text="СЛЕВА"/>
</panel>
<panel layout="flow" position="top" height="50" border="line:blue" margin="1">
<label text="Я панель"/>
<label text="СВЕРХУ"/>
</panel>
<panel layout="flow" position="bottom" height="50" border="line:blue" margin="1">
<label text="Я панель"/>
<label text="СНИЗУ"/>
</panel>
<panel layout="flow" position="right" width="50" border="line:blue" margin="1">
<label text="Я панель"/>
<label text="СПРАВА"/>
</panel>
<panel layout="flow" align="center" margin="1" border="line:green">
<label icon="res:world.gif" margin-top="20"/>
</panel>
</panel>