Страницы: 1
Есть tree и объект, реализующий интерфейс nsITreeView. Когда изменяются данные, то перерисовка tree автоматически не происходит. Пробовал вызывать методы invalidate, beginUpdateBatch+endUpdateBatch -- не помогает. А вот если скрыть и показать tree, то он перерисовывается с новыми данными.
Смотрел примеры на XUL hub в MDC и на xulplanet. Никаких методов для обновления не нашел. Разбор пары расширений тоже не прояснил ситуацию.
Как можно перерисовать дерево?
Целевая платформа: FireFox 1.5-2
JS (насколько я понял это минимальная реализация интерфейса):
var accountsCustomTreeView = this.accountsCustomTreeView = { rowCount: 0, setTree : function(tree){}, getImageSrc : function(row,column) {}, getProgressMode : function(row,column) {}, getCellValue : function(row,column) {}, getCellText : function(row,column){ return "TEST"; }, isSeparator : function(index) {return false;}, isSorted: function() { return false; }, isContainer : function(index) {return false;}, cycleHeader : function(aColId, aElt) {}, getRowProperties : function(row,column,prop){}, getColumnProperties : function(column,columnElement,prop){}, getCellProperties : function(row,prop){} }
Собственно xul:tree, находиться в overlay'е для browser.xul, если это имеет значение.
<tree id="mjolnir-lsw-accounts" flex="1" minheight="68"> <treecols> <treecol id="mjolnir-lsw-tree-haccount" label="&mjolnir.loginswitcher.loginslist.headers.account.label;" flex="3"/> <treecol id="mjolnir-lsw-tree-htype" label="&mjolnir.loginswitcher.loginslist.headers.type.label;" flex="1"/> </treecols> <treechildren/> </tree>
Отредактировано kaero (09-06-2008 14:46:38)
Отсутствует
После изменения количества строк в дереве, нужно вызывать метод
rowCountChanged(index, count); См. http://groups.google.com/group/mozilla. … d6fb424011
Отсутствует
Страницы: 1