/** @typedef {Trees.GlobalTree.Node.Children} NodeChildren */ /** * ### Менеджер вложенных нод * Предоставляет интерфейс доступа к списку и отслеживанию вложенных нод * *
* Связанные объекты: * * - {@link Trees.GlobalTree.Node} - Здесь можно найти примеры, как работать с глобальной нодой * * @example * // Пример 1: Как получить Менеджер вложенных нод? * * // Пример взят для дерева тополгии * var tree = null; * var node = null; * var cm = null; * * // Осуществляем запрос к менеджеру деревьев, на получение провайдера дерева * ps.pl.tm.get(new v2.string("st")).then(function(ref){ * // ref - это ссылка на объект * // метод value возвращает целевой объект. В данном случае дерево Trees.SchemeTree * tree = ref.value(); * * // Доступ к ноде осуществляется похожим образом, но теперь вместо строки нужно указать v2.integer * // Так как возвратится нативный проимс, мы можем вернуть его и обработать в следующем then * return tree.get(v2.integer.from_number(0)) * }, function(err){ * // в случае неудачи придет ошибка. * // обычно в ошибке содержится три переменные err - код ошибки, message - краткое описание, sub - если к этому * // привела другая ошибка внутри системы. * }).then(function(ref){ * // Вот мы и получили ноду. * node = ref.value(); * * // Так как на этот момент node.cm еще не существует, нужно его подопнуть что бы он загрузился * return node.children_manager() * }, function(err){ * // Отобразим ошибку * console.warn(err); * }).then(function(_cm){ * // таким образом может быть получен МВН * cm = _cm; * * // однако после этого действия можно его получать напрямую: * cm = node.cm; * }, function(err){ * // Отобразим ошибку * console.warn(err); * }) * * @group manager * @class Children * @memberof Trees.GlobalTree.Node */ function Children() { /** * ### Сигнал: добавление ноды. * Оповещение о том, что добавилась новая нода в список вложенных нод *
* Результат: {@link signals.node_children_add} * * @name s_node_add * @public * @memberof Trees.GlobalTree.Node.Children * @type {number} */ this.s_node_add = -1; /** * ### Сигнал: удаление ноды. * Оповещение о том, что удалилась нода из список вложенных нод *
* Результат: {@link signals.node_children_remove} * * @name s_node_remove * @public * @memberof Trees.GlobalTree.Node.Children * @type {number} */ this.s_node_remove = -1; /** * Возвращает список потомков ноды * @example * // Пример: * // В данном случае я не рассматриваю полную цепочку получения МВН (т.к. это описано сверху). * var children = node.cm.children(); * * // распечаетаем список идентификаторов: * v2.tools.print(children); * * // Пример вывода: * // * // List(Integer) [ * // 1, * // 2, * // 3, * // 4, * // 5 * // ] * * @public * @function children * @returns {v2.list(v2.integer)} * @memberof Trees.GlobalTree.Node.Children */ this.children = function(attributeName) { }; }