X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsKernelEditorGraphic%2FGPortModel.cxx;h=1d16dc16988d41150d7a499e7217cb98458cb364;hb=refs%2Ftags%2FCREATOOLS_2-0-3;hp=82940f85e46ccaaf298f4105c668b016cd819bf2;hpb=311af31f393ba7d5788a0a843ee412eebdf43a82;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx index 82940f8..1d16dc1 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx @@ -33,7 +33,11 @@ Version: $Revision$ * \brief Class bbtk::GPortModel */ - +/**** +* Design and Developpement of BBTK GEditor +* Ricardo A Corredor J +* RaC - 2010 +****/ #include "GPortModel.h" namespace bbtk @@ -45,6 +49,10 @@ namespace bbtk { _parentBox = NULL; _portType=-1; + _posInBox=0; + _isConnected=false; + _value=""; + _isValueSet=false; } //========================================================================= @@ -53,40 +61,146 @@ namespace bbtk } //========================================================================= - void GPortModel::registerInBox(GBlackBoxModel *blackBox,int portType) + void GPortModel::registerInBox(GBoxModel *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); - - int cant = 0; + double posX=xInic,posY=yInic,posZ=zInic; if(_portType==GOUTPUTPORT) { - cant = _parentBox->getNumOutputPorts(); - posY = yInic+PORT_HEIGHT; + posY = yFin; } else if(_portType==GINPUTPORT) { - cant = _parentBox->getNumInputPorts(); - posY = yFin; + posY = yInic+PORT_HEIGHT; } - posX = xInic + PORT_WIDTH + cant*2*PORT_WIDTH; + //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/2) + _posInBox*1.6*PORT_WIDTH; setInicPoint(posX,posY,posZ); posX=posX+PORT_WIDTH; posY=posY-PORT_HEIGHT; - setFinalPoint(posX,posY,posZ); + setFinalPoint(posX,posY,posZ); + + } + + //========================================================================= + + int GPortModel::getPortType() + { + return _portType; + } + + //========================================================================= + + int GPortModel::getPosInBox() + { + return _posInBox; + } + + //========================================================================= + + std::string GPortModel::getStatusText() + { + std::string temp = ""; + + temp+=_bbtkName; + if(isValueSet()) + { + temp+="("; + temp+=_value; + temp+=")"; + } + temp+=" "; + temp+=_bbtkType; + + return temp; + } + + //========================================================================= + + GBoxModel* 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; + } + + //========================================================================= + + void GPortModel::save(std::string &content) + { + content+="PORT\n"; + + // Port value info + content+=_bbtkName; + content+=":"; + content+=_value; + content+="\n"; + } + + //========================================================================= + } // EO namespace bbtk // EOF