Re[2]: Миграция с HTMLayout на Sciter 3
От: yuriy_b  
Дата: 22.09.16 15:53
Оценка:
Андрей, здравствуйте!

Возникла проблема с множественным выделением элементов.
Я работаю с деревом элементов, выглядящим примерно вот так:
  Дерево элементов
<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, завязанный на работу с подобными древовидными структурами. Может его использование решит проблему?

Заранее спасибо за ответ.
Отредактировано 23.09.2016 12:41 yuriy_b . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.