if (!QtGuiContext::getQtCurrent()->isEdition())
_formEachLoop->setEnabled (false);
Node* node=_subjectNode->getNode();
- ForEachLoop *fe = dynamic_cast<ForEachLoop*>(node);
+ ForEachLoopGen *fe = dynamic_cast<ForEachLoopGen*>(node);
if(fe)
_formEachLoop->lineEdit->setText(fe->edGetSamplePort()->edGetType()->name());
connect(_formEachLoop->sb_nbranch, SIGNAL(editingFinished()),
{
bool isOk = false;
Node* node=_subjectNode->getNode();
- ForEachLoop *fe = dynamic_cast<ForEachLoop*>(node);
+ ForEachLoopGen *fe = dynamic_cast<ForEachLoopGen*>(node);
InputPort* dp=fe->edGetSeqOfSamplesPort();
SubjectDataPort* sdp = QtGuiContext::getQtCurrent()->_mapOfSubjectDataPort[dp];
isOk=sdp->setValue(_formEachLoop->lineEdit_2->text().toStdString());
else if (dynamic_cast<YACS::ENGINE::ForLoop*>(node)) nodeType = FORLOOP;
else if (dynamic_cast<YACS::ENGINE::WhileLoop*>(node)) nodeType = WHILELOOP;
else if (dynamic_cast<YACS::ENGINE::Switch*>(node)) nodeType = SWITCH;
- else if (dynamic_cast<YACS::ENGINE::ForEachLoop*>(node)) nodeType = FOREACHLOOP;
+ else if (dynamic_cast<YACS::ENGINE::ForEachLoopGen*>(node)) nodeType = FOREACHLOOP;
else if (dynamic_cast<YACS::ENGINE::OptimizerLoop*>(node)) nodeType = OPTIMIZERLOOP;
else if (dynamic_cast<YACS::ENGINE::PresetNode*>(node)) nodeType = PRESETNODE;
else if (dynamic_cast<YACS::ENGINE::OutNode*>(node)) nodeType = OUTNODE;
(dynamic_cast<YACS::ENGINE::Switch*>(father))->edSetNode(_swCase,son);
break;
case FOREACHLOOP:
- (dynamic_cast<YACS::ENGINE::ForEachLoop*>(father))->edSetNode(son);
+ (dynamic_cast<YACS::ENGINE::ForEachLoopGen*>(father))->edSetNode(son);
break;
case OPTIMIZERLOOP:
(dynamic_cast<YACS::ENGINE::OptimizerLoop*>(father))->edSetNode(son);
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);
}
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);
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);
}
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;
{
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;
}
class ForLoop;
class DynParaLoop;
class ForEachLoop;
+ class ForEachLoopGen;
class WhileLoop;
class Switch;
class OptimizerLoop;
class SubjectForEachLoop: public SubjectDynParaLoop
{
public:
- SubjectForEachLoop(YACS::ENGINE::ForEachLoop *forEachLoop, Subject *parent);
+ SubjectForEachLoop(YACS::ENGINE::ForEachLoopGen *forEachLoop, Subject *parent);
virtual ~SubjectForEachLoop();
virtual void completeChildrenSubjectList(SubjectNode *son);
virtual void removeNode(SubjectNode * child);
void localclean(Command *command=0);
virtual TypeOfElem getType(){return FOREACHLOOP;}
protected:
- YACS::ENGINE::ForEachLoop *_forEachLoop;
+ YACS::ENGINE::ForEachLoopGen *_forEachLoop;
SubjectNode* _splitter;
};