Привет всем!
Тут мне в голову идея пришла. Кажется даже в духе Ады:
Ада ведь не в меньшей мере еще и язык технологического
оборудования? Так может это использовать для разработки UI?
Возьмем, например, панельку управления автомобильным магнитофоном (в GUI - простое окно).
Что имеем:
имеем некий набор елементов:
вывод:
- поле ввода/отображения чисел/символов (editbox/label); [TYPE 1] - отображение диаграм/гистрограмм/уровней (progress-bar); |||||||| - отображение состояний (MUTE, STEREO/MONO) -
отображается мигающими (или нет) предустановленными
иконками; % (Stereo)
- все это хозяйство располагается определенным (часто жестко
заданным) способом.
- может иметь место несколько режимов работы устройства (разные layout/разные окна/формы)
ввод: возбуждаются аппаратные/программные сигналы как дискретного свойства (сигнал поступил) так и аналогового (тоже, в сущности, дискретный сигнал, но имеет параметр(ы) - число(а) в некоем заданном диапазоне/либо структуру). Сигналы могут быть синхронными
(периодическими (мониторинг, сигнал точного времени) или
асинхронными (срабатывания клапана, превишение порога, закончилась касета, сработал будильник, нажата кнопка, двинилась мишка, глаз моргнул :)
Сообщения об ошибках оборудования/пользователя тоже приходят в виде сигналов (exceptions?)
Получается, что программа, в действительности, работает с
неким UI - фреймом - "проволочным" каскадом, наполенным, такими же "проволочными" елементами. Программа не знает, КАК расположены
елементы в каркасе, КАК они выглядят, и даже КАК они взаимодействуют с пользователем. Она знает только их список и их типы. Также
программа знает (заявляет) какие ивенты она должна обрабатывать и на них, соответственно, настраивается.
Что получаем с нашим магнитофончиком:
каркас магнитофона:
кнопки (events):
старт, стоп, пауза, перемотка вперед, перемотка назад,
запись, выброс касеты, моно/стерео, шумопонижение,
магнитофон/FM радио
регуляторы (analog events):
громкость, тембр, еквалайзер, тюнинг ФМ
индикаторы:
числовые: время/метраж (возможно два индикатора, но
занимающее одно место в зависимости от режима работы)
символьные: название станции FM
иконки: стерео/моно
магнитофон/радио
шумопонижение
режим воспроизведения
режим запись
графические: ||||||||||| громкость
||||||||| графический еквалайзер (прыгает так прикольно, когда магнитофон/радио играет)
конец каркаса
Теперь, с одной стороны - цепляем реализацию самого магнитофона с другой - панельки. - Можно даже конскольный ввод/вывод прикрутить :0)
Как вам такая метафора?
--
Best regards,
Vladyslav
Vladyslav Kozlovskyy wrote:
Как вам такая метафора?
Близко к тому, что желаем получить ;)
--
Vadim Godunko
Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти