Advertisement
expired6978

Untitled

Aug 13th, 2014
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.93 KB | None | 0 0
  1.  
  2. DotNet.LoadAssembly "System.Xml"
  3.  
  4. struct XMLNode(
  5. Tag,
  6. Parent,
  7. DotNetNode,
  8.  
  9. fn init dnNode = (
  10. DotNetNode = dnNode
  11. Tag = dnNode.LocalName
  12. Parent = dnNode.ParentNode
  13. ),
  14. fn GetTag = (
  15. DotNetNode.Name
  16. ),
  17. fn SetTag newTag =(
  18. try(DotNetNode.Name = newTag)catch(False)
  19. ),
  20. fn GetText = (
  21. DotNetNode.InnerText
  22. ),
  23. fn SetText txt = (
  24. DotNetNode.InnerText = txt
  25. ),
  26. fn AddAttribute attribute value = (
  27. DotNetNode.SetAttribute attribute value
  28. ),
  29. fn GetAttribute attribute = (
  30. DotNetNode.GetAttribute attribute
  31. ),
  32. fn SetAttributeValue attribute value = (
  33. DotNetNode.SetAttribute attribute value
  34. ),
  35. fn DeleteAttribute attribute = (
  36. DotNetNode.RemoveAttribute attribute
  37. ),
  38. fn GetAllAttributes = (
  39. ret = #()
  40. attribs = DotNetNode.Attributes
  41. for i = 0 to (attribs.Count - 1) do(
  42. t = #()
  43. item = (attribs.ItemOf i)
  44. append t item.Name
  45. append t item.Value
  46. append ret t
  47. )
  48. return ret
  49. ),
  50. fn HasAttribute attribute =(
  51. DotNetNode.HasAttribute attribute
  52. ),
  53.  
  54. fn AppendNode newNode = (
  55. if classof newNode == XMLNode then(
  56. DotNetNode.AppendChild newNode.DotNetNode
  57. return True
  58. )else(False)
  59. ),
  60.  
  61. fn GetChild index = (
  62. dNode = DotNetNode.ChildNodes.ItemOf index
  63. if dNode.Name != "#text" then(
  64. newNode = XMLNode()
  65. newNode.init dnode
  66. newNode
  67. )else(return False)
  68. ),
  69. fn GetChildren = (
  70. nodes = #()
  71. for i = 0 to (DotNetNode.ChildNodes.Count - 1) do(
  72. dNode = DotNetNode.ChildNodes.ItemOf i
  73. newNode = XMLNode()
  74. newNode.init dNode
  75. append nodes newNode
  76. )
  77. nodes
  78. ),
  79. fn DeleteChild childNode = (
  80. if classof childNode == XMLNode then (
  81. DotNetNode.RemoveChild childNode.DotNetNode
  82. return True
  83. )else(False)
  84. )
  85. )
  86.  
  87. struct XMLDocument (
  88. file = undefined,
  89. rootNode = undefined,
  90. dom = dotNetObject "System.Xml.XmlDocument",
  91. loaded = undefined,
  92.  
  93. fn LoadXML pathToXml = (
  94. file = pathToXml
  95. doc = dom.Load file
  96. loaded = True
  97. True
  98. ),
  99.  
  100. fn SaveXML = (
  101. if loaded == True then(
  102. dom.Save file
  103. return True
  104. )else(False)
  105. ),
  106.  
  107. fn GetRootNode = (
  108. rootNode = XMLNode()
  109. rootNode.init dom.DocumentElement
  110. rootNode
  111. ),
  112. fn getNewNode tag = (
  113. dNode=dom.CreateElement tag
  114. newNode=XMLNode()
  115. newNode.init dNode
  116. newNode
  117. ),
  118. fn AppendNode newNode = (
  119. if classof newNode == XMLNode then(
  120. dom.AppendChild newNode.DotNetNode
  121. return True
  122. )else(False)
  123. ),
  124. fn PrettySaveXML = (
  125. if loaded == True then(
  126. writer = dotNetClass "System.Xml.XmlTextWriter"
  127. wSettings = dotNetObject "System.Xml.XmlWriterSettings"
  128. wSettings.indent = True
  129. w = writer.create file wSettings
  130. --dom.writeTo w
  131. dom.writeContentTo w
  132. w.close()
  133. True
  134. )
  135. )
  136. )
  137.  
  138. global MaxSlide
  139. (
  140. if MaxSlide != undefined do ( closerolloutfloater MaxSlide)
  141. MainMenu = newrolloutfloater "MaxSlide" 200 460
  142.  
  143. local BSPathRollout
  144. local BSProjectFiles
  145. local allFiles = #()
  146.  
  147. rollout BSPathRollout "BodySlide Folder"
  148. (
  149. editText BodySlideDir "Select Bodyslide Directory" labelOnTop:true
  150. button openBSDir "Browse..."
  151. button loadProjects "Set Working Directory"
  152. Listbox displayedFiles "Project Files" labelOnTop:true
  153.  
  154. on openBSDir pressed do
  155. (
  156. local directory = getSavePath caption:"Select Bodyslide Folder"
  157. if directory != undefined do
  158. (
  159. BodySlideDir.text = directory + "\\"
  160. )
  161. )
  162.  
  163. on loadProjects pressed do
  164. (
  165. ProjectDir = (BodySlideDir.text + "\\SliderSets")
  166. allFiles = getFiles(ProjectDir + "\\*.xml")
  167. if(allFiles == null) do
  168. (
  169. MessageBox ("Invalid BodySlide Directory")
  170. )
  171. sort allFiles
  172. fileNameDisplay = deepcopy allFiles
  173. for i=1 to allFiles.count do
  174. (
  175. fileNameDisplay[i] = substring allFiles[i] (ProjectDir.count+1) -1
  176. )
  177. displayedFiles.items = fileNameDisplay
  178. )
  179.  
  180. on displayedFiles selected i do
  181. (
  182. local projectFile = XMLDocument()
  183. projectFile.LoadXML allFiles[i]
  184. if projectFile.loaded == true then
  185. (
  186. localRoot = projectFile.GetRootNode()
  187. local childs = localRoot.GetChildren()
  188. for c=1 to childs.count do
  189. (
  190. local sliderSetName = childs[c].GetAttribute "name"
  191. print sliderSetName
  192.  
  193. local sliders = childs[c].GetChildren()
  194. for s=1 to sliders.count do
  195. (
  196. if sliders[s].GetTag() == "Slider" then
  197. (
  198. if sliders[s].HasAttribute "name" then
  199. (
  200. local sliderName = sliders[s].GetAttribute "name"
  201. print sliderName
  202. )
  203. )
  204. )
  205. )
  206.  
  207. print "Successful XML Loaded"
  208. )
  209. )
  210. )
  211.  
  212. addRollout BSPathRollout MainMenu rolledup:false
  213. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement