OpenMS
TOPPASOutputVertex Class Reference

A vertex representing an output, either folder or files(s) More...

#include <OpenMS/VISUAL/TOPPASOutputVertex.h>

Inheritance diagram for TOPPASOutputVertex:
[legend]
Collaboration diagram for TOPPASOutputVertex:
[legend]

Public Slots

void inEdgeHasChanged () override
 
- Public Slots inherited from TOPPASVertex
virtual void inEdgeHasChanged ()
 Called by an incoming edge when it has changed. More...
 
virtual void outEdgeHasChanged ()
 Called by an outgoing edge when it has changed. More...
 

Signals

void outputFileWritten (const String &file)
 Emitted when an output file was written. More...
 
void outputFolderNameChanged ()
 Emitted when user has changed the output folder name (i.e. output dir needs to be newly created and packages updates) More...
 
- Signals inherited from TOPPASVertex
void clicked ()
 Emitted when this item is clicked. More...
 
void released ()
 Emitted when this item is released. More...
 
void hoveringEdgePosChanged (const QPointF &new_pos)
 Emitted when the position of the hovering edge changes. More...
 
void newHoveringEdge (const QPointF &pos)
 Emitted when a new out edge is supposed to be created. More...
 
void finishHoveringEdge ()
 Emitted when the mouse is released after having dragged a new edge somewhere. More...
 
void somethingHasChanged ()
 Emitted when something has changed. More...
 
void itemDragged (qreal dx, qreal dy)
 Emitted when the item is dragged. More...
 
void parameterChanged (const bool invalidates_running_pipeline)
 

Public Member Functions

 TOPPASOutputVertex ()=default
 Default C'tor. More...
 
 TOPPASOutputVertex (const TOPPASOutputVertex &rhs)
 Copy constructor. More...
 
TOPPASOutputVertexoperator= (const TOPPASOutputVertex &rhs)
 Assignment operator. More...
 
void reset (bool reset_all_files=false) override
 
void mouseDoubleClickEvent (QGraphicsSceneMouseEvent *) override
 opens the folder containing the output data More...
 
String getFullOutputDirectory () const
 Returns the full directory (including preceding output path as selected by user and a trailing '/') More...
 
String getOutputDir () const
 Returns the directory where the output files are stored (includes a trailing '/') More...
 
String createOutputDir () const
 Creates the output directory for this node (includes a trailing '/') More...
 
void setTopoNr (UInt nr) override
 Sets the topological sort number and removes invalidated tmp files. More...
 
void openContainingFolder () const
 Opens the folders of the output files. More...
 
void setOutputFolderName (const QString &name)
 
const QString & getOutputFolderName () const
 return the output folder where results are written More...
 
- Public Member Functions inherited from TOPPASVertex
 TOPPASVertex ()
 Default Constructor. More...
 
 TOPPASVertex (const TOPPASVertex &rhs)
 Copy constructor. More...
 
 ~TOPPASVertex () override=default
 Destructor. More...
 
TOPPASVertexoperator= (const TOPPASVertex &rhs)
 Assignment operator. More...
 
virtual std::unique_ptr< TOPPASVertexclone () const =0
 Make a copy of this vertex on the heap and return a pointer to it (useful for copying nodes) More...
 
void paint (QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *, bool round_shape=true)
 base paint method for all derived classes. should be called first in child-class paint More...
 
bool buildRoundPackages (RoundPackages &pkg, String &error_msg)
 
bool isUpstreamFinished () const
 check if all upstream nodes are ready to go ( 'finished_' is true) More...
 
QRectF boundingRect () const override=0
 Returns the bounding rectangle of this item. More...
 
QPainterPath shape () const final
 Returns a more precise shape. More...
 
ConstEdgeIterator outEdgesBegin () const
 Returns begin() iterator of outgoing edges. More...
 
ConstEdgeIterator outEdgesEnd () const
 Returns end() iterator of outgoing edges. More...
 
ConstEdgeIterator inEdgesBegin () const
 Returns begin() iterator of incoming edges. More...
 
ConstEdgeIterator inEdgesEnd () const
 Returns end() iterator of incoming edges. More...
 
Size incomingEdgesCount ()
 Returns the number of incoming edges. More...
 
Size outgoingEdgesCount ()
 Returns the number of outgoing edges. More...
 
void addInEdge (TOPPASEdge *edge)
 Adds an incoming edge. More...
 
void addOutEdge (TOPPASEdge *edge)
 Adds an outgoing edge. More...
 
void removeInEdge (TOPPASEdge *edge)
 Removes an incoming edge. More...
 
void removeOutEdge (TOPPASEdge *edge)
 Removes an outgoing edge. More...
 
DFS_COLOR getDFSColor ()
 Returns the DFS color of this node. More...
 
void setDFSColor (DFS_COLOR color)
 Sets the DFS color of this node. More...
 
TOPPASVertex::SUBSTREESTATUS getSubtreeStatus () const
 Checks if all tools in the subtree below this node are finished. More...
 
bool isTopoSortMarked () const
 Returns whether the vertex has been marked already (during topological sort) More...
 
void setTopoSortMarked (bool b)
 (Un)marks the vertex (during topological sort) More...
 
UInt getTopoNr () const
 Returns the topological sort number. More...
 
virtual void markUnreachable ()
 Marks this node (and everything further downstream) as unreachable. Overridden behavior in mergers. More...
 
bool isReachable () const
 Returns whether this node is reachable. More...
 
bool isFinished () const
 Returns whether this node has already been processed during the current pipeline execution. More...
 
virtual void run ()
 
virtual bool invertRecylingMode ()
 invert status of recycling More...
 
bool isRecyclingEnabled () const
 get status of recycling More...
 
void setRecycling (const bool is_enabled)
 set status of recycling More...
 
virtual String getName () const =0
 
QStringList getFileNames (int param_index, int round) const
 gets filenames for a certain output parameter (from this vertex), for a certain TOPPAS round More...
 
QStringList getFileNames () const
 get all output files for all parameters for all rounds More...
 
const RoundPackagesgetOutputFiles () const
 
bool allInputsReady () const
 check if all upstream nodes are finished More...
 

Protected Attributes

QString output_folder_name_
 custom output folder name More...
 
int files_written_ = 0
 files that were already written More...
 
int files_total_ = 0
 total number of files from upstream More...
 
- Protected Attributes inherited from TOPPASVertex
EdgeContainer in_edges_
 The list of incoming edges. More...
 
EdgeContainer out_edges_
 The list of outgoing edges. More...
 
bool edge_being_created_ {false}
 Indicates whether a new out edge is currently being created. More...
 
QColor pen_color_ {Qt::black}
 The color of the pen. More...
 
QColor brush_color_ { Qt::lightGray}
 The color of the brush. More...
 
DFS_COLOR dfs_color_ {DFS_WHITE}
 The DFS color of this node. More...
 
bool topo_sort_marked_ {false}
 "marked" flag for topological sort More...
 
UInt topo_nr_
 The number in a topological sort of the entire graph. More...
 
RoundPackages output_files_
 Stores the current output file names for each output parameter. More...
 
int round_total_ {-1}
 number of rounds this node will do ('Merge All' nodes will pass everything, thus do only one round) More...
 
int round_counter_ {0}
 currently finished number of rounds (TODO: do we need that?) More...
 
bool finished_ {false}
 Stores whether this node has already been processed during the current pipeline execution. More...
 
bool reachable_ {true}
 Indicates whether this node is reachable (i.e. there is an input node somewhere further upstream) More...
 
bool allow_output_recycling_ {false}
 shall subsequent tools be allowed to recycle the output of this node to match the number of rounds imposed by other parent nodes? More...
 

Additional Inherited Members

- Public Types inherited from TOPPASVertex
enum  DFS_COLOR { DFS_WHITE , DFS_GRAY , DFS_BLACK }
 The color of a vertex during depth-first search. More...
 
enum  SUBSTREESTATUS { TV_ALLFINISHED , TV_UNFINISHED , TV_UNFINISHED_INBRANCH }
 The color of a vertex during depth-first search. More...
 
typedef QList< TOPPASEdge * > EdgeContainer
 The container for in/out edges. More...
 
typedef EdgeContainer::iterator EdgeIterator
 A mutable iterator for in/out edges. More...
 
typedef EdgeContainer::const_iterator ConstEdgeIterator
 A const iterator for in/out edges. More...
 
using RoundPackage = std::map< Int, VertexRoundPackage >
 
using RoundPackageConstIt = RoundPackage::const_iterator
 
using RoundPackageIt = RoundPackage::iterator
 
using RoundPackages = std::vector< RoundPackage >
 all information a node needs to process all rounds More...
 
- Protected Member Functions inherited from TOPPASVertex
void mouseReleaseEvent (QGraphicsSceneMouseEvent *e) override
 
void mousePressEvent (QGraphicsSceneMouseEvent *e) override
 
void mouseDoubleClickEvent (QGraphicsSceneMouseEvent *e) override
 
void mouseMoveEvent (QGraphicsSceneMouseEvent *e) override
 
void contextMenuEvent (QGraphicsSceneContextMenuEvent *event) override
 
virtual void moveNewEdgeTo_ (const QPointF &pos)
 Moves the target pos of the edge which is just being created to pos. More...
 
String get3CharsNumber_ (UInt number) const
 Returns a three character string (i.e. 001 instead of 1) for the given number. More...
 
void debugOut_ (const String &) const
 Displays the debug output message, if TOPPAS_DEBUG is defined. More...
 

Detailed Description

A vertex representing an output, either folder or files(s)

Constructor & Destructor Documentation

◆ TOPPASOutputVertex() [1/2]

TOPPASOutputVertex ( )
default

Default C'tor.

◆ TOPPASOutputVertex() [2/2]

Copy constructor.

Member Function Documentation

◆ createOutputDir()

String createOutputDir ( ) const

Creates the output directory for this node (includes a trailing '/')

◆ getFullOutputDirectory()

String getFullOutputDirectory ( ) const

Returns the full directory (including preceding output path as selected by user and a trailing '/')

◆ getOutputDir()

String getOutputDir ( ) const

Returns the directory where the output files are stored (includes a trailing '/')

◆ getOutputFolderName()

const QString& getOutputFolderName ( ) const

return the output folder where results are written

◆ inEdgeHasChanged

void inEdgeHasChanged ( )
overrideslot

◆ mouseDoubleClickEvent()

void mouseDoubleClickEvent ( QGraphicsSceneMouseEvent *  )
override

opens the folder containing the output data

◆ openContainingFolder()

void openContainingFolder ( ) const

Opens the folders of the output files.

◆ operator=()

TOPPASOutputVertex& operator= ( const TOPPASOutputVertex rhs)

Assignment operator.

◆ outputFileWritten

void outputFileWritten ( const String file)
signal

Emitted when an output file was written.

◆ outputFolderNameChanged

void outputFolderNameChanged ( )
signal

Emitted when user has changed the output folder name (i.e. output dir needs to be newly created and packages updates)

◆ reset()

void reset ( bool  reset_all_files = false)
overridevirtual

Resets the status

Parameters
reset_all_filesNot used in this implementation, but in derived classes

Reimplemented from TOPPASVertex.

◆ setOutputFolderName()

void setOutputFolderName ( const QString &  name)

Sets a custom output folder name, which will be integrated into 'getOutputDir()' and 'getFullOutputDirectory()' calls.

Note
The string is not checked for validity (avoid characters which are not allowed in directories, e.g. '{')

◆ setTopoNr()

void setTopoNr ( UInt  nr)
overridevirtual

Sets the topological sort number and removes invalidated tmp files.

Reimplemented from TOPPASVertex.

Member Data Documentation

◆ files_total_

int files_total_ = 0
protected

total number of files from upstream

◆ files_written_

int files_written_ = 0
protected

files that were already written

◆ output_folder_name_

QString output_folder_name_
protected

custom output folder name