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