35 #ifndef OPENMS_VISUAL_TOPPASVERTEX_H 
   36 #define OPENMS_VISUAL_TOPPASVERTEX_H 
   45 #define __DEBUG_BEGIN_METHOD__ \ 
   47     for (int dbg_indnt_cntr = 0; dbg_indnt_cntr < global_debug_indent_; ++dbg_indnt_cntr)   \ 
   51     std::cout << "BEGIN [" << topo_nr_ << "] " << __PRETTY_FUNCTION__ << std::endl;             \ 
   52     ++global_debug_indent_;                                                                                                                             \ 
   55 #define __DEBUG_END_METHOD__ \ 
   57     --global_debug_indent_;                                                                                                                             \ 
   58     if (global_debug_indent_ < 0) global_debug_indent_ = 0;                                                             \ 
   59     for (int dbg_indnt_cntr = 0; dbg_indnt_cntr < global_debug_indent_; ++dbg_indnt_cntr)   \ 
   63     std::cout << "END [" << topo_nr_ << "] " << __PRETTY_FUNCTION__ << std::endl;                   \ 
   66 #define __DEBUG_BEGIN_METHOD__ {} 
   67 #define __DEBUG_END_METHOD__ {} 
   75 #include <QtGui/QPainter> 
   76 #include <QtGui/QPainterPath> 
   77 #include <QtGui/QGraphicsSceneMouseEvent> 
   78 #include <QtGui/QGraphicsSceneContextMenuEvent> 
   79 #include <QtGui/QGraphicsItem> 
   80 #include <QtCore/QProcess> 
   81 #include <QtGui/QMenu> 
  150       TV_UNFINISHED_INBRANCH 
 
  165     bool buildRoundPackages(RoundPackages & pkg, 
String & error_msg);
 
  168     bool isUpstreamFinished() 
const;
 
  171     virtual QRectF boundingRect() 
const = 0;
 
  173     virtual QPainterPath shape() 
const = 0;
 
  175     virtual void paint(QPainter * painter, 
const QStyleOptionGraphicsItem * option, 
QWidget * widget) = 0;
 
  177     ConstEdgeIterator outEdgesBegin() 
const;
 
  179     ConstEdgeIterator outEdgesEnd() 
const;
 
  181     ConstEdgeIterator inEdgesBegin() 
const;
 
  183     ConstEdgeIterator inEdgesEnd() 
const;
 
  185     Size incomingEdgesCount();
 
  187     Size outgoingEdgesCount();
 
  197     DFS_COLOR getDFSColor();
 
  199     void setDFSColor(DFS_COLOR color);
 
  207     bool isTopoSortMarked();
 
  209     void setTopoSortMarked(
bool b);
 
  213     virtual void setTopoNr(
UInt nr);
 
  215     virtual void reset(
bool reset_all_files = 
false);
 
  217     virtual void markUnreachable();
 
  221     bool isFinished() 
const;
 
  226     virtual bool invertRecylingMode();
 
  228     bool isRecyclingEnabled() 
const;
 
  230     void setRecycling(
const bool is_enabled);
 
  233     virtual String getName() 
const = 0;
 
  240     QStringList getFileNames(
int param_index, 
int round) 
const;
 
  243     QStringList getFileNames() 
const;
 
  246     const RoundPackages & getOutputFiles() 
const;
 
  250     bool allInputsReady();
 
  256     virtual void inEdgeHasChanged();
 
  258     virtual void outEdgeHasChanged();
 
  267     void hoveringEdgePosChanged(
const QPointF & new_pos);
 
  269     void newHoveringEdge(
const QPointF & pos);
 
  271     void finishHoveringEdge();
 
  273     void somethingHasChanged();
 
  275     void itemDragged(qreal dx, qreal dy);
 
  278     void parameterChanged(
const bool invalidates_running_pipeline);
 
  316     static int global_debug_indent_;
 
  321     void mouseReleaseEvent(QGraphicsSceneMouseEvent * e);
 
  322     void mousePressEvent(QGraphicsSceneMouseEvent * e);
 
  323     void mouseDoubleClickEvent(QGraphicsSceneMouseEvent * e);
 
  324     void mouseMoveEvent(QGraphicsSceneMouseEvent * e);
 
  325     void contextMenuEvent(QGraphicsSceneContextMenuEvent * event);
 
  329     virtual void moveNewEdgeTo_(
const QPointF & pos);
 
  341       for (
int i = 0; i < global_debug_indent_; ++i)
 
  345       std::cout << 
"[" << topo_nr_ << 
"] " << message << std::endl;
 
TOPPASEdge * edge
Definition: TOPPASVertex.h:123
bool edge_being_created_
Indicates whether a new out edge is currently being created. 
Definition: TOPPASVertex.h:287
QColor pen_color_
The color of the pen. 
Definition: TOPPASVertex.h:289
DFS_COLOR
The color of a vertex during depth-first search. 
Definition: TOPPASVertex.h:138
RoundPackage::iterator RoundPackageIt
Definition: TOPPASVertex.h:132
A more convenient string class. 
Definition: String.h:56
RoundPackage::const_iterator RoundPackageConstIt
Definition: TOPPASVertex.h:131
bool finished_
Stores whether this node has already been processed during the current pipeline execution. 
Definition: TOPPASVertex.h:307
Definition: TOPPASVertex.h:149
The base class of the different vertex classes. 
Definition: TOPPASVertex.h:98
std::map< Int, VertexRoundPackage > RoundPackage
Definition: TOPPASVertex.h:130
Info for one edge and round, to be passed to next node. 
Definition: TOPPASVertex.h:114
bool allow_output_recycling_
shall subsequent tools be allowed to recycle the output of this node to match the number of rounds im...
Definition: TOPPASVertex.h:311
TOPPASVertex * dfs_parent_
The DFS parent of this node. 
Definition: TOPPASVertex.h:295
DFS_COLOR dfs_color_
The DFS color of this node. 
Definition: TOPPASVertex.h:293
QStringList filenames
Definition: TOPPASVertex.h:122
An edge representing a data flow in TOPPAS. 
Definition: TOPPASEdge.h:58
SUBSTREESTATUS
The color of a vertex during depth-first search. 
Definition: TOPPASVertex.h:146
T round(T x)
Rounds the value. 
Definition: MathFunctions.h:135
EdgeContainer::iterator EdgeIterator
A mutable iterator for in/out edges. 
Definition: TOPPASVertex.h:110
EdgeContainer out_edges_
The list of outgoing edges. 
Definition: TOPPASVertex.h:285
int round_total_
number of rounds this node will do ('Merge All' nodes will pass everything, thus do only one round) ...
Definition: TOPPASVertex.h:303
Definition: TOPPASVertex.h:140
void debugOut_(const String &) const 
Displays the debug output message, if TOPPAS_DEBUG is defined. 
Definition: TOPPASVertex.h:334
Definition: TOPPASVertex.h:148
bool reachable_
Indicates whether this node is reachable (i.e. there is an input node somewhere further upstream) ...
Definition: TOPPASVertex.h:309
std::vector< RoundPackage > RoundPackages
all information a node needs to process all rounds 
Definition: TOPPASVertex.h:135
EdgeContainer in_edges_
The list of incoming edges. 
Definition: TOPPASVertex.h:283
RoundPackages output_files_
Stores the current output file names for each output parameter. 
Definition: TOPPASVertex.h:301
QList< TOPPASEdge * > EdgeContainer
The container for in/out edges. 
Definition: TOPPASVertex.h:108
Definition: TOPPASVertex.h:141
size_t Size
Size type e.g. used as variable which can hold result of size() 
Definition: Types.h:144
VertexRoundPackage()
Definition: TOPPASVertex.h:116
QColor brush_color_
The color of the brush. 
Definition: TOPPASVertex.h:291
EdgeContainer::const_iterator ConstEdgeIterator
A const iterator for in/out edges. 
Definition: TOPPASVertex.h:112
bool topo_sort_marked_
"marked" flag for topological sort 
Definition: TOPPASVertex.h:297
UInt topo_nr_
The number in a topological sort of the entire graph. 
Definition: TOPPASVertex.h:299
int round_counter_
currently finished number of rounds (TODO: do we need that?) 
Definition: TOPPASVertex.h:305