Project

General

Profile

ExplorerView » History » Version 61

Alexey Khoroshilov, 09/19/2011 07:34 PM
Сортировка в дереве требований: MANUAL и AUTO

1 1 Viktoria Kopach
h1. Requality Explorer View
2 2 Viktoria Kopach
3 28 Alexey Khoroshilov
{{toc}}
4
5 1 Viktoria Kopach
Requality Explorer содержит все проекты, что и PackageExplorer, но развернуть можно только проекты типа Requality.
6 58 Alexey Demakov
В Requality-проекте есть следующие папки:
7
- Documents - документы,из которых извлекаются  требования
8
- Requirements - обобщенное дерево требований
9
- Views - запросы и их результаты в виде фильтрованных деревьев (ещё не реализовано)
10
- Reports - отчеты
11 1 Viktoria Kopach
12 61 Alexey Khoroshilov
h2. Сортировка в дереве требований
13 1 Viktoria Kopach
14 61 Alexey Khoroshilov
TODO: Порядок узлов в этом дереве важен.
15
16
Должно поддерживаться два режима работы - MANUAL и AUTO, устанавливается в свойствах проекта. 
17
18
Режим MANUAL: Порядок узлов определяется в соответствии со значением атрибута, имя которого конфигурируется в свойствах проекта.
19
Если потребуется, указывается вид сортировки (лексикографический или числовой) и значение по умолчанию (на случай, если атрибут у требования отсутствует).
20
Изменить значение атрибута можно только вручную. Перетаскивание узлов вверх-вниз запрещено.
21
22
Режим AUTO: Пользователь может менять порядок перетаскиванием узлов вверх-вниз.
23 58 Alexey Demakov
Порядок вычисляется на основании значений атрибутов _order. Это строковый атрибут, сравнение лексикографическое.
24 1 Viktoria Kopach
При перетаскивании узла для изменения его положения в дереве меняется значение атрибута _order только у него самого
25 58 Alexey Demakov
так, чтобы лексикографически оно располагалось между новыми соседями.
26
27 61 Alexey Khoroshilov
-В контекстном меню узла есть пункт, при выборе которого осуществляется перенумерация детей узла как 1, 2, 3... с заполнением лидирующих разрядов нулями или пробелами.-
28 58 Alexey Demakov
29 39 Viktoria Kopach
h2. Кнопка Link with editor
30 40 Viktoria Kopach
31 39 Viktoria Kopach
Кнопка Link with editor, она же "стрелочки", должна иметь следующую функциональность:
32
- если эта кнопка включена, то при переключении между документами в Markup editor тот документ, вкладка которого открыта, выделяется в Requality explorer''е.
33
- если кнопка выключена, то переключение между вкладками документов в Markup editor не влияет на requality explorer.
34
35 15 Viktoria Kopach
h2. Папка проекта
36
37 41 Viktoria Kopach
(Перспектива Requality, Requality Explorer view)
38
Контекстное меню проекта:
39 42 Viktoria Kopach
* меню *New*, подменю Project.... Это стандартное окно создания проекта в Eclipse, но в нем по умолчанию будет выбран тип проекта - Requality. 
40 45 Viktoria Kopach
Создается папка проекта. По умолчанию в ней отображаются основная папка для документов Documents и основной узел требований Requirements. В основном контекстное меню папки проекта аналогично стандартному контекстному меню проекта в Eclipse.
41 1 Viktoria Kopach
* меню *Delete*   - Удаление проекта в перспективе Requality.
42 51 Viktoria Kopach
В контекстном меню проекта Requality есть пункт Delete с пиктограммой-крестиком (как у аналогичного меню в других перспективах Eclipse).
43 43 Viktoria Kopach
При выборе Delete возникает окно Delete Project с уточняющим вопросом об удалении проекта. В окне есть: 
44
** кнопка Cancel. При выборе Cancel окно закрывается, никаких изменений не происходит. 
45
** кнопка ОК. При выборе OK проект удаляется.
46
** чек-бокс для выбора удаления проекта с диска.
47 42 Viktoria Kopach
По умолчанию проект удаляется из Eclipse, но сохраняется на диске. Если выбран вышеупомянутый чек-бокс (стоит галочка), то проект удаляется с диска.
48 44 Viktoria Kopach
49 45 Viktoria Kopach
Таким образом удаление будет реализовано по аналогии со стандартным удалением проекта в Eclipse.
50 1 Viktoria Kopach
!http://forge.ispras.ru/attachments/692/Delete_Project.png!
51 49 Viktoria Kopach
52 55 Viktoria Kopach
* меню *Rename* позволяет переименовать проект
53 1 Viktoria Kopach
Открывается окно Rename Project. 
54
В нем есть редактируемое поле *New name:*, в котором изначально находится текущее имя проекта, отмеченное выделением. 
55
Есть две кнопки *OK* и *Cancel*. По умолчанию кнопка OK не активна, Сancel - активна.
56
Корректность имени проекта:
57 53 Viktoria Kopach
** Если в поле New name: вводится имя, которое совпадает с текущим именем проекта или с именем другого проекта или папки, находящихся в той же директории, что и текущий проект, то кнопка OK становится неактивной и в окне появляется сообщение красными буквами "А file or folder with this name already exists".
58
** Если в поле New name: пусто или есть знаки, которые не могут быть в имени проекта, то кнопка OK становится неактивной и в окне появляется сообщение красными буквами "This is an invalid name for a file or folder".
59
** В остальных случаях кнопка OK активна.
60
61
!http://forge.ispras.ru/attachments/880/Rename_Project.png!
62
63 1 Viktoria Kopach
* меню *Move* позволяет переместить проект в другое место на диске.
64 55 Viktoria Kopach
Открывается окно Move Project.
65
В нем есть редактируемое поле *Location*, рядом с ним - кнопка *Browse...* для выбора пути, внизу - кнопки OK и Cancel, над полем Location находится чек-бокс *Use default location*. По умолчанию кнопка OK не активна, Сancel - активна.
66
В поле Location изначально указан текущий путь к проекту, при этом кнопка ОК неактивна. После редактирования пути (в поле Location или с помощью кнопки Browse) кнопка ОК становится активна, но если при этом указанный путь совпадает с текущим, кнопка ОК становится неактивна и в окне появляется сообщение "Location is the current location" (цвет текста - красный). Если путь указан невалидный (содержит запрещенные символы или имеет неправильный формат), кнопка ОК становится неактивна и в окне появляется сообщение с пояснением проблемы (цвет текста - красный). 
67
При выборе чек-бокса Use default location в поле Location автоматически прописывается путь текущего воркспейса (+ имя проекта через слэш), при этом само поле Location ( и его название), а так же кнопка Browse становятся неактивными. При этом соблюдается сценарий для совпадающего пути.
68
При нажатии ОК окно закрывается и проект перемещается по указанному пути. При нажатии Cancel окно закрывается, проект остается где и был.
69 54 Viktoria Kopach
70 1 Viktoria Kopach
!http://forge.ispras.ru/attachments/881/Move_project.png!
71 54 Viktoria Kopach
72 55 Viktoria Kopach
В стандартном контекстном меню проекта в Eclipse есть пункт Refactor, содержащий подпункты Rename и Move. В случае Requality было решено обойтись без полноценного Refactor и вынести Rename и Move в основной список пунктов контекстного меню. Но работают они аналогично.
73 47 Viktoria Kopach
74 26 Viktoria Kopach
75 5 Viktoria Kopach
h2. Documents
76 4 Viktoria Kopach
77 38 Viktoria Kopach
В папке Documents элементы должны быть упорядочены следующим образом: сначала идут все папки в алфавитном порядке, потом все документы из текущей папки в алфавитном порядке.
78 29 Alexey Khoroshilov
79 5 Viktoria Kopach
h3. Действия с документами:
80 1 Viktoria Kopach
81 4 Viktoria Kopach
При *двойном клике на документ* он открывается в редакторе Markup editor.
82
83
*Контекстное меню документов* (по клику правой кнопки) содержит пункты:
84 49 Viktoria Kopach
* Remove Document - удаление документа. 
85 4 Viktoria Kopach
* Update Document - обновляет старую версию документа новой.
86
* HTML Headers Document Processor - создается требование для каждого тега <h#>...</h#>.
87
88 1 Viktoria Kopach
Замечание: Update Document и HTML Headers Document Processor - это вызов обработок, набор которых может расширяться.
89
90
*Create Folder*
91
При создании новой папки открывается окно с полем для ввода имени новой папки и кнопками OK и Cancel.  При  нажатии OK папка с заданным именем создается. При нажатии Cancel окно создания папки просто закрывается, никаких изменений не происходит. При папка с введенным именем уже существует на том же уровне иерархии, в окне создания папки появляется предупреждение об этом и кнопка OK становится неактивной.
92
93
*Remove Document*
94 49 Viktoria Kopach
При этом возникает окно для подтверждения удаления документа. В окне есть две кнопки ОК и Cancel. 
95 50 Viktoria Kopach
** При нажатии Cancel окно закрывается, документ не удаляется. 
96
** При выборе ОК окно закрывается, процесс удаления продолжается: 
97
*** если в документе нет размеченных location''ов, происходит удаление документа; 
98
*** если в документе есть размеченные location''ы, то возникает окно, которое об этом предупреждает и спрашивает, продолжать ли удаление. В окне есть две кнопки ОК и Cancel. 
99
**** При нажатии Cancel окно закрывается, документ не удаляется.
100
**** При выборе ОК окно закрывается, документ удаляется.
101 49 Viktoria Kopach
102
Location''ы, которые были в удаленном документе, удаляются из базы данных и из требований, в которых они находились. Сами требования не удаляются.
103 36 Alexey Khoroshilov
После удаления документа активным элементом в Requality Explorer становится родительский элемент удаленного документа.
104 45 Viktoria Kopach
105 4 Viktoria Kopach
*Update Document*
106
Обновить документ можно только документом, который добавлен в проект. При выборе этого пункта меню на текущем документе (назовем его обновляемым) открывается окно со списком всех документов (иерархически отсортированных по папкам) данного проекта для выбора обновляющего документа. Окно содержит кнопки OK (изначально неактивна) и Cancel. При  нажатии Cancel окно выбора документа закрывается и никаких изменений не происходит. При выборе обновляющего документа кнопка OK становится активна, при ее нажатии происходит обновление обновляемого документа (на котором был нажат пункт меню Update Document) выбранным документом. При этом содержимое обновляемого документа заменяется на содержимое обновляющего документа. Если location''ы, которые уже были размечены в старом документе, есть и в обновленном документе, то они сохраняются и размечаются аналогично старой разметке. Если в обновленном документе некоторые требования, которые были в старом, исчезли, то их location''ы удаляются. Процесс обновления документа иллюстрируется окном с прогресс-баром (сколько из размеченных требований обновляемого документа проанализировано) и завершается возникновением окна, в котором указывается количество найденных и перенесенных в новый документ location''ов.
107 1 Viktoria Kopach
Обновить документ самим собой нельзя. В окне выбора обновляющего документа при выборе самого себя кнопка OK становится неактивной.
108
109 4 Viktoria Kopach
*HTML Headers Document Processor*
110 5 Viktoria Kopach
При выборе в контекстном меню документа пункта HTML Headers Document Processor должно появиться окно с прогресс-баром, показывающее степень выполнения процесса. По завершении должно появиться окно, сообщающее об успешности выполнения и количестве созданных требований (если ни одного, то 0).
111 4 Viktoria Kopach
112 1 Viktoria Kopach
h3. Действия с папками документов:
113
114
*Контекстное меню папок Documents* (по клику правой кнопки) содержит пункты:
115
* [[DocumentImport|Import Document]] - импортирование документа
116 49 Viktoria Kopach
* Create Folder - создается папка внутри текущей папки.
117
* Remove Folder - удаляется папка (отсутствует для самой папки Documents).
118 10 Viktoria Kopach
119
Пункты Create Folder и Remove Folder сгруппированы в контекстном меню вместе.
120
121
*Create Folder*
122 49 Viktoria Kopach
При создании новой папки открывается окно с полем для ввода имени новой папки и кнопками OK и Cancel.  При  нажатии OK папка с заданным именем создается. При нажатии Cancel окно создания папки просто закрывается, никаких изменений не происходит. Если папка с введенным именем уже существует на том же уровне иерархии, в окне создания папки появляется предупреждение об этом и кнопка OK становится неактивной. Все процедуры происходят внутри папки, на которой вызывается контекстное меню.
123 10 Viktoria Kopach
124
*Remove Folder*
125 49 Viktoria Kopach
Появляется окно для подтверждения удаления папки и всех вложенных в нее папок и документов. Окно содержит кнопки OK и Cancel. 
126 32 Viktoria Kopach
* Для пустой папки: 
127
** При нажатии Cancel окошко просто закрывается, папка не удаляется, никаких изменений не происходит. 
128 33 Viktoria Kopach
** При нажатии OK папка удаляется. 
129 49 Viktoria Kopach
* Для не пустой папки:
130
** В случае Cancel окошко закрывается, ни документы, ни папка не удалены. 
131 33 Viktoria Kopach
** В случае OK: 
132
*** Если ни в одном документе в этой папке или ее подпапках нет ни одного размеченного location''а, то вся папка с документами удаляется.
133
*** Если размеченные location''ы есть, при нажатии ОК это окошко закрывается, но открывается другое окно с предупреждением о наличии размеченных требований в документах папки и двумя кнопками ОК и Cancel. 
134
**** При нажатии Cancel окно закрывается и ничего не происходит. 
135 34 Viktoria Kopach
**** При нажатии ОК вся папка удаляется.
136 33 Viktoria Kopach
137 49 Viktoria Kopach
Location''ы, которые были в удаленных документах, удаляются из базы данных и из требований, в которых они находились. Сами требования не удаляются.
138 36 Alexey Khoroshilov
После удаления папки активным элементом в Requality Explorer становится родительский элемент удаленной папки.
139
140 1 Viktoria Kopach
h2. Requirements
141 58 Alexey Demakov
142
Обобщенное дерево требований.
143 6 Viktoria Kopach
144 56 Viktoria Kopach
При *одинарном клике* на требовании:
145
# требование становится выделенным;
146
# во всех unpinned Properties View (если таковые есть) отображаются свойства выбранного требования.
147
148 57 Viktoria Kopach
При *двойном клике* или *переключении стрелочками* на требование:
149 1 Viktoria Kopach
# требование становится выделенным;
150
# если для документа первого location требования Document markup editor ещё не открыт, он открывается;
151
# вкладка с указанным Document markup editor становится видимой;
152
# в Outline view первый location требования становится выделенным (следующие два пункта выполняются при любом изменении выделения в Outline view);
153
# документ в указанном Document markup editor перематывается так, чтобы вверху видимой области редактора оказался текст первого location требования;
154 45 Viktoria Kopach
# текст этого location специально подсвечивается;
155 1 Viktoria Kopach
# если для выделенного требования есть pinned Properties view, вкладка с ним становится видимой. Иначе видимой становится вкладка с одним из unpinned Properties view, если такого нет, оно открывается.
156
# подробности выделенного требования отображаются во всех его pinned Properties view и во всех unpinned Properties View;
157
158 8 Viktoria Kopach
*Контекстное меню требований* (по клику правой кнопки) содержит пункты:
159 11 Viktoria Kopach
* Create Requirement - добавление требования.
160
* Remove Requirement - удаление требования
161
* Generate Report... - генерация отчета.
162
163
Create Requirement и Remove Requirement в контекстном меню находятся в одной группе рядом.
164
165
*Create Requirement*
166
Активно для всех требований, включая узел Requirements.
167
Создается требование внутри того требования, на котором открывалось контекстное меню. Имя задается автоматически. Имя - это число: если на этом уровне иерархии других требований нет - это 01, если требования уже есть, то это последний номер (максимальный) + 1. У только что созданного требования нет location''ов.
168
169
*Remove Requirement*
170 35 Viktoria Kopach
Удаление выделенного требования. Неактивно для корневого узла Requirements (этот узел удалить нельзя). Возникает окно для подтверждения удаления, содержащее кнопки OK и Cancel. При нажатии Cancel окно подтверждения просто закрывается, требование не удаляется, никаких изменений не происходит. При нажатии OK  требование удаляется. Все location''ы, входящие только в него, удаляются, их разметка удаляется.
171 36 Alexey Khoroshilov
172
После удаления требования активным элементом в Requality Explorer становится родительский элемент удаленного требования.
173 11 Viktoria Kopach
174
*Generate Report...*
175 14 Viktoria Kopach
Генерация отчета. Появляется окно для настройки отчета. Оно содержит три поля (к двум из которых прилагаются кнопки Browse...):
176 13 Viktoria Kopach
* *Root requirement* -  поле, в котором указывается узел, который будет корневым в отчете (в отчет попадет только этот узел и его "потомки"). По умолчанию указывается тот узел, на котором было открыто контекстное меню. Поле не редактируемое. Его содержимое можно менять только с помощью кнопки *Browse...*, которая расположена рядом. При нажатии этой кнопки открывается окно выбора требования, стандартное для Requality. Оно содержит все дерево требований текущего проекта. Окно выбора требования содержит кнопки create new, Cancel и OK. create new  и OK сначала неактивны, активируются после выбора одного из требований или основной папки проекта. Кнопка create new позволяет создать новое требование, открывает окно для задания его идентификатора. По кнопке Cancel окно выбора требования закрывается, в окне настроек отчета изменений не происходит. По кнопке OK окно выбора требования закрывается, в окне настроек отчета в поле Root requirement устанавливается выбранный узел.
177
* *Template* - поле-выпадающий список, не редактируется. В нем можно выбрать тип шаблона для отчета.
178
* *Save to*: - редактируемое поля для указания пути, по которому создается отчет. Путь можно ввести от руки или выбрать с помощью кнопки *Browse...* рядом с этим полем. По этой кнопке открывается стандартное окно обзора папок.
179 12 Viktoria Kopach
180 13 Viktoria Kopach
Кроме того в окне настройки отчета есть кнопки *OK* и *Cancel*. При нажатии Cancel окно настройки отчета закрывается, отчет не генерируется. При нажатии OK окно настройки отчета закрывается, по указанному пути генерируется отчет, в который включены только выбранный корневой узел и его потомки.