]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx
Move box and refresh position ... ports don't refresh automatically their position...
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsKernelEditorGraphic / GPortModel.cxx
index 82940f85e46ccaaf298f4105c668b016cd819bf2..abb6945db8c7bc903b5a513c5a5951570f06424d 100644 (file)
@@ -53,40 +53,54 @@ namespace bbtk
        }
        //=========================================================================
 
-       void GPortModel::registerInBox(GBlackBoxModel *blackBox,int portType)
+       void GPortModel::registerInBox(GBlackBoxModel *blackBox,int portType, int pos)
        {
                _parentBox = blackBox;
                _portType = portType;
 
+               updatePortPosition(pos);
+
+       }
+
+       //=========================================================================
+
+       void GPortModel::updatePortPosition(int pos)
+       {
                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;
                }
                else if(_portType==GINPUTPORT)
                {
-                       cant = _parentBox->getNumInputPorts();
                        posY = yFin;
                }
 
-               posX = xInic + PORT_WIDTH + cant*2*PORT_WIDTH;
+               //Usually pos begins in 0
+               posX = xInic + PORT_WIDTH + pos*2*PORT_WIDTH;
                
                setInicPoint(posX,posY,posZ);
 
                posX=posX+PORT_WIDTH;
                posY=posY-PORT_HEIGHT;
 
-               setFinalPoint(posX,posY,posZ);
-
+               setFinalPoint(posX,posY,posZ);          
+               
+               setChanged();
+               notifyObservers();
        }
 
        //=========================================================================
+
+       int GPortModel::getPortType()
+       {
+               return _portType;
+       }
+
 }  // EO namespace bbtk
 
 // EOF