X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsKernelEditorGraphic%2FGPortModel.cxx;h=2ca30ba2c5d4fc8f843b7c3e74b34df7bbf6698a;hb=1a1d60ee9a094a5adfbe674e5d81a8fa846c099f;hp=8672eedafa918db517bcf5bbbcdf57f08269982a;hpb=5df5effdcd9f09c81c68fd63b1f0359593a823bd;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx index 8672eed..2ca30ba 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx @@ -1,4 +1,4 @@ -/*========================================================================= +/*========================================================================= Program: bbtk Module: $RCSfile$ Language: C++ @@ -8,100 +8,186 @@ Version: $Revision$ /* --------------------------------------------------------------------- -* 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 + * 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() - { - _parentBox = NULL; - _portType=-1; - } + //========================================================================= - //========================================================================= - GPortModel::~GPortModel() - { - } - //========================================================================= + GPortModel::~GPortModel( ) { + } + //========================================================================= - void GPortModel::registerInBox(GBlackBoxModel *blackBox,int portType, int pos) - { - _parentBox = blackBox; - _portType = portType; + void GPortModel::registerInBox( GBoxModel *blackBox , int portType , int pos ) { + _parentBox = blackBox ; + _portType = portType ; + _posInBox = pos ; + updatePortPosition( ) ; + } - updatePortPosition(pos); + //========================================================================= - } + 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 ; + } - void GPortModel::updatePortPosition(int pos) - { - double xInic, yInic,zInic,xFin,yFin,zFin; - _parentBox->getInicPoint(xInic,yInic,zInic); - _parentBox->getFinalPoint(xFin, yFin,zFin); + //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 ; - double posX=xInic,posY=yInic,posZ=zInic; - if(_portType==GOUTPUTPORT) - { - posY = yInic+PORT_HEIGHT; - } - else if(_portType==GINPUTPORT) - { - posY = yFin; - } + setInicPoint( posX , posY , posZ ) ; - //Variable 'pos' starts with value 0 and it represents the position of the port in the box from left to right - posX = xInic + PORT_WIDTH + pos*2*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 ; + } + + //========================================================================= + + std::string GPortModel::getStatusText( ) { + std::string temp = "" ; + + temp += _bbtkName ; + if ( isValueSet( ) ) { + temp += "(" ; + temp += _value ; + temp += ")" ; + } + temp += " " ; + temp += _bbtkType ; + + return temp ; + } - posX=posX+PORT_WIDTH; - posY=posY-PORT_HEIGHT; + //========================================================================= - setFinalPoint(posX,posY,posZ); + 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; - setChanged(); - notifyObservers(); - } + } + + //========================================================================= + + bool GPortModel::isValueSet( ) { + return _isValueSet ; + } + + //========================================================================= + + void GPortModel::save( std::string &content ) { + content += "PORT\n" ; - //========================================================================= + // Port value info + content += _bbtkName ; + content += ":" ; + content += _value ; + content += "\n" ; + } - int GPortModel::getPortType() - { - return _portType; - } + //========================================================================= -} // EO namespace bbtk +} // EO namespace bbtk // EOF