/Provider/NavigationProviders/DNNTreeNavigationProvider/DotNetNuke.NavigationControl/DNNTreeNavigationProvider.cs

# · C# · 478 lines · 443 code · 35 blank · 0 comment · 44 complexity · 8d70aef81384d49b47f60161b57739fb MD5 · raw file

  1. namespace DotNetNuke.NavigationControl
  2. {
  3. using DotNetNuke.Modules.NavigationProvider;
  4. using DotNetNuke.UI.WebControls;
  5. using Microsoft.VisualBasic;
  6. using Microsoft.VisualBasic.CompilerServices;
  7. using System;
  8. using System.Collections;
  9. using System.Web.UI;
  10. public class DNNTreeNavigationProvider : DotNetNuke.Modules.NavigationProvider.NavigationProvider
  11. {
  12. private bool m_blnIndicateChildren;
  13. private DnnTree m_objTree;
  14. private string m_strControlID;
  15. private string m_strCSSBreadCrumbRoot;
  16. private string m_strCSSBreadCrumbSub;
  17. private string m_strCSSNodeHoverRoot;
  18. private string m_strCSSNodeHoverSub;
  19. private string m_strCSSNodeRoot;
  20. private string m_strNodeLeftHTML;
  21. private string m_strNodeLeftHTMLBreadCrumb;
  22. private string m_strNodeLeftHTMLBreadCrumbRoot;
  23. private string m_strNodeLeftHTMLRoot;
  24. private string m_strNodeRightHTML;
  25. private string m_strNodeRightHTMLBreadCrumb;
  26. private string m_strNodeRightHTMLBreadCrumbRoot;
  27. private string m_strNodeRightHTMLRoot;
  28. private string m_strNodeSelectedRoot;
  29. private string m_strNodeSelectedSub;
  30. private string m_strPathImage;
  31. public override void Bind(DNNNodeCollection objNodes)
  32. {
  33. IEnumerator refObjectHelperL0=null;
  34. if (!this.IndicateChildren)
  35. {
  36. this.IndicateChildImageSub = "";
  37. this.IndicateChildImageRoot = "";
  38. this.IndicateChildImageExpandedSub = "";
  39. this.IndicateChildImageExpandedRoot = "";
  40. }
  41. if ((((Strings.Len(this.CSSNodeSelectedRoot) > 0) && (this.CSSNodeSelectedRoot == this.CSSNodeSelectedSub)) ? 1 : 0) != 0)
  42. {
  43. this.Tree.DefaultNodeCssClassSelected = this.CSSNodeSelectedRoot;
  44. }
  45. try
  46. {
  47. refObjectHelperL0 = objNodes.GetEnumerator();
  48. while (refObjectHelperL0.MoveNext())
  49. {
  50. TreeNode objTreeItem;
  51. DNNNode objNode = (DNNNode) refObjectHelperL0.Current;
  52. if (objNode.Level == 0)
  53. {
  54. int intIndex = this.Tree.TreeNodes.Import(objNode, true);
  55. objTreeItem = this.Tree.TreeNodes[intIndex];
  56. if (!objNode.Enabled)
  57. {
  58. objTreeItem.ClickAction = eClickAction.Expand;
  59. }
  60. if (this.CSSNodeRoot != "")
  61. {
  62. objTreeItem.CSSClass = this.CSSNodeRoot;
  63. }
  64. if (this.CSSNodeHoverRoot != "")
  65. {
  66. objTreeItem.CSSClassHover = this.CSSNodeHoverRoot;
  67. }
  68. if (this.NodeLeftHTMLRoot != "")
  69. {
  70. }
  71. if ((((Strings.Len(this.Tree.DefaultNodeCssClassSelected) == 0) && (Strings.Len(this.CSSNodeSelectedRoot) > 0)) ? 1 : 0) != 0)
  72. {
  73. objTreeItem.CSSClassSelected = this.CSSNodeSelectedRoot;
  74. }
  75. objTreeItem.CSSIcon = " ";
  76. if (objNode.BreadCrumb)
  77. {
  78. objTreeItem.CSSClass = this.CSSBreadCrumbRoot;
  79. }
  80. if (this.NodeRightHTMLRoot != "")
  81. {
  82. }
  83. }
  84. else
  85. {
  86. try
  87. {
  88. TreeNode objParent = this.Tree.TreeNodes.FindNode(objNode.ParentNode.ID);
  89. if (objParent == null)
  90. {
  91. objParent = this.Tree.TreeNodes[this.Tree.TreeNodes.Import(objNode.ParentNode.Clone(), true)];
  92. }
  93. objTreeItem = objParent.TreeNodes.FindNode(objNode.ID);
  94. if (objTreeItem == null)
  95. {
  96. objTreeItem = objParent.TreeNodes[objParent.TreeNodes.Import(objNode.Clone(), true)];
  97. }
  98. if (!objNode.Enabled)
  99. {
  100. objTreeItem.ClickAction = eClickAction.Expand;
  101. }
  102. if (this.CSSNodeHover != "")
  103. {
  104. objTreeItem.CSSClassHover = this.CSSNodeHover;
  105. }
  106. if (this.NodeLeftHTMLSub != "")
  107. {
  108. }
  109. if ((((Strings.Len(this.Tree.DefaultNodeCssClassSelected) == 0) && (Strings.Len(this.CSSNodeSelectedSub) > 0)) ? 1 : 0) != 0)
  110. {
  111. objTreeItem.CSSClassSelected = this.CSSNodeSelectedSub;
  112. }
  113. if (objNode.BreadCrumb)
  114. {
  115. objTreeItem.CSSClass = this.CSSBreadCrumbSub;
  116. }
  117. if (this.NodeRightHTMLSub != "")
  118. {
  119. }
  120. }
  121. catch (Exception exception1)
  122. {
  123. objTreeItem = null;
  124. }
  125. }
  126. if (Strings.Len(objNode.Image) > 0)
  127. {
  128. if (((!objNode.Image.StartsWith("/") && (Strings.Len(this.PathImage) > 0)) ? 1 : 0) != 0)
  129. {
  130. objNode.Image = this.PathImage + objNode.Image;
  131. }
  132. objTreeItem.Image = objNode.Image;
  133. }
  134. objTreeItem.ToolTip = objNode.ToolTip;
  135. if (objNode.Selected)
  136. {
  137. this.Tree.SelectNode(objNode.ID);
  138. }
  139. this.Bind(objNode.DNNNodes);
  140. }
  141. }
  142. finally
  143. {
  144. if (refObjectHelperL0 is IDisposable)
  145. {
  146. (refObjectHelperL0 as IDisposable).Dispose();
  147. }
  148. }
  149. }
  150. public override void ClearNodes()
  151. {
  152. this.Tree.TreeNodes.Clear();
  153. }
  154. private void DNNTree_NodeClick(object source, DNNTreeNodeClickEventArgs e)
  155. {
  156. base.RaiseEvent_NodeClick(e.Node);
  157. }
  158. private void DNNTree_PopulateOnDemand(object source, DNNTreeEventArgs e)
  159. {
  160. base.RaiseEvent_PopulateOnDemand(e.Node);
  161. }
  162. public override void Initialize()
  163. {
  164. this.m_objTree = new DnnTree();
  165. this.Tree.ID = this.m_strControlID;
  166. this.Tree.NodeClick += new DnnTree.DNNTreeNodeClickHandler(this.DNNTree_NodeClick);
  167. this.Tree.PopulateOnDemand += new DnnTree.DNNTreeEventHandler(this.DNNTree_PopulateOnDemand);
  168. }
  169. public override string ControlID
  170. {
  171. get
  172. {
  173. return this.m_strControlID;
  174. }
  175. set
  176. {
  177. this.m_strControlID = value;
  178. }
  179. }
  180. public override string CSSBreadCrumbRoot
  181. {
  182. get
  183. {
  184. return this.m_strCSSBreadCrumbRoot;
  185. }
  186. set
  187. {
  188. this.m_strCSSBreadCrumbRoot = value;
  189. }
  190. }
  191. public override string CSSBreadCrumbSub
  192. {
  193. get
  194. {
  195. return this.m_strCSSBreadCrumbSub;
  196. }
  197. set
  198. {
  199. this.m_strCSSBreadCrumbSub = value;
  200. }
  201. }
  202. public override string CSSControl
  203. {
  204. get
  205. {
  206. return this.Tree.CssClass;
  207. }
  208. set
  209. {
  210. this.Tree.CssClass = value;
  211. }
  212. }
  213. public override string CSSIcon
  214. {
  215. get
  216. {
  217. return this.Tree.DefaultIconCssClass;
  218. }
  219. set
  220. {
  221. this.Tree.DefaultIconCssClass = value;
  222. }
  223. }
  224. public override string CSSNode
  225. {
  226. get
  227. {
  228. return this.Tree.DefaultNodeCssClass;
  229. }
  230. set
  231. {
  232. this.Tree.DefaultNodeCssClass = value;
  233. }
  234. }
  235. public override string CSSNodeHover
  236. {
  237. get
  238. {
  239. return this.Tree.DefaultNodeCssClassOver;
  240. }
  241. set
  242. {
  243. this.Tree.DefaultNodeCssClassOver = value;
  244. }
  245. }
  246. public override string CSSNodeHoverRoot
  247. {
  248. get
  249. {
  250. return this.m_strCSSNodeHoverRoot;
  251. }
  252. set
  253. {
  254. this.m_strCSSNodeHoverRoot = value;
  255. }
  256. }
  257. public override string CSSNodeHoverSub
  258. {
  259. get
  260. {
  261. return this.m_strCSSNodeHoverSub;
  262. }
  263. set
  264. {
  265. this.m_strCSSNodeHoverSub = value;
  266. }
  267. }
  268. public override string CSSNodeRoot
  269. {
  270. get
  271. {
  272. return this.m_strCSSNodeRoot;
  273. }
  274. set
  275. {
  276. this.m_strCSSNodeRoot = value;
  277. }
  278. }
  279. public override string CSSNodeSelectedRoot
  280. {
  281. get
  282. {
  283. return this.m_strNodeSelectedRoot;
  284. }
  285. set
  286. {
  287. this.m_strNodeSelectedRoot = value;
  288. }
  289. }
  290. public override string CSSNodeSelectedSub
  291. {
  292. get
  293. {
  294. return this.m_strNodeSelectedSub;
  295. }
  296. set
  297. {
  298. this.m_strNodeSelectedSub = value;
  299. }
  300. }
  301. public override string ForceDownLevel
  302. {
  303. get
  304. {
  305. return this.Tree.ForceDownLevel.ToString();
  306. }
  307. set
  308. {
  309. this.Tree.ForceDownLevel = Conversions.ToBoolean(value);
  310. }
  311. }
  312. public override string IndicateChildImageExpandedRoot
  313. {
  314. get
  315. {
  316. return this.Tree.ExpandedNodeImage;
  317. }
  318. set
  319. {
  320. this.Tree.ExpandedNodeImage = value;
  321. }
  322. }
  323. public override string IndicateChildImageExpandedSub
  324. {
  325. get
  326. {
  327. return this.Tree.ExpandedNodeImage;
  328. }
  329. set
  330. {
  331. this.Tree.ExpandedNodeImage = value;
  332. }
  333. }
  334. public override string IndicateChildImageRoot
  335. {
  336. get
  337. {
  338. return this.Tree.CollapsedNodeImage;
  339. }
  340. set
  341. {
  342. this.Tree.CollapsedNodeImage = value;
  343. }
  344. }
  345. public override string IndicateChildImageSub
  346. {
  347. get
  348. {
  349. return this.Tree.CollapsedNodeImage;
  350. }
  351. set
  352. {
  353. this.Tree.CollapsedNodeImage = value;
  354. }
  355. }
  356. public override bool IndicateChildren
  357. {
  358. get
  359. {
  360. return this.m_blnIndicateChildren;
  361. }
  362. set
  363. {
  364. this.m_blnIndicateChildren = value;
  365. }
  366. }
  367. public override Control NavigationControl
  368. {
  369. get
  370. {
  371. return this.Tree;
  372. }
  373. }
  374. public override string PathImage
  375. {
  376. get
  377. {
  378. return this.m_strPathImage;
  379. }
  380. set
  381. {
  382. this.m_strPathImage = value;
  383. }
  384. }
  385. public override string PathSystemImage
  386. {
  387. get
  388. {
  389. return this.Tree.SystemImagesPath;
  390. }
  391. set
  392. {
  393. this.Tree.SystemImagesPath = value;
  394. }
  395. }
  396. public override string PathSystemScript
  397. {
  398. get
  399. {
  400. return this.Tree.TreeScriptPath;
  401. }
  402. set
  403. {
  404. }
  405. }
  406. public override bool PopulateNodesFromClient
  407. {
  408. get
  409. {
  410. return this.Tree.PopulateNodesFromClient;
  411. }
  412. set
  413. {
  414. this.Tree.PopulateNodesFromClient = value;
  415. }
  416. }
  417. public override bool SupportsPopulateOnDemand
  418. {
  419. get
  420. {
  421. return true;
  422. }
  423. }
  424. public DnnTree Tree
  425. {
  426. get
  427. {
  428. return this.m_objTree;
  429. }
  430. }
  431. public override string WorkImage
  432. {
  433. get
  434. {
  435. return this.Tree.WorkImage;
  436. }
  437. set
  438. {
  439. this.Tree.WorkImage = value;
  440. }
  441. }
  442. }
  443. }