Шаблоны Joomla 3 тут


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

 

В pencil документом является свободно масштабируемая неограниченная СЦЕНА. (ограничения, конечно, есть, но они обусловлены только разрядностью и точностью машинного представления вещественных чисел).


 <показать примеры документов>

Сцена может содержать элементы следующих типов
- объекты
- соединения
- выноски
- кривые

Основным элементом сцены являются ОБЪЕКТы.
Объекты могут соединяться между собой СОЕДИНЕНИЯМИ.
К объектам могут привязываться одна и несколько ВЫНОСОК с подписями.
Выноски могут изображаться и сами по себе, без привязки к объектам.
Соединений между выносками не бывает - соединяются только объекты.
Соединения бывают двух видов:
- такие, которые подключаются к объекту, как к целому
- такие, которые подключаются к ПОРТУ объекта
К одному порту может подключаться только одно соединение.
"Непортовых" соединений к одному объекту может быть более одного.
Соединения могут быть с изломами и собственными подписями.
Технически, соединения состоят из двух или более портов - начального, конечного и промежуточных, которые могут обозначать точки изломов или текстовых подписей.

Четвертый вид элементов сцены - КРИВЫЕ - можно рассматривать, как недосформированный объект.

Механизм отрисовки сцены базируется на концепции дисплейных списков, то есть последовательностей команд рисования примитивов (перемещение пера, рисование линии, прямоугольника, эллипса, текстовой строки, растровой графики, другого дисплейного списка) и управления атрибутами рисования - цвет, толщина, стиль, шрифт итд.

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

Другие элементы сцены генерируют свои дисплейные списки автоматически, на базе имеющихся свойств объекта/выноски/соединения.
В ходе добавления графических примитивов и вариантов их отображения выяснилось, что программа может работать и в качестве простого векторного редактора для изображения планов, схем, структурных диаграмм, карт знаний.

 <показать примеры документов>

Объекты и выноски могут быть КОНТЕЙНЕРАМИ, которые получают информацию, необходимую для отображения, из внешнего источника: из файла, интернета, исполняемого скрипта.
В случае обычной выноски это может быть текст, а для выносок и объектов специальных разновидностей - может быть и растровая картинка и непосредственно дисплейный список.
Такой функционал позволяет применять pencil для отображения данных мониторинга. (dashboard)

 <показать примеры документов>

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

Встроенный интерпретатор, исполняющий эти команды, позволяет создавать и удалять элементы сцены, манипулировать их свойствами, передавать аналогичным образом информацию в другие програаммы и запускать внешние программы.
Ко всем типам элементов сцены можно привязывать ДЕЙСТВИЯ, т.е. команды, которые будут исполняться встренным интерпретатором при их активации.
Такой функционал позволяет использовать pencil в качестве пульта управления АСОДУ (автоматизированной системы оперативно-диспетчерсого управления).

 

 


Особый тип объекта для представления сложно структурированных схем - БЛОК: имеет собственную внутреннюю структуру, которую можно скрывать.

Объекты, выноски и соединения могут объединяться в ГРУППЫ.
Для каждой группы регулируются атрибуты видимости, взаимодействия с мышью и "склеенности".