1 import {Component, OnInit, Input, Output, EventEmitter} from '@angular/core';
2 import {Tree, TreeNode} from './tree';
9 (nodeClicked)="nodeClicked($event)">
16 const rootNode = new TreeNode({
20 new TreeNode({id: 2, label: 'Child'}),
21 new TreeNode({id: 3, label: 'Child2'})
25 this.myTree = new Tree(rootNode);
28 nodeClicked(node: TreeNode) {
29 console.log('someone clicked on ' + node.label);
35 templateUrl: 'tree.component.html',
36 styleUrls: ['tree.component.css']
38 export class TreeComponent implements OnInit {
41 @Input() set tree(t: Tree) {
44 this._tree.nodeList(); // reindex nodes
52 @Output() nodeClicked: EventEmitter<TreeNode>;
55 this.nodeClicked = new EventEmitter<TreeNode>();
60 displayNodes(): TreeNode[] {
61 if (!this.tree) { return []; }
62 return this.tree.nodeList(true);
65 handleNodeClick(node: TreeNode) {
66 this.tree.selectNode(node);
67 this.nodeClicked.emit(node);