собственно очень хочется реализовать в своем дополнении табличку чтобы в ней строки подсвечивались разными цветами в зависимости от наполнения
к примеру вот тестовая табличка
<tree flex="1"> <treecols> <treecol id="sender" label="Sender" flex="1"/> <treecol id="subject" label="Subject" flex="2"/> </treecols> <treechildren> <treeitem> <treerow> <treecell label="joe@somewhere.com"/> <treecell label="Top secret plans"/> </treerow> </treeitem> <treeitem> <treerow> <treecell label="mel@whereever.com"/> <treecell label="Let's do lunch"/> </treerow> </treeitem> </treechildren> </tree>
так вот, у узла treechildren есть свойство alternatingbackground, если его сделать true и в стайле выставить цвет то этого цвета будут все содержащиеся treeitemы этого treechildren, а мне нужно подсвечивать только определенные.
Какие предложения?
Какие будут предложеия?
Отредактировано bidlocoder (16-04-2012 18:35:09)
Отсутствует
Какие будут предложеия?
Использовать реализацию модели дерева на базе nsITreeView, в реализации определить нужным образом методы getRowProperties (getCellProperties, getColumnProperties). Визуальное оформление задавать в CSS с помощью спец. правил оформления дерева. Практически всё, что вам нужно, описано здесь: Styling a Tree.
Отсутствует
hydrolizer спс за быстрый ответ
css это хорошо, а возможно ли это делать динамически, то-есть с помощью скрипта?
Отсутствует
bidlocoder
Это и делается динамически скриптом - статически заданы только правила CSS; конкретные значения для конкретных строк, на которые реагируют CSS-правила, задаются динамически в скрипте. Что-то типа
getRowProperties: function(idx, properties) { if (idx>5 && this.data[idx].someProperty==123) { var aserv=Cc["@mozilla.org/atom-service;1"].getService(Ci.nsIAtomService); properties.AppendElement(aserv.getAtom("foo")); } },
в CSS:
- когда в дереве окажется элемент, удовлетворяющий условию, записанному в getRowProperties, то в свойства этого элемента будет добавлен атом foo, на который среагирует CSS.
Отсутствует
спасибо разобрался
Отсутствует