Hansard Structured Content

by holf

HTML

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dijit/themes/tundra/tundra.css">
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/resources/dojo.css">
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojox/widget/SortList/SortList.css">
<div id="container">
    <div id="treeOne"></div>
</div>

CSS

#container {
    padding: 20px;
}

JavaScript

dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.Tree");
dojo.require("dijit.Menu");
dojo.require("dijit.MenuItem");


function prepare() {
    var store = new dojo.data.ItemFileReadStore({
        data: {
            identifier: 'id',
            label: 'label',
            items: rawdata
        }
    });

    var treeControl = new dijit.Tree({
        store: store,
        showRoot: false,
        persist: false,
        autoExpand: false,
        _createTreeNode: function (
        /*Object*/
        args) {
            var tnode = new dijit._TreeNode(args);
            tnode.labelNode.innerHTML = args.label;
            return tnode;
        },

        openOnDblClick: true
    }, "treeOne");

    var menu = new dijit.Menu();
    menu.bindDomNode(treeControl.domNode);
    menu.addChild(new dijit.MenuItem({
        label: "Simple menu item"
    }));

    dojo.connect(treeControl, "onClick", treeControl, function (item, nodeWidget, e) {
        console.log("is expandable?: ", nodeWidget.isExpandable, e.target);

        if (nodeWidget.isExpandable) {
            this._onExpandoClick({
                node: nodeWidget
            });
        }
        console.log("item : ", item);

    });

    dojo.connect(menu, "_openMyself", this, function (e) {
        var tn = dijit.getEnclosingWidget(e.target);
        // prepare the menu
        dojo.forEach(menu.getChildren(), function (child) {
            menu.removeChild(child);

            menu.addChild(new dijit.MenuItem({
                label: "dynamic " + store.getLabel(tn.item)
            }));
        }, this);

    });

    menu.startup();
}

dojo.ready(prepare);




var rawdata = [{
    label: 'Oral Answers To Questions',
    id: 'glump',
    children: [{
        label: 'Health',
        id: 'HilarityBoots',
        children: [{
            label: 'PFI Debt (NHS Hospitals)',
            id: 'boonclock',
            children: [{
                label: '<b>1. Stephen Barclay</b>: \'The...