Андрей, здравствуйте!
Возникла проблема с множественным выделением элементов.
Я работаю с деревом элементов, выглядящим примерно вот так:
| Дерево элементов |
| <HTML>
<HEAD>
<TITLE>Tree view lines styling</TITLE>
<STYLE>
h1
{
font-size: 14pt;
}
h2
{
font-size: 14pt;
text-align:right;
}
#dd options > * /* tree line support */
{
display: list-item;
list-style-type: tree-line;
list-marker-size:1px;
list-marker-color:red;
list-marker-style:dotted;
}
#dd options
{
padding-left:16px;
}
#dd options >:first-child
{
margin-left:0;
}
#dd option code
{
/*display:inline-block;
margin-left:*;
text-align:center;
min-width:2em;*/
background-color:cornsilk;
padding:0 2px;
border:1px solid threedshadow;
}
ul.tree-lines > li
{
display: list-item;
list-style-type: tree-line;
list-marker-color:green;
list-marker-style:dashed;
list-marker-size:3px;
padding:2px;
}
</STYLE>
</HEAD>
<BODY>
<h1>Select: tree view with tree lines</h1>
<widget #dd type="select" style="height:*">
<options expanded>Metals
<options expanded>Alkaline Metals
<option>Lithium <code>Li</code></option>
<option>Sodium <code>Na</code></option>
<option>Potassium <code>K</code></option>
</options>
<options expanded>Transition Metals
<option>Scandium <code>Sc</code></option>
<option>Titanium <code>Ti</code></option>
<option>Vanadium <code>V</code></option>
<options expanded>Other folder
<option>Other_1 <code>Oth1</code></option>
<option>Other_2 <code>Oth2</code></option>
</options>
</options>
</options>
<options expanded>Halogens
<option>Fluorine <code>F</code></option>
<option>Chlorine <code>Cl</code></option>
<option>Bromine <code>Br</code></option>
</options>
</widget>
</BODY>
</HTML>
|
| |
Это чуть измененная версия примера: \HTMLayoutSDK\html_samples\css-plus\tree-view-lines.htm
Тэг <options> — используется как папка, <option> — как файл.
У меня стоит задача наладить множественное выделение элементов этого дерева(уточняю, папки и файлы могут быть в одной выделенной группе) по клавише shift. Выглядеть это должно так: сначала MOUSE_CLICK по одному элементу дерева, затем MOUSE_DOWN + SHIFT_KEY_PRESSED по другому элементу дерева(оба этих элемента могут лежать на разных уровнях), в итоге эти элементы, как и те которые находятся в "вилке" между ними — должны быть выделены. На данный момент этого сделать не выходит, т.к элементы <options>(в отличии от <option>) которые лежат между крайними элементами, не входят в состояние :checked. При одиночном выделении элемента(или множественном с помощью клавиши ctrl) — все отлично. Как выйти из этой ситуации? Проект, над которым я работаю, мигрирует с htmlayout на sciter, сохранится ли эта ситуация и там? Я нашел информацию о том, что в sciter'е появился новый
behavior, завязанный на работу с подобными древовидными структурами. Может его использование решит проблему?
Заранее спасибо за ответ.