Demo - Wijmo TreeView

by LaAsCE

HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.grapecity.com/wijmo/5.latest/styles/wijmo.min.css">
<script src="https://cdn.grapecity.com/wijmo/5.latest/controls/wijmo.min.js"></script>
<script src="https://cdn.grapecity.com/wijmo/5.latest/controls/wijmo.nav.min.js"></script>
<div class="container">

  <div id="theTree"></div>
  
</div>

CSS

/* default trees on this sample */
.wj-treeview {
    display:block;
    //height: 350px;
    font-size: 120%;
    margin-bottom: 8px;
    padding: 6px;
    background: #f0f0f0;
    box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
}
body {
  margin-bottom: 24pt;
}

.wj-treeview .wj-nodelist .wj-node:not(.wj-state-collapsed):before { 
    content: "";
    border: 0;
    width: 20px;
    height: 20px;
    background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACISURBVDiN7c6xCkFhGMbxn3sQg6SURRY3YGO2KpOU3IDk0uQeTJxBisHmIizfV6cTvtNZ+U9v7/P+n17+1HLzBMOS3hH7YsETB9wScgdj1IvBKsjdL3IbV6w/HSxxR+9N1sIFm8SHFnign9s1ccY2JUdmoWSABk7YlZUj81CSVZEjI0yryr/CC+xcE2qaLxkPAAAAAElFTkSuQmCC');
    background-size: 20px;
    top: 5px;
}

JavaScript

onload = function() {

	// create the tree
  var tree = new wijmo.nav.TreeView('#theTree', {
  	itemsSource: getData(),
		displayMemberPath: 'header',
    childItemsPath: 'items',
    autoCollapse: false,
    showCheckboxes: true,
    expandOnClick: false,
    selectedItemChanged: function(s, e) {
    	/* var msg = wijmo.format('You selected item <b>{header}</b>.', s.selectedItem);
    	document.getElementById('selection').innerHTML = msg; */
    },
    itemClicked: function(s, e) {
    	console.log('this show second');
    	/* var msg = wijmo.format('You clicked item <b>{header}</b>.', s.selectedItem);
    	document.getElementById('click').innerHTML = msg; */
    },
    isCollapsedChanging: function(s, e) {
    	console.log('this show first');
    }
	});
  
  tree.hostElement.addEventListener("click", e => {
  var selectedNode = tree.selectedNode;
  selectedNode.setCollapsed(!selectedNode.isCollapsed, true);
});
  
  // get the tree data
  function getData() {
		return [
    	{ header: 'Electronics', img: 'resources/electronics.png', items: [
				{ header: 'Trimmers/Shavers' },
        { header: 'Tablets' },
        { header: 'Phones', img: 'resources/phones.png', items: [
					{ header: 'Apple' },
          { header: 'Motorola', newItem: true },
          { header: 'Nokia' },
          { header: 'Samsung' }]
				},
        { header: 'Speakers', newItem: true },
        { header: 'Monitors' }]
			},
      { header: 'Toys', img: 'resources/toys.png', items: [
      	{ header: 'Shopkins' },
        { header: 'Train Sets' },
        { header: 'Science Kit', newItem: true },
        { header: 'Play-Doh' },
        { header: 'Crayola' } ]
			},
			{ header: 'Home', img: 'resources/home.png', items: [
      	{ header: 'Coffee Maker' },
        { header: 'Breadmaker', newItem: true },
        { header: 'Solar Panel', newItem: true },
        { header: 'Work Table' },
        { header: 'Propane Grill' }]
			}
		];
	}
}