Реализация разных типов редакторов в одной колонке таблицы

Добрый день. Опять требуется подсказка/мнение разработчиков. Необходимо чтобы при клике в разные строки таблицы вызывался разный способ редактирования этой ячейки. От совсем своего, до почти стандартного. Посмотрел разные примеры на форуме и собрал вот почти то что мне надо:
http://webix.com/snippet/d8c044ad

Тут проблема в том, что после выбора значения из моего типа (строка 2), и затем выбора где используется Combo (строка 3), и затем повторного выбора моего типа (строка 2) - я получаю ошибку. Понимаю что вроде она лезет не в тот POPUP в который должна, вернее что Combo как то прибил мой POPUP. но как правильно сделать - не понимаю.

Посмотрел форум, собрал из других примеров, похожих немного другую реализацию. Там разница только в том как определяется свойство “ed2”
http://webix.com/snippet/11fde86b

В этом пример уже нет ошибок, можно выбирать то одно то другое, все хорошо. Но у моего типа (строка 2) автоматом не закрывается окно POPUP после выбора значения.

Собственно вопрос :slight_smile:
Как правильно реализовать чтобы и ошибок не было и работало, может я вообще что-то не так делаю.

Это похоже на объект свойства, но он мне не подходит, так как мне нужны ещё колонки свои, а в свойствах их нет)

День добрый

Но у моего типа (строка 2) автоматом не закрывается окно POPUP после выбора значения.

можно добавить в компонент дерева

              	on:{
                  onItemClick:function(e, id){
                    webix.callEvent("onEditEnd",[id]);
                  }
                }

http://webix.com/snippet/9796cfc3

Максим, спасибо.
Я правильно понял что первый вариант будет более адекватным?

И смотрите, в Вашем примере окно popup стало закрываться, но значение в value ставится не по которому кликаешь, а то которые было выделено в дереве на момент закрытия.

но значение в value ставится не по которому кликаешь, а то которые было выделено в дереве на момент закрытия.

да, не заметил, можно поправить таким образом

                on:{
                  onItemClick:function(e, id){
                    webix.delay(function(){
                       webix.callEvent("onEditEnd",[id]);
                    });
                  }
                }

в результате код вызовется после того как click полностью обработается ( что даст время поменяться селекшену в дереве )

Я правильно понял что первый вариант будет более адекватным?

Он рабочий, и не должен вызывать нежелательных побочных эффектов.

У меня нет готового “идеального” решения, так как вариант с разнородными редактороми реально редко используется, и раньше мы такой сценарий не прорабатывали