Alterator/New/Packages: различия между версиями

Материал из ALT Linux Wiki
Строка 931: Строка 931:


<u>События</u>
<u>События</u>
Желательно использовать только одно событие, иначе события могут неправильно срабатывать.
* '''clicked''' - одинарный щелчок правой кнопки мышки по элементу списка;
* '''clicked''' - одинарный щелчок правой кнопки мышки по элементу списка;
* '''double-clicked''' - двойной щелчок правой кнопки мышки по элементу списка;
* '''double-clicked''' - двойной щелчок правой кнопки мышки по элементу списка;
Строка 938: Строка 939:


<u>Пример:</u>
<u>Пример:</u>
В данном примере событие ''return-pressed'' срабатывает при ''double-clicked''. Исправляется эта проблема использованием ''clicked'' вместо ''double-clicked''.
Пример состоит из нескольких файлов:
Пример состоит из нескольких файлов:


Строка 943: Строка 945:
<pre style="width:70em">
<pre style="width:70em">
(document:surround "/std/frame")
(document:surround "/std/frame")
(define (ui-list)
  (let ((list_one_fn (woo-call "/simple_list/list_one")))
    (form-update-enum "name_one" list_one_fn)
    (or (null? list_one_fn)
        (let ((name (woo-get-option (car list_one_fn) 'name)))
          (form-update-value "name_one" name) ))))
(document:root
    (when loaded (ui-list)))


(gridbox columns 100
(gridbox columns 100
Строка 949: Строка 961:
         (label align "center" text "Simple label")
         (label align "center" text "Simple label")
         (document:id list_one (listbox columns 3
         (document:id list_one (listbox columns 3
                                     name "new_list"
                                    focus #t
                                     enumref "/tests/list_columns"
                                     name "name_one"
                                     row '#((column1 . "") (column2 . "") (column3 . ""))
                                     enumref "/simple_list/list_one"
                                     header (vector "column 1" "column 2" "column 3")
                                     row '#((column0 . "") (column2 . "") (column3 . ""))
                                     header (vector "column 0" "column 2" "column 3")
                                     (when selected
                                     (when selected
                                           (testlist  value (list_one current))
                                           (testlist  value (list_one current))
Строка 959: Строка 972:
                                           (testlist4 value (list_one row-item (list (list_one current) 2) )))
                                           (testlist4 value (list_one row-item (list (list_one current) 2) )))
                                     (when double-clicked
                                     (when double-clicked
                                           (list_one row-remove (list_one current))) ))
                                           (list_one row-remove (list_one current)))
 
                                    (when return-pressed
        (listbox name "list_two")
                                          (list_one append-row '#("new-row" "test" "123"))) ))
        (edit name "counter" visibility #t activity #f)
        (edit name "column" visibility #t)
 
         (gridbox columns "0;100"
         (gridbox columns "0;100"
               align "left"
               align "left"
Строка 976: Строка 986:
               (document:id testlist3 (edit name "testlist3"))
               (document:id testlist3 (edit name "testlist3"))
               (label value "row-item")
               (label value "row-item")
               (document:id testlist4 (edit name "testlist4")) ) )
               (document:id testlist4 (edit name "testlist4")) ) )
</pre>
</pre>


 
'''backend/simple_list'''
'''ajax.scm'''
<pre style="width:70em">
<pre style="width:70em">
(define-module (ui tests ajax)
#!/bin/sh
    :use-module (alterator ajax)
    :use-module (alterator algo)
    :use-module (alterator woo)
    :export (on-load))
 
(define (do-apply data)
  (form-update-value-list '("counter" "column") data))
 
(define (do-update . args)
  (catch/message
    (lambda()
      (do-apply (apply woo-read-first "/simple_list"
                      'counter (form-value "counter")
                      'column (form-value "column")
                      'language (form-value "language")
                      args)))))
 
(define (do-list_two)
  (do-update 'list_two (form-value "list_two")))
 
(define (ui-list)
  (let ((facility-list (woo-call "/simple_list/list_one")))
    (form-update-enum "name" facility-list)
    (or (null? facility-list)
        (let ((name (woo-get-option (car facility-list) 'name)))
          (form-update-value "name" name)
;        (ui-read-facility)
          ))))
 
(define (on-load)
  (ui-list)
  (catch/message
    (lambda()
      (form-update-enum "list_two" (woo-list "/simple_list/list_two" 'language (form-value "language")))
      (let ((data (woo-read-first "/simple_list" 'language (form-value "language"))))
        (form-update-value-list '("counter" "column" "list_two") data)
        )
    (form-bind "list_two" "change" do-list_two))))
</pre>
 
'''backend/simple_list''' (для ''list_one''; работает без использования ''ajax.scm'' и ''list_two'')


<pre style="width:70em">
#!/bin/sh
alterator_api_version=1
alterator_api_version=1
. alterator-sh-functions
. alterator-sh-functions


list_size()
list_one()
{
{
         for i in 0 1 2 3 4
         for i in 0 1 2 3 4
         do
         do
                local name="${i}"
          write_table_item column0 "row-$i" \
                write_table_item column0 "row-$i" column1 "$i" column2 "$(($i+$i))" column3 "$(($i+12))"
                            column1 "$i" \
                            column2 "$(($i+$i))" \
                            column3 "$(($i+12))"
         done
         done
}
}


alterator_export_proc list_size
alterator_export_proc list_one
message_loop
</pre>
 
'''simple_list.desktop'''
<pre style="width:70em">
[Desktop Entry]
X-Alterator-URI=/simple_list
</pre>
</pre>

Версия от 08:54, 5 сентября 2013

Текущее состояние модулей альтератора

Пакет http X11 Описание Примечание
alterator-alternatives Symbol support vote.svg  Symbol support vote.svg  alterator module for alternatives package Допускает ситуации, когда один и тот же файл принадлежит одновременно нескольким пакетам
alterator-asterisk-gateway Symbol support vote.svg  Symbol oppose vote.svg  Alterator module for E1<->SIP gateway setup
alterator-asterisk-limits Symbol support vote.svg  Symbol oppose vote.svg  Alterator module for control Asterisk limits
alterator-auth Symbol support vote.svg  Symbol support vote.svg  Alterator module for system wide auth settings
alterator-backend-printer-drivers Alterator backend for printer drivers maintainance
alterator-backend-x11 Alterator backend for x11 setup and configuration
alterator-backup-server Backup server management for plain distros. Contains desktop files to bridge alterator-ditro-backup-server to plain distros В данный момент присутствует в репозиториях, но после обновления будет объединен с пакетом alterator-bacula
alterator-bacula Symbol support vote.svg  Module for Bacula backup system Присутствовал запуск из X11, но в данный момент отключен
alterator-bacula-client Symbol support vote.svg  Symbol support vote.svg  Alterator module for client bacula administration
alterator-bacula-functions Helper functions for alterator Bacula backup system В данный момент присутствует в репозиториях, но после обновления будет объединен с пакетом alterator-bacula
alterator-beancounters Symbol oppose vote.svg  OpenVZ beancounter observer module Устарел, не поддерживается (nobody)
alterator-bind Symbol support vote.svg  Alterator module to create and manage dynamic dns
alterator-browser-qt X11 Qt interface driver for alterator
alterator-ca Symbol support vote.svg  Certification Authority Manager for Office Server Удостоверяющий центр
alterator-cd2 Symbol oppose vote.svg  Installer’s step for an additional cdrom installation Устарел, отсутствует desktop файл
alterator-control Symbol support vote.svg  Symbol support vote.svg  Alterator module for control package
alterator-cyrus Symbol oppose vote.svg  Alterator module for system wide cyrus settings Настройка Cyrus-IMAP. Ошибки в модуле, не запускается
alterator-datetime Symbol support vote.svg  Symbol support vote.svg  Alterator module for date/time setup
alterator-dhcp Symbol support vote.svg  DHCP configuration alterator module
alterator-distro-backup-server Special alterator modules for ALT Linux Backup Server
alterator-distro-chainmail Special alterator modules for IVK Chainmail Конфликт с пакетами alterator-distro-*
alterator-distro-office-server Special alterator modules for ALT Linux Office Server
alterator-distro-skif HPC specific tunings Устарел, отсутствуют desktop файлы
alterator-doc Documentation and samples for alterator Документация альтератора с примерами
alterator-etcgit Symbol support vote.svg  Alterator module to control versions of configuration files in /etc using git Использует etcgit
alterator-fbi This is an alterator based engine (form based interface) to create a simple form based html interface
alterator-firsttime First time system setup Возможно конфигурирует сервер перед первым стартом
alterator-grub Symbol support vote.svg  Symbol support vote.svg  Alterator module to setup grub bootloader
alterator-hotstandby Symbol support vote.svg  Alterator module for hot standby server Горячее резервирование
alterator-hw-functions Helper functions for alterator to retrieve hardware info Пакет состоит из одного файла
alterator-kdc Alterator module for Kerberos KDC Пакет состоит из хуков и набора скриптов для создания сервера c Kerberos
alterator-l10n Translations for all alterator modules Справка и перевод для всех модулей альтератора
alterator-ldap-groups Symbol support vote.svg  Alterator module for LDAP groups administration
alterator-ldap-users Symbol support vote.svg  Alterator module for ldap users administration
alterator-lilo Symbol support vote.svg  Symbol support vote.svg  Alterator module for lilo setup
alterator-livecd special steps for LiveCD installers
alterator-logs Symbol support vote.svg  Symbol support vote.svg  Alterator module for system logs
alterator-lookout Dialog based interface for alterator
alterator-ltsconf Symbol oppose vote.svg  Alterator module for ALTSP terminal management Вываливается с ошибкой
alterator-luks Symbol support vote.svg  Symbol support vote.svg  Alterator module for change LUKS passphrase Установка пароля на LUKS разделы
alterator-mastercontrol Symbol support vote.svg  Alterator module to control configuration profiles on the remote hosts
alterator-mirror Symbol support vote.svg  Local mirrors setup and maintainance
alterator-mkbootflash Symbol support vote.svg  Create bootable usb storage for installing system or using as live, rescue etc
alterator-mkimage Symbol oppose vote.svg  Symbol support vote.svg  Create distribution images by means of mkimage-profiles
alterator-mkve Symbol support vote.svg  Alterator module for creating/destroing virtual environments Устарел. Работает нестабильно
alterator-moodle-install Symbol support vote.svg  Alterator module for Moodle service configuration
alterator-mysql-functions Helps the base MySQL server configuration management Пакет состоит из одного файла
alterator-net-domain Symbol support vote.svg  Alterator module to edit system network domain
alterator-net-eth Symbol support vote.svg  Symbol support vote.svg  Alterator module for tcp/ip connections configuration
alterator-net-functions Helpers for etcnet administration
alterator-netinst Symbol support vote.svg  Alterator module for network installations management Сервер сетевых установок
alterator-net-iptables Symbol support vote.svg  Symbol support vote.svg  Alterator module for simple iptables configuration
alterator-net-openvpn Symbol support vote.svg  Symbol support vote.svg  Alterator module for openvpn connections configuration
alterator-net-pppoe Symbol support vote.svg  Symbol support vote.svg  Alterator module for pppoe connections configuration
alterator-net-pptp Symbol support vote.svg  Symbol support vote.svg  Alterator module for pptp connections configuration
alterator-net-routing Symbol support vote.svg  Symbol support vote.svg  Alterator module for network routing administration
alterator-net-shares Symbol support vote.svg  Enable/disable mounting samba shares from "domain" server
alterator-net-wifi Symbol oppose vote.svg  Symbol support vote.svg  Alterator module for wi-fi connections administration Возникает ошибка в веб-интерфейсе, если отсутвует устройство wifi
alterator-notes Symbol support vote.svg  Alterator module for view license and release notes
alterator-openldap Symbol support vote.svg  Alterator module for OpenLDAP server Сервис slapd не работает с systemd, но модуль рабочий
alterator-openldap-functions Helper functions for alterator openldap based backends Пакет состоит из двух файлов
alterator-openvpn-server Symbol support vote.svg  Alterator module for openvpn server configuration
alterator-packages Symbol support vote.svg  Alterator module for packages installation/removal
alterator-perl-functions Helper functions for alterator perl based backends Устаревший пакет
alterator-php-functions Helps the base PHP configuration management Пакет состоит из одного файла
alterator-pkcs11 Symbol oppose vote.svg  Symbol support vote.svg  PKCS#11 user certificate management module Нерабочая ссылка в браузере
alterator-pkg Symbol support vote.svg  Symbol support vote.svg  Additional package installation Fail test unsafe-tmp-usage-in-scripts
alterator-ports-access Symbol support vote.svg  Symbol oppose vote.svg  Alterator module to control serial/USB ports access Устарел. Конфликт с пакетом alterator-l10n-2.9-alt64
alterator-postfix-dovecot Symbol support vote.svg  Alterator module for Postfix/Dovecot setup Почтовый сервер. Устарел. Рабочая версия пока не выложена
alterator-preinstall Alterator preinstall hooks runner module
alterator-printers Symbol support vote.svg  Simple alterator module for printer administration
alterator-quota Symbol support vote.svg  Symbol support vote.svg  Alterator module for managing filesystem quotas
alterator-root Symbol support vote.svg  Symbol support vote.svg  Alterator module for edit system administrator properties Позволяет сменить пароль root, добавлить/удалить ssh ключ
alterator-service-functions Helpers for common service management Пакет состоит из одного файла
alterator-services Symbol support vote.svg  Symbol support vote.svg  Simple SysV services configurator
alterator-setup Perform initial setup of an OEM installation
alterator-sh-functions Helper functions for alterator shell based backends
alterator-snort Symbol support vote.svg  Alterator module for snort administration Система обнаружения вторжений
alterator-squid Symbol support vote.svg  Alterator module for Squid proxy server configuration Прокси-сервер
alterator-squidmill Symbol support vote.svg  Alterator module for browsing the Squid proxy server statistics Статистика прокси-сервера. Зависимый от gambit
alterator-sshd OpenSSHd system configuration module Сильно устарел. Не устанавливается
alterator-sslkey Symbol support vote.svg  Symbol support vote.svg  Module for manipulations with ssl keys
alterator-standalone System Management center
alterator-sysconfig Symbol support vote.svg  Symbol support vote.svg  Module for basic system settings (console and X11 keyboard, console font, system locale) Отображает настройки proxy
alterator-sysinfo Symbol support vote.svg  Symbol support vote.svg  Module to view general system information Неверно упорядочивает таблицу
alterator-trust Symbol oppose vote.svg  Module for setting one-way trust relationships Устарел
alterator-ulogd Symbol support vote.svg  Module for network traffic statistics
alterator-updates Symbol support vote.svg  Symbol support vote.svg  Dialog based interface for alterator
alterator-users Symbol support vote.svg  Symbol support vote.svg  Module for system users administration
alterator-vm Symbol support vote.svg  Module for volume management Разметка дисков
alterator-vsftpd Symbol support vote.svg  Module for vsftpd configuration FTP-сервер
alterator-witchery Demo steps for alterator-wizard Устаревший. Неизвестно
alterator-wizardface Alterator's wizard like module aggregator
alterator-wizardface-usermode Usermode bindings for alterator-wizardface
alterator-x11 Symbol oppose vote.svg  Symbol support vote.svg  Module for Xorg setup and configuration
alterator-xinetd Symbol support vote.svg  Symbol support vote.svg  Module for xinetd Устаревший
alterator-xkb Symbol support vote.svg  Symbol support vote.svg  Module for XKB administration Настройки клавиатуры
alterator-zabbix-agent Symbol support vote.svg  Module for the Zabbix agent configuration Отсутствует ссылка в меню веб-интерфейса
alterator-zabbix-node Deployment tool for a Zabbix node



Packages Internals


Таблица виджетов

Widget X11 Qt ncurses Описание
Symbol support vote.svg  Symbol oppose vote.svg  in_test box
Symbol support vote.svg  Symbol oppose vote.svg  in_test button
centerface Symbol support vote.svg  Symbol oppose vote.svg  in_test centerface
Symbol support vote.svg  Symbol oppose vote.svg  in_test checkbox
checklistbox Symbol support vote.svg  Symbol oppose vote.svg  in_test checklistbox
checktree Symbol support vote.svg  Symbol oppose vote.svg  in_test checktree
colorselect Symbol support vote.svg  Symbol oppose vote.svg  in_test colorselect
Symbol support vote.svg  Symbol oppose vote.svg  in_test combobox
Symbol support vote.svg  Symbol oppose vote.svg  in_test dateedit
Symbol support vote.svg  Symbol oppose vote.svg  in_test edit
Symbol support vote.svg  Symbol oppose vote.svg  in_test fileselect
Symbol support vote.svg  Symbol oppose vote.svg  in_test gridbox
Symbol support vote.svg  Symbol oppose vote.svg  in_test groupbox
hbox Symbol support vote.svg  Symbol oppose vote.svg  in_test hbox
Symbol support vote.svg  Symbol oppose vote.svg  in_test label
linkbutton Symbol support vote.svg  Symbol oppose vote.svg  in_test linkbutton
Symbol support vote.svg  Symbol oppose vote.svg  in_test listbox
multilistbox Symbol support vote.svg  Symbol oppose vote.svg  in_test multilistbox
Symbol support vote.svg  Symbol oppose vote.svg  in_test progressbar
Symbol support vote.svg  Symbol oppose vote.svg  in_test radio
Symbol support vote.svg  Symbol oppose vote.svg  in_test radiolistbox
root Symbol support vote.svg  Symbol oppose vote.svg  in_test root
separator Symbol support vote.svg  Symbol oppose vote.svg  in_test separator
slider Symbol support vote.svg  Symbol oppose vote.svg  in_test slider
slideshow Symbol support vote.svg  Symbol oppose vote.svg  in_test slideshow
spacer Symbol support vote.svg  Symbol oppose vote.svg  in_test spacer
Symbol support vote.svg  Symbol oppose vote.svg  in_test spinbox
Symbol support vote.svg  Symbol oppose vote.svg  in_test splitbox
tabbox Symbol support vote.svg  Symbol oppose vote.svg  in_test tabbox
Symbol support vote.svg  Symbol oppose vote.svg  in_test textbox
Symbol support vote.svg  Symbol oppose vote.svg  in_test timeedit
Symbol support vote.svg  Symbol oppose vote.svg  in_test tree
undefined Symbol support vote.svg  Symbol oppose vote.svg  in_test undefined
vbox Symbol support vote.svg  Symbol oppose vote.svg  in_test vbox
wizardface Symbol support vote.svg  Symbol oppose vote.svg  in_test wizardface


Таблица общих атрибутов для всех виджетов

Attribute Значения Описание
align "left" "right" "middle" "hmiddle" "center" "top" "bottom" выравнивание внутри ячейки «сетки»
activity #t #f активирует/отключает виджет
visibility #t #f видимость/невидимость виджета
colspan <число> количество столбцов "сетки" под данный виджет
rowspan <число> количество строк "сетки" под данный виджет
tooltip <текст> справочная информация, выводимая во всплывающей подсказке
focus #t #f атрибут только для записи, помещает фокус на виджет для которого указано значение #t
width <число> ширина виджета
height <число> высота виджета
title <текст> заголовок родительского контейнера
name <текст> имя виджета
nameref <текст> аналог name (?)
margin <число> ширина "рамки" вокруг контейнера
spacing <число> промежуток между виджетами (применим только к контейнерам)


Описание виджетов и их атрибутов

Корневой виджет

Именно в этот виджет вставляются все остальные. Имеет следующие атрибуты:

  • title - заголовок окна
  • width -- ширина окна
  • height -- высота окна


Box

Контейнер для других виджетов.

  • orientation "horizontal" - это развернутый вариант виджета hbox;
  • orientation "vertical" - развернутый вариант виджета vbox.

Button

Кнопка с текстом и картинкой.

Атрибуты:

  • text - текст на кнопке;
  • pixmap - картинка из списка.

События:

  • clicked - вызывается при нажатии кнопки.


CheckBox

Кнопка-флажок с двумя состояниями true или false.

  • text - описание кнопки;
  • state - состояние флажка. Если значение #t, то флажок выставлен. При значении #f флажок отсутствует;
  • value - то же, что и state.


DateEdit

Виджет отображения даты, календаря.

  • expanded - со значением #t дополнительно отображает календарь;
  • value - атрибут для задания даты (строка формата ГГГГ-ММ-ДД).

TimeEdit

Отображает время.

  • expanded - со значением #t добавляет графические часы;
  • stop - остановка счета времени;
  • start - запуск счета времени;
  • value - задание времени.


Radio

Радиокнопка позволяет выбрать один пункт из набора, в пределах одного контейнера.

  • state - состояние пункта. Данный пункт выбран при значении #t;
  • text - описание пункта;


Edit

Однострочное текстовое поле ввода.

  • echo - режим отображения. Возможные варианты: normal (по умолчанию), stars (звёздочки, для паролей), no (ввод не отображается);
  • alterability - разрешение на изменение текста. Если значение #f, содержимое поля доступно только для чтения;
  • text - содержимое поля;
  • value - то же, что и text.


GridBox

Вертикальный контейнер "сетки". Основой способ организации виджетов на экране.

  • columns - ширина стобцов сетки в процентном соотношении от общей ширины.


Label

Предназначен для отображения какой-либо надписи без возможности редактирования.

  • text-wrap - отображение одной длинной строки в виде многострочного текста (#t/#f);
  • text - отображаемый текст.


GroupBox

Объединение группы виджетов в один контейнер.

  • checked - в случае значения #t рядом с заголовком отображается checkbox (если он не выделен, то содержимое группы неактивно и недоступно для работы);
  • orientation - ориентация контейнера (horizontal/vertical);
  • state - состояние checkbox в случае режима checked;
  • title - заголовок группы.


ProgressBar

Строка прогресса некоторого процесса.

  • maximum - максимальное допустимое значение, соответствует 100%;
  • minimum - минимальное допустимое значение, соответствует 0%;
  • text - информация в строке прогресса;
  • value - текущее значение прогресса.


SpinBox

Поле со счетчиком для ввода чисел.

  • maximum - максимальное допустимое значение;
  • minimum - минимальное допустимое значение;
  • step - шаг приращения значения;
  • value - текущее значение.


TextBox

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

  • alterability - разрешение на изменение текста. Если значение #f, содержимое поля доступно только для чтения;
  • text - содержимое поля;
  • append-text - добавить текст в конец поля;
  • url - показать содержимое указанного файла.


FileSelect

Выбор файла из файловой системы, для дальнейшей работы с ним.

  • filter - допустимые расширения файлов;
  • hints - условие выбора файла (обычно используется значение existing_file для проверки на существование выбранного файла);
  • title - заголовок;
  • url - путь поиска файлов.

Пример:

(document:surround "/std/frame")

(define fileselect (make-widget 'fileselect))
(define url (make-attribute 'url))
(define filter (make-attribute 'filter))
(define hints (make-attribute 'hints))

(gridbox columns "100"
    margin "100"
    (vbox 
    (label text "Simple import certificate")
    (fileselect title (_"Import CA certificate")
                url "/"
                filter "*.cert *.crt *.pem"
                hints "existing_file")))


SplitBox

Контейнер с изменяемой шириной колонок.

  • columns - изначальная ширина колонок.


ListBox

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

Атрибуты

  • columns - количество колонок в списке;
  • header - заголовок таблицы, вектор из строк с названиями колонок;
  • enumref - адрес списка данных;
  • rows - возвращает список значений в виде единой строки;
  • rows-clear - очищает список;
  • append-row - добавление в конец списка новой строки;
  • row-item - работа с отдельным полем в списке. Координаты задаются списком из двух значений '(строка столбец) или указанием порядкового номера строки;
  • row-remove - удаляет строку с указанным порядковым номером;
  • text - возвращает строку с содержимым первого поля активной строки;
  • current - номер выделенной строки. Если ничего не выделено, то значение равно -1;
  • count - возвращает количество строк в таблице.

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

  • clicked - одинарный щелчок правой кнопки мышки по элементу списка;
  • double-clicked - двойной щелчок правой кнопки мышки по элементу списка;
  • selected - изменение активной строки;
  • return-pressed - нажатиe Enter на активной строке списка;
  • changed - любое действие с виджетом (не рекомендуется использовать).

Пример: В данном примере событие return-pressed срабатывает при double-clicked. Исправляется эта проблема использованием clicked вместо double-clicked. Пример состоит из нескольких файлов:

index.scm

(document:surround "/std/frame")

(define (ui-list)
  (let ((list_one_fn (woo-call "/simple_list/list_one")))
    (form-update-enum "name_one" list_one_fn)
    (or (null? list_one_fn)
        (let ((name (woo-get-option (car list_one_fn) 'name)))
          (form-update-value "name_one" name) ))))

(document:root
    (when loaded (ui-list)))

(gridbox columns 100
         margin 100
         align "center"
         (label align "center" text "Simple label")
         (document:id list_one (listbox columns 3
                                     focus #t
                                     name "name_one"
                                     enumref "/simple_list/list_one"
                                     row '#((column0 . "") (column2 . "") (column3 . ""))
                                     header (vector "column 0" "column 2" "column 3")
                                     (when selected
                                           (testlist  value (list_one current))
                                           (testlist2 value (list_one text))
                                           (testlist3 value (list_one rows))
                                           (testlist4 value (list_one row-item (list (list_one current) 2) )))
                                     (when double-clicked
                                           (list_one row-remove (list_one current)))
                                     (when return-pressed
                                           (list_one append-row '#("new-row" "test" "123"))) ))
         (gridbox columns "0;100"
               align "left"
               width 200
               (label colspan 2)
               (label align "left" text "current")
               (document:id testlist (edit name "testlist" value (list_one current)))
               (label value "text")
               (document:id testlist2 (edit name "testlist2"))
               (label text "count")
               (document:id testlist3 (edit name "testlist3"))
               (label value "row-item")
               (document:id testlist4 (edit name "testlist4")) ) )

backend/simple_list

#!/bin/sh

alterator_api_version=1
. alterator-sh-functions

list_one()
{
        for i in 0 1 2 3 4
        do
           write_table_item column0 "row-$i" \
                            column1 "$i" \
                            column2 "$(($i+$i))" \
                            column3 "$(($i+12))"
        done
}

alterator_export_proc list_one
message_loop

simple_list.desktop

[Desktop Entry]
X-Alterator-URI=/simple_list