def createNewEntity(self, parentNode, fileName): if len(fileName) == 0: Log.error( "[AssetsModel:createNewEntity] Can't create with empty name") return None filePath = "{0}/{1}".format(parentNode.getFullPath(), fileName) if os.path.exists(filePath): Log.error( "[AssetsModel:createNewEntity] Can't create file: '{0}' (Error: already exists)" .format(filePath)) return None try: CreateVoidEntity(filePath) except Exception as e: Log.error( "[AssetsModel:createNewEntity] Can't create file: '{0}' (Error: {1})" .format(filePath, e.__str__())) return None Log.debug("[AssetsModel:createNewEntity] Create file: '{0}'".format( filePath)) node = FileNode() node._name = fileName node._parent = parentNode node._type = FileNodeType.Entity parentNode._children.append(node) return node
def createNewDir(self, parentNode, fileName): if len(fileName) == 0: Log.error( "[AssetsModel:createNewDir] Can't create with empty name") return None dirPath = "{0}/{1}".format(parentNode.getFullPath(), fileName) if os.path.exists(dirPath): Log.error( "[AssetsModel:createNewDir] Can't create dir: '{0}' (Error: already exists)" .format(dirPath)) return None try: os.mkdir(dirPath) except Exception as e: Log.error( "[AssetsModel:createNewDir] Can't create dir: '{0}' (Error: {1})" .format(dirPath, e.__str__())) return None Log.debug( "[AssetsModel:createNewDir] Create dir: '{0}'".format(dirPath)) node = DirNode() node._name = fileName node._parent = parentNode parentNode._children.append(node) return node
def removeNode(self, node): filePath = node.getFullPath() if os.path.exists(filePath): try: if os.path.isdir(filePath): Log.debug( "[AssetsModel:removeNode] Remove dir: '{0}'".format( filePath)) shutil.rmtree(filePath) else: Log.debug( "[AssetsModel:removeNode] Remove file: '{0}'".format( filePath)) os.remove(filePath) except Exception as e: Log.error( "[AssetsModel:removeNode] Can't remove file: '{0}' (Error: {1})" .format(filePath, e.__str__())) return False node._parent._children.remove(node) return True
def renameNode(self, node, newName): srcPath = node.getFullPath() trgPath = "{0}/{1}".format(node.getParentFullPath(), newName) if os.path.exists(trgPath): Log.error( "[AssetsModel:renameNode] Target path already exists: '{0}'". format(trgPath)) return False if not os.path.exists(srcPath): Log.error("[AssetsModel:renameNode] Can't find source path: '{0}'". format(srcPath)) return False try: os.replace(srcPath, trgPath) except Exception as e: Log.error( "[AssetsModel:renameNode] Can't rename file: '{0}' to '{1}' (Error: {2})" .format(srcPath, trgPath, e.__str__())) return False Log.debug( "[AssetsModel:renameNode] Rename file: '{0}' to '{1}'".format( srcPath, trgPath)) node._name = newName return True
def reload(self): Log.debug("[AssetsModel:reload] Trigger Reload") self._resourceRootDir = DirNode(None, None) if not self.init(): raise RuntimeError("Can't reload assets model")