Guest User

Untitled

a guest
Jun 23rd, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.87 KB | None | 0 0
  1. class Node:
  2.     def getDirectories(self):
  3.         return [(sub, os.path.join(self.location, sub)) for sub in os.listdir(self.location)]
  4.  
  5.     def extractChildren(self):
  6.         if self.isFolder == True:
  7.             childrenLocations = self.getDirectories()
  8.             for child in childrenLocations:
  9.                 self.children.append(Node(child))
  10.  
  11.     def __init__(self):
  12.         self.children = []
  13.         self.isFolder = False
  14.         self.location = ""
  15.         self.name = ""
  16.         self.isOpened = True
  17.  
  18.     def __init__(self, name_location):
  19.         self.name = name_location[0]
  20.         self.location = name_location[1]
  21.         self.children = []
  22.         self.isFolder = os.path.isdir(self.location)
  23.         self.isOpened = True
  24.  
  25.  
  26. def generateHTML(node, level, closedFolders):
  27.     code = ''
  28.     if node.isFolder == False: # leaf/file
  29.         if(node.isFolder == True):
  30.             treeItemIcon = 'treeItemClosedFolder'
  31.         else:
  32.             treeItemIcon = 'treeItemFileIcon'
  33.  
  34.         code += "<li>\n"
  35.         code += "<div class=\"treeItemFile treeItem\">\n"
  36.         code += "<div class=\"treeItemNoButton\" />\n"
  37.         code += "<div class=\"" + treeItemIcon + "\" />\n"
  38.         code += "<div class=\"treeItemName\">" + node.name + "</div>\n"
  39.         code += "<div class=\"file_folder_id\">" + node.location + "</div>\n"
  40.         code += "</div>\n"
  41.         code += "</li>\n"
  42.         return code
  43.  
  44.     else: # folder
  45.         if nodeOpened(node, closedFolders) == True:
  46.             treeItemButton = "treeItemCloseButton"
  47.         else:
  48.             treeItemButton = "treeItemOpenButton"
  49.  
  50.         if nodeOpened(node, closedFolders) == True:
  51.             treeItemIcon = "treeItemOpenedFolder"
  52.         else:
  53.             treeItemIcon = "treeItemClosedFolder"
  54.  
  55.         code += "<li>\n"
  56.         code += "<div class=\"treeItemFolder treeItem\">\n"
  57.         code += "<div class=\"" + treeItemButton + "\" />\n"
  58.         code += "<div class=\""+ treeItemIcon + "\" />\n"
  59.         code += "<div class=\"treeItemName\">" + node.name + "</div>\n"
  60.         code += "<div class=\"file_folder_id\">" + node.location + "</div>\n"
  61.         code += "</div>\n"
  62.  
  63.         # for sub list
  64.         if nodeOpened(node, closedFolders) == True:
  65.             code += "<br/><ul>\n"
  66.             node.extractChildren()
  67.             for sub in  node.children:
  68.                 code += generateHTML(sub, level+1, closedFolders)
  69.  
  70.             code += "</ul>\n"
  71.         code += "</li>\n"
  72.         return code
  73.  
  74. def nodeOpened(node, closedFolders):
  75.     if closedFolders == None:
  76.         return True
  77.  
  78.     for n in closedFolders:
  79.         if node.location == n:
  80.             return False
  81.  
  82.     return True
  83.  
  84. def backend_getProjectTree(projectPath, projectName, closedFolders):
  85.     node = Node((projectName, projectPath))
  86.  
  87.     htmlCode = generateHTML(node, 0, closedFolders)
  88.     return htmlCode
Add Comment
Please, Sign In to add comment