]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx
This commit was manufactured by cvs2svn to create tag 'CREATOOLS_2-0-3'.
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsKernelEditorGraphic / GPortModel.cxx
index abb6945db8c7bc903b5a513c5a5951570f06424d..1d16dc16988d41150d7a499e7217cb98458cb364 100644 (file)
@@ -33,7 +33,11 @@ Version:   $Revision$
 *  \brief Class bbtk::GPortModel 
 */
 
-
+/****
+* Design and Developpement of BBTK GEditor
+* Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
+* 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,18 +61,19 @@ namespace bbtk
        }
        //=========================================================================
 
-       void GPortModel::registerInBox(GBlackBoxModel *blackBox,int portType, int pos)
+       void GPortModel::registerInBox(GBoxModel *blackBox,int portType, int pos)
        {
                _parentBox = blackBox;
                _portType = portType;
+               _posInBox = pos;
 
-               updatePortPosition(pos);
+               updatePortPosition();
 
        }
 
        //=========================================================================
 
-       void GPortModel::updatePortPosition(int pos)
+       void GPortModel::updatePortPosition()
        {
                double xInic, yInic,zInic,xFin,yFin,zFin;
                _parentBox->getInicPoint(xInic,yInic,zInic);
@@ -73,15 +82,15 @@ namespace bbtk
                double posX=xInic,posY=yInic,posZ=zInic;
                if(_portType==GOUTPUTPORT)
                {
-                       posY = yInic+PORT_HEIGHT;
+                       posY = yFin;
                }
                else if(_portType==GINPUTPORT)
                {
-                       posY = yFin;
+                       posY = yInic+PORT_HEIGHT;
                }
 
-               //Usually pos begins in 0
-               posX = xInic + PORT_WIDTH + pos*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);
 
@@ -90,8 +99,6 @@ namespace bbtk
 
                setFinalPoint(posX,posY,posZ);          
                
-               setChanged();
-               notifyObservers();
        }
 
        //=========================================================================
@@ -101,6 +108,99 @@ namespace bbtk
                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