Lines Matching refs:this

4  * you may not use this file except in compliance with the License.
68 this.on(type[i], callback)
71 (this._events[type] || (this._events[type] = [])).push(callback)
85 let _self = this;
92 this.on(type, handler);
104 this._events = [];
108 this.off(type[i], callback)
111 const cbs = this._events[type];
116 this._events[type] = null
136 let _self = this
137 if (!this._events[event]) {
140 let cbs = [...this._events[event]];
175 this.appEventBus = new TreeListener();
184 if (AppStorage.Get(this.APP_KEY_EVENT_BUS) == null) {
185 AppStorage.SetOrCreate(this.APP_KEY_EVENT_BUS, new TreeListenerManager())
187 return AppStorage.Get(this.APP_KEY_EVENT_BUS);
196 return this.appEventBus;
211 if (this.listeners.indexOf(listener) < 0) {
212 this.listeners.push(listener)
216 const pos = this.listeners.indexOf(listener);
218 this.listeners.splice(pos, 1)
223 this.listeners.forEach(listener => {
228 this.listeners.forEach(listener => {
233 this.listeners.forEach(listener => {
238 this.listeners.forEach(listener => {
243 this.listeners.forEach(listener => {
309 this.data = data;
310 this.nodeLevel = -1;
311 this.parentNodeId = -1;
312 this.nodeItem = { imageNode: null, mainTitleNode: null, imageCollapse: null };
313 this.childNodeInfo = { isHasChildNode: false, childNum: 0, allChildNum: 0 };
314 this.menu = data.menu;
316 this.nodeItem.imageNode = new ImageNode(data.icon, data.selectedIcon, data.editIcon,
322 this.nodeItem.mainTitleNode = new MainTitleNode(data.primaryTitle);
324 this.children = [];
329this.nodeItem.imageCollapse = new ImageNode($r('sys.media.ohos_ic_public_arrow_right'), null, null,
333this.nodeItem.imageCollapse.itemRightMargin = ($r('sys.float.ohos_id_text_paragraph_margin_xs'));
335 this.nodeItem.imageCollapse = null;
340 return this.nodeItem;
344 return this.childNodeInfo;
348 return this.menu;
352 return this.currentNodeId;
356 return this.data.isFolder;
368 this.width = width;
372 return this.width;
376 this.height = height;
380 return this.height;
384 this.rightMargin = rightMargin;
388 return this.rightMargin;
420 this.rightMargin = $r('sys.float.ohos_id_elements_margin_horizontal_m');
421 this.imageSource = imageSource;
422 this.imageNormalSource = imageSource;
424 this.imageSelectedSource = itemSelectedIcon;
426 this.imageSelectedSource = this.imageNormalSource;
429 this.imageEditSource = itemEditIcon;
431 this.imageEditSource = this.imageNormalSource;
433 this.imageOpacity = imageOpacity;
434 this.itemWidth = itemWidth;
435 this.itemHeight = itemHeight;
436 this.imageCollapseSource = imageSource;
437 this.imageCollapseDownSource = $r('sys.media.ohos_ic_public_arrow_down');
438 this.imageCollapseRightSource = $r('sys.media.ohos_ic_public_arrow_right');
439 this.isImageCollapse = true;
443 return this.imageSource;
447 return this.imageNormalSource;
451 return this.imageSelectedSource;
455 return this.imageEditSource;
459 return this.imageOpacity;
467 return this.imageCollapseSource;
471 return this.isImageCollapse;
476 this.imageCollapseSource = this.imageCollapseDownSource;
478 this.imageCollapseSource = this.imageCollapseRightSource;
484 this.imageCollapseDownSource = $r('sys.media.ohos_ic_public_arrow_down');
485 this.imageCollapseRightSource = $r('sys.media.ohos_ic_public_arrow_right');
486 this.isImageCollapse = false;
489 this.imageCollapseDownSource = $r('sys.media.ohos_ic_public_arrow_down');
490 this.imageCollapseRightSource = $r('sys.media.ohos_ic_public_arrow_right');
491 this.isImageCollapse = true;
493 this.imageCollapseSource = (nodeStatus == NodeStatus.Collapse) ?
494 this.imageCollapseRightSource : this.imageCollapseDownSource;
500 this.imageSource = this.imageNormalSource;
501 this.currentInteractionStatus = interactionStatus;
504 if (this.currentInteractionStatus !== InteractionStatus.Edit) {
505 this.imageSource = this.imageSelectedSource;
506 this.currentInteractionStatus = interactionStatus;
510 this.imageSource = this.imageEditSource;
511 this.currentInteractionStatus = interactionStatus;
514 this.imageSource = this.imageSelectedSource;
515 this.currentInteractionStatus = interactionStatus;
518 this.imageSource = this.imageEditSource;
519 this.currentInteractionStatus = interactionStatus;
522 this.imageSource = this.imageNormalSource;
523 this.currentInteractionStatus = interactionStatus;
537 this.mainTitleName = mainTitleName;
538 this.itemWidth = ITEM_WIDTH;
539 this.itemHeight = ITEM_HEIGHT;
540 this.rightMargin = $r('sys.float.ohos_id_text_paragraph_margin_xs');
541 this.mainTitleSetting = { fontColor: $r('sys.color.ohos_id_color_primary'),
544 this.showPopUpTimeout = 0;
548 this.mainTitleSetting = { fontColor: $r('sys.color.ohos_id_color_text_primary_activated'),
552 this.mainTitleSetting = { fontColor: $r('sys.color.ohos_id_color_primary'),
558 this.mainTitleName = text;
561 return this.mainTitleName;
565 this.showPopUpTimeout = showPopUpTimeout;
569 return this.showPopUpTimeout;
573 return this.mainTitleSetting.fontColor;
578 return this.mainTitleSetting.fontSize;
582 return this.mainTitleSetting.fontWeight;
587 this.mainTitleSetting = { fontColor: $r('sys.color.ohos_id_color_primary_contrary'),
591 this.mainTitleSetting = { fontColor: $r('sys.color.ohos_id_color_primary'),
607 this.itemWidth = ITEM_WIDTH;
608 this.itemHeight = ITEM_HEIGHT_INPUT;
609 this.rightMargin = $r('sys.float.ohos_id_text_paragraph_margin_xs');
610 this.inputTextSetting = {
617 return this.inputTextSetting.fontColor;
621 return this.inputTextSetting.fontSize;
625 return this.inputTextSetting.fontWeight;
629 return this.radius;
633 return this.statusColor;
637 return this.editItemColor;
641 return this.status;
692 this.childNodeInfo = node.getChildNodeInfo();
693this.nodeItem = { imageNode: null, inputText: null, mainTitleNode: null, imageCollapse: null };
694 this.popUpInfo = { popUpIsShow: false,
699 this.nodeItem.imageNode = node.getNodeItem().imageNode;
700 this.nodeItem.inputText = new InputText();
701 this.nodeItem.mainTitleNode = node.getNodeItem().mainTitleNode;
702 this.nodeItem.imageCollapse = node.getNodeItem().imageCollapse;
703 this.menu = node.menu;
704 this.parentNodeId = node.parentNodeId;
705 this.currentNodeId = node.currentNodeId;
706 this.nodeHeight = NODE_HEIGHT;
707 this.nodeLevel = node.nodeLevel;
708 this.nodeLeftPadding = node.nodeLevel * 12 + 8; // calculate left padding
709 this.nodeColor = $r('sys.color.ohos_id_color_background');
710 this.nodeIsShow = (this.nodeLevel > 0) ? false : true;
711 this.listItemHeight = (this.nodeLevel > 0) ? LIST_ITEM_HEIGHT_NONE : LIST_ITEM_HEIGHT;
712 this.isShowTitle = true;
713 this.isShowInputText = false;
714 this.isSelected = false;
715 this.status = { normal: $r('sys.color.ohos_id_color_background_transparent'),
721 this.nodeBorder = { borderWidth: BORDER_WIDTH_NONE,
725 this.flagLineLeftMargin = node.nodeLevel * 12 + 8;
726 this.node = node;
727 this.nodeParam = node.data;
731 return this.popUpInfo;
735 this.popUpInfo.popUpIsShow = isShow;
739 this.popUpInfo.popUpEnableArrow = popUpEnableArrow;
743 this.popUpInfo.popUpColor = color;
747 this.popUpInfo.popUpText = text;
751 this.popUpInfo.popUpTextColor = popUpTextColor;
755 return this.isShowTitle;
759 return this.isShowInputText;
764 this.isShowTitle = false;
765 this.isShowInputText = true;
767 this.isShowTitle = true;
768 this.isShowInputText = false;
773 // listTree this node already has ImageCollapse.
775this.nodeItem.imageCollapse = new ImageNode($r('sys.media.ohos_ic_public_arrow_down'), null, null,
779this.nodeItem.imageCollapse.itemRightMargin = ($r('sys.float.ohos_id_text_paragraph_margin_xs'));
781 this.nodeItem.imageCollapse = null;
786 this.nodeColor = nodeColor;
790 return this.nodeColor;
794 this.listItemHeight = listItemHeight;
798 return this.listItemHeight;
802 return this.currentNodeId;
806 return this.parentNodeId;
810 return this.nodeLeftPadding;
814 return this.nodeHeight;
818 this.nodeIsShow = nodeIsShow;
822 return this.nodeIsShow;
826 return this.nodeItem;
830 return this.status;
834 return this.nodeBorder;
838this.nodeBorder.borderWidth = isClearFocusStatus ? this.borderWidth.has : this.borderWidth.none;
842 return this.childNodeInfo;
846 return this.currentNodeId;
850 return this.menu;
854 this.isSelected = isSelected;
858 return this.isSelected;
863 return this.nodeParam;
868 return this.node;
872 return this.nodeParam.isFolder;
876 this.canShowFlagLine = canShowFlagLine;
880 return this.canShowFlagLine;
884 this.flagLineLeftMargin = currentNodeLevel * 12 + 8; // calculate
888 return this.flagLineLeftMargin;
892 return this.nodeLevel;
896 this.isOverBorder = isOverBorder;
900 return this.isOverBorder;
904 this.canShowBottomFlagLine = canShowBottomFlagLine;
908 return this.canShowBottomFlagLine;
912 this.isHighLight = isHighLight;
916 return this.isHighLight;
920 this.isModify = isModify;
924 return this.isModify;
938 this._root = new NodeItem({});
939 this._root.nodeLevel = -1;
940 this._root.parentNodeId = -1;
941 this._root.currentNodeId = -1;
945 return this.addNewNodeId;
948 traverseNodeDF(callback, root: NodeItem = this._root) {
964 queue.push(this._root);
980 traversal.call(this, callback, true);
986 this.traverseNodeDF((node: NodeItem): boolean => {
1007 this.contains(callback, this.traverseNodeBF);
1021 if (this._root === null) {
1022 this._root = new NodeItem({});
1023 this._root.nodeLevel = -1;
1024 this._root.parentNodeId = -1;
1025 this._root.currentNodeId = -1;
1036 this.contains(callback, this.traverseNodeBF);
1039 if (parent.nodeLevel > this.MaxNodeLevel) {
1050 this.updateParentChildNum(parent, true, 1);
1051 return this;
1058 let index = this.INITIAL_INVALID_VALUE;
1074 this.traverseNodeDF(callback, rootNode);
1090 this.contains(callback, traversal);
1094 let index = this.findNodeIndex(parent.children, currentNodeId);
1099 this.freeNodeMemory(parent.children[index], removeNodeIdList);
1108 this.updateParentChildNum(parent, false, deleteNodeAllChildNum);
1124 this.contains(callback, this.traverseNodeBF);
1169 this.contains(callback, this.traverseNodeBF);
1198 this.contains(callback, this.traverseNodeBF);
1231 if ((invalidLength.test(title) && title.length > this.MAX_CN_LENGTH) ||
1232 (!invalidLength.test(title) && title.length > this.MAX_EN_LENGTH)) {
1242 dragTraverseNodeDF(callback, root: NodeItem = this._root, listNode) {
1271 if (this._root === null) {
1272 this._root = new NodeItem({});
1273 this._root.nodeLevel = this.INITIAL_INVALID_VALUE;
1274 this._root.parentNodeId = this.INITIAL_INVALID_VALUE;
1275 this._root.currentNodeId = this.INITIAL_INVALID_VALUE;
1286 this.contains(callback, this.traverseNodeBF);
1289 if (parent.nodeLevel > this.MaxNodeLevel) {
1295 let insertIndex: number = this.INITIAL_INVALID_VALUE;
1315 this.updateParentChildNum(parent, true, 1);
1316 return this;
1343 …private draggingCurrentNodeId: number = this.INITIAL_INVALID_VALUE; // Record the current ID of th…
1344 …private draggingParentNodeId: number = this.INITIAL_INVALID_VALUE; // Record the parent ID of the …
1347 …private lastPassIndex: number = this.INITIAL_INVALID_VALUE; // record the last passing node index …
1348 …private lastPassId: number = this.INITIAL_INVALID_VALUE; // record the last passing node Id in dra…
1349 …private thisPassIndex: number = this.INITIAL_INVALID_VALUE; // record the current passing node in …
1350 …private lastDelayExpandIndex: number = this.INITIAL_INVALID_VALUE; // record last passing node in …
1351 private timeoutExpandId: number = this.INITIAL_INVALID_VALUE;
1352 private lastTimeoutExpandId: number = this.INITIAL_INVALID_VALUE;
1353 private clearTimeoutExpandId: number = this.INITIAL_INVALID_VALUE;
1354 private timeoutHighLightId: number = this.INITIAL_INVALID_VALUE;
1355 private lastTimeoutHighLightId: number = this.INITIAL_INVALID_VALUE;
1356 private clearTimeoutHighLightId: number = this.INITIAL_INVALID_VALUE;
1357 …private lastDelayHighLightIndex: number = this.INITIAL_INVALID_VALUE; // record last passing node …
1358 …private lastDelayHighLightId: number = this.INITIAL_INVALID_VALUE; //record last passing node Id i…
1361 private selectedParentNodeId: number = this.INITIAL_INVALID_VALUE;
1364 private currentFocusNodeId: number = this.INITIAL_INVALID_VALUE;
1365 private lastFocusNodeId: number = this.INITIAL_INVALID_VALUE;
1366 private addFocusNodeId: number = this.INITIAL_INVALID_VALUE;
1420 this.listNode[index].setNodeColor(color);
1424 return this.listNode[index].getNodeColor();
1428 if (this.listNode[index].getNodeIsShow()) {
1429 this.listNode[index].setNodeBorder(isClearFocusStatus);
1434 let nodeInfo: NodeInfo = this.listNode[index];
1448 let nodeInfo: NodeInfo = this.listNode[index];
1451 this.expandAndCollapseInfo.get(nodeInfo.getCurrentNodeId()));
1456 if (this.lastIndex == -1 || this.lastIndex >= this.listNode.length) {
1459 this.setImageSource(this.lastIndex, InteractionStatus.Normal);
1460 this.changeNodeColor(this.lastIndex, this.listNode[this.lastIndex].getNodeStatus().normal);
1461 this.handleFocusEffect(this.lastIndex, false);
1462this.notifyDataChange(this.loadedNodeIdAndIndexMap.get(this.listNode[this.lastIndex].getCurrentNod…
1467 let tmp: NodeInfo[] = this.ListNode;
1469 if (this.expandAndCollapseInfo.get(nodeId) == NodeStatus.Expand) {
1470 this.expandAndCollapseInfo.set(nodeId, NodeStatus.Collapse);
1472 } else if (this.expandAndCollapseInfo.get(nodeId) == NodeStatus.Collapse) {
1473 this.expandAndCollapseInfo.set(nodeId, NodeStatus.Expand);
1480 let tmp: NodeInfo[] = this.ListNode;
1482 if (!this.expandAndCollapseInfo.has(nodeId)) {
1486 let rootNodeStatus: NodeStatus = this.expandAndCollapseInfo.get(nodeId);
1492 this.notifyDataReload();
1508 if(this.expandAndCollapseInfo.get(nodeId) == NodeStatus.Expand) {
1509 this.handleExpandAndCollapse(childNum[i]);
1514 this.notifyDataReload();
1519 this.listNode = [];
1520 this.listNodeUtils = listNodeUtils;
1521 this.loadedNodeIdAndIndexMap.clear();
1522 this.listNodeUtils.traverseNodeDF((node: NodeItem): boolean => {
1525 this.listNode.push(nodeInfo);
1527 this.expandAndCollapseInfo.set(nodeInfo.getCurrentNodeId(), NodeStatus.Collapse);
1530 this.loadedNodeIdAndIndexMap.set(nodeInfo.getCurrentNodeId(), index++);
1533 this.nodeIdAndSubtitleMap.set(nodeInfo.getCurrentNodeId(),
1545 for (let j = 0; j < this.listNode.length; j++) {
1546 if (this.listNode[j].getNodeCurrentNodeId() == removeNodeIdList[i]) {
1547 let currentNodeId = this.listNode[j].getNodeCurrentNodeId();
1548 if (this.loadedNodeIdAndIndexMap.has(currentNodeId)) {
1549 // this.listNode index to lazyForEach index.
1550 deleteIndexList.push(this.loadedNodeIdAndIndexMap.get(currentNodeId));
1552 let deleteNode = this.listNode.splice(j, 1);
1554 if (this.expandAndCollapseInfo.has(removeNodeIdList[i])) {
1555this.expandAndCollapseInfo.delete(removeNodeIdList[i]); // delete deleteNode expandAndCollapseInfo.
1562 this.notifyDataDelete(value); // notifyDataDelete do not update data.
1563 this.notifyDataChange(value); // call notifyDataChange to update data.
1566 for (let i = 0; i < this.listNode.length; i++) {
1567 if (this.listNode[i].getNodeCurrentNodeId() == parentNodeInfo.getNodeCurrentNodeId()) {
1569 this.listNode[i].handleImageCollapseAfterAddNode(false);
1571 this.expandAndCollapseInfo.delete(parentNodeInfo.getNodeCurrentNodeId());
1572this.notifyDataChange(this.loadedNodeIdAndIndexMap.get(this.listNode[i].getNodeCurrentNodeId()));
1578 this.appEventBus.emit(TreeListenType.NODE_DELETE, [callbackParam]);
1583 this.listNodeUtils.traverseNodeDF((node: NodeItem): boolean => {
1593 for (let i = 0; i < this.listNode.length; i++) {
1594 if (this.listNode[i].getNodeCurrentNodeId() == addNodeInfo.getNodeParentNodeId()) {
1596 if (this.listNode[i].getNodeItem().imageCollapse == null) {
1597 this.listNode[i].handleImageCollapseAfterAddNode(true);
1598 this.notifyDataChange(index);
1599 …} else if (this.expandAndCollapseInfo.get(this.listNode[i].getNodeCurrentNodeId()) == NodeStatus.C…
1600 this.changeNodeStatus(index);
1602 this.listNode.splice(i + 1, 0, addNodeInfo);
1603this.listNode[i + 1].setTitleAndInputTextStatus(true); // false->true: realize inner Interaction.
1604 this.listNode[i + 1].setNodeIsShow(true);
1605 this.listNode[i + 1].setListItemHeight(LIST_ITEM_HEIGHT);
1606this.setImageSource(i + 1, InteractionStatus.Edit); // Normal->Edit : realize inner Interaction.
1607 this.currentOperation = MenuOperation.ADD_NODE;
1608 this.notifyDataAdd(i + 1);
1609 this.notificationNodeInfo(i+1, this.currentOperation);
1613 this.modifyNodeIndex = index + 1;
1614 this.expandAndCollapseInfo.set(addNodeInfo.getNodeParentNodeId(), NodeStatus.Expand);
1615 this.handleExpandAndCollapse(index);
1621 this.listNodeUtils = listNodeUtils;
1622 this.listNodeUtils.traverseNodeDF((node: NodeItem): boolean => {
1631 this.nodeIdAndSubtitleMap.set(parentNodeId, this.selectedParentNodeSubtitle);
1632 this.notifyDataChange(this.loadedNodeIdAndIndexMap.get(parentNodeId));
1633 this.refreshRemoveNodeData(changeNodeIdList, parentNodeInfo);
1637 this.addFocusNodeId = changeNodeIdList[0];
1638 this.nodeIdAndSubtitleMap.set(this.getClickNodeId(), this.selectedParentNodeSubtitle);
1639 this.nodeIdAndSubtitleMap.set(changeNodeIdList[0], this.insertNodeSubtitle);
1640 this.refreshAddNodeData(changeNodeIdList);
1645 this.thisIndex = index;
1649 if (this.thisIndex < 0 || this.thisIndex >= this.ListNode.length) {
1652 return this.ListNode[this.thisIndex].getCurrentNodeId();
1656 this.changeNodeStatus(clickIndex);
1657 this.handleExpandAndCollapse(clickIndex)
1661 return this.isTouchDown;
1665 return this.lastIndex;
1670 if (this.isDrag) {
1675 if (index != this.lastIndex) {
1676 this.clearLastIndexStatus();
1679 … let lazyForEachIndex = this.loadedNodeIdAndIndexMap.get(this.listNode[index].getCurrentNodeId());
1682 this.isTouchDown = true;
1683 this.changeNodeColor(index, this.listNode[index].getNodeStatus().press);
1686 if (this.isInnerDrag) {
1687 this.isInnerDrag = false;
1689 this.isTouchDown = false;
1690 let nodeInfo: NodeInfo = this.listNode[index];
1691 this.setImageSource(index, InteractionStatus.Selected);
1692 this.lastIndex = index;
1693 this.changeNodeColor(index, nodeInfo.getNodeStatus().selected);
1694 this.notifyDataChange(lazyForEachIndex);
1698 if (this.getNodeColor(index) != this.listNode[index].getNodeStatus().selected) {
1699 this.changeNodeColor(index, this.listNode[index].getNodeStatus().hover);
1700 this.notifyDataChange(lazyForEachIndex);
1704 if (this.getNodeColor(index) != this.listNode[index].getNodeStatus().selected) {
1705 this.changeNodeColor(index, this.listNode[index].getNodeStatus().normal);
1706 this.notifyDataChange(lazyForEachIndex);
1710 this.handleFocusEffect(index, true);
1711 this.notifyDataChange(lazyForEachIndex);
1714 this.handleFocusEffect(index, false);
1715 this.notifyDataChange(lazyForEachIndex);
1718 this.lastIndex = index;
1719 this.finishEditing();
1722 this.isTouchDown = false;
1723 let nodeInfo: NodeInfo = this.listNode[index];
1724 this.setImageSource(index, InteractionStatus.Selected);
1725 this.lastIndex = index;
1726 this.changeNodeColor(index, nodeInfo.getNodeStatus().selected);
1727 this.notifyDataChange(lazyForEachIndex);
1736 let modifyNodeInfo: NodeInfo = this.listNode[this.modifyNodeIndex];
1739 this.appEventBus.emit(TreeListenType.NODE_MODIFY,
1742 let addNodeInfo: NodeInfo = this.listNode[addNodeId];
1751 this.appEventBus.emit(TreeListenType.NODE_ADD,
1757 if (this.modifyNodeIndex!= -1) {
1758 this.setImageSource(this.modifyNodeIndex, InteractionStatus.FinishEdit);
1759 this.setImageCollapseSource(this.modifyNodeIndex, InteractionStatus.FinishEdit);
1760 this.listNode[this.modifyNodeIndex].setIsModify(false);
1761 this.listNode[this.modifyNodeIndex].setTitleAndInputTextStatus(false);
1762 this.notificationNodeInfo(this.modifyNodeIndex, this.currentOperation);
1763 this.notifyDataChange(this.modifyNodeIndex);
1773 for (let i = 0; i < this.listNode.length; i++) { // nodeId to find index
1774 if (this.listNode[i].getCurrentNodeId() == nodeId) {
1779 let nodeInfo: NodeInfo = this.listNode[index];
1785 this.currentOperation = MenuOperation.MODIFY_NODE;
1787 this.setImageSource(index, InteractionStatus.Edit);
1788 this.setImageCollapseSource(index, InteractionStatus.Edit);
1789 this.modifyNodeIndex = index;
1799 this.notifyDataChange(this.loadedNodeIdAndIndexMap.get(nodeId));
1803 let nodeInfo: NodeInfo = this.listNode[index];
1806 this.setImageSource(index, InteractionStatus.FinishEdit);
1807 this.setImageCollapseSource(index, InteractionStatus.FinishEdit);
1808 this.notificationNodeInfo(this.modifyNodeIndex, this.currentOperation);
1809 this.notifyDataChange(this.loadedNodeIdAndIndexMap.get(nodeInfo.getCurrentNodeId()));
1814 let nodeInfo: NodeInfo = this.listNode[index];
1816 // this.listNode index to lazyForEach index.
1817 let lazyForEachIndex = this.loadedNodeIdAndIndexMap.get(nodeInfo.getCurrentNodeId());
1819 this.notifyDataChange(lazyForEachIndex);
1844 this.notifyDataChange(lazyForEachIndex);
1848 if (this.listNode[index].getNodeItem().mainTitleNode != null) {
1849 this.listNode[index].getNodeItem().mainTitleNode.popUpTimeout = timeout;
1851 // this.notifyDataChange(index) lazyForEachIndex;
1852 … let lazyForEachIndex = this.loadedNodeIdAndIndexMap.get(this.listNode[index].getCurrentNodeId());
1853 this.notifyDataChange(lazyForEachIndex);
1857 this.modifyNodeIndex = index;
1858 if (this.listNode[index].getNodeItem().mainTitleNode != null) {
1859 this.listNode[index].getNodeItem().mainTitleNode.title = text;
1860 // this.listNode index to lazyForEach index.
1861 … let lazyForEachIndex = this.loadedNodeIdAndIndexMap.get(this.listNode[index].getCurrentNodeId());
1862 this.notifyDataChange(lazyForEachIndex);
1867 return this.listNode;
1873 this.loadedNodeIdAndIndexMap.clear();
1874 for (let i =0 ; i < this.listNode.length; i++) {
1875 if (this.listNode[i].getNodeIsShow()) {
1876 this.loadedNodeIdAndIndexMap.set(this.listNode[i].getCurrentNodeId(), index++);
1885 for (let i = 0; i < this.listNode.length; i++) {
1886 if (this.listNode[i].getNodeIsShow()) {
1888 return this.listNode[i];
1897 this.listNode.splice(index, 0, data)
1898 this.notifyDataAdd(index)
1902 this.listNode.push(data)
1903 this.notifyDataAdd(this.listNode.length - 1)
1907 this.isInnerDrag = isInnerDrag;
1911 return this.isInnerDrag;
1915 this.isDrag = isDrag;
1919 return this.isDrag;
1923 this.currentNodeInfo = currentNodeInfo;
1927 return this.currentNodeInfo;
1931 this.draggingParentNodeId = draggingParentNodeId;
1935 return this.draggingParentNodeId;
1939 return this.draggingCurrentNodeId;
1943 this.draggingCurrentNodeId = draggingCurrentNodeId;
1947 this.listItemOpacity = listItemOpacity;
1951 return item.getCurrentNodeId() == this.getDraggingCurrentNodeId() ? this.listItemOpacity : 1;
1955 return this.DRAG_POPUP;
1959 this.lastPassIndex = lastPassIndex;
1963 return this.lastPassIndex;
1967 let selectedNodeItem: NodeItem = this.currentNodeInfo.getNodeInfoNode();
1976 this.listNodeUtils.traverseNodeDF(callback, selectedNodeItem);
1981 this.thisPassIndex = thisPassIndex;
1985 return this.thisPassIndex;
1989 …if (this.lastPassId != this.INITIAL_INVALID_VALUE && this.loadedNodeIdAndIndexMap.has(this.lastPas…
1990 let index: number = this.loadedNodeIdAndIndexMap.get(this.lastPassId);
1991 let that =this;
1992 this.ListNode.forEach(function(value) {
1997 this.notifyDataChange(index);
2000 if ((this.lastTimeoutHighLightId != this.INITIAL_INVALID_VALUE &&
2001 this.clearTimeoutHighLightId != this.lastTimeoutHighLightId)) {
2002 clearTimeout(this.lastTimeoutHighLightId);
2003 if (this.lastDelayHighLightIndex != this.INITIAL_INVALID_VALUE) {
2004 this.clearHighLight(this.lastDelayHighLightIndex);
2005 let index: number = this.loadedNodeIdAndIndexMap
2006 .get(this.listNode[this.lastDelayHighLightIndex].getCurrentNodeId());
2007 this.notifyDataChange(index);
2009 this.clearTimeoutHighLightId = this.lastTimeoutHighLightId;
2011 this.lastTimeoutHighLightId = this.timeoutHighLightId;
2012 this.lastDelayHighLightIndex = currentIndex;
2014 if ((this.lastTimeoutExpandId != this.INITIAL_INVALID_VALUE &&
2015 this.clearTimeoutExpandId != this.lastTimeoutExpandId)) {
2016 clearTimeout(this.lastTimeoutExpandId);
2017 this.clearTimeoutExpandId = this.lastTimeoutExpandId;
2019 this.lastTimeoutExpandId = this.timeoutExpandId;
2020 this.lastDelayExpandIndex = this.INITIAL_INVALID_VALUE;
2024 this.changeNodeColor(currentIndex, this.listNode[currentIndex].getNodeStatus().normal);
2025 this.changeNodeHighLightColor(currentIndex, false);
2026 this.setImageSource(currentIndex, InteractionStatus.FinishDragInsert);
2027 this.setImageCollapseSource(currentIndex, InteractionStatus.FinishDragInsert);
2028 this.listNode[currentIndex].setIsHighLight(false);
2032 … if (this.listNode[index].getNodeItem().mainTitleNode && this.listNode[index].getIsShowTitle()) {
2033 this.listNode[index].getNodeItem().mainTitleNode.setMainTitleHighLight(isHighLight);
2038 let isChanged: boolean = (this.thisPassIndex != index || this.flag != flag) ? true : false;
2039 this.thisPassIndex = index;
2040 if ((isChanged || isOverBorder) && this.isInnerDrag) {
2041 this.flag = flag;
2042 let currentNodeId: number = this.getData(index).getCurrentNodeId();
2043 …let currentNodeLevel: number = this.expandAndCollapseInfo.get(currentNodeId) == NodeStatus.Expand …
2044this.flag == Flag.DOWN_FLAG ? this.getData(index).getNodeLevel() + 1 : this.getData(index).getNode…
2045 …if (this.lastPassId != this.INITIAL_INVALID_VALUE && this.loadedNodeIdAndIndexMap.has(this.lastPas…
2046 let lastIndex: number = this.loadedNodeIdAndIndexMap.get(this.lastPassId);
2047 let that = this;
2048 this.ListNode.forEach(function (value) {
2053 this.notifyDataChange(lastIndex);
2055 if (this.flag == Flag.DOWN_FLAG && index < this.totalCount() - 1) {
2056 this.getData(index).setCanShowFlagLine(false);
2057 this.getData(index+1).setCanShowFlagLine(true);
2058 this.getData(index).setCanShowBottomFlagLine(false);
2059 this.getData(index+1).setFlagLineLeftMargin(currentNodeLevel);
2060 this.notifyDataChange(index);
2061 this.notifyDataChange(index + 1);
2062 this.lastPassId = this.getData(index + 1).getNodeCurrentNodeId();
2063 } else if (this.flag == Flag.UP_FLAG && index < this.totalCount() - 1) {
2064 this.getData(index).setCanShowFlagLine(true);
2065 this.getData(index+1).setCanShowFlagLine(false);
2066 this.getData(index).setCanShowBottomFlagLine(false);
2067 this.getData(index).setFlagLineLeftMargin(currentNodeLevel);
2068 this.notifyDataChange(index);
2069 this.notifyDataChange(index + 1);
2070 this.lastPassId = this.getData(index).getNodeCurrentNodeId();
2071 } else if (index >= this.totalCount() - 1) {
2072 if (this.flag == Flag.DOWN_FLAG) {
2073 this.getData(index).setCanShowFlagLine(false);
2074 this.getData(index).setCanShowBottomFlagLine(true);
2076 this.getData(index).setCanShowFlagLine(true);
2077 this.getData(index).setCanShowBottomFlagLine(false);
2079 this.getData(index).setFlagLineLeftMargin(currentNodeLevel);
2080 this.notifyDataChange(index);
2081 this.lastPassId = this.getData(index).getNodeCurrentNodeId();
2087 let isChangIndex: boolean = currentIndex != this.lastDelayExpandIndex ? true : false;
2088 let isOverBorder: boolean = this.getData(showIndex).getIsOverBorder();
2090 this.lastDelayExpandIndex = this.INITIAL_INVALID_VALUE;
2092 this.lastDelayExpandIndex = currentIndex;
2095 let that = this;
2098 let canDelayHighLight: boolean = !isOverBorder && (!this.isInnerDrag ||
2099 … (this.expandAndCollapseInfo.get(currentNodeId) == NodeStatus.Collapse && this.isInnerDrag) ||
2100 … (!this.expandAndCollapseInfo.has(currentNodeId) && this.listNode[currentIndex].getIsFolder()));
2103 this.changeNodeColor(currentIndex, this.listNode[currentIndex].getNodeStatus().hover);
2104 this.notifyDataChange(showIndex);
2106 let delayHighLightTime: number = this.isInnerDrag ? 1000 : 0; // ms
2107 this.timeoutHighLightId = setTimeout(function() {
2111 if (isOverBorder || (this.lastTimeoutHighLightId != this.INITIAL_INVALID_VALUE &&
2112 this.clearTimeoutHighLightId != this.lastTimeoutHighLightId)) {
2113 clearTimeout(this.lastTimeoutHighLightId);
2114 if (this.lastDelayHighLightIndex != this.INITIAL_INVALID_VALUE) {
2115 this.clearHighLight(this.lastDelayHighLightIndex);
2116 this.notifyDataReload();
2118 this.clearTimeoutHighLightId = this.lastTimeoutHighLightId;
2120 this.lastTimeoutHighLightId = this.timeoutHighLightId;
2121 this.lastDelayHighLightIndex = currentIndex;
2124 if (!isOverBorder && this.expandAndCollapseInfo.get(currentNodeId) == NodeStatus.Collapse) {
2125 …let firstChildNodeId: number = this.getData(showIndex).getNodeInfoNode().children[0].currentNodeId;
2127 this.timeoutExpandId = setTimeout(function() {
2132 if (isOverBorder || (this.lastTimeoutExpandId != this.INITIAL_INVALID_VALUE &&
2133 this.clearTimeoutExpandId != this.lastTimeoutExpandId)) {
2134 clearTimeout(this.lastTimeoutExpandId);
2135 this.clearTimeoutExpandId = this.lastTimeoutExpandId;
2137 this.lastTimeoutExpandId = this.timeoutExpandId;
2142 let that =this;
2143 this.ListNode.forEach(function (value) {
2149 this.changeNodeColor(currentIndex, this.listNode[currentIndex].getNodeStatus().highLight);
2150 this.listNode[currentIndex].setIsHighLight(true);
2151 this.changeNodeHighLightColor(currentIndex, true);
2152 this.setImageSource(currentIndex, InteractionStatus.DragInsert);
2153 this.setImageCollapseSource(currentIndex, InteractionStatus.DragInsert);
2154 this.notifyDataReload();
2158 let that =this;
2159 this.ListNode.forEach(function (value) {
2165 this.ListNode.forEach(function (value) {
2170 this.changeNodeStatus(currentIndex);
2171 this.handleExpandAndCollapse(currentIndex);
2172 this.lastPassId = firstChildNodeId;
2176 …if (this.lastPassId != this.INITIAL_INVALID_VALUE && this.loadedNodeIdAndIndexMap.has(this.lastPas…
2177 let that = this;
2178 this.ListNode.forEach(function (value) {
2184 let index: number = this.loadedNodeIdAndIndexMap.get(this.lastPassId);
2185 this.notifyDataChange(index);
2190 if (this.lastTimeoutHighLightId != this.INITIAL_INVALID_VALUE &&
2191 this.clearTimeoutHighLightId != this.lastTimeoutHighLightId) {
2192 clearTimeout(this.lastTimeoutHighLightId);
2193 if (this.lastDelayHighLightIndex != this.INITIAL_INVALID_VALUE) {
2194 this.clearHighLight(this.lastDelayHighLightIndex);
2200 if (this.lastTimeoutExpandId != this.INITIAL_INVALID_VALUE &&
2201 this.clearTimeoutExpandId != this.lastTimeoutExpandId) {
2202 clearTimeout(this.lastTimeoutExpandId);
2207 if (this.nodeIdAndSubtitleMap.has(currentNodeId)) {
2208 if (typeof this.nodeIdAndSubtitleMap.get(currentNodeId) == "number") {
2209 return this.nodeIdAndSubtitleMap.get(currentNodeId).toString();
2211 return this.nodeIdAndSubtitleMap.get(currentNodeId)
2219 return this.nodeIdAndSubtitleMap.has(currentNodeId);
2223 this.lastDelayHighLightIndex = this.INITIAL_INVALID_VALUE;
2224 this.lastDelayExpandIndex = this.INITIAL_INVALID_VALUE;
2225 this.lastPassIndex = this.INITIAL_INVALID_VALUE;
2226 this.draggingCurrentNodeId = this.INITIAL_INVALID_VALUE;
2227 this.flag = Flag.NONE;
2231 this.nodeIdAndSubtitleMap.set(this.selectedParentNodeId, this.selectedParentNodeSubtitle);
2232 this.nodeIdAndSubtitleMap.set(insertNodeCurrentNodeId, this.insertNodeSubtitle);
2233 this.notifyDataChange(this.loadedNodeIdAndIndexMap.get(this.selectedParentNodeId));
2234 this.notifyDataChange(this.loadedNodeIdAndIndexMap.get(insertNodeCurrentNodeId));
2242 this.selectedParentNodeId = selectedParentNodeId;
2243 this.selectedParentNodeSubtitle = selectedParentNodeSubtitle;
2244 this.insertNodeSubtitle = insertNodeSubtitle;
2248 return this.insertNodeSubtitle;
2252 return this.expandAndCollapseInfo.get(currentNodeId);
2256 return this.lastDelayHighLightId;
2260 this.ListNode.forEach((value, index) => {
2261 if (index == this.lastDelayHighLightIndex) {
2262 this.lastDelayHighLightId = value.getCurrentNodeId();
2268 this.lastPassId = lastPassId;
2272 this.lastDelayHighLightIndex = lastDelayHighLightIndex;
2290 let insertChildIndex: number = this.INITIAL_INVALID_VALUE;
2291 let currentChildIndex: number = this.INITIAL_INVALID_VALUE;
2292 let isDownFlag: boolean = this.flag == Flag.DOWN_FLAG ? true : false;
2294 currentChildIndex = this.getChildIndex(dragParentNodeId, dragCurrentNodeId);
2295 insertChildIndex = this.getChildIndex(rearParentNodeId, rearCurrentNodeId);
2307 for (let i = 0; i < this.listNode.length; i++) {
2308 if (this.listNode[i].getCurrentNodeId() == rearCurrentNodeId) {
2309 isHighLight = this.listNode[i].getIsHighLight();
2310 …if (this.flag == Flag.DOWN_FLAG && this.expandAndCollapseInfo.get(rearCurrentNodeId) == NodeStatus…
2313 …} else if (this.flag == Flag.UP_FLAG && this.expandAndCollapseInfo.get(rearCurrentNodeId) == NodeS…
2314 && this.listNode[i].getCanShowFlagLine() == false) {
2328 this.appEventBus.emit(TreeListenType.NODE_MOVE, [callbackParam]);
2353 this.listNodeUtils.dragTraverseNodeDF(callback, nodeInfoNode, this.listNode);
2356this.listNodeUtils.removeNode(dragCurrentNodeId, dragParentNodeId, this.listNodeUtils.traverseNode…
2366 if (this.expandAndCollapseInfo.get(rearCurrentNodeId) == NodeStatus.Expand) {
2368 this.listNode.forEach((value) => {
2373 insertCurrentNodeId = this.INITIAL_INVALID_VALUE;
2377 } else if (!this.expandAndCollapseInfo.get(rearCurrentNodeId) && isHighLight) {
2378 this.expandAndCollapseInfo.set(rearCurrentNodeId, NodeStatus.Expand);
2381this.listNodeUtils.addDragNode(dragNodeParam[0].parentId, dragNodeParam[0].currentId, insertCurren…
2386this.listNodeUtils.addNode(dragNodeParam[j].parentId, dragNodeParam[j].currentId, dragNodeParam[j]…
2390 for (let i = 0; i < this.listNode.length; i++) {
2391 if (this.listNode[i].getCurrentNodeId() == dragParentNodeId) {
2392 if (this.listNode[i].getNodeInfoNode().getNodeItem().imageCollapse == null) {
2393 this.listNode[i].handleImageCollapseAfterAddNode(false);
2394 this.expandAndCollapseInfo.delete(dragParentNodeId);
2399 let tmp: NodeInfo[] = [...this.listNode];
2400 this.reloadListNode(this.listNodeUtils, tmp);
2411 this.listNode = [];
2412 this.listNodeUtils = listNodeUtils;
2413 this.loadedNodeIdAndIndexMap.clear();
2414 this.listNodeUtils.traverseNodeDF((node: NodeItem): boolean => {
2417 this.listNode.push(nodeInfo);
2419 if (this.expandAndCollapseInfo.get(node.currentNodeId) == NodeStatus.Expand) {
2421 } else if (this.expandAndCollapseInfo.get(node.currentNodeId) == NodeStatus.Collapse) {
2436 this.loadedNodeIdAndIndexMap.set(nodeInfo.getCurrentNodeId(), index++);
2444 return this.FLAG_LINE;
2448 let lastShowIndex: number = this.loadedNodeIdAndIndexMap.get(nodeInfo.getCurrentNodeId()) - 1;
2449 if (lastShowIndex > this.INITIAL_INVALID_VALUE) {
2450 let lastNodeInfo: NodeInfo = this.getData(lastShowIndex);
2460 return this.subTitle;
2464 if (this.loadedNodeIdAndIndexMap.has(nodeId)) {
2465 return this.getData(this.loadedNodeIdAndIndexMap.get(nodeId)).getIsFolder();
2471 return isHighLight ? this.subTitle.highLightFontColor : this.subTitle.normalFontColor;
2475 let insertChildIndex: number = this.INITIAL_INVALID_VALUE;
2476 this.listNodeUtils.traverseNodeBF(function(node): boolean {
2491 this.currentFocusNodeId = focusNodeId;
2495 return this.currentFocusNodeId;
2499 this.lastFocusNodeId = focusNodeId;
2503 return this.lastFocusNodeId;
2507 return this.addFocusNodeId;
2511 this.flag = flag;
2516 function findCurrentNodeIndex(this, currentNodeId: number): number {
2518 this.listNodeDataSource.ListNode.forEach(function (value, index) {
2529 * When you create this component, you must initialize the listNodeDataSource.
2548 private touchDownCount: number = this.INITIAL_INVALID_VALUE;
2559this.listTreeViewWidth = (this.listTreeViewWidth === undefined) ? 200 : this.listTreeViewWidth;
2560 this.listNodeDataSource = this.treeController.getListNodeDataSource();
2585 this.listTreeViewMenu()
2597 .opacity(this.listNodeDataSource.getDragPopupPara().imageOpacity)
2609 .fontColor(this.listNodeDataSource.getDragPopupPara().fontColor)
2610 .fontWeight(this.listNodeDataSource.getDragPopupPara().fontWeight)
2616 this.listNodeDataSource.getDragPopupPara().textConstraintSize.minWidth1 :
2617 this.listNodeDataSource.getDragPopupPara().textConstraintSize.minWidth2,
2619 this.listNodeDataSource.getDragPopupPara().textConstraintSize.maxWidth1 :
2620 this.listNodeDataSource.getDragPopupPara().textConstraintSize.maxWidth2 })
2622 ….constraintSize({ minWidth: this.listNodeDataSource.getDragPopupPara().floorConstraintSize.minWidt…
2623 maxWidth: this.listNodeDataSource.getDragPopupPara().floorConstraintSize.maxWidth })
2624 .height(this.listNodeDataSource.getDragPopupPara().height)
2625 .backgroundColor(this.listNodeDataSource.getDragPopupPara().backgroundColor)
2626 .padding({ left: this.listNodeDataSource.getDragPopupPara().padding.left,
2627 right: this.listNodeDataSource.getDragPopupPara().padding.right })
2628 .shadow({ radius: this.listNodeDataSource.getDragPopupPara().shadow.radius,
2629 color: this.listNodeDataSource.getDragPopupPara().shadow.color,
2630 offsetY: this.listNodeDataSource.getDragPopupPara().shadow.offsetY })
2631 .borderRadius(this.listNodeDataSource.getDragPopupPara().borderRadius) // need to doubleCheck.
2636 LazyForEach(this.listNodeDataSource, (item: NodeInfo) => {
2641 .height(this.listNodeDataSource.getFlagLine().flagLineHeight)
2642 .color(this.listNodeDataSource.getFlagLine().flagLineColor)
2643 .visibility(this.listNodeDataSource.getVisibility(item))
2646 .markAnchor({ x: this.listNodeDataSource.getFlagLine().xOffset,
2647 y: this.listNodeDataSource.getFlagLine().yTopOffset })
2660 let that = this;
2665 let that = this;
2686 let that = this;
2687 this.listNodeDataSource.handleEvent(Event.FOCUS,
2691 let that = this;
2707 … .padding({ left: this.textInputPadding.left, right: this.textInputPadding.right,
2708 … top: this.textInputPadding.top, bottom: this.textInputPadding.bottom })
2710 let that = this;
2730 if ((that.checkIsAllCN(res) && res.length > this.MAX_CN_LENGTH) ||
2731 (!that.checkIsAllCN(res) && res.length > this.MAX_EN_LENGTH)) {
2733 … res.substr(0, this.MAX_CN_LENGTH) : res.substr(0, this.MAX_EN_LENGTH);
2748 let that = this;
2760 if (this.listNodeDataSource.hasSubtitle(item.getCurrentNodeId())) {
2762 Text(this.listNodeDataSource.getSubtitle(item.getCurrentNodeId()))
2763 .fontSize(this.listNodeDataSource.getSubTitlePara().fontSize)
2764 ….fontColor(this.listNodeDataSource.getSubTitleFontColor(item.getIsHighLight() || item.getIsModify(…
2765 .fontWeight(this.listNodeDataSource.getSubTitlePara().fontWeight)
2767 .margin({ left: this.listNodeDataSource.getSubTitlePara().margin.left,
2769 0 : this.listNodeDataSource.getSubTitlePara().margin.right })
2784 let that = this;
2787this.listNodeDataSource.setCurrentFocusNodeId(item.getCurrentNodeId());
2799 let that = this;
2804 this.touchDownCount ++;
2805this.isMultiPress = this.touchDownCount > this.MAX_TOUCH_DOWN_COUNT ? true : false;
2806 if (!this.listNodeDataSource.getIsTouchDown()) {
2811 this.touchDownCount--;
2812 if (this.touchDownCount < this.MAX_TOUCH_DOWN_COUNT) {
2813 this.isMultiPress = false;
2816 this.appEventBus.emit(TreeListenType.NODE_CLICK, [callbackParam]);
2821 let that = this;
2834 let that = this;
2849 .bindContextMenu(this.builder, ResponseType.RightClick)
2851 .opacity(this.listNodeDataSource.getListItemOpacity(item))
2852 .markAnchor({ x: this.listNodeDataSource.getFlagLine().xOffset,
2853 y: this.listNodeDataSource.getFlagLine().yBasePlateOffset })
2855 … if (this.listNodeDataSource.getPassIndex() == this.listNodeDataSource.totalCount() - 1 &&
2858 .height(this.listNodeDataSource.getFlagLine().flagLineHeight)
2859 .color(this.listNodeDataSource.getFlagLine().flagLineColor)
2863 .markAnchor({ x: this.listNodeDataSource.getFlagLine().xOffset,
2864 y: this.listNodeDataSource.getFlagLine().yBottomOffset })
2870 let that = this;
2875 this.listTreeViewMenu = item.getMenu();
2882 .padding({ top: this.itemPadding.top, bottom: this.itemPadding.bottom })
2884 … builder: this.popupForShowTitle(item.getPopUpInfo().popUpText, item.getPopUpInfo().popUpColor,
2896 .padding({ left: this.itemPadding.left, right: this.itemPadding.right})
2899 …if (this.listNodeDataSource.getIsDrag() || this.listNodeDataSource.getIsInnerDrag() || this.isMult…
2903 this.dropSelectedIndex = JSON.parse(extraParams).selectedIndex;
2905 let currentNodeInfo = this.listNodeDataSource.getData(currentNodeIndex);
2909 … if (currentNodeIndex >= this.listNodeDataSource.totalCount() || currentNodeIndex == undefined) {
2914 this.listNodeDataSource.setIsInnerDrag(true);
2915 this.listNodeDataSource.setIsDrag(true);
2916 this.listNodeDataSource.setCurrentNodeInfo(currentNodeInfo);
2917this.listNodeDataSource.setDraggingCurrentNodeId(currentNodeInfo.getNodeCurrentNodeId());
2918 this.listNodeDataSource.setDraggingParentNodeId(currentNodeInfo.getNodeParentNodeId());
2922 this.listNodeDataSource.setListItemOpacity(draggingNodeOpacity);
2923 this.listNodeDataSource.notifyDataChange(currentNodeIndex);
2931 this.listNodeDataSource.setIsDrag(false);
2934 return this.draggingPopup(currentNodeInfo);
2937 }.width(this.listTreeViewWidth).height(this.listTreeViewHeight)
2941 if (this.isMultiPress) {
2955 if (index >= this.listNodeDataSource.totalCount()) {
2957 index = this.listNodeDataSource.totalCount() - 1;
2958 this.listNodeDataSource.getData(index).setIsOverBorder(true);
2961 this.listNodeDataSource.getData(index).setIsOverBorder(false);
2964 let currentNodeInfo: NodeInfo = this.listNodeDataSource.getData(index);
2971 …if (index != this.listNodeDataSource.getLastPassIndex() && this.listNodeDataSource.getIsInnerDrag(…
2972 …let isParentNodeOfInsertNode: boolean = this.listNodeDataSource.getIsParentOfInsertNode(currentNod…
2974 this.listNodeDataSource.setPassIndex(index);
2975 let that = this;
2976this.listNodeDataSource.clearTimeOutAboutDelayHighLightAndExpand(findCurrentNodeIndex.call(that,
2978 this.listNodeDataSource.setFlag(Flag.NONE);
2982 this.listNodeDataSource.setLastPassIndex(index);
2985 this.listNodeDataSource.setVisibility(flag, index, isOverBorder);
2988 if (currentNodeId != this.listNodeDataSource.getDraggingCurrentNodeId()) {
2989 let that = this;
2990this.listNodeDataSource.delayHighLightAndExpandNode(findCurrentNodeIndex.call(that, currentNodeId),
2997 if (this.listNodeDataSource.getIsInnerDrag()) {
2998 this.listNodeDataSource.setIsDrag(true);
3002 this.listNodeDataSource.setListItemOpacity(draggingNodeOpacity);
3008 this.listNodeDataSource.hideLastLine();
3009 this.listNodeDataSource.clearLastTimeoutHighLight();
3010 this.listNodeDataSource.clearLastTimeoutExpand();
3012 this.listNodeDataSource.setListItemOpacity(draggingNodeOpacity);
3013 this.listNodeDataSource.setIsDrag(false);
3014 this.listNodeDataSource.notifyDataReload();
3019 this.listNodeDataSource.clearLastTimeoutExpand();
3021 this.listNodeDataSource.setListItemOpacity(draggingNodeOpacity);
3022 let insertNodeIndex: number = this.listNodeDataSource.getPassIndex();
3023 let currentNodeIndex: number = this.dropSelectedIndex;
3025 …if (currentNodeIndex - 1 > this.listNodeDataSource.totalCount() || currentNodeIndex == undefined) {
3027 this.listNodeDataSource.setIsDrag(false);
3031 if (insertNodeIndex == this.listNodeDataSource.totalCount()) {
3036 let insertNodeInfo: NodeInfo = this.listNodeDataSource.getData(insertNodeIndex);
3040 if (!this.listNodeDataSource.getIsDrag() || !this.listNodeDataSource.getIsInnerDrag()) {
3041 this.listNodeDataSource.clearLastTimeoutHighLight();
3042 this.listNodeDataSource.setIsInnerDrag(false);
3043 this.listNodeDataSource.hideLastLine();
3044 this.listNodeDataSource.initialParameterAboutDelayHighLightAndExpandIndex();
3045 this.listNodeDataSource.refreshSubtitle(insertNodeCurrentNodeId);
3046 this.listNodeDataSource.notifyDataReload();
3050 let currentNodeInfo: NodeInfo = this.listNodeDataSource.getCurrentNodeInfo();
3052 let draggingCurrentNodeId: number = this.listNodeDataSource.getDraggingCurrentNodeId();
3053 let draggingParentNodeId: number = this.listNodeDataSource.getDraggingParentNodeId();
3059 …let isParentNodeOfInsertNode: boolean = this.listNodeDataSource.getIsParentOfInsertNode(insertNode…
3061 this.listNodeDataSource.clearLastTimeoutHighLight();
3062 this.listNodeDataSource.setIsInnerDrag(false);
3063 this.listNodeDataSource.hideLastLine();
3064 this.listNodeDataSource.notifyDataChange(insertNodeIndex);
3065 this.listNodeDataSource.initialParameterAboutDelayHighLightAndExpandIndex();
3066 this.listNodeDataSource.setIsDrag(false);
3069 let that = this;
3071 this.listNodeDataSource.setClickIndex(currentFocusIndex);
3072 this.listNodeDataSource.handleEvent(Event.DRAG, currentFocusIndex);
3077 …if (this.listNodeDataSource.getExpandAndCollapseInfo(draggingCurrentNodeId) == NodeStatus.Expand) {
3078 let that = this;
3079 this.listNodeDataSource.expandAndCollapseNode(
3084 …if (this.listNodeDataSource.getExpandAndCollapseInfo(insertNodeCurrentNodeId) == NodeStatus.Collap…
3085 let that = this;
3087 if (this.listNodeDataSource.ListNode[currentIndex].getIsHighLight()) {
3088 this.listNodeDataSource.expandAndCollapseNode(currentIndex);
3093 this.listNodeDataSource.setLastDelayHighLightId();
3095this.listNodeDataSource.alterDragNode(insertNodeParentNodeId, insertNodeCurrentNodeId, insertNodeI…
3097 this.listNodeDataSource.hideLastLine();
3100 this.listNodeDataSource.hideLastLine();
3101 this.listNodeDataSource.setLastPassId(draggingCurrentNodeId);
3102 this.listNodeDataSource.hideLastLine();
3105 let that = this;
3107 this.listNodeDataSource.getLastDelayHighLightId());
3108 this.listNodeDataSource.setLastDelayHighLightIndex(lastDelayHighLightIndex);
3109 this.listNodeDataSource.clearLastTimeoutHighLight();
3110 this.listNodeDataSource.initialParameterAboutDelayHighLightAndExpandIndex();
3111 this.listNodeDataSource.setIsDrag(false);
3115 this.listNodeDataSource.setClickIndex(currentFocusIndex);
3116 this.listNodeDataSource.handleEvent(Event.DRAG, currentFocusIndex);
3119 this.listNodeDataSource.setIsInnerDrag(false);
3120 this.listNodeDataSource.notifyDataReload();
3159 * this interface is used to obtain the initialization data of
3167 return this.listNodeDataSource;
3180 let clickNodeId = this.listNodeDataSource.getClickNodeId();
3181 return this.listNodeUtils.getClickNodeChildrenInfo(clickNodeId);
3185 let clickNodeId = this.listNodeDataSource.getClickNodeId();
3186 return this.listNodeUtils.getClickChildId(clickNodeId);
3197 let clickNodeId = this.listNodeDataSource.getClickNodeId();
3198 let parentNodeId = this.listNodeUtils.findParentNodeId(clickNodeId);
3199 let removeNodeIdList: number[] = this.listNodeUtils.removeNode(clickNodeId,
3200 parentNodeId, this.listNodeUtils.traverseNodeBF);
3201this.listNodeDataSource.refreshData(this.listNodeUtils, MenuOperation.REMOVE_NODE, parentNodeId, r…
3202 this.nodeIdList.splice(this.nodeIdList.indexOf(clickNodeId), 1);
3213 let clickNodeId = this.listNodeDataSource.getClickNodeId();
3214 this.listNodeDataSource.setItemVisibilityOnEdit(clickNodeId, MenuOperation.MODIFY_NODE);
3232 let clickNodeId: number = this.listNodeDataSource.getClickNodeId();
3233 …if (clickNodeId == this.listNodeDataSource.ROOT_NODE_ID || !this.listNodeDataSource.getIsFolder(cl…
3239 newNodeInfo = this.listNodeUtils.getNewNodeInfo(clickNodeId);
3240 this.nodeIdList.push(this.nodeIdList[this.nodeIdList.length - 1] + 1);
3241 let newNodeId: number = this.nodeIdList[this.nodeIdList.length - 1];
3242 this.listNodeUtils.addNewNodeId = newNodeId;
3243 this.listNodeUtils.addNode(clickNodeId, newNodeId,
3247this.listNodeDataSource.refreshData(this.listNodeUtils, MenuOperation.ADD_NODE, clickNodeId, [newN…
3252 !this.listNodeUtils.checkMainTitleIsValid(nodeParam.primaryTitle)) {
3262 if (nodeParam.currentNodeId === this.ROOT_NODE_ID || nodeParam.currentNodeId === null) {
3266 this.nodeIdList.push(nodeParam.currentNodeId);
3267 this.listNodeUtils.addNode(nodeParam.parentNodeId, nodeParam.currentNodeId, nodeParam);
3268 return this;
3287 this.add();
3290 !this.listNodeUtils.checkMainTitleIsValid(nodeParam.primaryTitle)) {
3300 if (nodeParam.currentNodeId === this.ROOT_NODE_ID || nodeParam.currentNodeId === null) {
3304 this.nodeIdList.push(nodeParam.currentNodeId);
3305 this.listNodeUtils.addNode(nodeParam.parentNodeId, nodeParam.currentNodeId, nodeParam);
3306 return this;
3312 * call this interface to complete initialization.
3318 this.listNodeDataSource.init(this.listNodeUtils);
3319 this.nodeIdList.sort((a, b) => a - b);
3324 this.listNodeDataSource.setNodeSubtitlePara(parentId, parentSubTitle, currentSubtitle);