coriolis/hurricane/src/viewer/SelectorCriterion.cpp

153 lines
3.6 KiB
C++

// -*- C++ -*-
//
// This file is part of the Coriolis Software.
// Copyright (c) UPMC/LIP6 2008-2008, All Rights Reserved
//
// ===================================================================
//
// $Id$
//
// x-----------------------------------------------------------------x
// | |
// | C O R I O L I S |
// | V L S I B a c k e n d D a t a - B a s e |
// | |
// | Author : Jean-Paul CHAPUT |
// | E-mail : Jean-Paul.Chaput@asim.lip6.fr |
// | =============================================================== |
// | C++ Header : "./SelectorCriterion.cpp" |
// | *************************************************************** |
// | U p d a t e s |
// | |
// x-----------------------------------------------------------------x
#include "hurricane/viewer/CellWidget.h"
#include "hurricane/viewer/SelectorCriterion.h"
namespace Hurricane {
// -------------------------------------------------------------------
// Class : "Hurricane::SelectorCriterion".
SelectorCriterion::~SelectorCriterion ()
{ }
const Net* SelectorCriterion::getNet () const
{ return NULL; }
void SelectorCriterion::undoSelection ( CellWidget* cw )
{ }
// -------------------------------------------------------------------
// Class : "Hurricane::NetSelectorCriterion".
NetSelectorCriterion::NetSelectorCriterion ( const Net* net )
: _net(net)
, _name(_net->getName())
{ }
NetSelectorCriterion::~NetSelectorCriterion ()
{ }
const Net* NetSelectorCriterion::getNet () const
{ return _net; }
bool NetSelectorCriterion::isValid ( CellWidget* cw ) const
{
if ( !cw->getCell() ) return false;
if ( !cw->getCell()->getNet(_name) ) return false;
return true;
}
void NetSelectorCriterion::doSelection ( CellWidget* cw )
{
cw->_select ( _net );
}
void NetSelectorCriterion::undoSelection ( CellWidget* cw )
{
cw->_unselect ( _net );
}
string NetSelectorCriterion::_getTypeName () const
{ return "NetSelectorCriterion"; }
string NetSelectorCriterion::_getString () const
{
string s = "<" + _getTypeName() + " " + getString(_net) + ">";
return s;
}
Record* NetSelectorCriterion::_getRecord () const
{
Record* record = new Record ( _getString() );
record->add ( getSlot("_net",_net) );
return record;
}
// -------------------------------------------------------------------
// Class : "Hurricane::AreaSelectorCriterion".
AreaSelectorCriterion::AreaSelectorCriterion ( const Box& area )
: _area(area)
{ }
AreaSelectorCriterion::~AreaSelectorCriterion ()
{ }
const Box& AreaSelectorCriterion::getArea () const
{ return _area; }
bool AreaSelectorCriterion::isValid ( CellWidget* ) const
{ return true; }
void AreaSelectorCriterion::doSelection ( CellWidget* cw )
{
cw->_selectOccurrencesUnder ( _area );
}
string AreaSelectorCriterion::_getTypeName () const
{ return "AreaSelectorCriterion"; }
string AreaSelectorCriterion::_getString () const
{
string s = "<" + _getTypeName() + " " + getString(_area) + ">";
return s;
}
Record* AreaSelectorCriterion::_getRecord () const
{
Record* record = new Record ( _getString() );
record->add ( getSlot("_area",&_area) );
return record;
}
} // End of Hurricane namespace.