MatrixTreeModelBus.insertNodeInto((MatrixTreeNode)new ExpandingNextNode(getNumKids(), node.getChildCount(), getTotalKidsLoaded()), node, node.getChildCount());
MatrixTreeNode nextNode = (MatrixTreeNode) new ExpandingNextNode(getNumKids(), node.getChildCount(), getTotalKidsLoaded()); MatrixTreeModelBus.insertNodeInto((MatrixTreeNode) nextNode, node, node.getChildCount());
	private void nodesChanged() {		Iterator nodeIterator = getTreeNodes();		while (nodeIterator.hasNext()) {			MatrixTreeNode node = (MatrixTreeNode) nodeIterator.next();			// boolean to control the refresh of the ExpandingNodes			boolean removedNext = false;			boolean removedPrev = false;			if (!node.hasNextNode() && node.getChildCount() >= AssetManager.getLimit() && getNumKids() > AssetManager.getLimit() && node.getParent() != null) {				// TODO: BUG1666-1				// getChildCount have not been updated here, i.e. the count is from the previous run				MatrixTreeModelBus.insertNodeInto((MatrixTreeNode)new ExpandingNextNode(getNumKids(), node.getChildCount(),					getTotalKidsLoaded()), node, node.getChildCount());			} else if (node.hasNextNode() && (getNumKids() <= AssetManager.getLimit())) {				// TODO: BUG1666-3				// when the last asset in the current set is removed, the nextNode should be removed				// and the assetmap should show the previous set automatically				MatrixTreeNode nextNode = (MatrixTreeNode) node.getChildAt(node.getChildCount()-1);				MatrixTreeModelBus.removeNodeFromParent(nextNode);				removedNext = true;			}			if (node.hasPreviousNode() && (getNumKids() == 0)) {				MatrixTreeNode prevNode = (MatrixTreeNode) node.getChildAt(0);				MatrixTreeModelBus.removeNodeFromParent(prevNode);				removedPrev = true;			}			// update the count and the name, then notify the bus for refresh, BUG 1538			if (node.hasPreviousNode() && !removedPrev) {				ExpandingNode prevNode = (ExpandingNode) node.getChildAt(0);				prevNode.setParentTotalAssets(getNumKids());				prevNode.setName(prevNode.getName());				MatrixTreeModelBus.nodeChanged(prevNode);			}			if (node.hasNextNode() && !removedNext) {				ExpandingNode nextNode = (ExpandingNode) node.getChildAt(node.getChildCount()-1);				nextNode.setParentTotalAssets(getNumKids());				nextNode.setName(nextNode.getName());				MatrixTreeModelBus.nodeChanged(nextNode);			}			MatrixTreeModelBus.nodeChanged(node);		}	}