How to add and remove rows from Firefox Addon XUL Tree

In my Firefox extension, I have a simple tree with two columns. I am trying programmatically:

  • Add row
  • Delete all rows

My XUL Tree:

<tree flex="1" id="mytree" hidecolumnpicker="true">

  <treecols>
    <treecol id="sender" label="Sender" flex="1"/>
    <treecol id="subject" label="Subject" flex="2"/>
  </treecols>

  <treechildren>

  </treechildren>

</tree>

Javascript I tried adding lines:

// trying to add rows
var data = {
    {'sender' : 'John', 'subject' : 'something'},
    {'sender' : 'Adam', 'subject' : 'something else'},
    {'sender' : 'Bob', 'subject' : 'something else again'}
};

document.getElementById("mytree").view.data = data;

There are no errors, the tree simply does not add a line. I know that the code starts because if I add alert()it starts.

Javascript I tried to delete all lines:

var tree = document.getElementById("mytree");

tree.view.data = {};
tree.view.treeBox.rowCountChanged(0, -1);

This causes an error:

document.getElementById ("mytree"). view.treeBox - undefined

Edit:

After Wladimir prompts you to add XUL elements directly, this will add the line:

var treeChildren = document.getElementById("my_tree_children");

var treeitem = document.createElement('treeitem');
var treerow = document.createElement('treerow');

var treecell_1 = document.createElement('treecell');
var treecell_2 = document.createElement('treecell');

treecell_1.setAttribute('label', 'John');
treecell_2.setAttribute('label', 'something');

treerow.appendChild(treecell_1);
treerow.appendChild(treecell_2);

treeitem.appendChild(treerow);

treeChildren.appendChild(treeitem);

, ( ) . / XUL, XSS?

+3
1

: ? , tree.view nsITreeView . nsITreeView , data. , , , - .

, tree? , , , . , - . , treeitem treechildren - example. , DOM.

tree RDF XML. , JavaScript, nsITreeView tree.view. .

0

All Articles