GPortModel::GPortModel()
{
_parentBox = NULL;
+ _portType=-1;
+ _posInBox=0;
+ _isConnected=false;
+ _value="";
+ _isValueSet=false;
}
//=========================================================================
}
//=========================================================================
- void GPortModel::registerInBox(GBlackBoxModel *blackBox)
+ void GPortModel::registerInBox(GBlackBoxModel *blackBox,int portType, int pos)
{
_parentBox = blackBox;
+ _portType = portType;
+ _posInBox = pos;
+
+ updatePortPosition();
+
+ }
+
+ //=========================================================================
+
+ void GPortModel::updatePortPosition()
+ {
+ double xInic, yInic,zInic,xFin,yFin,zFin;
+ _parentBox->getInicPoint(xInic,yInic,zInic);
+ _parentBox->getFinalPoint(xFin, yFin,zFin);
+
+ double posX=xInic,posY=yInic,posZ=zInic;
+ if(_portType==GOUTPUTPORT)
+ {
+ posY = yFin;
+ }
+ else if(_portType==GINPUTPORT)
+ {
+ posY = yInic+PORT_HEIGHT;
+ }
+
+ //Attribute '_posInBox' starts with value 0 and it represents the position of the port in the box from left to right
+ posX = xInic + PORT_WIDTH + _posInBox*2*PORT_WIDTH;
+
+ setInicPoint(posX,posY,posZ);
+
+ posX=posX+PORT_WIDTH;
+ posY=posY-PORT_HEIGHT;
+
+ setFinalPoint(posX,posY,posZ);
+
+ }
+
+ //=========================================================================
+
+ int GPortModel::getPortType()
+ {
+ return _portType;
+ }
+
+ //=========================================================================
+
+ std::string GPortModel::getStatusText()
+ {
+ std::string temp = "Name:";
+
+ temp+=_bbtkName;
+ temp+=" Type:";
+ temp+=_bbtkType;
+ temp+=" Box:";
+ temp+=_parentBox->getBBTKType();
+ if(_portType==GOUTPUTPORT)
+ {
+ temp+=" [Output Port]";
+ }
+ else if(_portType==GINPUTPORT)
+ {
+ if(isValueSet())
+ {
+ temp+=" Value:";
+ temp+=_value;
+ }
+ temp+=" [Input Port]";
+ }
+
+ return temp;
+ }
+
+ //=========================================================================
+
+ GBlackBoxModel* GPortModel::getParentBox()
+ {
+ return _parentBox;
}
//=========================================================================
+
+ bool GPortModel::isConnected()
+ {
+ return _isConnected;
+ }
+
+ //=========================================================================
+
+ void GPortModel::setConnected(bool value)
+ {
+ _isConnected=value;
+ notifyObservers(_objectId);
+ }
+
+ //=========================================================================
+
+ void GPortModel::setValue(std::string value)
+ {
+ _value = value;
+ if(_value=="")
+ {
+ _isValueSet=false;
+ }
+ else
+ {
+ _isValueSet=true;
+ }
+ notifyObservers(_objectId);
+ }
+
+ //=========================================================================
+
+ std::string GPortModel::getValue()
+ {
+ return _value;
+ }
+
+ //=========================================================================
+
+ bool GPortModel::isValueSet()
+ {
+ return _isValueSet;
+ }
+
+ //=========================================================================
+
} // EO namespace bbtk
// EOF