153 lines
3.6 KiB
C++
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.
|