Object has no children fix (#2038)

* Added files for PR 1904

* Added new lines

* space fix

* Implemented changes

* Space fix

* checkstyle fix

Fixes #1826
This commit is contained in:
Aayush Arora (angularboy) 2018-06-30 00:27:45 +05:30 committed by Pete Richards
parent b8f278cabf
commit eaa9514453
5 changed files with 24 additions and 19 deletions

View File

@ -401,7 +401,7 @@ define([
{
"key": "mctTree",
"implementation": MCTTree,
"depends": ['gestureService']
"depends": ['gestureService', 'openmct']
},
{
"key": "mctPreview",

View File

@ -79,8 +79,8 @@ define(
// a recursive step for subsequent ids in the paths,
// until we exceed path length or hit a mismatch.
return (index >= nodePath.length) ||
((navPath[index] === nodePath[index]) &&
checkPath(nodePath, navPath, index + 1));
((navPath[index] === nodePath[index]) &&
checkPath(nodePath, navPath, index + 1));
}
// Consider the currently-navigated object and update
@ -89,9 +89,9 @@ define(
var nodeObject = $scope.domainObject,
navObject = selectedObject,
nodeContext = nodeObject &&
nodeObject.getCapability('context'),
nodeObject.getCapability('context'),
navContext = navObject &&
navObject.getCapability('context'),
navObject.getCapability('context'),
nodePath,
navPath;
@ -110,7 +110,7 @@ define(
// within the navigation path; otherwise, navigation
// has happened in some other subtree.
if (navPath.length >= nodePath.length &&
checkPath(nodePath, navPath)) {
checkPath(nodePath, navPath)) {
// nodePath is along the navPath; if it's
// at the end of the path, highlight;

View File

@ -24,7 +24,7 @@ define([
'angular',
'../ui/TreeView'
], function (angular, TreeView) {
function MCTTree(gestureService) {
function MCTTree(gestureService, openmct) {
function link(scope, element) {
if (!scope.allowSelection) {
scope.allowSelection = function () {
@ -34,8 +34,9 @@ define([
if (!scope.onSelection) {
scope.onSelection = function () {};
}
var currentSelection = scope.selectedObject;
var treeView = new TreeView(gestureService);
var treeView = new TreeView(gestureService, openmct);
function setSelection(domainObject, event) {
if (currentSelection === domainObject) {

View File

@ -27,9 +27,9 @@ define([
'./TreeLabelView'
], function ($, nodeTemplate, ToggleView, TreeLabelView) {
function TreeNodeView(gestureService, subtreeFactory, selectFn) {
function TreeNodeView(gestureService, subtreeFactory, selectFn, openmct) {
this.li = $('<li>');
this.openmct = openmct;
this.statusClasses = [];
this.toggleView = new ToggleView(false);
@ -81,11 +81,14 @@ define([
}
this.activeObject = domainObject;
if (domainObject && domainObject.hasCapability('composition')) {
$(this.toggleView.elements()).removeClass('no-children');
} else {
$(this.toggleView.elements()).addClass('no-children');
if (domainObject && domainObject.hasCapability('adapter')) {
var obj = domainObject.useCapability('adapter');
var hasComposition = this.openmct.composition.get(obj) !== undefined;
if (hasComposition) {
$(this.toggleView.elements()).removeClass('no-children');
} else {
$(this.toggleView.elements()).addClass('no-children');
}
}
if (domainObject && domainObject.hasCapability('status')) {
@ -150,6 +153,5 @@ define([
return this.li;
};
return TreeNodeView;
});

View File

@ -26,17 +26,18 @@ define([
'text!../../res/templates/tree/wait-node.html'
], function ($, TreeNodeView, spinnerTemplate) {
function TreeView(gestureService, selectFn) {
function TreeView(gestureService, openmct, selectFn) {
this.ul = $('<ul class="tree"></ul>');
this.nodeViews = [];
this.callbacks = [];
this.selectFn = selectFn || this.value.bind(this);
this.gestureService = gestureService;
this.pending = false;
this.openmct = openmct;
}
TreeView.prototype.newTreeView = function () {
return new TreeView(this.gestureService, this.selectFn);
return new TreeView(this.gestureService, this.openmct, this.selectFn);
};
TreeView.prototype.setSize = function (sz) {
@ -46,7 +47,8 @@ define([
nodeView = new TreeNodeView(
this.gestureService,
this.newTreeView.bind(this),
this.selectFn
this.selectFn,
this.openmct
);
this.nodeViews.push(nodeView);
this.ul.append($(nodeView.elements()));