-// Copyright (C) 2009-2013 CEA/DEN, EDF R&D
+// Copyright (C) 2009-2016 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>
-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
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<std::string> input_files_list;
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,
Page_Command_Main_Definitions,
Page_PythonSalome_Main_Definitions,
Page_BatchParameters,
- Page_COORM_BatchParameters,
+ Page_COORM_BatchParameters,
Page_Files,
Page_Resource,
+ Page_Advanced,
Page_Conclusion};
};
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:
QLabel * _explanation;
public:
- QRadioButton * _yacs_schema_button;
- QRadioButton * _command_button;
- QRadioButton * _python_salome_button;
bool _check_name;
};
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
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:
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
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
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
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