00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef OPENMS_VISUAL_MSMETADATAEXPLORER_H
00028 #define OPENMS_VISUAL_MSMETADATAEXPLORER_H
00029
00030 #include <OpenMS/DATASTRUCTURES/String.h>
00031
00032
00033 #include <QtGui/QDialog>
00034 #include <QtGui/QTreeWidget>
00035 class QTreeWidgetItem;
00036 class QPushButton;
00037 class QStackedWidget;
00038 class QHBoxLayout;
00039 class QVBoxLayout;
00040 class QGridLayout;
00041
00042 namespace OpenMS
00043 {
00044 class BaseVisualizer;
00045 class Acquisition;
00046 class AcquisitionInfo;
00047 class ContactPerson;
00048 class Digestion;
00049 class ExperimentalSettings;
00050 class Gradient;
00051 class HPLC;
00052 class PeptideIdentification;
00053 class Instrument;
00054 class InstrumentSettings;
00055 class IonDetector;
00056 class IonSource;
00057 class MassAnalyzer;
00058 class MetaInfo;
00059 class MetaInfoDescription;
00060 class MetaInfoInterface;
00061 class MetaInfoRegistry;
00062 class Modification;
00063 class PeptideHit;
00064 class Precursor;
00065 class ProcessingMethod;
00066 class ProteinHit;
00067 class ProteinIdentification;
00068 class Sample;
00069 class SampleTreatment;
00070 class Software;
00071 class SourceFile;
00072 class SpectrumSettings;
00073 class Tagging;
00074
00085 class MSMetaDataExplorer
00086 : public QDialog
00087 {
00088 Q_OBJECT
00089
00090 public:
00092 MSMetaDataExplorer(bool editable = FALSE, QWidget *parent = 0, bool modal = FALSE );
00093
00094
00095
00102 template <class T> void visualize(T& class_reference)
00103 {
00104 visualize_(class_reference);
00105 treeview_->expandItem( treeview_->findItems(QString::number(0),Qt::MatchExactly , 1).first() );
00106 }
00107
00109 bool isEditable();
00110
00112 friend class ProteinIdentificationVisualizer;
00113 friend class PeptideIdentificationVisualizer;
00114
00115 public slots:
00117 void setStatus(std::string status);
00118
00119 private slots:
00121 void showDetails_(QTreeWidgetItem *item, int column);
00122
00124 void saveAll_();
00125
00126 private:
00128
00129 void visualize_(ExperimentalSettings& meta, QTreeWidgetItem* parent=0);
00130 void visualize_(SpectrumSettings& meta, QTreeWidgetItem* parent=0);
00131 void visualize_(MetaInfoInterface& meta, QTreeWidgetItem* parent=0);
00132 void visualize_(Sample& meta, QTreeWidgetItem* parent=0);
00133 void visualize_(HPLC& meta, QTreeWidgetItem* parent=0);
00134 void visualize_(Digestion& meta, QTreeWidgetItem* parent=0);
00135 void visualize_(Modification& meta, QTreeWidgetItem* parent=0);
00136 void visualize_(Tagging& meta, QTreeWidgetItem* parent=0);
00137 void visualize_(Gradient& meta, QTreeWidgetItem* parent=0);
00138 void visualize_(Software& meta, QTreeWidgetItem* parent=0);
00139 void visualize_(SourceFile& meta, QTreeWidgetItem* parent=0);
00140 void visualize_(ContactPerson& meta, QTreeWidgetItem* parent=0);
00141 void visualize_(Instrument& meta, QTreeWidgetItem* parent=0);
00142 void visualize_(IonSource& meta, QTreeWidgetItem* parent=0);
00143 void visualize_(IonDetector& meta, QTreeWidgetItem* parent=0);
00144 void visualize_(MassAnalyzer& meta, QTreeWidgetItem* parent=0);
00145 void visualize_(ProcessingMethod& meta, QTreeWidgetItem* parent=0);
00146 void visualize_(ProteinIdentification& meta, QTreeWidgetItem* parent=0);
00147 void visualize_(ProteinHit& meta, QTreeWidgetItem* parent=0);
00148 void visualize_(PeptideHit& meta, QTreeWidgetItem* parent=0);
00149 void visualize_(Acquisition& meta, QTreeWidgetItem* parent=0);
00150 void visualize_(AcquisitionInfo& meta, QTreeWidgetItem* parent=0);
00151 void visualize_(MetaInfoDescription& meta, QTreeWidgetItem* parent=0, const String& key="");
00152 void visualize_(Precursor& meta, QTreeWidgetItem* parent=0);
00153 void visualize_(InstrumentSettings& meta, QTreeWidgetItem* parent=0);
00154 void visualize_(PeptideIdentification& meta, QTreeWidgetItem* parent=0);
00156
00158 void connectVisualizer_(BaseVisualizer*);
00159
00161 void filterHits_(DoubleReal threshold, bool higher_better, int tree_item_id);
00163 void showAllHits_(int tree_item_id);
00164
00166 std::string status_list_;
00167
00169 bool editable_;
00170
00172 QStackedWidget* ws_;
00174 QPushButton* saveallbutton_;
00176 QPushButton* closebutton_;
00178 QPushButton* cancelbutton_;
00180 QPushButton* undobutton_;
00181
00183 QTreeWidget* treeview_;
00184 };
00185 }
00186 #endif