toolkit/content/tests/chrome/test_tree_view.xul

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/toolkit/content/tests/chrome/test_tree_view.xul	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,118 @@
     1.4 +<?xml version="1.0"?>
     1.5 +<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
     1.6 +<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
     1.7 +<!--
     1.8 +  XUL Widget Test for tree using a custom nsITreeView
     1.9 +  -->
    1.10 +<window title="Tree" onload="init()"
    1.11 +        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    1.12 +  <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>  
    1.13 +  <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>  
    1.14 +
    1.15 +<script src="tree_shared.js"/>
    1.16 +
    1.17 +<script>
    1.18 +<![CDATA[
    1.19 +
    1.20 +// This is our custom view, based on the treeview interface
    1.21 +var view =
    1.22 +{
    1.23 +  treeData: [["Mary", "206 Garden Avenue"],
    1.24 +                ["Chris", "19 Marion Street"],
    1.25 +                ["Sarah", "702 Fern Avenue"],
    1.26 +                ["John", "99 Westminster Avenue"]],
    1.27 +  value: "",
    1.28 +  rowCount: 8,
    1.29 +  getCellText: function(row, column) { return this.treeData[row % 4][column.index]; },
    1.30 +  getCellValue: function(row, column) { return this.value; },
    1.31 +  setCellText: function(row, column, val) { this.treeData[row % 4][column.index] = val; },
    1.32 +  setCellValue: function(row, column, val) { this.value = val; },
    1.33 +  setTree: function(tree) { this.tree = tree; },
    1.34 +  isContainer: function(row) { return false; },
    1.35 +  isContainerOpen: function(row) { return false; },
    1.36 +  isContainerEmpty: function(row) { return false; },
    1.37 +  isSeparator: function(row) { return false; },
    1.38 +  isSorted: function(row) { return false; },
    1.39 +  isSelectable: function(row, column) { return true; },
    1.40 +  isEditable: function(row, column) { return row != 2 || column.index != 1; },
    1.41 +  getProgressMode: function(row, column) { return Components.interfaces.nsITreeView.PROGRESS_NORMAL; },
    1.42 +  getParentIndex: function(row, column) { return -1; },
    1.43 +  getLevel: function(row) { return 0; },
    1.44 +  hasNextSibling: function(row, column) { return row != this.rowCount - 1; },
    1.45 +  getImageSrc: function(row, column) { return ""; },
    1.46 +  cycleHeader: function(column) { },
    1.47 +  getRowProperties: function(row) { return ""; },
    1.48 +  getCellProperties: function(row, column) { return ""; },
    1.49 +  getColumnProperties: function(column)
    1.50 +  {
    1.51 +    if (!column.index) {
    1.52 +      return "one two";
    1.53 +    }
    1.54 +
    1.55 +    return "";
    1.56 +  }
    1.57 +}
    1.58 +
    1.59 +function getCustomTreeViewCellInfo()
    1.60 +{
    1.61 +  var obj = { rows: [] };
    1.62 +
    1.63 +  for (var row = 0; row < view.rowCount; row++) {
    1.64 +    var cellInfo = [ ];
    1.65 +    for (var column = 0; column < 1; column++) {
    1.66 +      cellInfo.push({ label: "" + view.treeData[row % 4][column],
    1.67 +                      value: "",
    1.68 +                      properties: "",
    1.69 +                      editable: row != 2 || column.index != 1,
    1.70 +                      selectable: true,
    1.71 +                      image: "",
    1.72 +                      mode: Components.interfaces.nsITreeView.PROGRESS_NORMAL });
    1.73 +    }
    1.74 +
    1.75 +    obj.rows.push({ cells: cellInfo,
    1.76 +                    properties: "",
    1.77 +                    container: false,
    1.78 +                    separator: false,
    1.79 +                    children: null,
    1.80 +                    level: 0,
    1.81 +                    parent: -1 });
    1.82 +  }
    1.83 +
    1.84 +  return obj;
    1.85 +}
    1.86 +
    1.87 +function init()
    1.88 +{
    1.89 +  var tree = document.getElementById("tree-view");
    1.90 +  tree.view = view;
    1.91 +  tree.treeBoxObject.ensureRowIsVisible(0);
    1.92 +  is(tree.treeBoxObject.getFirstVisibleRow(), 0, "first visible after ensureRowIsVisible on load");
    1.93 +  tree.setAttribute("rows", "4");
    1.94 +
    1.95 +  setTimeout(testtag_tree, 0, "tree-view", "treechildren-view", "multiple", "simple", "tree view");
    1.96 +}
    1.97 +
    1.98 +]]>
    1.99 +</script>
   1.100 +
   1.101 +<tree id="tree-view">
   1.102 +  <treecols>
   1.103 +    <treecol id="name" label="Name" sort="label" flex="1"/>
   1.104 +    <treecol id="address" label="Address" flex="1"/>
   1.105 +  </treecols>
   1.106 +  <treechildren id="treechildren-view"/>
   1.107 +</tree>
   1.108 +
   1.109 +  <!-- test results are displayed in the html:body -->
   1.110 +  <body xmlns="http://www.w3.org/1999/xhtml" style="height: 300px; overflow: auto;"/>
   1.111 +
   1.112 +  <!-- test code goes here -->
   1.113 +  <script type="application/javascript"><![CDATA[
   1.114 +
   1.115 +SimpleTest.waitForExplicitFinish();
   1.116 +
   1.117 +]]>
   1.118 +</script>
   1.119 +
   1.120 +</window>
   1.121 +

mercurial