Познакомимся с интерфейсом программы:
основное место занимает поле документа.
в углу находится группа кнопок работы с документом:
открытие и сохранение из различных источников, исправление, экспорт, вывод на печать, настройки
группа обновления/авторазмещения
группа поиска и перехода к найденным элементам
группа действий и операций
группа кнопок, управляющих отображением инструментов и подробных списков элементов
Полноэкранный режим
Управление уровнем детализации элементов со сложной структурой
Рулетка
Переключение режимов работы
Инструменты для создания элементов
Выбор масштаба, позиционирование относительно начала координат, управление сеткой и привязкой
Для дальнейшего озакомления с возможностями откроем демонстрационный документ (файлы программы имеют расширение scn - от слова "СЦЕНА").
Нестандартное понимание документа:
Бесконечное, свободно масштабируемое и перемещаемое поле против постраничного документа в обычных офисных пакетах. Страницы появляются только в момент печати.
Нестандартное понимание клика:
Если мышь отпущена дальше окрестности точки, где была нажата - действие расценивается как перенос (Drag)
Если в той же окрестности - как клик.
Размер окрестности в пикселах экрана регулируется в настройках (Settings - Mouse Settings - Same place zone).
Для устройств с перьевым вводом, сенсорных экранов и при высокой чувствительности мыши окрестность рекомендуется увеличить.
Контроль над элементами:
Выбор объекта осуществляется щелчком не по явно видимым/прорисованным частям объекта, а по прямоугольной оболочке объекта.
Исключение сделано только для соединений.
В обычных приложениях WYSIWYG получение контроля над элементом документа осуществляется исключительно посредством взаимодействия мыши с визуальным представлением. При перекрытии нескольких объектов (размещении в несколько слоев) мышь взаиможействует только с верхним из них, а приложение имеет средства для изменения Z-order типа "Send to Back"/"Bring to Front". В случае многослойных документов со сложными атрибутамии группировки и видимости - получение доступа к нужному элементу становится нетривиальным занятием.
В pencil все элементы сцены доступны в виде списков, порядок отрисовки изменяется напрямую (редактированием текстовой последовательности), а мышь взаимодействует не только с верхним элементом в стопке, а со всеми.
Существуют следующие режимы работы приложения:
- навигация
- управление
- редактирование существующего элемента
- добавление нового элемента с автоматическим выбором типа
- добавление нового элемента указанного типа
По умолчанию приложение оказывается в режиме навигации.
В этом режиме доступны следующие возможности перемещения по сцене:
- непосредственный ввод числовых значений координат центра экрана, масштаба, угла поворота в соответствующие поля.
- автоподбор параметров отображения для умещения в экран всей сцены или только выделенных элементов
- сдвиг полотна с помощью кнопок панорамирования
- сдвиг полотна на 1/10 экрана с помощью сочетания Ctrl+стрелки
- создание якорей и перемещение по их истории
- поиск
- сдвиг полотна захватом мышью, измененение масштаба колесом мыши
- переход по связям между объектами:
щелчёк по концу соединения - перемещение на другой конец соединения.
щелчёк по середине соединения - вызывает меню, на какой конец соединения перемещаться.
Одиночный щелчёк левой кнопкой по элементу сцены вызывает его обновление (для динамических элементов сцены)
Одиночный щелчёк правой кнопкой по элементу сцены контекстное меню с доступными действиями не вызывает - это только в режиме управления.
Двойной щелчёк левой кнопкой вызывает исполнение действия по умолчанию (если под мышью находится ровно один элемент сцены, и к нему привязана единственная команда - она считается командой по умолчанию)
Варианты перехода между позициями на сцене:
Teleport - мнговенное изменение части параметров отображения (меняются только координаты центра экрана)
TeleZoom - мнговенное изменение параметров отображения (меняются координаты центра экрана и масштаб, так чтобы найденные/выделенные элементы сцены полностью умещались на экране)
Hover - "мультипликационное" (по умолчанию 15 промежуточных положений-"кадров") изменение координат центра экрана, напоминает эффект перелета в нужное место сцены на одной высоте над сценой
HoverZoom - то же самое, только кроме координат центра экрана изменяется также маштаб
Fly - "мультипликационное" изображение перелета со сменой высоты: по уполчанию 15 кадров уходит на "набор высоты", чтобы уместить на экране и точку отправления, и точку назначения. Потом ещё 15 кадров - на "спуск" к точке назначения, чтобы она заняла весь экран.
При изменении масштаба в значительных пределах на сцене легко "заблудиться", поэтому предусмотрено меню, позволяющее настроить масштаб и координаты так, чтобы оботражалась вся сцена целиком или на выделенные элементы или вернуться к началу координат.
Режим управления предназначен для исполнять команды, связанных с элементами сцены.
При щелчке правой кнопкой мыши, команды, связанные со всеми находящимися под мышью элементами сцены будут отображены в виде контекстного меню, из которого далее выбирается нужная. Двойной щелчок левой кнопкой мыши активирует команду по умолчанию.
Остальное управление действует так же, как в режиме навигации.
Подробная информация о доступных командах, их формате, и механизме исполнения описана в главе "Интерпретатор команд".
Режим редактирования сцены включает в себя несколько подрежимов:
- режим модификации параметров уже существующего элемента
- режим автоматического добавления нового элемента
- режим добавления нового элемента указанного типа
В подрежиме модификации при выборе элемента сцены на экране появляется редактор свойств, в котором можно изменять положение, цвета, стили, шрифты, привязки, назначать действия итд.
Если выбрано более одного элемента - вместо редактора свойств мы увидим список выделенных элементов. Двойной щелчок по элементу в списке переключает нас в редактор элемента.
При вызове какой-либо операции, например удаления, перемещения, копирования, добавления/удаления в группу - она будет применена к каждому элементу списка.
Список позволяет уточнять выделение, если это сложно сделать визуальным способом, вследствие того, что элементы располагаются впритык или в несколько слоев: с помощью клавиш "серый минус"/"серый плюс" можно убрать ненужные элементы или оставить только нужные.
Подрежим автоматического добавления нового элемента предназначен для максимально быстрого рисования диаграмм, состоящих из объектов и связей между ними.
При рисовании (то есть нажатии мышии с последующим её перемещением и отпусканием) на пустом месте создается объект
(используется тип и атрибуты объекта, ранее выбранные в режиме редактирования или создания нового объекта,
для создания шаблонного объекта перемещение мыши не требуется - достаточно одного щелчка).
При рисовании между объектами создается связь между объектами и автоматически создаются порты у объектов, если под начальной или конечной точкой не было существующих портов.
Подрежим добавления нового элемента указанного типа можно рассматривать как набор "инструментов" для рисования, и хотя типов основных элементов в сцене всего 4 - объекты, выноски, связи и кривые - "инструментов" для рисования гораздо больше. Дело в том, что элемент "кривая" - по сути является контейнером для команд отображения графических примитивов, поэтому для него существует несколько разных инструментов.
- Создание нового объекта
в зависимости от разновидности объекта способы его создания различаются
на данный момент доступно 8 разновидностей объектов
- шаблонный - это заранее определенный дисплейный список, который выводится в нужном месте с нужным масштабом и углом поворота.
- блок - это объект, имеющий сложную внутреннюю структуру, по сути сцена внутри сцены
- прямоугольник
- прямоугольник со скругленными углами
- овал - это объекты, дисплейные списки которых генерируются на лету
- нестандартный - это объект, полученнный в результате конвертации из кривой.
- растровый контейнер - это объект, предназначенный для отрисовки содержимого графического файла bmp, jpg, png итд.
- векторный контейнер - это объект, предназначенный для отрисовки файла, содержащего дисплейный список в текстовом формате. Во многом подобен шаблону, но в отличие от него не обязан храниться в библиотеке и иметь фиксированное содержимое на всё время работы программы, а может располагаться в произвольных местах, генерироваться на лету сторонними приложениями и динамически обновляться.
Для создания нового объекта типа "шаблон" или "блок" сначала необходимо выбрать из библиотеки нужную модель (для шаблона это tpg-файл, для блока - scn-файл). При этом за мышью начинает ездить резиновая модель будущего объекта, но видна она будет только если выбранный масштаб отображения сопоставим с размерами создаваемого объекта. Если резиновой модели не видно, значит надо изменить масштаб или убедиться, что шаблон выбран правильно и он непустой.
Клик по сцене вставляет на месте резиновой модели новый объект. С помощью инспектора свойств можно изменить точку вставки, масштаб и угол поворота вновь создаваемых объектов.
Объекты-фигуры (прямоугольник, скругленный прямоугольник и овал) работают одинаковым образом: нажатие мыши фиксирует одну из угловых точек нового объекта, и при перемещении мыши начинает рисоваться резиновый объект.
Отпускание мыши фиксирует второй угол объекта, и он прорисовывается окончательно. Однако, если оба угла совпадают - то объект нулевого размера создан не будет. Это возможно, когда включена привязка к сетке, и шаг сетки на экране достаточно
велик. Резиновый объект при этом тоже не отображается.
У таких объектов в редакторе вместо точки вставки доступны координаты двух углов, ширина, высота, связанные с длиной диагонали и углом её наклона.
Кроме того можно регулировать цвет фона, линии контура и толщинуа контура в пикселах экрана. Линия будет нарисована заданной толщиной при любом масштабе.
Объекты-контейнеры вставляются так же, как фигуры.
- Создание связи
Для создания связи нужно нажать мышь над одним объектом и удерживая её перенести к другому объекту.
По умолчанию у объектов автоматически создадутся порты, к которым присоединяется связь.
У связи регулируется цвет и тощина линии, а также стиль начала и конца. С помощью дополнительных кнопок в инспекторе связи могут быть добавлены дополнительные точки излома или подписи.
- Создание выноски
Выноска, т.е. прямоугольник с текстом внутри, создается аналогично объектам-фигурам - нажатием мыши в одном углу и растягиванием до другого угла.
У выноски регулируется цвет, толщина линии и цвет заполнения. Кроме того, есть галочка Transparent которая делает выноску прозрачной, т.е. отключает как заливку фона так, и рисование рамки.
Текст выноски редактируется не на самой сцене, а на соответствуещей вкладке инспектора.
Для текста надписи можно изменять стандартные атрибуты шрифта, цвет и размер. Атрибуты шрифта применяются ко всей выноске целиком - нельзя сделать одну строку другого цвета или крупнее.
Редактирование размера имеет особенность - в поле размера шрифта указывается размер, котрым будет выводиться надпись при текущем масштабе отображения.
Если мы уменьшим масштаб - текст тоже уменьшится и содержимое поля размера тоже изменится. Надписи шрифтом менее 5 не отображаются в целях ускорения отрисовки.
Поскольку основное назначение выноски - текстовый комментарий к чему-то, то логично чтобы выноска могла автоматически располагаться рядом с объектом, который она комментирует. Для этого служат настройки Binding и Bind mode,
которые позволяют задать базовый объект к которому будет относиться выноска и её расположение относительно базового объекта.
Выноски также могут быть контейнерами для растровой графики и дисплейных списков.
Выноска-контейнер отличается от объекта-контейнера тем, что выноска может привязываться к другому объекту, но к ней не может подходить связь.
Напротив, между объектами-контейнерами связи быть могут, а привязка по расположению невозможно. (Не считая случая, когда объект проинадлежит группе, члены которой передвигаются совместно, но в этом случае корректно говорить не обпривязке к другому объекту, а именно о принадлежности к группе).
проверить почему не удаляется имя объекта из привязки (при каком действии?)
- кривая-карандаш
рисует непрерывную кривую пока нажата и удерживается левая кнопка мыши. Для получения действительно плавных кривых необходимо отключить привязку к сетке.
- кривая-полилиния
Каждый щелчок левой кнопкой мыши создает следующий сегмент линии. Щелчок правой кнопкой мыши завершает рисование текущей кривой.
-прямоугольник, скругленный прямоугольник, эллипс
рисуются растягиванием фигуры за диагональ. В отличие от ломаной и рукописной линий это фигуры не устойчивы к повороту картники на углы, не кратные 90 градусам.
- Текстовая метка
- Внешний генератор
Поиск и переход между элементами
Вызов расширенного диалога поиска - позволяет искать не только по имени элемента, но и по содержимому полей, например по тексту выносок.
Кнопки фильтра типа - позволяют ограничить поиск элементами только нужных типов. Также влияют на работу клика в режиме редактирования - выибираются/исключаются элементы только тех типов, которые подходят под фильтр.
Поле поиска по имени - в процессе ввода имени сразу строит список всех подходящих (включающих введенный фрагмент)
регистрочувствительность?
Двойной щелчок по списку заполняет фильтр однозначным образом и далнейший щелчок по кнопке перехода к найденному вызывает способ перехода, заданный выпадающим меню, активируемым следующей кнопкой:
- Navigate
- Select
- Open in inspector
Дополнительные панели
группа кнопок позволяет вызывать панели дополнительных инструментов и делать их отделяемыми так, что, например, основное окно с документом может располагаться на одном мониторе, а инспектор объектов - на другом мониторе.
на данный момент реализованы три отделяемые панели:
- Tools - панель инспектора свойств элементов сцены
- TPG editor - редактор дисплейных списков в текстовом виде
- Details - панель для невизуального контроля элементов, содержащая списки всех элементов с возможностью выбора, удаления и перехода к редактированию и манипуляции с видами сцены, блоками, шаблонами, группами и кешем содержимого элементов-контейнеров.
ДЕЙСТВИЯ
--------------------
интеллект-карты есть недоделанные семантические сети
изначально инструмент задумывался для визуального редактирования
семантических сетей
оказалось что с его помощью можно решать и другие задачи:
- визуализация данных из таблиц
- визуализация исходного кода
- демонстрация учебного материала
- использование в качестве АСОДУ: визуализация обстановки
и управление информационной системой
предназначено для отображения графов
визуальная информация представляется в виде СЦЕН, которые могут включать
в себя следующие элементы:
КРИВЫЕ
ОБЪЕКТЫ
СОЕДИНЕНИЯ
ВЫНОСКИ
ГРУППЫ
КРИВАЯ - это контейнер для тривиальных графических команд, объединенных в
дисплейный список. команды могут быть на отрисовку линии, эллипса, прямоугольника,
смену цвета пера, вывод надписи
ОБЪЕКТ -
может быть трех видов
с кастомным дисплейным списком - получается при конвертации из кривых
типа прямоугольник/эллипс - с генерируемым дисплейным списком
типа вставленного шаблона
в любом??? случае у объекта есть точка вставки, масштаб и угол поворота
СОЕДИНЕНИЯ - отражают связи между объектами
могут присоединяться к ПОРТУ обекта или ко всему объекту целиком
к порту может подсоединяться не более одной связи
к объекту целиком - несколько. в этом случае связи изображаются присоединенными
к точке вставки объекта
с объектами могут быть связаны ДЕЙСТВИЯ:
ДЕЙСТВИЕ это команда интерпретатора, которая будет выполнена при активации из
контекстного меню или при двойном щечке мышью по объекту в случае если действие
единственное
ВЫНОСКА - фигура с текстом
может быть отдельной или привязанной к объекту, применяется для размещения
текстовых комментариев
объекты и выноски могут иметь ИСТОЧНИК
это команда интерпретатора, результат которой передается в поле ТЕКСТ выноски
или в дисплейный список объекта
тут надо решить насчет масштабирования: должен ли быть отмасштаброван
полученный дисплейный список в оболочку и откуда брать эту оболочку, если не
рендерить из дисплейного списка
ГРУППА - это множество объектов, имеющее ряд атрибутов
- glue - объекты перемещаются вместе, даже если выделен только один из них
- видимость - аналог слоев
- видимость только одной группы
- взаимодействие с мышью - позволяет организовывать из части объектов
"фон" или "подложки"
действия с одиночными обектами
переименовать
создать выноску
перейти к редактированию выноски
перейтит к редактированию объекта
пройти по связи с/без изменением масштаба
пройти на начало/конец связи из середины
создать порт
как перемещать порт?
действия со списками объектов
- удалить
- копировать в карман
- вырезать в карман
- добавить в группу
- удалить из группы
- обновить источники
- разместить
- организовать порты
- переместить в место
- выполнить действие
режим навигации и управления - редактирование запрещено
можно ли выбирать несколько? должно быть ДА, чтобы выполнять действия над
группой
проход по ссылкам
щелчок левой обновляет, правой вызывает контекстное меню, двойной -
действие по умолчанию (действие по хуверу мыши?)
выделение с альтом или контролом
режим выделения и редактирования
режим добавления новых объектов
вставить типовую команду - телепорт