[ главная страница ]   [ о проекте ]  [ прислать опыт ]  [ поиск по сайту ]  [ контакты ] 
Справка по использованию программы Dream Journal v. 1.0

Новый взгляд на ведение дневников сновидений

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

Самая большая проблема, которая возникала при работе с документами на компьютере - невозможность быстро и легко составлять статистику. Статистические исследования приходилось выполнять кропотливо и вручную, что занимало немало времени. Однако потом идея посетила меня - почему бы не создать приложение, в котором можно было бы легко записывать свои опыты в структурированном виде, а также можно было собирать статистические данные. И так родился Dream Journal v. 1.0.

Dream Journal v. 1.0 основан на технологии XML (eXtensible Mark-up Language), все данные хранятся именно в этом формате. Однако пользователю не нужно иметь доступ в Сеть, чтобы работать - все хранение осуществляется на локальных дисках. Кроме того, пользователь может вручную создавать файлы с журналами сновидений (хотя бы в каком-нибудь Notepad'е), главное не выходить за рамки означенного формата, и полученные таким образом описания можно будет просматривать и редактировать при помощи Dream Journal.

Наконец, стоит отметить, что приложение Dream Journal v. 1.0 является бесплатной программой, пользоваться которой может любой желающий. Естественно, использование ограничено только личными целями, ни о какой коммерческой деятельности речи быть не может. Также ни у кого, кроме создателя, нет прав ковыряться в коде и производить какие-либо изменения без уведомления и согласия автора программы.

Общий вид программы

На рисунке 1 показан общий вид главного окна Dream Journal v. 1.0. Хотя этот вид показывает только один из режимов работы, но он достаточен, чтобы описать основные зоны интерфейса и их функциональность. Как видно, рабочую зону программы логически можно разбить на три области - управляющие элементы, дерево навигации и собственно место, где происходит просмотр и редактирование описаний конкретных опытов.

"Приборная доска" с управляющими элементами содержит обычный набор кнопок - сохранение всего набора данных на диск, выход и показ небольшого справочного окна. Кроме того, там присутствуют четыре кнопки для создания новых ветвей в дереве навигации по библиотеке сновидений, а также баннер, ведущий на домашнюю страницу программы Dream Journal v. 1.0.

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


Рисунок 1. Общий вид главного окна Dream Journal.

Приборная доска

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

Таблица 1. Описание значений кнопок на приборной доске.
Кнопка Значение
1 Создание нового каталога в контексте библиотеки или другого каталога.
2 Создание нового журнала в контексте каталога.
3 Создание нового описания дня (ночи) в контексте журнала.
4 Создание нового описания опыта в контексте дня (ночи).
5 Сохранение на диск всей библиотеки.
6 Вызов окна "О программе".
7 Выход из программы Dream Journal v. 1.0. При этом производится автоматическое сохранение всей библиотеки сновидений.

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

Навигатор по библиотеке

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


Рисунок 2. Начальное состояние навигатора по библиотеке сновидений.

На рисунке 2 показано начальное состояние навигатора (если только файл инициализации Dream Journal не был изменен в версии поставки, на сайте www.dreamer.ru всегда лежит версия, адекватная представленной справки пользователя). Из всех кнопок создания исользовать можно только одну - создание нового каталога. На нее и следует нажать, чтобы создать первый каталог, где будут храниться файлы с журналами. Надо помнить, что эти каталоги - логические, они создаются только как записи в файле инициализации и ничего общего с каталогами файловой структуры не имеют.

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


Рисунок 3. Пример диалогового окна для создания новых сущностей в библиотеке сновидений.

Создадим новый каталог, дав ему какое-нибудь благозвучное название. После нажатия на кнопку "Ok" на диалоговом окне с рисунка 3, в навигаторе по библиотеке сновидений появится новая ветвь:


Рисунок 4. В структуре библиотеки появился новый каталог.

Каталоги могут содержать в качестве своих "детей" другие каталоги, а также конкретные журналы, в которых описаны опыты или сновидения. Поэтому из четырех кнопок создания в рассматриваемом состоянии доступны две - создание каталога и создание журнала. При нажатии на кнопку создания журнала, на экран будет выведено диалоговое окно, которое примерно похоже на изображенное на рисунке 3, однако на нем будет два поля ввода - одно для названия журнала, второе для пути к файлу, в котором журнал будет храниться. Ограничение, которое возникает здесь - путь к файлу должен существовать, иначе при его создании будет выдана ошибка. Программа Dream Journal v. 1.0 пока не в состоянии автоматически создавать отсутствующие каталоги в файловой системе. Если файл с заданным именем уже существует, то он будет перезаписан, так что будьте осторожнее.

Пусть программа находится в каталоге C:\Dream Journal\. Тогда на вопрос об имени и пути к новому файлу журнала (после нажатия на кнопку создания журнала сновидений) введем:

- Название: Сентябрь
- Путь: C:\Dream Journal\Year_2001_September.xml

Т.к. все файлы приложения хранятся в формате XML, то и расширение лучше указывать - *.xml. После нажатия на кнопку "Ok" будет создан новый файл с указанным именем, а в навигатор по библиотеке помещен новый элемент. Это состояние показано на рисунке 5:


Рисунок 5. В структуре библиотеки появился новый журнал сновидений.

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


Рисунок 6. Добавление в структуру библиотеки нового дня.

Добавим (при помощи третьей кнопки создания) к узлу "Сентябрь" узел "01.09.01" (в принципе, назвать день можно как угодно). При выделении нового узла из всех кнопок создания будет доступна только "Создание нового опыта" (см. рисунок 6). Опыты - листьевые узлы в структуре библиотеки сновидений, к этим узлам уже нельзя буде ничего подцепить. Наконец, для полного изучения структуры создадим описание опыта. Таким же образом нажав на кнопку "создание нового опыта", необходимо ввести номер сновидения и его название. После нажатия на кнопку "Ok" в навигаторе появится опыт, а в рабочей области - специальные поля для заполнения (естественно, опыт должен быть выделен).

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

Таблица 2. Список полей для описания сновидения.
Название поля Описание
1 Номер Номер сновидения. Поле может содержать любую текстовую информацию.
2 Название Название сновидения. Поле также может содержать любую текстовую информацию. Идентификатор сновидения, помещаемый в навигатор образуется при помощи конкатенации значения из предыдущего поля и значения из этого поля через разделитель, в качестве которого выступает символы точка и пробел ". ".
3 Описание Собственно описание сновидения. Поле также может содержать любую текстовую информацию, однако существенным ограничением выступает невозможность разбивки текста на абзацы.
4 Комментарий Комментарий к сновидению. Функциональное поведение такое же, как и у предыдущего поля.
5 Изображение К сновидению можно подцепить любое изображение в формате BMP (Windows Bitmap). Поле для показывания изображения имеет размер 100 на 100 пикселей, поэтому изображения луче подцеплять именно такого размера. На цветность ограничений нет. Рядом с этим полем есть две кнопки. Одна (со стрелкой) для загрузки изображения, вторая (с крестом) для стирания соответственно.

Необходимо отметить, что в журнал сновидения сохраняется только ссылка на изображение, поэтому хранение файла вместе с журналом обязательно.
6 Флаги В качестве дополнительной возможности к каждому сновидению можно назначать четыре флага. В текущей версии - это "Осознанное сновидение", "Астральня проекция", "Внетелесный опыт" и "Другой опыт". По умолчанию ни один из флагов не установлен, что соответствует обычному сновидению.
7 Только чтение Кнопка "Только чтение" предназначена для создания пометки на описании сновидения, которая не позволяет редактировать описание при помощи средств Dream Journal v. 1.0. Данная пометка также не может быть снята средствами программы, поэтому если возникла необходимость что-либо изменить или снять пометку, это придется делать вручную.

На рисунке 7 показано начальное положение рабочей области при описании вновь созданного сновидения. При помощи заполнения полей это состояние можно привести к тому, которое показано на рисунке 1.


Рисунок 7. Вид рабочей области для описания сновидения.

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

Внутренняя структура данных

Самое главное в хранении данных в приложении Dream Journal v. 1.0 - это то, что данные эти хранятся в разных файлах, которые записаны в формате XML. При этом существует один файл инициализации, в котором описана структура библиотеки сновидений вплоть до файлов с журналами, т.е. в этом файле существуют ссылки на каждый файл с журналом, подцепленный к библиотеке. Файлы с журналами же описывают структуру библиотеки вплоть до описаний опытов.

Таким образом, чтобы понять структуру библиотеки сновидений, необходимо последовательно изучить структуру файла инициализации и структуру журнальных файлов. Т.к. все эти файлы описаны в формате XML, то описание их структуры не составит большого труда. Те из пользователей, которые знакомы с XML, могу просто изучить соответствующие DTD (Document Type Definition), приложенные к приложению, а те пользователи, которые с XML не знакомы, могут получить наглядное описание структуры при помощи вызуальных блоков (на языке UML).

Структура файла инициализации

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


Рисунок 8. Схематичное описание структуры файла инициализации.

На рисунке 8 блоками обозначены тэги XML (название тэга написано в верхней части жирным шрифтом, а его атрибуты перечислены в нижней части). Связи на диаграмме обозначают включение. Тот тэг, к которому подходит связть ромбом включает тот, к которому подходит пустая сторона связи. Мощность включения читается как: 0..* - включает ноль или более элементов.

Далее в таблице показано значение каждого тэга.

Таблица 3. Значения тэгов в файле инициализации.
Название тэга Описание
1 dreamlibrary Корневой тэг, начинающий структуры библиотеки сновидений. Значение атрибута name прописывается в навигаторе по библиотеке сновидений. Остальные атрибуты полностью игнорируются.
2 icon Этот тэг определяет изображения, которые появляются в навигаторе по библиотеке сновидений и на кнопках создания. Порядок следования этих тэгов должен соблюдаться - сначала пиктограмма для открытого узла дерева в навигаторе, затем пиктограмма для библиотеки, затем для каталога, затем для файла, затем для дня (ночи), и наконец для конкретного опыта. Значение атрибута name используется для определения, какие изображения ставить на кнопки создания, а значение атрибута path определяет местоположение файла в формате BMP, хранящего изображение.
3 directory Типичный тэг структуры каталогов библиотеки сновидений. Определяет один каталог, в который могут быть включены другие каталоги и конкретные файлы. Значение атрибута name определяет запись в навигаторе по библиотеке.
4 file Тэг, определяющий ссылку на файл в формате XML, в котором хранится конкретный журнал сновидений. Значение атрибута name как обычно определяет запись в навигаторе по библиотеке, а значение атрибута path должно содержать абсолютный путь к файлу с описанием журнала.

Как видно, структура файла инициализации приложения Dream Journal v. 1.0 довольно проста, что позволяет редактировать ее вручную. DTD этого формата описано в файле dream_journal_ini.dtd, поставляемом вместе с приложением.

Структура файла журнала сновидений

Файлы, в которых хранятся журналы сновидений, также описываются в формате XML, поэтому их структура примерно подобна структуре файла инициализации. В той же нотации рассмотрим схематическое описание структуры:


Рисунок 9. Схематичное описание структуры файла журнала сновидений.

Как видно, обрисованная структура достаточно проста - каждый журнал в качестве корневого тэга имеет тэг dreamjournal, который включает в себя множество описаний дней (тэг day). Каждый день включает множество описаний конкретных опытов (тэг experience), который в свою очередь включает те тэги, которые полностью описывают структуры опыта. Остается отметить, что тэги description и comment не содержат атрибутов, но соответствующие данные являются "детьми" этих тэгов.

DTD рассмотренного формата приведено в файле dream_journal.dtd, включенного в комплект поставки.

[ Скачать ]

 © 2001-2008 Евгений Варданян (*Leda)   Leda Design Studio 

Яндекс цитирования «Фармконтракт» - Инжиниринг Проектирование заводов и лабораторий Россия и страны СНГ Rambler's Top100 Rambler's Top100