X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fgenericgui%2FBL_CreateJobWizard.hxx;h=9217744453f5aa531c304d63a80d2b412af8263f;hb=002325475b17a7b93c51d8946e884a1404024a68;hp=e34c6d72292d9175a05aff7860d1174a126e8214;hpb=70c432982839980de6c1f8efe3a8ee0130e09c73;p=modules%2Fjobmanager.git diff --git a/src/genericgui/BL_CreateJobWizard.hxx b/src/genericgui/BL_CreateJobWizard.hxx index e34c6d7..9217744 100644 --- a/src/genericgui/BL_CreateJobWizard.hxx +++ b/src/genericgui/BL_CreateJobWizard.hxx @@ -1,9 +1,9 @@ -// Copyright (C) 2009-2013 CEA/DEN, EDF R&D +// Copyright (C) 2009-2022 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 @@ -20,19 +20,31 @@ #ifndef _BL_CREATEJOBWIZARD_HXX_ #define _BL_CREATEJOBWIZARD_HXX_ -#include - #include "BL_Traces.hxx" #include "BL_SALOMEServices.hxx" #include "JM_ResourceCatalog.hxx" +#include +#include #include #include -namespace BL{ +class QGridLayout; +class QLabel; +class QLineEdit; +class QListWidget; + +namespace Ui { + class ResourceRequirementsWizardPage; + class FilesWizardPage; + class AdvancedParametersWizardPage; +} + +namespace BL { class JobsManager_QT; class JobNamePage; + class BatchParametersPage; class CreateJobWizard: public QWizard { Q_OBJECT @@ -49,29 +61,41 @@ 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: // Results std::string job_name; + enum {YACS, COMMAND, PYTHON_SALOME, COMMAND_SALOME} job_type; std::string yacs_file; std::string command; std::string python_salome_file; std::string env_file; + std::string pre_command; std::string batch_directory; + + // For COORM + std::string coorm_batch_directory; + std::string maximum_duration; - std::string expected_memory; + long mem_limit; + BL::Job::MemReqType mem_req_type; int nb_proc; + int nb_node; + bool exclusive; + + // Parameters for COORM + std::string launcher_file; + std::string launcher_args; std::string result_directory; std::list input_files_list; @@ -79,10 +103,14 @@ namespace BL{ std::string resource_choosed; std::string batch_queue; + std::string batch_partition; + std::string wckey; + std::string extra_params; bool start_job; int dump_yacs_state; std::string ll_jobtype; + std::string yacs_driver_options; public: enum {Page_JobName, @@ -90,8 +118,10 @@ namespace BL{ Page_Command_Main_Definitions, Page_PythonSalome_Main_Definitions, Page_BatchParameters, + Page_COORM_BatchParameters, Page_Files, Page_Resource, + Page_Advanced, Page_Conclusion}; }; @@ -110,6 +140,7 @@ namespace BL{ public slots: void yacs_schema_button(bool checked); void command_button(bool checked); + void command_salome_button(bool checked); void python_salome_button(bool checked); private: @@ -117,9 +148,6 @@ namespace BL{ QLabel * _explanation; public: - QRadioButton * _yacs_schema_button; - QRadioButton * _command_button; - QRadioButton * _python_salome_button; bool _check_name; }; @@ -139,16 +167,51 @@ namespace BL{ 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); + + public slots: + void timeChanged(); + void memChanged(); + + 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; }; @@ -157,11 +220,12 @@ namespace BL{ 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,14 +239,9 @@ 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: public QWizardPage @@ -226,10 +285,12 @@ namespace BL{ public slots: void choose_file(); void choose_env_file(); + void choose_pre_command_file(); private: QLineEdit * _yacs_file_text; QLineEdit * _line_env_file; + QLineEdit * _line_pre_command; }; class CommandMainPage: public QWizardPage @@ -247,10 +308,12 @@ namespace BL{ public slots: void choose_command_file(); void choose_env_file(); + void choose_pre_command_file(); private: QLineEdit * _line_command; QLineEdit * _line_env_file; + QLineEdit * _line_pre_command; }; class PythonSalomeMainPage: public QWizardPage @@ -268,11 +331,30 @@ namespace BL{ public slots: void choose_PythonSalome_file(); void choose_env_file(); + void choose_pre_command_file(); private: QLineEdit * _line_PythonSalome; QLineEdit * _line_env_file; + QLineEdit * _line_pre_command; + }; + + 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