Salome HOME
Update copyrights 2014.
[modules/jobmanager.git] / src / genericgui / BL_CreateJobWizard.hxx
index b66491436886177bd8418330c7b0d8eb6418ddf3..28f1585eb4136b1c8741399e5abda9e88c76eab6 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2009-2012  CEA/DEN, EDF R&D
+// Copyright (C) 2009-2014  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
 #include <string>
 #include <list>
 
+namespace Ui {
+  class ResourceRequirementsWizardPage;
+  class FilesWizardPage;
+}
+
 namespace BL{
 
   class JobsManager_QT;
   class JobNamePage;
-  class CreateJobWizard: virtual public QWizard
+  class BatchParametersPage;
+  class CreateJobWizard: public QWizard
   {
     Q_OBJECT
 
@@ -49,13 +55,12 @@ namespace BL{
       void end(int result);
 
     private:
-      //Page Name
-      QLineEdit * _nameLineEdit;
       BL::JobsManager_QT * _jobs_manager;
       QListWidget * _input_files_list;
       QListWidget * _output_files_list;
 
       BL::JobNamePage * _job_name_page;
+      BL::BatchParametersPage * _batch_parameters_page;
       BL::SALOMEServices * _salome_services;
 
     public:
@@ -69,9 +74,19 @@ namespace BL{
       std::string env_file;
 
       std::string batch_directory;
+
+      // For COORM
+      std::string coorm_batch_directory;
+
       std::string maximum_duration;
-      std::string expected_memory;
+      unsigned long mem_limit;
+      BL::Job::MemReqType mem_req_type;
       int nb_proc;
+      bool exclusive;
+
+      // Parameters for COORM
+      std::string launcher_file;
+      std::string launcher_args;
 
       std::string result_directory;
       std::list<std::string> input_files_list;
@@ -90,12 +105,13 @@ namespace BL{
             Page_Command_Main_Definitions,
             Page_PythonSalome_Main_Definitions,
             Page_BatchParameters,
+            Page_COORM_BatchParameters,
             Page_Files,
             Page_Resource,
             Page_Conclusion};
   };
 
-  class JobNamePage: virtual public QWizardPage
+  class JobNamePage: public QWizardPage
   {
     Q_OBJECT
 
@@ -123,7 +139,7 @@ namespace BL{
       bool _check_name;
   };
 
-  class ConclusionPage: virtual public QWizardPage
+  class ConclusionPage: public QWizardPage
   {
     public:
       ConclusionPage(QWidget * parent);
@@ -134,34 +150,66 @@ namespace BL{
       virtual void cleanupPage() {}
   };
 
-  class BatchParametersPage: virtual public QWizardPage
+  class BatchParametersPage: public QWizardPage
   {
     Q_OBJECT
 
     public:
+      enum MemUnit {MB, GB};
+
       BatchParametersPage(QWidget * parent, BL::SALOMEServices * salome_services);
       virtual ~BatchParametersPage();
 
+      virtual void initializePage();
+      virtual int nextId() const;
+      virtual void cleanupPage();
+
+      MemUnit getMemUnit() const;
+      void setMemUnit(MemUnit mem_unit);
+
+      BL::Job::MemReqType getMemReqType() const;
+      void setMemReqType(BL::Job::MemReqType mem_req_type);
+
+    private:
+      Ui::ResourceRequirementsWizardPage * ui;
+      BL::SALOMEServices * _salome_services;
+      std::string resource_choosed;
+  };
+
+  // For COORM
+  class COORM_BatchParametersPage: public QWizardPage
+  {
+    Q_OBJECT
+
+    public:
+      COORM_BatchParametersPage(QWidget * parent, BL::SALOMEServices * salome_services);
+      virtual ~COORM_BatchParametersPage();
+
       virtual bool validatePage();
       virtual int nextId() const;
       virtual void cleanupPage();
       virtual void initializePage();
 
+    public slots:
+      void choose_launcher_file();
+
     private:
       BL::SALOMEServices * _salome_services;
+      QLineEdit * _launcher_file_text;
       QString resource_choosed;
   };
 
-  class FilesPage: virtual public QWizardPage
+  class FilesPage: public QWizardPage
   {
     Q_OBJECT
 
     public:
-      FilesPage(BL::CreateJobWizard * parent);
+      FilesPage(BL::CreateJobWizard * parent, BL::SALOMEServices * salome_services);
       virtual ~FilesPage();
 
+      virtual void initializePage();
       virtual int nextId() const;
-      virtual bool validatePage();
+      virtual bool isComplete() const;
       virtual void cleanupPage() {}
 
     public slots:
@@ -175,17 +223,12 @@ namespace BL{
       void output_itemSelectionChanged();
 
     private:
-      QPushButton * _input_files_button;
-      QPushButton * _remove_input_files_button;
-      QListWidget * _input_files_list;
-      QLineEdit * _result_directory;
-
-      QPushButton * _output_files_button;
-      QPushButton * _remove_output_files_button;
-      QListWidget * _output_files_list;
+      Ui::FilesWizardPage * ui;
+      BL::SALOMEServices * _salome_services;
+      QString resource_choosed;
   };
 
-  class ResourcePage: virtual public QWizardPage
+  class ResourcePage: public QWizardPage
   {
     Q_OBJECT
 
@@ -211,7 +254,7 @@ namespace BL{
       QGridLayout * _main_layout;
   };
 
-  class YACSSchemaPage: virtual public QWizardPage
+  class YACSSchemaPage: public QWizardPage
   {
     Q_OBJECT
 
@@ -232,7 +275,7 @@ namespace BL{
       QLineEdit * _line_env_file;
   };
 
-  class CommandMainPage: virtual public QWizardPage
+  class CommandMainPage: public QWizardPage
   {
     Q_OBJECT
 
@@ -253,7 +296,7 @@ namespace BL{
       QLineEdit * _line_env_file;
   };
 
-  class PythonSalomeMainPage: virtual public QWizardPage
+  class PythonSalomeMainPage: public QWizardPage
   {
     Q_OBJECT