From 3b0a3733b4372b776087d51527c8627bbaff450f Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Fri, 11 Mar 2016 10:23:06 -0800 Subject: [PATCH] [Tree] Begin adding controller for refactored tree --- .../general/src/directives/MCTTree.js | 46 +++++++++++++++++-- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/platform/commonUI/general/src/directives/MCTTree.js b/platform/commonUI/general/src/directives/MCTTree.js index 3266ca3759..4a6e684fcd 100644 --- a/platform/commonUI/general/src/directives/MCTTree.js +++ b/platform/commonUI/general/src/directives/MCTTree.js @@ -23,15 +23,51 @@ define([ 'text!../../res/templates/subtree.html' -], function () { - function MCTTree() { - function link(scope, elem) { +], function (subtreeTemplate) { + function MCTTreeController($scope, $element) { + var ul = elem.filter('ul'), + activeObject, + unlisten; + function addNodes(domainObjects) { + domainObjects.forEach(function (addNode)); } + function loadComposition(domainObject) { + activeObject = domainObject; + ul.empty(); + if (domainObject.hasCapability('composition')) { + // TODO: Add pending indicator + domainObject.useCapability('composition') + .then(addNodes); + } + } + + function changeObject(domainObject) { + if (unlisten) { + unlisten(); + } + + unlisten = domainObject.getCapability('mutation') + .listen(loadComposition); + + loadComposition(domainObject); + } + + scope.$watch('mctObject', changeObject); + } + + function MCTTree() { return { - link: link, - scope: { mctModel: "=" } + restrict: "E", + controller: [ + '$scope', + '$element', + MCTTreeController + ], + require: [ "mctTree" ], + scope: { mctObject: "=" }, + template: subtreeTemplate }; }