📄 treetest.xml
字号:
<?xml version="1.0"?><Application> <Window caption="Tree Test" width="500" height="400" centered="true"/> <Resources> <Script><![CDATA[function TreeTest() { var win = application.getWindow(); var t = new BiTree; t.setLocation(10,10); t.setRight(120); t.setBottom(40); var count = 0; var cols = 4; function getArray() { var res = new Array(cols); for (var x = 0; x < cols; x++) { if (x == 0) res[x] = "Item " + count + " (string)"; else if (x == 1) res[x] = new Date( Math.random() * 1e12 ) else res[x] = Math.round(Math.random() * 10000); } count++; return res; }; var MAX = 100; var tmp, tmp2, tmp3; for (var i = 0; count < MAX; i++) { t.addNode( tmp = new BiTreeNode(getArray()) ); for (var j = 0; j < 5 && count < MAX; j++) { tmp.addNode( tmp2 = new BiTreeNode(getArray()) ); tmp2.setExpanded(false); for (var k = 0; k < 0 && count < MAX; k++) { tmp2.addNode( tmp3 = new BiTreeNode(getArray()) ); } } } t.setMultipleSelection(true); t.setColumnCount(4); t.setColumnOrders([0,1,2,3]); t.setColumnNames(["Column 0", "Column 1", "Column 2", "Column 3"]); t.setColumnWidths([100,100,100,100]); t.setColumnSortTypes(["string", "date", "number", "number"]); t.setIndentColumn(0); t.setIconColumn(0); t.getColumns()[2].setAlign("right"); t.setColumnOrders([3,1,2,0]); t.getNodes()[1].setBackColor("red"); t.getNodes()[1].setForeColor("white"); win.add(t); t.updateColumns(); t.updateData(); // indentColumn var sp2 = new BiSpinner(); sp2.setMaximum(3); sp2.setMinimum(-1); sp2.setValue(0); sp2.addEventListener("change", function () { t.setIndentColumn(sp2.getValue()); t.updateColumns(); t.updateData(); }); sp2.setLeft(10); sp2.setBottom(10) win.add(sp2); // iconColumn var sp3 = new BiSpinner(); sp3.setMaximum(3); sp3.setMinimum(-1); sp3.setValue(0); sp3.addEventListener("change", function () { t.setIconColumn(sp3.getValue()); t.updateData(); }); sp3.setLeft(70); sp3.setBottom(10); win.add(sp3); var cb1 = new BiCheckBox("showLines", true); var cb2 = new BiCheckBox("showRootLines", false); var cb3 = new BiCheckBox("showPlusMinus", true); var cb4 = new BiCheckBox("showHeaders", true); var cb5 = new BiCheckBox("liveResize", false); cb1.setWidth(100); cb2.setWidth(100); cb3.setWidth(100); cb4.setWidth(100); cb5.setWidth(100); cb1.setRight(10); cb2.setRight(10); cb3.setRight(10); cb4.setRight(10); cb5.setRight(10); cb1.setTop(10); cb2.setTop(30); cb3.setTop(50); cb4.setTop(70); cb5.setTop(90); win.add(cb1); win.add(cb2); win.add(cb3); win.add(cb4); win.add(cb5); cb1.addEventListener("change", function (e) { t.setShowLines(cb1.getChecked()); t.updateColumns(); t.updateData(); }); cb2.addEventListener("change", function (e) { t.setShowRootLines(cb2.getChecked()); t.updateData(); }); cb3.addEventListener("change", function (e) { t.setShowPlusMinus(cb3.getChecked()); t.updateColumns(); t.updateData(); }); cb4.addEventListener("change", function (e) { t.setShowHeaders(cb4.getChecked()); }); cb5.addEventListener("change", function (e) { t.setLiveResize(cb5.getChecked()); }); var out = new BiLabel; out.setTop(120); out.setRight(10); out.setWidth(100) out.setBottom(10); win.add(out); t.addEventListener("change", function (e) { var sb = []; var sb2; var nodes = t.getSelectedNodes(); var count = t.getColumnCount(); for (var i = 0; i < nodes.length; i++) { sb2 = []; for (var j = 0; j < count; j++) sb2.push( nodes[i].getData(j) ); sb.push( "[" + sb2.join(", ") + "]" ); } out.setText(sb.join("\n")); }); // Context menu to hide/show columns function toggle( e ) { var x = e.getTarget().getUserData(); t.getColumns()[x].setVisible( e.getTarget().getChecked() ); t.update(); } var menu = new BiMenu; menu.addEventListener( "beforeshow", function ( e ) { menu.removeAll(); var l = t.getColumnCount(); var mi; mi = new BiCheckBoxMenuItem( "Show headers" ); mi.setChecked( t.getShowHeaders() ); mi.addEventListener( "change", function ( e ) { t.setShowHeaders( e.getTarget().getChecked() ); }); menu.add( mi ); menu.add( new BiMenuSeparator() ); for ( var i = 0; i < l; i++ ) { mi = new BiCheckBoxMenuItem( t.getColumns()[i].getName() ); mi.setChecked( t.getColumns()[i].getVisible() ); mi.setUserData( i ); menu.add( mi ); mi.addEventListener( "change", toggle ); } }); t.setContextMenu( menu );}TreeTest.main = function () { new TreeTest; }; ]]></Script> </Resources></Application>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -