+++ /dev/null
-#ifndef __cpBaseQtApplication__Pipeline__Block__h__\r
-#define __cpBaseQtApplication__Pipeline__Block__h__\r
-\r
-#include <cpBaseQtApplication_Export.h>\r
-#include <QGraphicsPathItem>\r
-#include <itkCommand.h>\r
-#include <cpPlugins/Pipeline/ProcessObject.h>\r
-\r
-namespace cpBaseQtApplication\r
-{\r
- namespace Pipeline\r
- {\r
- class Port;\r
- class NamePort;\r
- class InfoPort;\r
- class InputPort;\r
- class OutputPort;\r
-\r
- /**\r
- */\r
- class cpBaseQtApplication_EXPORT Block\r
- : public QGraphicsPathItem\r
- {\r
- public:\r
- typedef Block Self;\r
- typedef QGraphicsPathItem Superclass;\r
- typedef cpPlugins::Pipeline::ProcessObject TFilter;\r
-\r
- protected:\r
- /**\r
- */\r
- class _TFilterObserver\r
- : public itk::Command\r
- {\r
- public:\r
- typedef itk::SmartPointer< _TFilterObserver > Pointer;\r
- typedef itk::SmartPointer< const _TFilterObserver > ConstPointer;\r
- itkNewMacro( _TFilterObserver );\r
- public:\r
- void Execute( itk::Object* c, const itk::EventObject& e ) override\r
- { this->Execute( const_cast< const itk::Object* >( c ), e ); }\r
- void Execute( const itk::Object* c, const itk::EventObject& e ) override;\r
- public:\r
- Block* ObservedBlock;\r
- };\r
-\r
- public:\r
- enum { Type = QGraphicsItem::UserType + 6 };\r
-\r
- Block(\r
- TFilter* filter,\r
- QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL\r
- );\r
- virtual ~Block( );\r
-\r
- TFilter* filter( );\r
- const TFilter* filter( ) const;\r
-\r
- void setNamePort( const QString& txt );\r
- void setInfoPort( const QString& txt );\r
- InputPort* addInputPort( const QString& txt, bool multiple );\r
- OutputPort* addOutputPort( const QString& txt );\r
-\r
- InputPort* inputPort( const QString& txt );\r
- OutputPort* outputPort( const QString& txt );\r
-\r
- QString namePort( ) const;\r
- const InputPort* inputPort( const QString& txt ) const;\r
- const OutputPort* outputPort( const QString& txt ) const;\r
-\r
- bool connectOutputPortSlot( QObject* receiver, const char* slot );\r
-\r
- inline int type( ) const\r
- { return( this->Type ); }\r
-\r
- virtual void setPos( const QPointF& pos );\r
- virtual void setPos( qreal x, qreal y );\r
-\r
- virtual void paint(\r
- QPainter* painter,\r
- const QStyleOptionGraphicsItem* option,\r
- QWidget* widget\r
- );\r
-\r
- protected:\r
- QVariant itemChange( GraphicsItemChange change, const QVariant& value );\r
- void _setTypeInfo( const QString& txt );\r
- void _configPort( Port* port );\r
-\r
- virtual void mouseReleaseEvent( QGraphicsSceneMouseEvent* evt );\r
- virtual void contextMenuEvent( QGraphicsSceneContextMenuEvent* evt );\r
-\r
- private:\r
- int m_HorzMargin;\r
- int m_VertMargin;\r
- int m_Width;\r
- int m_Height;\r
-\r
- NamePort* m_NamePort;\r
- InfoPort* m_InfoPort;\r
- std::map< std::string, InputPort* > m_InputPorts;\r
- std::map< std::string, OutputPort* > m_OutputPorts;\r
-\r
- TFilter::Pointer m_Filter;\r
- _TFilterObserver::Pointer m_FilterObserver;\r
- unsigned long m_FilterObserverId;\r
-\r
- static QColor SelectedAndUpdated;\r
- static QColor NotSelectedAndUpdated;\r
- static QColor SelectedAndNotUpdated;\r
- static QColor NotSelectedAndNotUpdated;\r
- };\r
-\r
- } // ecapseman\r
-\r
-} // ecapseman\r
-\r
-#endif // __cpBaseQtApplication__Pipeline__Block__h__\r
-\r
-// eof - $RCSfile$\r