Example #1
0
 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
Example #2
0
 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")
Example #3
0
 def connect(self):
   print "ControlItem.connect",self.context
   print self.port
   item=Item.adapt(self.port)
   print item
   item.connect()
   self.context.connecting(item)
Example #4
0
  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)
Example #5
0
 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
Example #6
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)
Example #7
0
 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
Example #8
0
 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)
Example #9
0
 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
Example #10
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
Example #11
0
 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,())
Example #12
0
 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
Example #13
0
 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
Example #14
0
 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()
Example #15
0
 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
Example #16
0
 def selected(self):
   """The canvas item has been selected"""
   #print "node selected"
   item=Item.adapt(self.node)
   item.selected()
Example #17
0
  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)
Example #18
0
 def selected(self):
   """The canvas item has been selected"""
   #print "port selected"
   item=Item.adapt(self.port)
   item.selected()
Example #19
0
 def connect(self):
   print "PortItem.connect",self.context
   print self.port
   item=Item.adapt(self.port)
   print item
   self.context.connecting(item)
Example #20
0
 def __init__(self,node):
   Item.Item.__init__(self)
   self.node=node
   self.label=node.getName()
   self.father=Item.adapt(node.getFather())