Version: 9.16.0
YACS::HMI::SceneBlocItem Class Reference

#include <SceneBlocItem.hxx>

Inheritance diagram for YACS::HMI::SceneBlocItem:
Collaboration diagram for YACS::HMI::SceneBlocItem:

Public Member Functions

 SceneBlocItem (QGraphicsScene *scene, SceneItem *parent, QString label, Subject *subject)
 
virtual ~SceneBlocItem ()
 
virtual void arrangeChildNodes ()
 Auto-arrange nodes inside a schema using Graphviz C API. More...
 
- Public Member Functions inherited from YACS::HMI::SceneComposedNodeItem
 SceneComposedNodeItem (QGraphicsScene *scene, SceneItem *parent, QString label, Subject *subject)
 
virtual ~SceneComposedNodeItem ()
 
virtual QRectF childrenBoundingRect () const
 
virtual void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
 
virtual void update (GuiEvent event, int type, Subject *son)
 
virtual void autoPosNewChild (AbstractSceneItem *item, const std::list< AbstractSceneItem * > alreadySet, bool isNew=false)
 
virtual void popupMenu (QWidget *caller, const QPoint &globalPos)
 
virtual std::list< AbstractSceneItem * > getChildren ()
 
virtual void removeChildFromList (AbstractSceneItem *child)
 
virtual void reorganize ()
 
virtual void reorganizeShrinkExpand (ShrinkMode theShrinkMode)
 
virtual void shrinkExpandRecursive (bool isExpanding, bool fromHere, ShrinkMode theShrinkMode)
 
virtual void shrinkExpandLink (bool se)
 
virtual void collisionResolv (SceneItem *child, QPointF oldPos)
 
virtual void rebuildLinks ()
 
virtual void updateChildItems ()
 
virtual void arrangeNodes (bool isRecursive)
 generic method to compute a graph for child nodes. implemented in some derived classes More...
 
virtual void arrangeChildNodes ()
 
virtual void adjustColors ()
 
virtual void setShownState (shownState ss)
 
virtual bool hasExpandedChildren (bool recursively)
 
- Public Member Functions inherited from YACS::HMI::SceneNodeItem
 SceneNodeItem (QGraphicsScene *scene, SceneItem *parent, QString label, Subject *subject)
 
virtual ~SceneNodeItem ()
 
virtual void setWidth (qreal width)
 AbstractSceneItem cannot be resized (only ComposedNodeItem can) More...
 
virtual void setHeight (qreal height)
 AbstractSceneItem cannot be resized (only ComposedNodeItem can) More...
 
virtual void addHeader ()
 
virtual SceneHeaderItemgetHeader ()
 
virtual void addProgressItem ()
 
virtual SceneProgressItemgetProgressItem ()
 
virtual void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
 
virtual void update (GuiEvent event, int type, Subject *son)
 
virtual qreal getHeaderBottom ()
 
virtual void autoPosNewPort (AbstractSceneItem *item, int nbPorts)
 
virtual void popupMenu (QWidget *caller, const QPoint &globalPos)
 
virtual SceneComposedNodeItemgetParent ()
 
virtual void removeInPortFromList (AbstractSceneItem *inPort)
 
virtual void removeOutPortFromList (AbstractSceneItem *outPort)
 
virtual void setMoving (bool moving)
 
virtual void setTopLeft (QPointF topLeft)
 
virtual void adjustHeader ()
 
virtual ScenePortItemgetCtrlInPortItem ()
 
virtual ScenePortItemgetCtrlOutPortItem ()
 
virtual void updateName ()
 
virtual void arrangeNodes (bool isRecursive)
 generic method to compute a graph for child nodes. implemented in some derived classes More...
 
virtual void arrangeChildNodes ()
 
virtual void reorganizeShrinkExpand (ShrinkMode theShrinkMode)
 
virtual void updateChildItems ()
 
virtual void shrinkExpandLink (bool se)
 
virtual void showOutScopeLinks ()
 
virtual void updateLinks ()
 
virtual void setShownState (shownState ss)
 
bool isExpanded ()
 
void setExpanded (bool e)
 
void setExpandedPos (QPointF epos)
 
qreal getExpandedX ()
 
qreal getExpandedY ()
 
void setExpandedWH ()
 
void setExpandedWH (qreal w, qreal h)
 
qreal getExpandedWidth ()
 
qreal getExpandedHeight ()
 
shownState getShownState ()
 
bool hasProgressBar () const
 
- Public Member Functions inherited from YACS::HMI::SceneObserverItem
 SceneObserverItem (QGraphicsScene *scene, SceneItem *parent, QString label, Subject *subject)
 
virtual ~SceneObserverItem ()
 
virtual void update (GuiEvent event, int type, Subject *son)
 
virtual void select (bool isSelected)
 
virtual void activateSelection (bool selected)
 
virtual SubjectgetSubject ()
 
virtual QString getToolTip ()
 
- Public Member Functions inherited from YACS::HMI::SceneItem
 SceneItem (QGraphicsScene *scene, SceneItem *parent, QString label)
 
virtual ~SceneItem ()
 
virtual QRectF boundingRect () const
 
virtual QRectF childrenBoundingRect () const
 
virtual void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
 
virtual void setTopLeft (QPointF topLeft)
 
virtual void checkGeometryChange ()
 
virtual void popupMenu (QWidget *caller, const QPoint &globalPos)
 
void setParent (SceneItem *parent)
 
virtual QString getToolTip ()
 
void setEventPos (QPointF point)
 
virtual void updateChildItems ()
 
virtual void updateLinks ()
 
virtual void shrinkExpandLink (bool se)
 
virtual void shrinkExpandRecursive (bool isExpanding, bool fromHere, ShrinkMode theShrinkMode)
 
bool isAncestorShrinked ()
 
- Public Member Functions inherited from YACS::HMI::AbstractSceneItem
 AbstractSceneItem (QGraphicsScene *scene, SceneItem *parent, QString label)
 
virtual ~AbstractSceneItem ()
 
virtual QRectF boundingRect () const =0
 
virtual void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)=0
 
virtual void setTopLeft (QPointF topLeft)=0
 
int getLevel ()
 
void setLevel ()
 
virtual void checkGeometryChange ()=0
 
virtual void reorganize ()
 
virtual QString getLabel ()
 
virtual void addHeader ()
 
virtual void addProgressItem ()
 
virtual qreal getHeaderBottom ()
 
qreal getWidth ()
 
qreal getHeight ()
 
virtual void setWidth (qreal width)
 AbstractSceneItem cannot be resized (only ComposedNodeItem can) More...
 
virtual void setHeight (qreal height)
 AbstractSceneItem cannot be resized (only ComposedNodeItem can) More...
 
virtual void popupMenu (QWidget *caller, const QPoint &globalPos)=0
 
virtual void activateSelection (bool selected)
 
virtual void setGeometryOptimization (bool optimize)
 
SceneItemgetParent ()
 
- Public Member Functions inherited from YACS::HMI::GuiObserver
 GuiObserver ()
 
virtual ~GuiObserver ()
 
virtual void select (bool isSelected)
 
virtual void update (GuiEvent event, int type, Subject *son)
 
virtual void incrementSubjects (Subject *subject)
 
virtual void decrementSubjects (Subject *subject)
 
int getNbSubjects ()
 
bool isDestructible ()
 

Protected Member Functions

virtual void getNodesInfo (YACS::ENGINE::ComposedNode *cnode)
 
virtual void arrangeCanvasNodes (YACS::ENGINE::ComposedNode *cnode)
 
- Protected Member Functions inherited from YACS::HMI::SceneComposedNodeItem
void dragEnterEvent (QGraphicsSceneDragDropEvent *event)
 
void dragLeaveEvent (QGraphicsSceneDragDropEvent *event)
 
void dropEvent (QGraphicsSceneDragDropEvent *event)
 
void updateControlLinks (bool toExpand)
 
virtual QColor getPenColor ()
 
virtual QColor getBrushColor ()
 
- Protected Member Functions inherited from YACS::HMI::SceneNodeItem
virtual QString getMimeFormat ()
 
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event)
 
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event)
 
virtual void mouseMoveEvent (QGraphicsSceneMouseEvent *event)
 
virtual void mouseDoubleClickEvent (QGraphicsSceneMouseEvent *event)
 
virtual void updateState ()
 
virtual void setExecState (int execState)
 
QString getHeaderLabel ()
 
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event)
 
virtual void mouseMoveEvent (QGraphicsSceneMouseEvent *event)
 
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event)
 
virtual QColor getBrushColor ()
 
virtual QString getMimeFormat ()
 
- Protected Member Functions inherited from YACS::HMI::SceneItem
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event)
 
virtual void hoverEnterEvent (QGraphicsSceneHoverEvent *event)
 
virtual void hoverMoveEvent (QGraphicsSceneHoverEvent *event)
 
virtual void hoverLeaveEvent (QGraphicsSceneHoverEvent *event)
 
virtual QColor getPenColor ()
 
virtual QColor getBrushColor ()
 
QColor hoverColor (QColor origColor)
 
- Protected Member Functions inherited from YACS::HMI::AbstractSceneItem
virtual QRectF childBoundingRect (AbstractSceneItem *child) const
 

Protected Attributes

std::string _format
 
Agraph_t * _graph
 
- Protected Attributes inherited from YACS::HMI::SceneComposedNodeItem
std::list< AbstractSceneItem * > _children
 
bool _dragOver
 
- Protected Attributes inherited from YACS::HMI::SceneNodeItem
std::list< AbstractSceneItem * > _inPorts
 
std::list< AbstractSceneItem * > _outPorts
 
SceneHeaderNodeItem_header
 
SceneProgressItem_progressItem
 
int _execState
 
bool _moving
 
bool _moved
 
bool _expanded
 
QPointF _prevPos
 
QPointF _expandedPos
 
qreal _expandedWidth
 
qreal _expandedHeight
 
shownState _shownState
 
- Protected Attributes inherited from YACS::HMI::SceneObserverItem
Subject_subject
 
bool _draging
 
bool _dragModifier
 
bool _emphasized
 
- Protected Attributes inherited from YACS::HMI::SceneItem
bool _hover
 
bool _ancestorShrinked
 
QPointF _eventPos
 
- Protected Attributes inherited from YACS::HMI::AbstractSceneItem
SceneItem_parent
 
YACS::HMI::Scene_scene
 
QString _label
 
int _level
 
qreal _width
 
qreal _height
 
qreal _incHeight
 
QColor _penColor
 
QColor _brushColor
 
QColor _hiPenColor
 
QColor _hiBrushColor
 
bool _hasHeader
 
bool _optimize
 
bool _dragable
 
enum Qt::MouseButton _dragButton
 
- Protected Attributes inherited from YACS::HMI::GuiObserver
std::set< Subject * > _subjectSet
 
bool _destructible
 

Additional Inherited Members

- Static Public Member Functions inherited from YACS::HMI::GuiObserver
static std::string eventName (GuiEvent event)
 
static void setEventMap ()
 
- Public Attributes inherited from YACS::HMI::SceneItem
bool _blocX
 
bool _blocY
 
- Static Protected Attributes inherited from YACS::HMI::GuiObserver
static std::map< int, std::string > _eventNameMap
 

Detailed Description

Definition at line 37 of file SceneBlocItem.hxx.

Constructor & Destructor Documentation

◆ SceneBlocItem()

SceneBlocItem::SceneBlocItem ( QGraphicsScene scene,
SceneItem parent,
QString  label,
Subject subject 
)

Definition at line 52 of file SceneBlocItem.cxx.

54 : SceneComposedNodeItem(scene, parent, label, subject)
55{
56 DEBTRACE("SceneBlocItem::SceneBlocItem " <<label.toStdString());
57 _format = "%1"; // --- format to convert a float without locale: ex. 9.81
58}
#define DEBTRACE(msg)
Definition: YacsTrace.hxx:31
SceneComposedNodeItem(QGraphicsScene *scene, SceneItem *parent, QString label, Subject *subject)

References _format, and DEBTRACE.

◆ ~SceneBlocItem()

SceneBlocItem::~SceneBlocItem ( )
virtual

Definition at line 60 of file SceneBlocItem.cxx.

61{
62}

Member Function Documentation

◆ arrangeCanvasNodes()

void SceneBlocItem::arrangeCanvasNodes ( YACS::ENGINE::ComposedNode cnode)
protectedvirtual

Definition at line 278 of file SceneBlocItem.cxx.

279{
280 DEBTRACE("SceneBlocItem::arrangeCanvasNodes");
282
285 SceneComposedNodeItem *sceneCompo = dynamic_cast<SceneComposedNodeItem*>(sci);
286 YASSERT(sceneCompo);
287 qreal yHead = sceneCompo->getHeaderBottom() + Resource::Space_Margin;
288 qreal xOffset = Resource::Space_Margin;
289
290 list<Node*> children = cnode->edGetDirectDescendants();
291 for (list<Node*>::iterator it = children.begin(); it != children.end(); ++it)
292 {
293 Agnode_t* aNode = agnode(_graph, (char*)(proc->getChildName(*it).c_str()), 1);
294 DEBTRACE("Get node in graph: " << agnameof(aNode));
297
298 qreal xCenter = ND_coord(aNode).x;
299 qreal yCenter = ND_coord(aNode).y;
300 qreal halfWidth = sci->boundingRect().width()/2.;
301 qreal halfHeight = sci->boundingRect().height()/2.;
302
303 sci->setPos(xOffset + xCenter -halfWidth, yHead + yCenter -halfHeight);
304 SceneNodeItem *scni = dynamic_cast<SceneNodeItem*>(sci);
305 if (scni) scni->setExpandedPos(QPointF(xOffset + xCenter -halfWidth, yHead + yCenter -halfHeight));
306 }
307 sceneCompo->checkGeometryChange();
309 {
312 SceneComposedNodeItem *proc = dynamic_cast<SceneComposedNodeItem*>(item);
313 proc->rebuildLinks();
314 }
315
316}
#define YASSERT(val)
YASSERT macro is always defined, used like assert, but throw a YACS::Exception instead of abort.
Definition: YacsTrace.hxx:59
std::string getChildName(const Node *node) const
virtual std::list< Node * > edGetDirectDescendants() const =0
Base class for all schema objects.
Definition: Proc.hxx:44
static GuiContext * getCurrent()
Definition: guiContext.hxx:67
std::map< YACS::ENGINE::Node *, YACS::HMI::SubjectNode * > _mapOfSubjectNode
Definition: guiContext.hxx:70
YACS::HMI::SubjectProc * getSubjectProc()
Definition: guiContext.hxx:52
YACS::ENGINE::Proc * getProc()
Definition: guiContext.hxx:50
static QtGuiContext * getQtCurrent()
std::map< YACS::HMI::Subject *, YACS::HMI::SceneItem * > _mapOfSceneItem
static int Space_Margin
Definition: Resource.hxx:311
virtual QRectF boundingRect() const
Definition: SceneItem.cxx:215
virtual void checkGeometryChange()
Definition: SceneItem.cxx:248
virtual qreal getHeaderBottom()
void setExpandedPos(QPointF epos)
static bool _autoComputeLinks
Definition: Scene.hxx:37

References YACS::HMI::Scene::_autoComputeLinks, _graph, YACS::HMI::QtGuiContext::_mapOfSceneItem, YACS::HMI::GuiContext::_mapOfSubjectNode, YACS::HMI::SceneItem::boundingRect(), YACS::HMI::SceneItem::checkGeometryChange(), DEBTRACE, YACS::ENGINE::ComposedNode::edGetDirectDescendants(), YACS::ENGINE::ComposedNode::getChildName(), YACS::HMI::GuiContext::getCurrent(), YACS::HMI::SceneNodeItem::getHeaderBottom(), YACS::HMI::GuiContext::getProc(), YACS::HMI::QtGuiContext::getQtCurrent(), YACS::HMI::GuiContext::getSubjectProc(), YACS::HMI::SceneComposedNodeItem::rebuildLinks(), YACS::HMI::SceneNodeItem::setExpandedPos(), YACS::HMI::Resource::Space_Margin, and YASSERT.

Referenced by arrangeChildNodes().

◆ arrangeChildNodes()

void SceneBlocItem::arrangeChildNodes ( )
virtual

Auto-arrange nodes inside a schema using Graphviz C API.

Reimplemented from YACS::HMI::SceneComposedNodeItem.

Definition at line 68 of file SceneBlocItem.cxx.

69{
70#ifdef _DEVDEBUG_
71 DEBTRACE("SceneBlocItem::arrangeChildNodes");
72 clock_t start_t, end_t;
73 start_t = clock();
74#endif //_DEVDEBUG_
75
76
77 SubjectComposedNode *scnode = dynamic_cast<SubjectComposedNode*>(getSubject());
78 YASSERT(scnode);
79 ComposedNode *cnode = dynamic_cast<ComposedNode*>(scnode->getNode());
80 YASSERT(cnode);
81
82 // ---- Create a graphviz context
83
84 // Graphviz is sensitive to locale : set the mimimal one ("C")for numeric
85 Qtx::Localizer loc;
86
87 //aginit();
88 GVC_t* aGvc = gvContext();
89
90 // ---- Create a graph
91
92 _graph = agopen((char*)( cnode->getName().c_str()), Agdirected, NULL);
93
94 // ---- Initialize and set attributes for the graph
95
96 agattr(_graph, AGRAPH, const_cast<char*>("compound"), const_cast<char*>("true"));
97 agattr(_graph, AGRAPH, const_cast<char*>("rankdir"), const_cast<char*>("LR"));
98 agattr(_graph, AGRAPH, const_cast<char*>("dpi"), const_cast<char*>("72"));
99 agattr(_graph, AGRAPH, const_cast<char*>("label"), const_cast<char*>("myLabel"));
100 agattr(_graph, AGRAPH, const_cast<char*>("labelloc"), const_cast<char*>("top"));
101 agattr(_graph, AGRAPH, const_cast<char*>("fontsize"), const_cast<char*>("24"));
102 agattr(_graph, AGRAPH, const_cast<char*>("splines"), const_cast<char*>(""));
103
104 // --- Initialize attributes for nodes
105
106 agattr(_graph, AGNODE, const_cast<char*>("height"), const_cast<char*>("" ));
107 agattr(_graph, AGNODE, const_cast<char*>("width"), const_cast<char*>("" ));
108 agattr(_graph, AGNODE, const_cast<char*>("shape"), const_cast<char*>("" ));
109 agattr(_graph, AGNODE, const_cast<char*>("fixedsize"), const_cast<char*>("false" ));
110
111 // ---- Bind graph to graphviz context - must be done before layout
112 // ---- Compute a layout
113
114 try
115 {
116 getNodesInfo(cnode);
117 // createGraphvizNodes(cnode);
118 DEBTRACE("end of graphviz input");
119#ifdef _DEVDEBUG_
120 agwrite(_graph, stderr);
121#endif
122 //DEBTRACE("external render for test");
123 //gvRenderFilename(aGvc, _mainGraph, "dot", "graph1.dot");
124 DEBTRACE("compute layout");
125 gvLayout(aGvc, _graph, "dot");
126 DEBTRACE("external render for test");
127#ifdef _DEVDEBUG_
128 gvRenderFilename(aGvc, _graph, "dot", "graph2.dot");
129#endif
130 }
131 catch (std::exception &e)
132 {
133 DEBTRACE("Exception Graphviz layout: " << e.what());
134 return;
135 }
136 catch (...)
137 {
138 DEBTRACE("Unknown Exception Graphviz layout ");
139 return;
140 }
141#ifdef _DEVDEBUG_
142 {
143 end_t = clock();
144 double passe = (end_t -start_t);
145 passe = passe/CLOCKS_PER_SEC;
146 DEBTRACE("graphviz : " << passe);
147 start_t = end_t;
148 }
149#endif //_DEVDEBUG_
150 DEBTRACE("start of display");
151 // ---- layout Canvas nodes recursively
152
153 arrangeCanvasNodes(cnode);
154
155 DEBTRACE("clean up graphviz");
156 // ---- Delete layout
157
158 gvFreeLayout(aGvc, _graph);
159
160 // ---- Free graph structures
161
162 agclose(_graph) ;
163
164 // ---- Free context and return number of errors
165
166 gvFreeContext( aGvc );
167
168 // --- update scene
169#ifdef _DEVDEBUG_
170 {
171 end_t = clock();
172 double passe = (end_t -start_t);
173 passe = passe/CLOCKS_PER_SEC;
174 DEBTRACE("display : " << passe);
175 start_t = end_t;
176 }
177#endif //_DEVDEBUG_
178}
Base class for all composed nodes.
std::string getName() const
virtual void arrangeCanvasNodes(YACS::ENGINE::ComposedNode *cnode)
virtual void getNodesInfo(YACS::ENGINE::ComposedNode *cnode)
virtual YACS::ENGINE::Node * getNode()

References _graph, arrangeCanvasNodes(), DEBTRACE, YACS::ENGINE::ComposedNode::getName(), YACS::HMI::SubjectNode::getNode(), getNodesInfo(), YACS::HMI::SceneObserverItem::getSubject(), and YASSERT.

◆ getNodesInfo()

void SceneBlocItem::getNodesInfo ( YACS::ENGINE::ComposedNode cnode)
protectedvirtual

Definition at line 180 of file SceneBlocItem.cxx.

181{
183
184 // --- Create Nodes = direct descendants in the bloc
185
186 list<Node*> children = cnode->edGetDirectDescendants();
187 for (list<Node*>::iterator it = children.begin(); it != children.end(); ++it)
188 {
189 Agnode_t* aNode = agnode(_graph, (char*)(proc->getChildName(*it).c_str()), 1);
190 DEBTRACE("Add node in graph: " << agnameof(aNode));
191
194 double nh = sci->getHeight();
195 double nw = sci->getWidth();
196 double lh = nh/DPI;
197 double lw = nw/DPI;
198
199 QString height, width;
200 height = QString(_format.c_str()).arg(lh, 0, 'g', 3);
201 width = QString(_format.c_str()).arg(lw, 0, 'g', 3);
202
203 DEBTRACE(agnameof(aNode) << " (" << nh << "," << nw << ") = (" << height.toStdString() << " ; " << width.toStdString() <<")");
204 agset(aNode, const_cast<char*>("height"), height.toLatin1().data());
205 agset(aNode, const_cast<char*>("width"), width.toLatin1().data());
206 agset(aNode, const_cast<char*>("shape"), const_cast<char*>("box") );
207 agset(aNode, const_cast<char*>("fixedsize"), const_cast<char*>("true") );
208 }
209
210 // --- Create edges (i.e. links)
211
212 Agnode_t* aNode = NULL;
213 for (aNode = agfstnode(_graph); aNode; aNode = agnxtnode(_graph, aNode))
214 {
215 string aNodeName = agnameof(aNode);
216 DEBTRACE("--- tail node " << aNodeName);
217 Agnode_t* aTailNode = aNode;
218 Node* outNode = proc->getChildByName(string(agnameof(aTailNode)));
219 if (outNode->getFather() != cnode)
220 {
221 DEBTRACE(" =========== problem here ! =============================");
222 continue; // Create edges only with outgoing nodes directly in bloc
223 }
224
225 // --- control link from node, keep only link staying inside the bloc
226
227 {
228 OutGate *outGate = outNode->getOutGate();
229 list<InGate*> setOfInGate = outGate->edSetInGate();
230 list<InGate*>::const_iterator itin = setOfInGate.begin();
231 for (; itin != setOfInGate.end(); ++itin)
232 {
233 Node *inNode = (*itin)->getNode();
234 string inName = proc->getChildName(inNode);
235 DEBTRACE("--- control link from tail node: --- "<<inName);
236 // --- isInMyDescendance(this) return this
237 // isInMyDescendance(inNode) return direct child if inNode is a direct child or grandchild
238 if (Node *inDCNode = cnode->isInMyDescendance(inNode))
239 {
240 DEBTRACE("--- edge inside the bloc " << inDCNode->getName());
241 string inDCName = proc->getChildName(inDCNode);
242 Agnode_t* aHeadNode = agnode(_graph, (char*)(inDCName.c_str()), 1);
243 Agedge_t* anEdge = agedge(_graph, aTailNode, aHeadNode, NULL, 1);
244 DEBTRACE("--- control link from tail node: --- " << agnameof(aNode) << " --> " << inDCName);
245 }
246 }
247 }
248
249 // --- datalink from node, keep only link staying inside the bloc
250
251 {
252 list<OutPort*> outPortList = outNode->getSetOfOutPort();
253 list<OutPort*>::const_iterator itou = outPortList.begin();
254 for (; itou != outPortList.end(); ++itou)
255 {
256 set<InPort*> inPortList = (*itou)->edSetInPort();
257 set<InPort*>::const_iterator itin = inPortList.begin();
258 for (; itin != inPortList.end(); ++itin)
259 {
260 Node *inNode = (*itin)->getNode();
261 string inName = proc->getChildName(inNode);
262 DEBTRACE("------ data link from tail node: ---- ");
263 if (Node *inDCNode = cnode->isInMyDescendance(inNode))
264 {
265 DEBTRACE("--- edge inside the bloc " << inDCNode->getName());
266 string inDCName = proc->getChildName(inDCNode);
267 Agnode_t* aHeadNode = agnode(_graph, (char*)(inDCName.c_str()), 1);
268 Agedge_t* anEdge = agedge(_graph, aTailNode, aHeadNode, NULL, 1);
269 DEBTRACE("------ data link from tail node: ---- " << agnameof(aNode) << " --> " << inDCName);
270 }
271 }
272 }
273 }
274 }
275}
#define DPI
Node * getChildByName(const std::string &name) const
Node * isInMyDescendance(Node *nodeToTest) const
Returns the parent of a node that is the direct child of this node.
Base class for all nodes.
Definition: Node.hxx:70
ComposedNode * getFather() const
Definition: Node.hxx:127
OutGate * getOutGate()
Definition: Node.hxx:124
std::list< OutPort * > getSetOfOutPort() const
Definition: Node.cxx:299
std::list< InGate * > edSetInGate() const
Definition: OutGate.cxx:112

References _format, _graph, YACS::HMI::QtGuiContext::_mapOfSceneItem, YACS::HMI::GuiContext::_mapOfSubjectNode, DEBTRACE, DPI, YACS::ENGINE::ComposedNode::edGetDirectDescendants(), YACS::ENGINE::OutGate::edSetInGate(), YACS::ENGINE::ComposedNode::getChildByName(), YACS::ENGINE::ComposedNode::getChildName(), YACS::HMI::GuiContext::getCurrent(), YACS::ENGINE::Node::getFather(), YACS::HMI::AbstractSceneItem::getHeight(), YACS::ENGINE::Node::getOutGate(), YACS::HMI::GuiContext::getProc(), YACS::HMI::QtGuiContext::getQtCurrent(), YACS::ENGINE::Node::getSetOfOutPort(), YACS::HMI::AbstractSceneItem::getWidth(), and YACS::ENGINE::ComposedNode::isInMyDescendance().

Referenced by arrangeChildNodes().

Member Data Documentation

◆ _format

std::string YACS::HMI::SceneBlocItem::_format
protected

Definition at line 48 of file SceneBlocItem.hxx.

Referenced by getNodesInfo(), and SceneBlocItem().

◆ _graph

Agraph_t* YACS::HMI::SceneBlocItem::_graph
protected

Definition at line 50 of file SceneBlocItem.hxx.

Referenced by arrangeCanvasNodes(), arrangeChildNodes(), and getNodesInfo().


The documentation for this class was generated from the following files: