def getChildren(self): sublist=[] for n in self.node.getSetOfInputPort(): sublist.append(Item.adapt(n)) for n in self.node.getSetOfOutputPort(): sublist.append(Item.adapt(n)) for n in self.node.getSetOfInputDataStreamPort(): sublist.append(Item.adapt(n)) for n in self.node.getSetOfOutputDataStreamPort(): sublist.append(Item.adapt(n)) return sublist
def addNode(self,service): new_node=service.clone(None) ItemComposedNode.n=ItemComposedNode.n+1 name=service.getName()+"_%d" % ItemComposedNode.n new_node.setName(name) #replace the old node (if it exists) with the new one nodes=self.node.edGetDirectDescendants() if nodes: old_item=Item.adapt(nodes[0]) CONNECTOR.Emit(old_item,"remove") self.node.edSetNode(new_node) item=Item.adapt(new_node) CONNECTOR.Emit(self,"add",item) CONNECTOR.Emit(self,"changed")
def connect(self): print "ControlItem.connect",self.context print self.port item=Item.adapt(self.port) print item item.connect() self.context.connecting(item)
def __init__(self,parent,item): QVBox.__init__(self,parent) self.item=item vsplit=QSplitter(Qt.Vertical,self,"VSplitter") vbox=QVBox(vsplit) vbox.layout().setAlignment(Qt.AlignTop|Qt.AlignLeft) row0=QHBox(vbox) label=QLabel("Name: ",row0) self.lined0 = QLineEdit(item.node.getName(),row0) #row1=QVBox(self) #self.setStretchFactor(row1,10) row2=QHBox(vbox) but1=QPushButton( "Save", row2 ) but1.setFixedSize( but1.sizeHint()) but2=QPushButton( "Cancel", row2 ) but2.setFixedSize( but2.sizeHint()) self.connect( but1, SIGNAL("clicked()"), self.handleSave ) self.connect( but2, SIGNAL("clicked()"), self.handleCancel ) nodes= item.node.edGetDirectDescendants() if nodes: node=nodes[0] subitem=Item.adapt(node) panel=subitem.box(vsplit)
def selected(self): #print "ItemComposedNode selected" root=self.node.getRootNode() rootItem=Item.adapt(root) if not self.emitting: self.emitting=1 CONNECTOR.Emit(rootItem,"selected",self) self.emitting=0
def __init__(self,node,port,canvas): QCanvasRectangle.__init__(self,canvas) self.setSize(6,6) self.port=port self.setPen(QPen(Qt.black)) self.setBrush(QBrush(Qt.red)) self.setZ(node.z()+1) self.node=node self.item=Item.adapt(self.port)
def __init__(self,node,port,canvas): QCanvasEllipse.__init__(self,6,6,canvas) self.port=port self.item=None self.item=Item.adapt(self.port) self.setPen(QPen(Qt.black)) self.setBrush(QBrush(Qt.red)) self.setZ(node.z()+1) self.node=node
def addNode(self,service): print "Composed.addNode",service #add node service in the parent self which is a ComposedNode new_node=service.clone(None) ItemComposedNode.n=ItemComposedNode.n+1 name=service.getName()+"_%d" % ItemComposedNode.n new_node.setName(name) self.node.edAddChild(new_node) item=Item.adapt(new_node) CONNECTOR.Emit(self,"add",item)
def selected(self): #print "ItemNode selected" root=self.node.getRootNode() rootItem=Item.adapt(root) if not self.emitting: self.emitting=1 #for those that have subscribed to item level CONNECTOR.Emit(self,"selected",self) #for those that have subscribed to rootItem level CONNECTOR.Emit(rootItem,"selected",self) self.emitting=0
def __init__(self,port,root=None): Item.Item.__init__(self) self.port=port self.label=port.getName() if root: self.root=root elif self.port.getNode().getFather(): root=self.port.getNode().getRootNode() self.root=Item.adapt(root) else: self.root=None
def __init__(self,item,parent): self.parent=parent self.item=item self.node=item.node #initial canvas size : 1000x1000 self.canvas=MyCanvas(1000,1000) self.editor=GraphViewer(self.canvas,parent,"example",0) self.createGraph() root=self.node.getRootNode() rootItem=Item.adapt(root) CONNECTOR.Connect(rootItem,"selected",self.selectItem,()) CONNECTOR.Connect(self.item,"add",self.addItem,()) CONNECTOR.Connect(self.item.datalinks,"add",self.addLink,())
def link(self,other): father=self.port.getNode().getFather() if father != other.port.getNode().getFather(): #not same father : not for the moment return try: father.edAddLink(self.port,other.port) l=StreamLinkItem(other.port,self.port) fitem=Item.adapt(father) fitem.addLink(l) except ValueError,ex: traceback.print_exc() QMessageBox.warning(None,"YACS error",str(ex)) return
def getChildren(self): #liste des noeuds fils liste=self.node.edGetDirectDescendants() #On les adapte en item avant de les retourner sublist=[] for n in liste: try: sublist.append(Item.adapt(n)) except: #print n #traceback.print_exc() raise sublist.append(self.datalinks) sublist.append(self.controllinks) return sublist
def __init__(self,parent,proc): QVBox.__init__(self,parent) pp=Item.adapt(proc) self.proc=proc self.pproc=pp self.hSplitter = QSplitter(self,"hSplitter") self.objectBrowser=Tree.Tree(self.hSplitter,self.onSelect,self.onDblSelect) self.objectBrowser.additem(pp) self.panelManager=PanelManager.PanelManager(self.hSplitter) self.panelManager.setRootItem(pp) self.boxManager=BoxManager.BoxManager(self.hSplitter) self.boxManager.setRootItem(pp) self.selected=None self.executor=None self.resume=0 self.thr=None self.log=logview.LogView()
def link(self,other): nodeS=self.port.getNode() nodeE=other.port.getNode() father=nodeS.getFather() if father != nodeE.getFather(): #not same father : do nothing for the moment return try: #cflink=nodeS.getOutGate().isAlreadyInSet(nodeE.getInGate()) cflink= nodeE.getInGate() in nodeS.getOutGate().edSetInGate() father.edAddDFLink(self.port,other.port) l=DataLinkItem(other.port,self.port) fitem=Item.adapt(father) fitem.addLink(l) if not cflink: #add also a control flow link fitem.addLink(ControlLinkItem(nodeS,nodeE)) except ValueError,ex: traceback.print_exc() QMessageBox.warning(None,"YACS error",str(ex)) return
def selected(self): """The canvas item has been selected""" #print "node selected" item=Item.adapt(self.node) item.selected()
def __init__(self,node,canvas): QCanvasRectangle.__init__(self,canvas) pypilot.PyObserver.__init__(self) self.inports=[] self.outports=[] self.setSize(50,50) #node is an instance of YACS::ENGINE::Node self.node=node self.item=Item.adapt(self.node) dispatcher.addObserver(self,node,"status") self.label=TextItem(self,canvas) self.label.setText(self.node.getName()) self.label.setFont(QFont("Helvetica",8)) rect=self.label.boundingRect() self.label.setZ(self.z()+1) self.label.myMove(self.x()+self.width()/2-rect.width()/2,self.y()+self.height()/2-rect.height()/2) color= self.colors.get(node.getColorState(node.getEffectiveState()),Qt.white) self.setBrush(QBrush(color)) dy=6 y=0 for inport in self.node.getSetOfInputPort(): p=InPortItem(self,inport,canvas) y=y+dy p.myMove(0,y) self.inports.append(p) for instream in self.node.getSetOfInputDataStreamPort(): p=InStreamItem(self,instream,canvas) y=y+dy p.myMove(0,y) self.inports.append(p) ymax=y dy=6 y=0 for outport in self.node.getSetOfOutputPort(): p=OutPortItem(self,outport,canvas) y=y+dy p.myMove(50,y) self.outports.append(p) for outstream in self.node.getSetOfOutputDataStreamPort(): p=OutStreamItem(self,outstream,canvas) y=y+dy p.myMove(50,y) self.outports.append(p) ymax=max(y,ymax) #Control ports y=ymax+dy if y < 44:y=44 p=InControlItem(self,self.node.getInGate(),canvas) p.myMove(0,y) self.inports.append(p) self.ingate=p p=OutControlItem(self,self.node.getOutGate(),canvas) p.myMove(44,y) self.outports.append(p) self.outgate=p y=y+dy self.setSize(50,y)
def selected(self): """The canvas item has been selected""" #print "port selected" item=Item.adapt(self.port) item.selected()
def connect(self): print "PortItem.connect",self.context print self.port item=Item.adapt(self.port) print item self.context.connecting(item)
def __init__(self,node): Item.Item.__init__(self) self.node=node self.label=node.getName() self.father=Item.adapt(node.getFather())