Salome HOME
[EDF30399] : Expose replay-dir parameter to define directory holding scenarii in...
[modules/yacs.git] / src / hmi / guiObservers.cxx
index e1414cfd11e64913b1d3dd46db6c23d1b39f2ab6..3797b1c872b78d101d1710150c7152c6412d57c6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2006-2016  CEA/DEN, EDF R&D
+// Copyright (C) 2006-2024  CEA, EDF
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -528,8 +528,8 @@ SubjectNode::~SubjectNode()
     try
       {
         // Remove child except if it's the splitter node of a ForEachLoop
-        if (dynamic_cast<ForEachLoop*>(father) == NULL ||
-            getName() != ForEachLoop::NAME_OF_SPLITTERNODE)
+        if (dynamic_cast<ForEachLoopGen*>(father) == NULL ||
+            getName() != ForEachLoopGen::NAME_OF_SPLITTERNODE)
           {
             father->edRemoveChild(_node);
           }
@@ -1445,7 +1445,7 @@ SubjectNode *SubjectComposedNode::addSubjectNode(YACS::ENGINE::Node * node,
       son = new SubjectSwitch(dynamic_cast<YACS::ENGINE::Switch*>(node), this);
       break;
     case FOREACHLOOP:
-      son = new SubjectForEachLoop(dynamic_cast<YACS::ENGINE::ForEachLoop*>(node), this);
+      son = new SubjectForEachLoop(dynamic_cast<YACS::ENGINE::ForEachLoopGen*>(node), this);
       break;
     case OPTIMIZERLOOP:
       son = new SubjectOptimizerLoop(dynamic_cast<YACS::ENGINE::OptimizerLoop*>(node), this);
@@ -1475,9 +1475,9 @@ void SubjectComposedNode::completeChildrenSubjectList(SubjectNode *son)
 void SubjectComposedNode::loadChildren()
 {
   list<Node *> setOfNode= _composedNode->edGetDirectDescendants();
-  if (ForEachLoop *feloop = dynamic_cast<ForEachLoop*>(_composedNode))
+  if (ForEachLoopGen *feloop = dynamic_cast<ForEachLoopGen*>(_composedNode))
     {
-      Node *node2Insert=feloop->getChildByName(ForEachLoop::NAME_OF_SPLITTERNODE);
+      Node *node2Insert=feloop->getChildByName(ForEachLoopGen::NAME_OF_SPLITTERNODE);
       if(find(setOfNode.begin(),setOfNode.end(),node2Insert)==setOfNode.end())
         setOfNode.push_back(node2Insert);
     }
@@ -3394,12 +3394,16 @@ bool SubjectDynParaLoop::hasValue()
 
 std::string SubjectDynParaLoop::getValue()
 {
-  return _dynParaLoop->edGetNbOfBranchesPort()->getAsString();
+  InputPort *port(_dynParaLoop->edGetNbOfBranchesPort());
+  if(port)
+    return port->getAsString();
+  else
+    return std::string();
 }
 
 // ----------------------------------------------------------------------------
 
-SubjectForEachLoop::SubjectForEachLoop(YACS::ENGINE::ForEachLoop *forEachLoop, Subject *parent)
+SubjectForEachLoop::SubjectForEachLoop(YACS::ENGINE::ForEachLoopGen *forEachLoop, Subject *parent)
   : SubjectDynParaLoop(forEachLoop, parent), _forEachLoop(forEachLoop)
 {
   _splitter = 0;
@@ -3516,7 +3520,6 @@ SubjectDataPort::~SubjectDataPort()
   if (isDestructible())
     {
       Node* node = _dataPort->getNode();
-      YASSERT(node);
       ElementaryNode * father = dynamic_cast<ElementaryNode*>(node);
       if (father)
         {
@@ -3741,7 +3744,7 @@ SubjectInputPort::SubjectInputPort(YACS::ENGINE::InputPort *port, Subject *paren
     {
       if (_inputPort->getName() == "select") _destructible = false;
     }
-  else if (ForEachLoop* foreach = dynamic_cast<ForEachLoop*>(node))
+  else if (ForEachLoopGen* foreach = dynamic_cast<ForEachLoopGen*>(node))
     {
       if (_inputPort->getName() == "nbBranches") _destructible = false;
     }