1 #ifndef __cpBaseQtApplication__Pipeline__Block__h__
\r
2 #define __cpBaseQtApplication__Pipeline__Block__h__
\r
4 #include <cpBaseQtApplication_Export.h>
\r
5 #include <QGraphicsPathItem>
\r
6 #include <itkCommand.h>
\r
7 #include <cpPlugins/BaseObjects/ProcessObject.h>
\r
9 namespace cpBaseQtApplication
\r
21 class cpBaseQtApplication_EXPORT Block
\r
22 : public QGraphicsPathItem
\r
26 typedef QGraphicsPathItem Superclass;
\r
27 typedef cpPlugins::BaseObjects::ProcessObject TFilter;
\r
32 class _TFilterObserver
\r
33 : public itk::Command
\r
36 typedef itk::SmartPointer< _TFilterObserver > Pointer;
\r
37 typedef itk::SmartPointer< const _TFilterObserver > ConstPointer;
\r
38 cpPluginsNewMacro( _TFilterObserver );
\r
40 void Execute( itk::Object* c, const itk::EventObject& e )
\r
41 { this->Execute( const_cast< const itk::Object* >( c ), e ); }
\r
42 void Execute( const itk::Object* c, const itk::EventObject& e );
\r
44 Block* ObservedBlock;
\r
48 enum { Type = QGraphicsItem::UserType + 6 };
\r
52 QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL
\r
57 const TFilter* filter( ) const;
\r
59 void setNamePort( const QString& txt );
\r
60 void setInfoPort( const QString& txt );
\r
61 InputPort* addInputPort( const QString& txt, bool multiple );
\r
62 OutputPort* addOutputPort( const QString& txt );
\r
64 InputPort* inputPort( const QString& txt );
\r
65 OutputPort* outputPort( const QString& txt );
\r
67 QString namePort( ) const;
\r
68 const InputPort* inputPort( const QString& txt ) const;
\r
69 const OutputPort* outputPort( const QString& txt ) const;
\r
71 bool connectOutputPortSlot( QObject* receiver, const char* slot );
\r
73 inline int type( ) const
\r
74 { return( this->Type ); }
\r
76 virtual void setPos( const QPointF& pos );
\r
77 virtual void setPos( qreal x, qreal y );
\r
81 const QStyleOptionGraphicsItem* option,
\r
86 QVariant itemChange( GraphicsItemChange change, const QVariant& value );
\r
87 void _setTypeInfo( const QString& txt );
\r
88 void _configPort( Port* port );
\r
90 virtual void mouseReleaseEvent( QGraphicsSceneMouseEvent* evt );
\r
91 virtual void contextMenuEvent( QGraphicsSceneContextMenuEvent* evt );
\r
99 NamePort* m_NamePort;
\r
100 InfoPort* m_InfoPort;
\r
101 std::map< std::string, InputPort* > m_InputPorts;
\r
102 std::map< std::string, OutputPort* > m_OutputPorts;
\r
104 TFilter::Pointer m_Filter;
\r
105 _TFilterObserver::Pointer m_FilterObserver;
\r
106 unsigned long m_FilterObserverId;
\r
108 static QColor SelectedAndUpdated;
\r
109 static QColor NotSelectedAndUpdated;
\r
110 static QColor SelectedAndNotUpdated;
\r
111 static QColor NotSelectedAndNotUpdated;
\r
118 #endif // __cpBaseQtApplication__Pipeline__Block__h__
\r