@Override public void onClick(Node node, int position) { if (!node.isLeaf()) { return; } if (node.isDownloadAll()) { EntityResType2 type2 = GlobalResTypes.ALL_TYPE2S_MAP.get(node.getParent().getId()); List<EntityResType4> entitys = type2.getType4s(); if (null != entitys) { if (node.isClickedDownloadAll()) { node.setClickedDownloadAll(false); refreshDownloadName(node); for (EntityResType4 entity : entitys) { node = mAdapter.getAllNodeMap().get(entity.getId()); if (node.getStatus() == INode.STATUS_START || node.getStatus() == INode.STATUS_WAIT || node.getStatus() == INode.STATUS_CONNECTING) { node.setStatus(INode.STATUS_STOP); entity.setStatus(INode.STATUS_STOP); setViewData(node); } } GlobalResTypes.getInstance().stopAllQueueDownload(); return; } node.setClickedDownloadAll(true); refreshDownloadName(node); for (EntityResType4 entity : entitys) { node = mAdapter.getAllNodeMap().get(entity.getId()); if (node.getStatus() == INode.STATUS_NORMAL || node.getStatus() == INode.STATUS_STOP) { entity.setStatus(INode.STATUS_CONNECTING); node.setStatus(INode.STATUS_CONNECTING); setViewData(node); GlobalResTypes.getInstance().startDownload(node.getId()); } } } return; } switch (node.getStatus()) { case INode.STATUS_NORMAL: case INode.STATUS_STOP: node.setStatus(INode.STATUS_CONNECTING); setViewData(node); GlobalResTypes.getInstance().startDownload(node.getId()); break; case INode.STATUS_START: node.setStatus(INode.STATUS_STOP); setViewData(node); GlobalResTypes.getInstance().stopDownload(node.getId()); break; } }
/** * ************************************************************************************************************************ */ private void setViewData(Node node) { AdapterSimpleTree.ViewHolder v = mAdapter.getViewMap().get(node.getId()); if (null == v) return; Long p = 100L; if (node.getStatus() != INode.STATUS_FINISH) { p = node.getProgress() * 100 / node.getMax(); } v.pbTreeNode.setProgress(p.intValue()); v.pbTreeNode.setMax(100); AdapterSimpleTree.refreshStatus(v.txtBtn, node.getStatus()); }
private void refreshDownloadName(Node node) { AdapterSimpleTree.ViewHolder v = mAdapter.getViewMap().get(node.getId() + "_dl"); node.setName(node.isClickedDownloadAll() ? "全部暂停" : "全部下载"); if (null == v) return; v.txtTreeNodeLable.setText(node.getName()); }