Salome HOME
Merge relevant changes from V8_0_0_BR branch
[modules/jobmanager.git] / src / genericgui / BL_CreateJobWizard.hxx
index e7ead5bef8fc01c69c27ba6e5c47cdcc4233a178..624577318f2f56fd79f86449d86fa70bab49936c 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2009-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2009-2015  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 #ifndef _BL_CREATEJOBWIZARD_HXX_
 #define _BL_CREATEJOBWIZARD_HXX_
 
-#include <QtGui>
-
 #include "BL_Traces.hxx"
 #include "BL_SALOMEServices.hxx"
 #include "JM_ResourceCatalog.hxx"
 
+#include <QWizard>
+#include <QWizardPage>
 #include <string>
 #include <list>
 
+class QGridLayout;
+class QLabel;
+class QLineEdit;
+class QListWidget;
+
 namespace Ui {
   class ResourceRequirementsWizardPage;
   class FilesWizardPage;
+  class AdvancedParametersWizardPage;
 }
 
-namespace BL{
+namespace BL {
 
   class JobsManager_QT;
   class JobNamePage;
@@ -66,6 +72,7 @@ namespace BL{
     public:
       // Results
       std::string job_name;
+      enum {YACS, COMMAND, PYTHON_SALOME} job_type;
 
       std::string yacs_file;
       std::string command;
@@ -79,7 +86,7 @@ namespace BL{
       std::string coorm_batch_directory;
 
       std::string maximum_duration;
-      unsigned long mem_limit;
+      long mem_limit;
       BL::Job::MemReqType mem_req_type;
       int nb_proc;
       bool exclusive;
@@ -94,6 +101,8 @@ namespace BL{
 
       std::string resource_choosed;
       std::string batch_queue;
+      std::string wckey;
+      std::string extra_params;
 
       bool start_job;
       int dump_yacs_state;
@@ -108,6 +117,7 @@ namespace BL{
             Page_COORM_BatchParameters,
             Page_Files,
             Page_Resource,
+            Page_Advanced,
             Page_Conclusion};
   };
 
@@ -133,9 +143,6 @@ namespace BL{
       QLabel * _explanation;
 
     public:
-      QRadioButton * _yacs_schema_button;
-      QRadioButton * _command_button;
-      QRadioButton * _python_salome_button;
       bool _check_name;
   };
 
@@ -170,6 +177,10 @@ namespace BL{
       BL::Job::MemReqType getMemReqType() const;
       void setMemReqType(BL::Job::MemReqType mem_req_type);
 
+    public slots:
+      void timeChanged();
+      void memChanged();
+
     private:
       Ui::ResourceRequirementsWizardPage * ui;
       BL::SALOMEServices * _salome_services;
@@ -316,6 +327,23 @@ namespace BL{
       QLineEdit * _line_PythonSalome;
       QLineEdit * _line_env_file;
   };
+
+  class AdvancedParametersPage: public QWizardPage
+  {
+    Q_OBJECT
+
+    public:
+      AdvancedParametersPage(BL::CreateJobWizard * parent);
+      virtual ~AdvancedParametersPage();
+
+      virtual int nextId() const;
+      virtual void cleanupPage() {}
+
+    private:
+      Ui::AdvancedParametersWizardPage * ui;
+
+  };
+
 }
 
 #endif