X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fgenericgui%2FBL_CreateJobWizard.hxx;h=740cdb5f5573f6da0b55d94e56f4f69c5d7e5813;hb=94317c743eafd6b6de89a47378e31410b4a8fdf3;hp=a50960431d88177efb90f825ede09d1bf6942d05;hpb=f7004ae8bd78104ea3649c580e82d5cea97f5ee5;p=modules%2Fjobmanager.git diff --git a/src/genericgui/BL_CreateJobWizard.hxx b/src/genericgui/BL_CreateJobWizard.hxx index a509604..740cdb5 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-2019 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,37 +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; + // For COORM + std::string coorm_batch_directory; - std::string maximum_duration; - std::string expected_memory; + std::string maximum_duration; + 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; + // Parameters for COORM + std::string launcher_file; + std::string launcher_args; std::string result_directory; std::list input_files_list; @@ -87,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, @@ -98,9 +118,10 @@ namespace BL{ Page_Command_Main_Definitions, Page_PythonSalome_Main_Definitions, Page_BatchParameters, - Page_COORM_BatchParameters, + Page_COORM_BatchParameters, Page_Files, Page_Resource, + Page_Advanced, Page_Conclusion}; }; @@ -119,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: @@ -126,9 +148,6 @@ namespace BL{ QLabel * _explanation; public: - QRadioButton * _yacs_schema_button; - QRadioButton * _command_button; - QRadioButton * _python_salome_button; bool _check_name; }; @@ -148,17 +167,29 @@ namespace BL{ Q_OBJECT public: + enum MemUnit {MB, GB}; + BatchParametersPage(QWidget * parent, BL::SALOMEServices * salome_services); virtual ~BatchParametersPage(); - virtual bool validatePage(); + virtual void initializePage(); virtual int nextId() const; virtual void cleanupPage(); - virtual void initializePage(); + + 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; - QString resource_choosed; + std::string resource_choosed; }; // For COORM @@ -189,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: @@ -207,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 @@ -258,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 @@ -279,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 @@ -300,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