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