Advertisement
Guest User

Node

a guest
May 19th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.09 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. #Created on May 3, 2015
  3.  
  4. #@author: Petar Bjeljac
  5. from PySide2.QtCore import QObject, Signal
  6.  
  7.  
  8. class Node(QObject):
  9.  
  10.     childInserted = Signal(int)
  11.     lista = []
  12.  
  13.     def __init__(self, name):
  14.         self.name = name
  15.         self.parent = None
  16.         self.children = []
  17.         self.lista.append(name)
  18.    
  19.     def setParent(self, parent):
  20.         self.parent = parent
  21.    
  22.     def getParent(self):
  23.         return self.parent
  24.    
  25.     def setName(self, name):        # OVAKO SE SETUJE IME  ??????
  26.         self.name = name
  27.    
  28.     def getName(self):
  29.         return self.name
  30.    
  31.     def addChild(self, child):
  32.         self.children.append(child)
  33.         child.setParent(self)
  34.        
  35.     def insertChild(self, position, child):
  36.         if position < 0 or position > len(self.children):
  37.             return False
  38.        
  39.         self.children.insert(position, child)
  40.         child.setParent(self)
  41.         return True
  42.    
  43.     def removeChild(self, position):
  44.         if position < 0 or position > len(self.children)-1:
  45.             return False
  46.         child = self.children.pop(position)
  47.         child.setParent(None)
  48.        
  49.         return True
  50.  
  51.     def childCount(self):
  52.         return len(self.children)
  53.    
  54.     def childAt(self, row):
  55.         if row < 0 or row > len(self.children)-1:
  56.             return None
  57.         else:
  58.             return self.children[row]
  59.    
  60.     def getIndex(self):
  61.         if self.parent is not None:
  62.             return self.parent.children.index(self)
  63.  
  64.  
  65. class FolderNode(Node):
  66.  
  67.     def __init__(self, name):
  68.         super(Node, self).__init__()
  69.         self.name = name
  70.         self.parent = None
  71.         self.children = []
  72.  
  73.  
  74. class DocumentNode(Node):
  75.  
  76.     def __init__(self, name):
  77.         super(Node, self).__init__()
  78.         self.name = name
  79.         self.parent = FolderNode
  80.         self.children = []
  81.  
  82.  
  83. class ElementNode(Node):
  84.  
  85.     def __init__(self, name):
  86.         super(Node, self).__init__()
  87.         self.name = name
  88.         self.parent = DocumentNode
  89.         self.children = []
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement