Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require("wx")
- require("luaxml")
- local id = ID("XmlTreepanel.XmlTreeview")
- local xmltreeview = "XmlTreeview"
- xmltreetable = {}
- local function reconfigure(pane)
- pane:TopDockable(false):BottomDockable(false)
- :MinSize(150,-1):BestSize(300,-1):FloatingSize(200,300)
- end
- local ctrl
- local createTreeWindow
- local createXmlTree
- local scraper
- createTreeWindow = function()
- local width, height = 360, 200
- ctrl = ide:CreateTreeCtrl(ide.frame, wx.wxID_ANY,
- wx.wxDefaultPosition, wx.wxSize(width, height),
- wx.wxTR_LINES_AT_ROOT + wx.wxTR_HAS_BUTTONS)
- xmltreetable.tree_ctrl = ctrl
- --local treeitemid_1 = ctrl:AddRoot(xmltreeview)
- ctrl:SetFont(ide.font.fNormal)
- ide:AddPanelDocked(ide:GetOutputNotebook(), ctrl, xmltreeview, TR(xmltreeview), reconfigure, true)
- --ctrl:AppendItem(treeitemid_1, "Test")
- end
- scraper = function(xmltable, anode)
- require('mobdebug').start()
- for index1 = 1, #xmltable do
- anode = ctrl:AppendItem(anode, xmltable[index1][0])
- print(index1)
- scraper(xmltable[index1], anode)
- print("second print", index1)
- end
- --local scraper2 = function(xmltable, anode)
- end
- createXmlTree = function(xmlfile)
- xmltable = xml.load(xmlfile)
- local rootnode = ctrl:AddRoot(xmltable[0])
- scraper(xmltable, rootnode)
- --[[for index1 = 1, #xmltable do
- anode = ctrl:AppendItem(rootnode, xmltable[index1][0])
- for index2 = 1, #xmltable[index1] do
- anode2 = ctrl:AppendItem(anode, xmltable[index1][index2][0])
- end
- end]]
- end
- return {
- name = "Xml Tree View",
- description = "Gives an overview of XML Documents, Tree Style",
- author = "Brandon Wall @Solvaring",
- version = 0.1,
- onRegister = function(self)
- local menu = ide:FindTopMenu("&View")
- menu:InsertCheckItem(8, id, TR("XML Tree View")..KSC(id))
- menu:Connect(id, wx.wxEVT_COMMAND_MENU_SELECTED, function (event)
- local uimgr = ide:GetUIManager()
- uimgr:GetPane(xmltreeview):Show(not uimgr:GetPane(xmltreeview):IsShown())
- uimgr:Update()
- end)
- ide:GetMainFrame():Connect(id, wx.wxEVT_UPDATE_UI, function (event)
- local pane = ide:GetUIManager():GetPane(xmltreeview)
- menu:Enable(event:GetId(), pane:IsOk()) -- disable if doesn't exist
- menu:Check(event:GetId(), pane:IsOk() and pane:IsShown())
- end)
- end,
- onEditorFocusSet = function(self, editor)
- local filepath = ide:GetDocument(editor):GetFilePath()
- if ctrl then
- return
- end
- if filepath then
- if string.find(filepath, "%.xml$") then
- createTreeWindow()
- createXmlTree(filepath)
- end
- end
- end
- }
Add Comment
Please, Sign In to add comment