00001 #ifndef JobDefinitionWindow_H 00002 #define JobDefinitionWindow_H 00003 00004 #include <QMainWindow> 00005 #include <QDebug> 00006 #include <QTableWidget> 00007 00008 #include "arc-gui-config.h" 00009 00010 #if ARC_VERSION_MAJOR >= 3 00011 #include <arc/compute/JobDescription.h> 00012 #else 00013 #include <arc/client/JobDescription.h> 00014 #endif 00015 00016 #include "qdebugstream.h" 00017 00018 #include "jobdefinitions.h" 00019 #include "arcsubmitcontroller.h" 00020 00021 namespace Ui { 00022 class JobDefinitionWindow; 00023 } 00024 00025 class JobDefinitionWindow : public QMainWindow 00026 { 00027 Q_OBJECT 00028 private: 00029 QDebugStream* m_debugStream; 00030 QDebugStream* m_debugStream2; 00031 00032 Arc::JobDescription m_jobDescription; 00033 Arc::LogStream m_logStream; 00034 00035 ShellScriptDefinition* m_jobDefinition; 00036 00037 ArcSubmitController* m_submitController; 00038 00039 int m_currentParam; 00040 00041 bool m_updatingTables; 00042 00043 void handleDebugStreamEvent(const DebugStreamEvent *event); 00044 00045 void setData(); 00046 void getData(); 00047 00048 public: 00049 explicit JobDefinitionWindow(QWidget *parent = 0); 00050 ~JobDefinitionWindow(); 00051 00052 protected: 00053 void customEvent(QEvent * event); 00054 00055 private Q_SLOTS: 00056 00057 void onSubmissionStatus(int currentJobId, int totalJobs, QString text); 00058 00059 void on_actionSaveJobDefinition_triggered(); 00060 00061 void on_scriptTab_currentChanged(QWidget *arg1); 00062 00063 void on_addInputFileButton_clicked(); 00064 00065 void on_removeInputFileButton_clicked(); 00066 00067 void on_clearInputFilesButton_clicked(); 00068 00069 void on_addOutputFileButton_clicked(); 00070 00071 void on_removeOutpuFileButton_clicked(); 00072 00073 void on_clearOutputFileButton_clicked(); 00074 00075 void on_actionOpenJobDefinition_triggered(); 00076 00077 void on_addRuntimeButton_clicked(); 00078 00079 void on_removeRuntimeButton_clicked(); 00080 00081 void on_clearRuntimesButton_clicked(); 00082 00083 void on_addIdButton_clicked(); 00084 00085 void on_addSizeButton_clicked(); 00086 00087 void on_addJobNameButton_clicked(); 00088 00089 void on_sampleScriptCombo_currentIndexChanged(int index); 00090 00091 void on_sampleScriptCombo_activated(int index); 00092 00093 void on_actionExit_triggered(); 00094 00095 void on_actionSubmitJobDefinition_triggered(); 00096 00097 void on_actionShowJobStatus_triggered(); 00098 00099 void on_singleInputMultipleOutputRadio_clicked(); 00100 00101 void on_multipleInputMultipleOutputRadio_clicked(); 00102 00103 void on_outputFileTable_itemChanged(QTableWidgetItem *item); 00104 00105 void on_inputFileTable_itemChanged(QTableWidgetItem *item); 00106 00107 void on_outputFileTable_currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous); 00108 00109 void on_inputFileTable_currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous); 00110 00111 void on_scriptParamSpin_valueChanged(int arg1); 00112 00113 void on_addPerJobFileButton_clicked(); 00114 00115 void on_removePerJobFileButton_clicked(); 00116 00117 void on_clearPerJobFileButton_clicked(); 00118 00119 void on_perJobFileTable_itemChanged(QTableWidgetItem *item); 00120 00121 void on_addPerFileButton_clicked(); 00122 00123 void on_adPerJobUrlButton_clicked(); 00124 00125 void on_addInputUrlButton_clicked(); 00126 00127 void on_addPerJobRowButton_clicked(); 00128 00129 void on_addInputFileRowButton_clicked(); 00130 00131 void on_addOutputFileRowButton_clicked(); 00132 00133 void on_pastePerJobFileButton_clicked(); 00134 00135 void on_pasteInputURLButton_clicked(); 00136 00137 private: 00138 Ui::JobDefinitionWindow *ui; 00139 }; 00140 00141 #endif // JobDefinitionWindow_H