initi.doc/docfiles/providers/managers/trees/globalTree/children/manager.js
2018-09-26 18:13:03 +03:00

112 lines
4.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** @typedef {Trees.GlobalTree.Node.Children} NodeChildren */
/**
* ### Менеджер вложенных нод
* Предоставляет интерфейс доступа к списку и отслеживанию вложенных нод
*
* <br>
* Связанные объекты:
*
* - {@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() {
/**
* ### Сигнал: добавление ноды.
* Оповещение о том, что добавилась новая нода в список вложенных нод
* <br>
* Результат: {@link signals.node_children_add}
*
* @name s_node_add
* @public
* @memberof Trees.GlobalTree.Node.Children
* @type {number}
*/
this.s_node_add = -1;
/**
* ### Сигнал: удаление ноды.
* Оповещение о том, что удалилась нода из список вложенных нод
* <br>
* Результат: {@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) {
};
}