#include "UINodeController.h" #include "UINetworkController.h" #include "UITerminalController.h" #include "UINetTerminalController.h" #include "UIDocumentController.h" #include "UILinkController.h" #include "UILink.h" #include "UINodeParameters.h" #include "QtNode.h" #include "QtNetwork.h" #include namespace FD { using namespace std; UINodeController::UINodeController() : UINode(NULL,NULL,false), m_QtNode(NULL) { } UINodeController::UINodeController(UINetworkController* _net, xmlNodePtr def) : UINode(_net,def,false), m_QtNode(NULL) { cerr<<"UINodeController::UINodeController(UINetworkController* _net, xmlNodePtr def)"<getDocument()->getDescription(type); //Updating information from terminals updateTerminals(); //updating information from parameters updateParameters(); } void UINodeController::updateTerminals() { //WARNING : //This part is taken from UINode's constructor and must be reimplemented here since //it calls virtual functions that are not "known" to base class at construction. vector inputname; vector outputname; inputname = net->getDocument()->getNetInputs(type); outputname = net->getDocument()->getNetOutputs(type); for (unsigned int i=0;i(_from),dynamic_cast(_to)); } UITerminal* UINodeController::newTerminal(ItemInfo *_info, UINode *_node, bool _isInput, double _x, double _y) { cerr<<"UITerminal* UINodeController::newTerminal"<(_node),_isInput,_x,_y); } void UINodeController::removeTerminal(UITerminalController* terminal) { std::vector link = terminal->getConnections(); for( unsigned int i = 0; i < link.size();i++ ) { m_QtNode->getQtNetwork()->removeLink( dynamic_cast(link[i])->getQtLink() ); getNetwork()->removeLink(link[i]); } m_QtNode->removeTerminal(terminal->getQtTerminal()); if(terminal->getNetTerminal()) UINode::removeTerminal(terminal->getName(), terminal->getNetTerminal()->getType()); else cerr<<"terminal->getNetTerminal()=0"<(_terminal), _type, _name); } UINodeParameters* UINodeController::newNodeParameters (UINode *_node, std::string type) { cerr<<"UINodeParameters* UINodeController::newNodeParameters"<(_node),type); return new UINodeParameters(_node,type); } void UINodeController::rename (const std::string &newName) { UINode::rename(newName); } void UINodeController::setQtNode(QtNode* node) { cerr<<"UINodeController::setQtNode "<addNode(this); connect(m_QtNode,SIGNAL(positionChanged(float, float)),this,SLOT(setPos(float, float))); } //UPDATE THE VIEW //INPUT TERMINALS cerr<(inputs[i]); if (terminalCTRL) { terminalCTRL->updateView(m_QtNode); } } //OUTPUT TERMINALS for (unsigned int i = 0; i < outputs.size(); i++) { UITerminalController *terminalCTRL = dynamic_cast(outputs[i]); if (terminalCTRL) { terminalCTRL->updateView(m_QtNode); } } //TODO : LINKS } void UINodeController::setPos(float _x, float _y) { cerr<<"(SLOT) UINodeController::setPos(float _x, float _y)"<<_x<<","<<_y<(inputs[i]); if (terminal) { terminal->updateView(m_QtNode); } } //update view for all output terminals for (unsigned int i = 0; i < outputs.size(); i++) { UITerminalController *terminal = dynamic_cast(outputs[i]); if (terminal) { terminal->updateView(m_QtNode); } } } //update view for terminals /**Pointers to all the inputs*/ //std::vector inputs; /**Pointers to all the outputs*/ //std::vector outputs; } }