+
+//=====================================================================
+// Cell node: node for table view
+//=====================================================================
+SUPERVGUI_CanvasCellNode::SUPERVGUI_CanvasCellNode(QObject* theParent,
+ SUPERVGUI_Main* theMain,
+ SUPERV_CNode theNode):
+ SUPERVGUI_CanvasNode(theParent, theMain, theNode, true)
+{
+ Trace("SUPERVGUI_CanvasCellNode::SUPERVGUI_CanvasCellNode");
+
+ myIsControl = false;
+ myIsStart = false;
+
+ //check for control nodes
+ if (getEngine()->IsLoop() || getEngine()->IsSwitch()) {
+ myIsControl = true;
+ myIsStart = true;
+ }
+ if (getEngine()->IsEndLoop() || getEngine()->IsEndSwitch())
+ myIsControl = true;
+}
+
+QPopupMenu* SUPERVGUI_CanvasCellNode::getPopupMenu(QWidget* theParent)
+{
+ QPopupMenu* popup = SUPERVGUI_CanvasNode::getPopupMenu(theParent);
+ popup->setItemEnabled(myDeleteItem, false);
+ return popup;
+}
+
+void SUPERVGUI_CanvasCellNode::setPairCell(SUPERVGUI_CanvasCellNode* thePairCell) {
+ if (myIsControl) { //only for ControlNode
+ myPairCell = thePairCell;
+ }
+ else
+ myPairCell = 0;
+}
+
+SUPERVGUI_CanvasCellNode* SUPERVGUI_CanvasCellNode::getPairCell() {
+ return myPairCell;
+}
+
+void SUPERVGUI_CanvasCellNode::sync() {
+ MESSAGE("===> SUPERVGUI_CanvasCellNode::sync() " << getEngine()->Name() << ", state " << getEngine()->State());
+
+ const bool isExecuting = getMain()->getDataflow()->IsExecuting();
+ //if getEngine() is a MacroNode then set it state to state of its subgraph
+ if ( getEngine()->IsMacro() && isExecuting ) {
+ // get SubGraph from MacroNode
+ SUPERV_Graph aMacro = SUPERV::Graph::_narrow(getEngine());
+ if (!SUPERV_isNull(aMacro)) {
+ SUPERV_Graph aGraph;
+ if (aMacro->IsStreamMacro())
+ aGraph = aMacro->StreamObjRef();
+ else
+ aGraph = aMacro->FlowObjRef();
+ if (!SUPERV_isNull(aGraph)) {
+ if (aGraph->State() != SUPERV::UndefinedState && aGraph->State() != SUPERV::NoState)
+ getPrs()->setState(aGraph->State());
+ else
+ getPrs()->setState(getEngine()->State());
+ }
+ }
+ }
+ else {
+ getPrs()->setState(getEngine()->State());
+ }
+}
+
+/*bool SUPERVGUI_CanvasCellNode::setNodeName(QString aName)
+{
+ bool result = SUPERVGUI_CanvasNode::setNodeName(aName);
+ if (result && myPairCell) {
+ result = myPairCell->getEngine()->SetName((QString(tr("ENDNODE_PREFIX"))+aName).latin1());
+ if (result) {
+ setName(myPairCell->getEngine()->Name());
+ myPairCell->getPrs()->updateInfo();
+ }
+ else {
+ QMessageBox::warning( QAD_Application::getDesktop(), tr( "ERROR" ), tr( "MSG_CANT_RENAMENODE" ) );
+ }
+ }
+ return result;
+}*/
+
+SUPERVGUI_CanvasNodePrs* SUPERVGUI_CanvasCellNode::createPrs() const
+{
+ MESSAGE(" -> SUPERVGUI_CanvasCellNode::createPrs()");
+ SUPERVGUI_CanvasNodePrs* aPrs =
+ new SUPERVGUI_CanvasCellNodePrs(getMain()->getCanvasArray(),
+ (SUPERVGUI_CanvasCellNode*)this);
+ MESSAGE(" -> SUPERVGUI_CanvasCellNode::createPrs() 11");
+ return aPrs;
+}
+
+SUPERVGUI_CanvasCellEndNode::SUPERVGUI_CanvasCellEndNode( QObject* theParent,
+ SUPERVGUI_Main* theMain,
+ SUPERV_CNode theNode,
+ SUPERVGUI_CanvasCellNode* theStart):
+ SUPERVGUI_CanvasCellNode(theParent, theMain, theNode)
+{
+ //set start cell for end cell as pair
+ myPairCell = theStart;
+ //set end cell for start cell as pair
+ myPairCell->setPairCell(dynamic_cast<SUPERVGUI_CanvasCellNode*>(this));
+}
+
+//-----------------------------------------------------------
+//*************** Select Inline node dialog******************
+// Taken from SUPERVGUI_ControlNode.cxx without change
+//-----------------------------------------------------------
+
+SUPERVGUI_SelectInlineDlg::SUPERVGUI_SelectInlineDlg(SUPERVGUI_Main* theMain)
+ :QDialog(theMain, 0, true, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
+{
+ setSizeGripEnabled( true );
+ setCaption(tr("TIT_FUNC_PYTHON"));
+ QGridLayout* aMainLayout = new QGridLayout(this, 2, 2, 7, 4);
+
+ QLabel* aLabel = new QLabel("Connect to", this );
+ aMainLayout->addWidget(aLabel, 0, 0);
+
+ myCombo = new QComboBox(this);
+ myCombo->clear(); //for the additional check from GUI side for bug PAL7007
+ SUPERV_Nodes aNodesList = theMain->getDataflow()->Nodes();
+ int i;
+ for (i = 0; i < aNodesList->INodes.length(); i++) {
+ myCombo->insertItem(QString(aNodesList->INodes[i]->Name()));
+ }
+ for (i = 0; i < aNodesList->LNodes.length(); i++) {
+ myCombo->insertItem(QString(aNodesList->LNodes[i]->Name()));
+ }
+ for (i = 0; i < aNodesList->SNodes.length(); i++) {
+ myCombo->insertItem(QString(aNodesList->SNodes[i]->Name()));
+ }
+ aMainLayout->addWidget(myCombo, 0, 1);
+
+ QGroupBox* aBtnBox = new QGroupBox( this );
+ aBtnBox->setColumnLayout( 0, Qt::Vertical );
+ aBtnBox->layout()->setSpacing( 0 ); aBtnBox->layout()->setMargin( 0 );
+ QHBoxLayout* aBtnLayout = new QHBoxLayout( aBtnBox->layout() );
+ aBtnLayout->setAlignment( Qt::AlignTop );
+ aBtnLayout->setSpacing( 6 ); aBtnLayout->setMargin( 11 );
+
+ QPushButton* aOKBtn = new QPushButton( tr( "BUT_OK" ), aBtnBox );
+ connect( aOKBtn, SIGNAL( clicked() ), this, SLOT( accept() ) );
+ aBtnLayout->addWidget( aOKBtn );
+
+ aBtnLayout->addStretch();
+
+ QPushButton* aCancelBtn = new QPushButton( tr("BUT_CANCEL"), aBtnBox );
+ connect( aCancelBtn, SIGNAL( clicked() ), this, SLOT( reject() ) );
+ aBtnLayout->addWidget( aCancelBtn );
+
+ aMainLayout->addMultiCellWidget(aBtnBox, 1, 1, 0, 1);
+}