2018-09-25 12:14:18 +00:00
|
|
|
|
/** @typedef {Trees.GlobalTree.Node.Children} NodeChildren */
|
|
|
|
|
|
2018-09-24 16:03:29 +00:00
|
|
|
|
/**
|
2018-09-26 15:13:03 +00:00
|
|
|
|
* ### Менеджер вложенных нод
|
|
|
|
|
* Предоставляет интерфейс доступа к списку и отслеживанию вложенных нод
|
|
|
|
|
*
|
|
|
|
|
* <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);
|
|
|
|
|
* })
|
2018-09-24 16:03:29 +00:00
|
|
|
|
*
|
|
|
|
|
* @group manager
|
|
|
|
|
* @class Children
|
|
|
|
|
* @memberof Trees.GlobalTree.Node
|
|
|
|
|
*/
|
|
|
|
|
function Children() {
|
|
|
|
|
/**
|
2018-09-26 15:13:03 +00:00
|
|
|
|
* ### Сигнал: добавление ноды.
|
|
|
|
|
* Оповещение о том, что добавилась новая нода в список вложенных нод
|
|
|
|
|
* <br>
|
|
|
|
|
* Результат: {@link signals.node_children_add}
|
2018-09-24 16:03:29 +00:00
|
|
|
|
*
|
|
|
|
|
* @name s_node_add
|
|
|
|
|
* @public
|
|
|
|
|
* @memberof Trees.GlobalTree.Node.Children
|
|
|
|
|
* @type {number}
|
|
|
|
|
*/
|
|
|
|
|
this.s_node_add = -1;
|
|
|
|
|
|
|
|
|
|
/**
|
2018-09-26 15:13:03 +00:00
|
|
|
|
* ### Сигнал: удаление ноды.
|
|
|
|
|
* Оповещение о том, что удалилась нода из список вложенных нод
|
|
|
|
|
* <br>
|
|
|
|
|
* Результат: {@link signals.node_children_remove}
|
2018-09-24 16:03:29 +00:00
|
|
|
|
*
|
2018-09-26 15:13:03 +00:00
|
|
|
|
* @name s_node_remove
|
2018-09-24 16:03:29 +00:00
|
|
|
|
* @public
|
|
|
|
|
* @memberof Trees.GlobalTree.Node.Children
|
|
|
|
|
* @type {number}
|
|
|
|
|
*/
|
2018-09-26 15:13:03 +00:00
|
|
|
|
this.s_node_remove = -1;
|
2018-09-24 16:03:29 +00:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает список потомков ноды
|
2018-09-26 15:13:03 +00:00
|
|
|
|
* @example
|
|
|
|
|
* // Пример:
|
|
|
|
|
* // В данном случае я не рассматриваю полную цепочку получения МВН (т.к. это описано сверху).
|
|
|
|
|
* var children = node.cm.children();
|
|
|
|
|
*
|
|
|
|
|
* // распечаетаем список идентификаторов:
|
|
|
|
|
* v2.tools.print(children);
|
|
|
|
|
*
|
|
|
|
|
* // Пример вывода:
|
|
|
|
|
* //
|
|
|
|
|
* // List(Integer) [
|
|
|
|
|
* // 1,
|
|
|
|
|
* // 2,
|
|
|
|
|
* // 3,
|
|
|
|
|
* // 4,
|
|
|
|
|
* // 5
|
|
|
|
|
* // ]
|
2018-09-24 16:03:29 +00:00
|
|
|
|
*
|
|
|
|
|
* @public
|
2018-09-26 15:13:03 +00:00
|
|
|
|
* @function children
|
2018-09-25 12:14:18 +00:00
|
|
|
|
* @returns {v2.list(v2.integer)}
|
2018-09-24 16:03:29 +00:00
|
|
|
|
* @memberof Trees.GlobalTree.Node.Children
|
|
|
|
|
*/
|
|
|
|
|
this.children = function(attributeName) {
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
}
|