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 +