DRAKON.SU

Текущее время: Четверг, 01 Декабрь, 2022 13:19

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Четверг, 06 Октябрь, 2022 20:26 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 565
Проблема: в мире существует слишком мало Дракон-редакторов
Хороших Дракон-редакторов мало, а те, что есть, многих не устраивают.
Почему бы не сделать много разных Дракон-редакторов, чтобы все были довольны?
Дело в том, что написать Дракон-редактор трудно. Нужно потратить несколько месяцев, чтобы разработать хотя бы простенький редактор.
Не у каждого программиста есть на это время и желание.

Решение: Дракон-компонент DrakonWidget
На помощь спешит DrakonWidget.
DrakonWidget — это компонент, который реализует отображение и редактирование Дракон-схем.
На основе DrakonWidget можно разрабатывать собственные Дракон-редакторы или встраивать Дракон в своё приложение.
Вместо того, чтобы тратить время на прорисовывание квадратиков или пересадку лианы, сконцентрируйтесь на вашем приложении.
Направьте свою творческую энергию на разработку вашего уникального программного продукта.
Дракон имеет множество областей применения, например, программирование, медицина, спецификация бизнес-процессов, экспертные системы.
DrakonWidget откроет дорогу для новых, качественно более удобных программ в этих областях.

DrakonWidget основан на Drakon.Tech
DrakonWidget — развитие Дракон-редактора Drakon.Tech
DrakonWidget написан на гибридном языке Дракон-JavaScript. Исходный текст (в виде дракон-схем) можно посмотреть здесь:
https://app.drakon.tech/ide/doc/drakon_widget_10/1

На данный момент идёт активная разработка. Уже скоро (дата ещё неизвестна) можно ожидать первого выпуска DrakonWidget.


Вложения:
drakon_widget.png
drakon_widget.png [ 21.34 КБ | Просмотров: 744 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 07 Октябрь, 2022 05:07 

Зарегистрирован: Вторник, 27 Апрель, 2021 05:25
Сообщения: 77
Откуда: Томск
Степан Митькин писал(а):
На основе DrakonWidget можно разрабатывать собственные Дракон-редакторы или встраивать Дракон в своё приложение.
Вместо того, чтобы тратить время на прорисовывание квадратиков или пересадку лианы, сконцентрируйтесь на вашем приложении.
Направьте свою творческую энергию на разработку вашего уникального программного продукта.

Ваше сообщение имеет...немного рекламный характер. Скажите, что вы подразумеваете под понятием "собственный редактор". Какие его особенности? Иными словами, что является вариативным для пользователя в вашем приложении? Что он может выбирать на своё усмотрение, а что - нет?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 07 Октябрь, 2022 06:07 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 565
Alex_st_Tomsk писал(а):
Скажите, что вы подразумеваете под понятием "собственный редактор". Какие его особенности? Иными словами, что является вариативным для пользователя в вашем приложении? Что он может выбирать на своё усмотрение, а что - нет?

DrakonWidget - это виджет, то есть область в графическом интерфейсе приложения.
В этой области отображается дракон-схема, которую можно редактировать.
Ну то есть, это как textarea на HTML-странице.
Смысл виджета в том, чтобы не изобретать велосипед.

На картинке DrakonWidget обведён красным прямоугольником.
Само приложение (всё, что за пределами красного прямоугольника) не виджет.

Что вариативно:

- Цвета икон и линий, тени, фон.
- Размеры, отступы.
- Содержимое икон внутри виджета: текст, разметка, форматирование, картинки.
- Можно ли редактировать или только просматривать.

Приложение задаёт тулбары и сочетания клавиш.
Приложение сохраняет дракон-схему в базе данных или в файле (или ещё где-нибудь).

Виджет только отрисовывает дракон-схему и позволяет её редактировать.


Вложения:
widget-red.png
widget-red.png [ 42.94 КБ | Просмотров: 729 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 07 Октябрь, 2022 10:09 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5511
Откуда: Москва
Что означает слово Виджет

https://ru.wikipedia.org/wiki/%D0%AD%D0 ... 1%81%D0%B0

Цитата:
Элемент интерфейса

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Виджет»)

Элеме́нт интерфе́йса — примитив графического интерфейса пользователя, имеющий стандартный внешний вид и выполняющий стандартные действия.

Другие названия: элемент управления, ви́джет (англ. widget), контро́л (англ. control)[1].

Содержание

1 Происхождение термина «виджет»
2 Типовые элементы интерфейса
3 Библиотеки элементов интерфейса
4 См. также
5 Примечания
6 Ссылки

Происхождение термина «виджет»

Употребляется примерно с 1920-х годов в американском английском для обозначения простой, но необходимой вещи, маленького изделия, название которого временно забыто говорящим[2]. Online Etymology Dictionary предполагает, что на его форму могло повлиять слово англ. gadget или же оно происходит от англ. which it — «этот, как его»[3]. Другие словари предполагают словослияние «window gadget» (букв. — «оконное приспособление»), также произошедшее в начале XX века[2].

Слово «виджет» также используется и как название класса вспомогательных мини-программ — графических модулей, которые размещаются в рабочем пространстве соответствующей родительской программы и служат для украшения рабочего пространства, развлечения, решения отдельных рабочих задач или быстрого получения информации из интернета без помощи веб-браузера.

Типовые элементы интерфейса

аккордеон (accordion)
кнопка (button)
сдвоенная кнопка (split button) — кнопка, вызывающая список со вторичным(и) действием(и) (кнопками)
радиокнопка (radio button)
флаговая кнопка (check box)
кнопка-переключатель (toggle button) — может находиться в одном из двух состояний: активна или неактивна
значок (иконка, icon)
список (list box)
дерево — иерархический список (tree view)
раскрывающийся список (combo box, drop-down list)
метка (label)
поле редактирования (textbox, edit field)
элемент для отображения табличных данных (grid view)
меню (menu)
главное меню окна (main menu или menu bar)
контекстное меню (popup menu)
ниспадающее меню (pull down menu)
окно (window)
диалоговое окно (dialog box)
модальное окно (modal window)
панель (panel)
вкладка (tab)
панель инструментов (toolbar)
полоса прокрутки (scrollbar)
ползунок (slider)
строка состояния (status bar)
всплывающая подсказка (tooltip, hint)
Встречаются и другие элементы управления, которые могут не входить в некоторые наборы:

Радиальное меню (pie menu или radial menu) — кольцевое меню вокруг курсора. Выбор пункта меню осуществляется движением курсора в направлении пункта меню.
Кнопка последовательного выбора — элемент, значение в котором выбирается последовательным нажатием мыши по нему. В отличие от раскрывающегося списка, такая кнопка не позволяет видеть другие значения, кроме выбранного.
Счётчик — двунаправленный вариант для числовых значений. Нажатие на кнопку позволяет изменить значение параметра на единицу в большую или меньшую сторону.
Heads-up display — отображение поверх всех элементов значения каких-то параметров либо важных сообщений.
Пузырь — подсказка наподобие филактера в комиксах, которая указывает на элемент — источник сообщения.
Валкодер — вращающийся элемент управления наподобие ручки настройки во многих радиоприёмниках. Может быть как одно-, так и многооборотным.
Скрываемый виджет — элемент, позволяющий скрыть часть элементов управления, когда они не используются.
Индикатор уровня (Level Indicator) — элемент для индикации значения какой-либо величины. Иногда вместо него используется индикатор процесса, но некоторые руководства (к примеру, HIG от Apple[4]) запрещают подобную практику.

Библиотеки элементов интерфейса

В каждой оконной системе существует свой набор «родных» элементов с интерфейсом низкого уровня для работы с ними.
Одни библиотеки элементов управления — это высокоуровневые «обёртки» к имеющимся стандартным виджетам, упрощающие работу с ними и расширяющие их функциональность.
Другие предоставляют свой единый программный интерфейс для программирования интерфейса пользователя в нескольких платформах или оконных системах и с целью обеспечения кроссплатформенности приводят их к единому для всех платформ API.
Третьи предоставляют кроссплатформенные возможности за счёт собственной, платформонезависимой, реализации элементов управления.

Кроссплатформенные, на основе Java
Standard Widget Toolkit — в составе проекта Eclipse
Swing — разработка Sun, компонента Java Foundation Classes (JFC) на основе AWT
AWT — частично устаревший Abstract Windowing Toolkit (Sun, 1995)
JavaFX — платформа для разработки RIA на Java
Кроссплатформенные, на основе C/C++, с возможностью использования в других языках
Tk
GTK+
Qt
wxWidgets (wxWindows)
IUP
FOX toolkit
FLTK
Кроссплатформенные, на основе Pascal
LCL
CLX — адаптация интерфейса Qt[источник не указан 3921 день] для Borland Delphi & Kylix
Кроссплатформенные, на основе AJAX
Dojo
ExtJS
YAHOO User Interface library
Под AmigaOS
Intuition
Reaction
MUI (Magic User Interface)
Под AROS
Zune
Под DOS
Turbo Vision — в составе Borland Turbo Pascal 6.0/7.0, текстовый интерфейс
Zinc — библиотека для Borland С++
Под Microsoft Windows
Windows API
Microsoft Foundation Classes
Windows Template Library
Object Windows Library (Borland Pascal 7.0, графический интерфейс)
Visual Component Library (Borland Delphi)
Windows Forms
Windows Presentation Foundation (или Avalon)
Под Unix — для X Window System
Xlib
Xt
Xaw
Motif (Open Motif, LessTif)
Под BREW
BUIW
Графический интерфейс для игр
MyGUI
GWEN
CEGUI

См. также

Логотип Викисловаря В Викисловаре есть статья «виджет»
Гаджет
Портлет
Скин
GUI-конструктор

Примечания

Буторин Д. Н. MS Agent и Speech API в Delphi. — БХВ-Петербург, 2005. — 448 с. — ISBN 9785941575022.
Richard Coyne. The Tuning of Place: Sociable Spaces and Pervasive Digital Media. — MIT Press, 2010. — P. 52. — 344 p. — ISBN 9780262013918.
Online Etymology Dictionary, widget
Mac OS X Human Interface Guidelines: UI Element Guidelines: Controls

Ссылки

Программа XWidget для операционной системы Windows
Fox-Toolkit Архивировано 12 февраля 2012 года.
Терминология GUI-проектирования


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 07 Октябрь, 2022 13:09 

Зарегистрирован: Вторник, 27 Апрель, 2021 05:25
Сообщения: 77
Откуда: Томск
Степан Митькин писал(а):
Alex_st_Tomsk писал(а):
Скажите, что вы подразумеваете под понятием "собственный редактор". <...> Что он (пользователь) может выбирать на своё усмотрение, а что - нет?

Что вариативно:

- Цвета икон и линий, тени, фон.
- Размеры, отступы.
- Содержимое икон внутри виджета: текст, разметка, форматирование, картинки.
- Можно ли редактировать или только просматривать.

Под вариативной частью я имел немного другое - скажем так, внешнее взаимодействие. Я так понимаю, с помощью Вашего виджета пользователь просто может конструировать дракон-схемы, сохранять их и открывать. Что же тогда требуется от пользователя для создания своего, уникального редактора? Мы исключаем дизайнерские решения и рассматриваем систему как функционирующий блок. Например, я предполагаю, что пользователь может изменить функцию интерпретации дракон-схем на необходимый ему язык программирования. В таком случае виджет подсказывает пользователю, какой элемент как необходимо интерпретировать, как задать шаблон. Это моя мысль, потому что я понял из Вашего первого сообщения, что DrakonWidget будет "редактором редакторов".
Скажите, Степан, так ли это? И если нет - как Вы видите эту задачу?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 07 Октябрь, 2022 15:55 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 565
Alex_st_Tomsk писал(а):
Что же тогда требуется от пользователя для создания своего, уникального редактора?

От разработчика приложения требуется то, что обычно.
Приведу textarea как аналогию.

1. Разработчик пишет своё веб-приложение (или мобильное, или для десктопа).
2. В этом приложении есть интерфейс пользователя, работа с какими-то данными, поиск и т.п.
3. Разработчик вставляет виджет textarea в окно приложения.
4. Разработчик передаёт виджету какой-то текст.
5. Разработчик подписывается на события textarea: текст изменён, показ контекстного меню и так далее.

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

Замените textarea на DrakonWidget, и всё будет как раньше.
Только вместо текста будет JSON, содержащий дракон-схему.

Никакой программный код DrakonWidget не генерирует, впрочем и textarea не содержит компиляторов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 07 Октябрь, 2022 17:10 

Зарегистрирован: Вторник, 27 Апрель, 2021 05:25
Сообщения: 77
Откуда: Томск
Степан Митькин писал(а):
Alex_st_Tomsk писал(а):
Что же тогда требуется от пользователя для создания своего, уникального редактора?

1. Разработчик пишет своё веб-приложение (или мобильное, или для десктопа).
2. В этом приложении есть интерфейс пользователя, работа с какими-то данными, поиск и т.п.
3. Разработчик вставляет виджет в окно приложения.
4. Разработчик передаёт виджету какой-то текст.
5. Разработчик подписывается на события: текст изменён, показ контекстного меню и так далее.

Хорошо, спасибо за ответ. То есть виджет предполагает быть интегрированным в какие-то другие приложения пользователя. Например, у пользователя есть какой-то сайт. Он в нём составляет всякие планы, заметки. Но вдруг ему неожиданно понадобилось нарисовать алгоритм. Он перешёл на вкладку своего сайта или кликнул по кнопке меню, и перед ним развернулось пространство построения дракон-схем DrakonWidget. Правильно я понял?
Просто в таком случае проблематика немного другая, не та, которую вы ранее описали. В этом случае проблема заключается в "не-мобильности" и "не-интегрированности" имеющихся редакторов дракон-схем. Для построения схем необходимо регистрироваться на соответствующих сайтах (например, Ваш DrakonHub, который мне этим летом стал довольно близок) или скачивать приложения (например, "Фабула" Эдуарда Ильченко).
Наверное, это действительно проблема. Кому-то неудобно переключаться между рабочими пространствами. С другой стороны, специальные сайты и программы разграничивают действия пользователя - "на кухне человек готовит, в спальне - спит, в ванной - умывается".

Но DrakonWidget не создаёт новые редакторы. Это будет по сути Ваш интегрированный проект DrakonHub в другие места. Можно сказать, Ваши проекты растут по степени мобильности: DrakonEditor (для ПК "offline") -> DrakonHub (для ПК "online") -> DrakonWidget ("для чего угодно" "online").
Решение интересное, нужное, просто проблема стоит немного другая перед пользователем. Пользователю не нравится факт работы редактора (от интерфейса до необходимых ему функций), а не только факт доступа к нему. Факт доступа - это скорее подзадача, решение которой Вы предлагаете. Кстати, если не секрет, есть ли заинтересованные лица в Вашей разработке, может заказчики? Мне это интересно, потому что пока не чётко представляю в какое приложение можно было бы интегрировать виджет.

Степан Митькин писал(а):
Никакой программный код DrakonWidget не генерирует, впрочем и textarea не содержит компиляторов.

На гибридные языки программирования "ДРАКОН-*вставьте любое слово*" ожидаем спрос. Почему? Потому что всё чаще в мире людям приходится переобучаться на более прибыльные профессии. Такими профессиями можно назвать те, в которых требуется программирование. Людей надо быстро и понятно обучать делу и учить их правильно мыслить - задавать правильные вопросы, фиксировать мысли на бумаге. В этом залог написания полного понятного алгоритма и соответственно недурной программки.
Поэтому я, например, иногда вспоминаю свой разговор с пользователем tonyk и размышляю, почему бы не сделать среду с поддержкой ДРАКОН-ST...дальше уже другая история.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 08 Октябрь, 2022 21:09 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 565
Alex_st_Tomsk писал(а):
Пользователю не нравится факт работы редактора (от интерфейса до необходимых ему функций)

Благодаря DrakonWidget разрабочики могут заниматься интерфейсом и функциями, а не отрисовкой шампуров и пересадкой лиан.

Alex_st_Tomsk писал(а):
пока не чётко представляю в какое приложение можно было бы интегрировать виджет.

Куда можно вставить DrakonWidget?
1. В редактор диграмм. Например, в DrakonHub.
2. В среду разработки. Например, в Drakon.Tech, в Visual Studio Code или в Дракон-Си.
3. В экспертную систему, например в RUL.
4. В систему поддержки принятия решений.
5. В инструменты lowcode-разработки, например Microsoft Flow.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 11 Октябрь, 2022 05:29 

Зарегистрирован: Вторник, 27 Апрель, 2021 05:25
Сообщения: 77
Откуда: Томск
Степан Митькин писал(а):
Благодаря DrakonWidget разработчики могут заниматься интерфейсом и функциями, а не отрисовкой шампуров и пересадкой лиан.
<...>
Куда можно вставить DrakonWidget?
1. В редактор диаграмм. Например, в DrakonHub.
2. В среду разработки. Например, в Drakon.Tech, в Visual Studio Code или в Дракон-Си.
3. В экспертную систему, например в RUL.
4. В систему поддержки принятия решений.
5. В инструменты lowcode-разработки, например Microsoft Flow.


Спасибо, вы ответили на все мои вопросы. Ваша разработка стала для меня более ясной. Действительно, продукт нужный. Когда я занимался Дракон-Си, жаль, что его не было и всю структуру пришлось строить самому. Главное, чтобы структура виджета была понятной для тех программистов, которые заимствуют его в свои проекты. На их плечи может лечь разная задача. Я попытался придумать несколько примеров, на которые способна моя фантазия:
- убрать все перекрашивания, чтобы схему можно было печатать в ч/б варианте
- встроить шаблоны кода для трансляции в язык программирования...Ruby, допустим
- ограничить количество ветвей - максимум 8 штук
- избавиться от примитива - даже простой алгоритм надо разбивать на этапы
- сопроводить выбор атома контекстной подсказкой
То есть надеюсь на хорошую, грамотную документацию.
Спасибо Вам и успехов нам всем в этом направлении.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 16 Октябрь, 2022 19:32 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 565
Вышел DrakonWidget 0.8.1

Онлайн-демо:
https://stepan-mitkin.github.io/drakonwidget/

Фактически, это мини-редактор дракон-диаграмм, не требующий ни установки, ни регистрации.

Страничка на GitHub
https://github.com/stepan-mitkin/drakonwidget

Документации пока нет, но будет!


Вложения:
drakon-widget-hero.png
drakon-widget-hero.png [ 67.72 КБ | Просмотров: 555 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 17 Октябрь, 2022 14:25 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 565
Добавил документацию:
https://github.com/stepan-mitkin/drakonwidget

Теперь ничто не остановит энтузиастов от создания орд дракон-редакторов!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 15 Ноябрь, 2022 16:03 

Зарегистрирован: Пятница, 11 Ноябрь, 2022 15:18
Сообщения: 4
Откуда: Москва
Доброго времени суток, Степан,

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

1. Возможность добавления комментариев к иконкам (например, как это реализовано в Fabula)
2. Возможность добавления разделителей с номерами для больших схем, для того, чтобы можно было их разбивать
для печати на отдельных листах

Планируется ли реализация этих опций?

А так реализация очень понравилась, работает в онлайн и оффлайн режимах, конечно, необходимо встраивать
дополнительно свой код для сохранения/загрузки получившихся схем и, возможно, их обработки для генерации
исходного кода на базе этих схем (благо json формат позволяет удобную обработку данных).

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

Еще раз спасибо за столь полезную разработку ! :D

P.S. Планируется ли локализация ? Перевести получившийся код не сложно, только вот как реализовать, если у
Вас он сгенерирован из схем Drakon.tech (Drakon.Editor ?) если я не ошибаюсь?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 15 Ноябрь, 2022 17:58 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5511
Откуда: Москва
Алексей Богданов писал(а):
полезно вставить опцию
вариантов центровки текста в иконках. В моем случае - предпочтительна центровка текста, хотя другим, возможно,
будет полезнее выравнивание по левому или правому краю.
считаю, что наилучший вариант — делать центровку единообразно по закону Геннадия Тышова, как это сделано в ДРАКОН-конструкторе "ИС Дракон".

Правило Геннадия Тышова
Текст выравнивается в иконе по середине самой длинной строки. Строки выравнены влево.
viewtopic.php?p=104133#p104133


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Ноябрь, 2022 15:24 

Зарегистрирован: Пятница, 11 Ноябрь, 2022 15:18
Сообщения: 4
Откуда: Москва
Нашел небольшой баг: в иконке Действие (Action) не работает опция центровки текста. Для других элементов (иконок) работает (речь идет о параметре textAlign, похоже что для Action он просто игнорируется).

Решение:

Внести правки в функцию CustomBuildDom() в файле main.js, добавив определение переменной textAlign и ее использование в переназначении container.style как представлено ниже:

Код:
    function customBuildDom(core) {
        if (core.type !== "action") {
            return undefined
        }

        var paddingTop = core.config.padding + "px"
        var paddingBottom = core.config.padding + "px"
        var paddingLeft = core.config.padding + "px"
        var paddingRight = core.config.padding + "px"
        var color = getThemeValue(core, "color")
        var textAlign = getThemeValue(core, "textAlign")
        textAlign = textAlign || "center"
        var font = getThemeValue(core, "font")
        font = font || core.config.font

        var container = div("icon-container")
        container.style.display = "inline-block"
        container.style.position = "absolute"
        container.style.left = "0px"
        container.style.top = "0px"
        container.style.paddingLeft = paddingLeft
        container.style.paddingTop = paddingTop
        container.style.paddingRight = paddingRight
        container.style.paddingBottom = paddingBottom
        container.style.color = color
        container.style.font = font
        container.style.textAlign = textAlign
        container.style.minWidth = core.config.minWidth + "px"
        container.style.maxWidth = core.config.maxWidth + "px"
        container.style.lineHeight = core.config.lineHeight * 100 + "%"

        parseHomeMadeMarkdown(core.content, container)

        if (core.link) {
            container.style.paddingLeft = core.config.padding * 2 + iconSize + "px"
            var icon = document.createElement("img")
            icon.src = "images/link.png"
            icon.style.width = iconSize + "px"
            icon.style.height = iconSize + "px"
            icon.style.display = "inline-block"
            icon.style.position = "absolute"
            icon.style.verticalAlign = "middle"
            icon.style.left = core.config.padding + "px"
            icon.style.top = "50%"
            icon.style.transform = "translateY(-50%)"
            add(container, icon)
        }

        return container
    }



Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 19 Ноябрь, 2022 18:53 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 565
Владимир Паронджанов писал(а):
Правило Геннадия Тышова
Текст выравнивается в иконе по середине самой длинной строки. Строки выравнены влево.
viewtopic.php?p=104133#p104133


Правило Геннадия Тышова выглядит так:
Вложение:
tyshov.png
tyshov.png [ 22.24 КБ | Просмотров: 165 ]


Лично мне Правило Геннадия Тышова не нравится, но моё мнение не имеет значения.
Почему не имеет?

Решение должен принимать пользователь, а не DrakonWidget. DrakonWidget всего лишь отрисовывает слепыш, а содержание икон создаёт конечное приложение.
Тем не менее, в DrakonWidget встроено некоторое примитивное отображение текста, которое может следовать Правилу Геннадия Тышова.

Чтобы включить Правило Геннадия Тышова, установите centerContent = true в конфигурации.
Имейте в виду, что centerContent = true работает, только когда canvasIcons = true

Вот как выглядит Правило Геннадия Тышова на другой диаграмме:
Вложение:
scientific-tyshov.png
scientific-tyshov.png [ 31.57 КБ | Просмотров: 165 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 19 Ноябрь, 2022 19:05 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 565
Алексей Богданов писал(а):
Перевести получившийся код не сложно, только вот как реализовать, если у
Вас он сгенерирован из схем Drakon.tech (Drakon.Editor ?) если я не ошибаюсь?


Здравствуйте, Алексей.

Как локализовать DrakonWidget:

1. Чтобы перевести ключевые слова, которые отображаются на диаграмме, добавьте их в config:
Да, Нет, Конец, Завершение, Ветка
Код:
config.yes = "Да"
config.no = "Нет"
config.end = "Конец"
config.exit = "Завершение"
config.branch = "Ветка"


2. Чтобы перевести контекстное меню, реализуйте функцию перевода config.translate()

См. документацию:
https://github.com/stepan-mitkin/drakonwidget


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 19 Ноябрь, 2022 21:57 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5511
Откуда: Москва
Степан Митькин писал(а):
Лично мне Правило Геннадия Тышова не нравится, но моё мнение не имеет значения.
Почему не имеет?

Решение должен принимать пользователь, а не DrakonWidget. DrakonWidget всего лишь отрисовывает слепыш, а содержание икон создаёт конечное приложение.

Эти рассуждения рассчитаны на квалифицированного пользователя.

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

Что такое квалифицированный пользователь?
Квалифицированный в какой области?

Квалифицированный пользователь — это пользователь, имеющий квалификацию в области эргономики, умеющий повышать удобочитаемость текстов и чертежей.

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

Пример 1
Программа DrakonHub позволяет пользователю выбирать цвета по своему усмотрению. Пользователи делают это неумело и бесвкусно, аляповато и даже безграмотно, так как они не консультируются с художниками и эргономистами. Это плохо.

А как хорошо?
Хорошо сделал Геннадий Тышов, который:
1) запретил пользователям возможность выбирать цвет;
2) соблюдает правило отделения фигуры от фона;
3) ввел единое правило дл всех — заливка фона светлозеленым цветом.
4) создал кайму иконы Комментарий более темным зеленым цветом.

Пример 2
Степан, вы хорошо знаете книгу "Клиническая алгоритмическая медицина", которую вместе с нами создавали 5 докторов медицинских наук и 3 кандидата медицинских наук.
При использовании программы DrakonHub они так и не освоили простейшую операцию "Пересадка лианы".
Они передавали мне дракон-схемы с огромным количеством лишних изломов, потому что пришлось решать множество чисто медицинских проблем. Поэтому я махнул рукой и исправил все изломы линий сам — иначе работа растянулась бы на месяцы или даже на годы.

А как правильно?
Правильно сделал Геннадий Тышов, его программа автоматически исключает лишние изломы. Поэтому ручная доработка не требуется.

Вывод

Нельзя давать пользователю свободу выбора. Пользователь (из-за отсутствия нужной квалификации) будет предлагать нелепые решения.

Как надо делать

1. Разработчик программы DrakonHub (или ее аналогов) по умолчанию должен навязывать пользователю заранее продуманное наилучшее решение.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 21 Ноябрь, 2022 09:48 

Зарегистрирован: Пятница, 11 Ноябрь, 2022 15:18
Сообщения: 4
Откуда: Москва
Доброго времени суток, Владимир,

Поскольку в этой теме идет обсуждение DrakonWidget (а это именно основа для построения решений использующих создание схем на языке Дракон, а не законченное решение, такое как "ИС Дракон") - то, на мой взгляд, абсолютно верно, что предлагаются различные варианты работы с объектами схем. Автор конечного приложения для себя должен сам решить как реализовать финальное приложение и какие опции будут доступны пользователю. В любом случае я бы рекомендовал не ограничивать возможности, а вводить варианты работы с программой такой как "базовый"(в котором возможности оформления ограничены) и "экспертный" (в котором пользователь сам решает каким образом будет отображаться схема и как она будет оформлена).

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

Надеюсь, что данное решение позволит создать законченный продукт со всеми необходимыми опциями (как я уже отмечал ранее, сейчас очень не хватает опций комментария и возможности вставки разделителей для печати больших схем на нескольких листах. В качестве примера я здесь могу привести не "ИС Дакон", а программу Фабула. Очень жаль, что она не развивается и нет доступа к исходному коду, для того, чтобы подправить некоторые вещи из-за чего программа иногда падает под Windows 10. По удобству построения схем, она мне нравится гораздо больше, чем "ИС Дракон". Конечно, в ней нет возможности генерировать исходный код, как в "ИС Дракон", но добавить обработку XML схем, думаю возможно. Как и JSON схем для DrakonWidget.

Владимир Паронджанов писал(а):
Степан Митькин писал(а):
Лично мне Правило Геннадия Тышова не нравится, но моё мнение не имеет значения.
Почему не имеет?

Решение должен принимать пользователь, а не DrakonWidget. DrakonWidget всего лишь отрисовывает слепыш, а содержание икон создаёт конечное приложение.

Эти рассуждения рассчитаны на квалифицированного пользователя.

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

Что такое квалифицированный пользователь?
Квалифицированный в какой области?

Квалифицированный пользователь — это пользователь, имеющий квалификацию в области эргономики, умеющий повышать удобочитаемость текстов и чертежей.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 21 Ноябрь, 2022 15:09 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5511
Откуда: Москва
Алексей Богданов писал(а):
очень печально слышать, что "кандидаты и доктора наук в области технических и физико-математических наук" не могут освоить базовые принципы построения схем и операцию "пересадку лианы"
Это недоразумение. Я ничего подобного не говорил. Все наоборот.
На самом деле инженеры, программисты, кандидаты и доктора наук легко могут освоить базовые принципы построения схем и операцию "пересадку лианы.

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

Откуда взялось недоразумение? Языком ДРАКОН пользуются врачи. Задача врачей — диагностировать и лечить людей. Группа специальностей 31.00.00 "Клиническая медицина".

Врачи очень заняты, у них нет времени. Они поняли, что им нужен язык ДРАКОН, но — из-за нехватки времени — они используют его по минимуму и на данном этапе не могут освоить операцию "пересадка лианы", что порождает лишние изломы линий.

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

Так что мои замечания написаны кровью и потом. Они не высосаны из пальца, а являются результатом многомесячной совместной работы с врачами.

Алексей Богданов писал(а):
В качестве примера я здесь могу привести ... программу Фабула. Очень жаль, что она не развивается и нет доступа к исходному коду, для того, чтобы подправить некоторые вещи из-за чего программа иногда падает под Windows 10. По удобству построения схем, она мне нравится гораздо больше, чем "ИС Дракон".
К сожалению, автор Фабулы Эдуард Ильченко умер. Здесь на форуме был участник, который изобрел прием, чтобы программа Фабула не падала.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 21 Ноябрь, 2022 15:33 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5511
Откуда: Москва
Консультант по Фабуле Владимир Аксенов
viewtopic.php?p=100870#p100870
и далее


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2022, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB