-/*=========================================================================
+/*=========================================================================
Program: bbtk
Module: $RCSfile$
Language: C++
/* ---------------------------------------------------------------------
-* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
-* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
-*
-* This software is governed by the CeCILL-B license under French law and
-* abiding by the rules of distribution of free software. You can use,
-* modify and/ or redistribute the software under the terms of the CeCILL-B
-* license as circulated by CEA, CNRS and INRIA at the following URL
-* http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-* or in the file LICENSE.txt.
-*
-* As a counterpart to the access to the source code and rights to copy,
-* modify and redistribute granted by the license, users are provided only
-* with a limited warranty and the software's author, the holder of the
-* economic rights, and the successive licensors have only limited
-* liability.
-*
-* The fact that you are presently reading this means that you have had
-* knowledge of the CeCILL-B license and that you accept its terms.
-* ------------------------------------------------------------------------ */
+ * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
+ * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
+ *
+ * This software is governed by the CeCILL-B license under French law and
+ * abiding by the rules of distribution of free software. You can use,
+ * modify and/ or redistribute the software under the terms of the CeCILL-B
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ * or in the file LICENSE.txt.
+ *
+ * As a counterpart to the access to the source code and rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty and the software's author, the holder of the
+ * economic rights, and the successive licensors have only limited
+ * liability.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL-B license and that you accept its terms.
+ * ------------------------------------------------------------------------ */
/**
-* \file
-* \brief Class bbtk::GPortModel
-*/
+ * \file
+ * \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 {
-#include "GPortModel.h"
-namespace bbtk
-{
-
-
- //=========================================================================
- GPortModel::GPortModel()
- {
- _parentBox = NULL;
- _portType=-1;
- _posInBox=0;
- _isConnected=false;
- _value="";
- _isValueSet=false;
- }
-
- //=========================================================================
- GPortModel::~GPortModel()
- {
- }
- //=========================================================================
-
- 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;
+ GPortModel::GPortModel( ) {
+ _parentBox = NULL ;
+ _portType = -1 ;
+ _posInBox = 0 ;
+ _isConnected = false ;
+ _value = "" ;
+ _isValueSet = false ;
- setFinalPoint(posX,posY,posZ);
-
- }
- //=========================================================================
+ }
+
+ //=========================================================================
+
+ GPortModel::~GPortModel( ) {
+ }
+ //=========================================================================
+
+ 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 ) ;
+
+ 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 / 2 ) + _posInBox * 1.1 * PORT_WIDTH ;
+
+ setInicPoint( posX , posY , posZ ) ;
+
+ posX = posX + PORT_WIDTH ;
+ posY = posY - PORT_HEIGHT ;
+
+ setFinalPoint( posX , posY , posZ ) ;
+
+ }
+
+ //=========================================================================
+
+ int GPortModel::getPortType( ) {
+ return _portType ;
+ }
+
+ //=========================================================================
+
+ int GPortModel::getPosInBox( ) {
+ return _posInBox ;
+ }
- int GPortModel::getPortType()
- {
- return _portType;
- }
+ //=========================================================================
- //=========================================================================
-
- std::string GPortModel::getStatusText()
- {
- std::string temp = "Name:";
+ 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 ) {
+
+ //Removing Colons JPRG
+ _parentBox->removeColons(value);
+
+ _value = value ;
+ if ( _value == "" ) {
+ _isValueSet = false ;
+ } else {
+ _isValueSet = true ;
+ }
+ notifyObservers( _objectId ) ;
+ }
+
+ //=========================================================================
+
+ std::string GPortModel::getValue( ) {
+ //JPRG::Adding Colons
+ std::string text = _value;
+ _parentBox->addColons(text);
+ return text;
- 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;
- }
-
- //=========================================================================
-
- 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
+ }
+
+ //=========================================================================
+
+ 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