Guest User

Untitled

a guest
Oct 18th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. require("wx")
  2. require("luaxml")
  3.  
  4.  
  5.  
  6. local id = ID("XmlTreepanel.XmlTreeview")
  7. local xmltreeview = "XmlTreeview"
  8. xmltreetable = {}
  9.  
  10. local function reconfigure(pane)
  11. pane:TopDockable(false):BottomDockable(false)
  12. :MinSize(150,-1):BestSize(300,-1):FloatingSize(200,300)
  13. end
  14.  
  15. local ctrl
  16. local createTreeWindow
  17. local createXmlTree
  18. local scraper
  19. createTreeWindow = function()
  20. local width, height = 360, 200
  21. ctrl = ide:CreateTreeCtrl(ide.frame, wx.wxID_ANY,
  22. wx.wxDefaultPosition, wx.wxSize(width, height),
  23. wx.wxTR_LINES_AT_ROOT + wx.wxTR_HAS_BUTTONS)
  24.  
  25. xmltreetable.tree_ctrl = ctrl
  26.  
  27. --local treeitemid_1 = ctrl:AddRoot(xmltreeview)
  28. ctrl:SetFont(ide.font.fNormal)
  29. ide:AddPanelDocked(ide:GetOutputNotebook(), ctrl, xmltreeview, TR(xmltreeview), reconfigure, true)
  30.  
  31. --ctrl:AppendItem(treeitemid_1, "Test")
  32. end
  33.  
  34.  
  35. scraper = function(xmltable, anode)
  36. require('mobdebug').start()
  37. for index1 = 1, #xmltable do
  38. anode = ctrl:AppendItem(anode, xmltable[index1][0])
  39. print(index1)
  40. scraper(xmltable[index1], anode)
  41. print("second print", index1)
  42. end
  43. --local scraper2 = function(xmltable, anode)
  44. end
  45.  
  46.  
  47. createXmlTree = function(xmlfile)
  48. xmltable = xml.load(xmlfile)
  49. local rootnode = ctrl:AddRoot(xmltable[0])
  50. scraper(xmltable, rootnode)
  51. --[[for index1 = 1, #xmltable do
  52. anode = ctrl:AppendItem(rootnode, xmltable[index1][0])
  53. for index2 = 1, #xmltable[index1] do
  54. anode2 = ctrl:AppendItem(anode, xmltable[index1][index2][0])
  55. end
  56. end]]
  57. end
  58.  
  59.  
  60. return {
  61. name = "Xml Tree View",
  62. description = "Gives an overview of XML Documents, Tree Style",
  63. author = "Brandon Wall @Solvaring",
  64. version = 0.1,
  65.  
  66. onRegister = function(self)
  67. local menu = ide:FindTopMenu("&View")
  68. menu:InsertCheckItem(8, id, TR("XML Tree View")..KSC(id))
  69. menu:Connect(id, wx.wxEVT_COMMAND_MENU_SELECTED, function (event)
  70. local uimgr = ide:GetUIManager()
  71. uimgr:GetPane(xmltreeview):Show(not uimgr:GetPane(xmltreeview):IsShown())
  72. uimgr:Update()
  73. end)
  74. ide:GetMainFrame():Connect(id, wx.wxEVT_UPDATE_UI, function (event)
  75. local pane = ide:GetUIManager():GetPane(xmltreeview)
  76. menu:Enable(event:GetId(), pane:IsOk()) -- disable if doesn't exist
  77. menu:Check(event:GetId(), pane:IsOk() and pane:IsShown())
  78. end)
  79. end,
  80.  
  81. onEditorFocusSet = function(self, editor)
  82. local filepath = ide:GetDocument(editor):GetFilePath()
  83. if ctrl then
  84. return
  85. end
  86. if filepath then
  87. if string.find(filepath, "%.xml$") then
  88. createTreeWindow()
  89. createXmlTree(filepath)
  90. end
  91. end
  92. end
  93. }
Add Comment
Please, Sign In to add comment