#include "UITerminalController.h"
#include "UINetTerminalController.h"
#include "UINodeController.h"
#include "UILinkController.h"
#include "QtNode.h"
#include "QtTerminal.h"
#include <iostream>
namespace FD
{
using namespace std;
UITerminalController::UITerminalController ( ItemInfo *terminalInfo, UINodeController *_node,
bool _isInput, double _x, double _y )
: UITerminal ( terminalInfo,_node,_isInput,_x,_y ), m_QtTerminal ( NULL )
{
//UPDATE VIEW(S)
if ( terminalInfo && _node )
{
QtNode* qtNode = _node->getQtNode();
if ( qtNode )
{
updateView ( qtNode );
}
else
{
cerr<<"WARNING : UITerminalController::UITerminalController -- No QtNode defined."<<endl;
}
}
}
QtTerminal* UITerminalController::getQtTerminal()
{
return m_QtTerminal;
}
void UITerminalController::updateView ( QtNode *node )
{
if ( node )
{
//CREATE VIEW IF REQUIRED
if ( !m_QtTerminal )
{
m_QtTerminal = node->addTerminal ( this );
cerr<<"CONNECTION TERMINAL CONTROLLER"<<endl;
//connect signals
QObject::connect ( m_QtTerminal,SIGNAL ( positionChanged ( float,float ) ),this,SLOT ( setPos ( float,float ) ) );
}
//UPDATE NET TERMINAL
if ( netTerminal )
{
UINetTerminalController *netTerminalCTRL = dynamic_cast<UINetTerminalController*> ( netTerminal );
if ( netTerminalCTRL )
{
netTerminalCTRL->updateView ( m_QtTerminal );
}
}
//UPDATE LINKS
for ( unsigned int i= 0; i < connections.size(); i++ )
{
UILinkController *linkCtrl = dynamic_cast<UILinkController*> ( connections[i] );
if ( linkCtrl )
{
linkCtrl->updateView ( node->getQtNetwork() );
}
else
{
cerr<<"UITerminalController::updateView(QtNode *node) -- ERROR linkCtrl is NULL"<<endl;
}
}
} //if node
}
void UITerminalController::setPos ( float _x, float _y )
{
cerr<<"(SLOT) void UITerminalController::setPos(float _x, float _y)"<<endl;
x = _x;
y = _y;
}
} //namespace FD
syntax highlighted by Code2HTML, v. 0.9.1