Shinya Kitaoka 810553
#pragma once
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "tw/tw.h"
Toshihiro Shimizu 890ddd
#include "tw/popup.h"
Toshihiro Shimizu 890ddd
#include "tw/textlist.h"
Toshihiro Shimizu 890ddd
#include "tw/textfield.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "tfilepath.h"
Toshihiro Shimizu 890ddd
#include "tfarmcontroller.h"
Toshihiro Shimizu 890ddd
//#include "texception.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class TFarmController;
Toshihiro Shimizu 890ddd
class TPopupMenuItem;
Toshihiro Shimizu 890ddd
class TPopupMenu;
Toshihiro Shimizu 890ddd
class TTextField;
Toshihiro Shimizu 890ddd
class TLabel;
Toshihiro Shimizu 890ddd
class TButton;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
namespace TFarmStuff {
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
class TFarmPage : public TWidget {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  TFarmPage(TWidget *parent, const std::string &name) : TWidget(parent, name) {}
Shinya Kitaoka 120a6e
  virtual ~TFarmPage() {}
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  virtual void onActivate() {}
Shinya Kitaoka 120a6e
  virtual void onDeactivate() {}
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  virtual void update() {}
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class TaskInfoPage final : public TFarmPage {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  TaskInfoPage(TWidget *parent);
Shinya Kitaoka 120a6e
  ~TaskInfoPage();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  void configureNotify(const TDimension &size) override;
Shinya Kitaoka 473e70
  void rightButtonDown(const TMouseEvent &e) override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  void onActivate() override;
Shinya Kitaoka 473e70
  void onDeactivate() override;
Shinya Kitaoka 473e70
  void update() override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void showTaskInfo(const std::string &id);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
private:
Shinya Kitaoka 120a6e
  class Data;
Shinya Kitaoka 120a6e
  Data *m_data;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
class SubmitPageTask {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  virtual ~SubmitPageTask() {}
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  /*
Shinya Kitaoka 120a6e
virtual void setFileArg(const std::string &fp) = 0;
Shinya Kitaoka 120a6e
virtual void setCommandLine(const std::string &cmdLine) = 0;
Shinya Kitaoka 120a6e
virtual void setDefaultValue() = 0;
Toshihiro Shimizu 890ddd
*/
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  virtual std::string getCommandLine() const = 0;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  virtual std::string getFilePath() { return m_filePath; }
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  virtual void setFilePath(const std::string &filePath) {
Shinya Kitaoka 120a6e
    m_filePath = filePath;
Shinya Kitaoka 120a6e
  }
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  virtual std::string getName() { return m_name; }
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  virtual void setName(const std::string &name) { m_name = name; }
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  /*
Shinya Kitaoka 120a6e
virtual map<std::string, string=""> getDependencies();</std::string,>
Shinya Kitaoka 120a6e
virtual void setDependencies(const map<std::string, string=""> &tasks);</std::string,>
Toshihiro Shimizu 890ddd
*/
Shinya Kitaoka 120a6e
  static SubmitPageTask *create(const std::string &type);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
protected:
Shinya Kitaoka 120a6e
  std::string m_filePath;
Shinya Kitaoka 120a6e
  std::string m_name;
Shinya Kitaoka 120a6e
  std::map<std::string, std::string=""> m_depTasks;</std::string,>
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class SubmitPage final : public TFarmPage {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  SubmitPage(TWidget *parent);
Shinya Kitaoka 120a6e
  ~SubmitPage();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  void configureNotify(const TDimension &size) override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  void onActivate() override;
Shinya Kitaoka 473e70
  void onDeactivate() override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  SubmitPageTask *getTask() const;
Shinya Kitaoka 120a6e
  void setTask(SubmitPageTask *task);
Shinya Kitaoka 120a6e
  void onTextField(const std::string &name, bool isName);
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  class Data;
Shinya Kitaoka 120a6e
  Data *m_data;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class TaskConfigPanel final : public TWidget {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  TaskConfigPanel(TWidget *parent) : TWidget(parent) {}
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  virtual void setTask(SubmitPageTask *task) = 0;
Shinya Kitaoka 120a6e
  virtual SubmitPageTask *getTask() const    = 0;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class SubmitRenderPopup final : public TModalPopup {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  SubmitRenderPopup(TWidget *parent, std::string name);
Shinya Kitaoka 120a6e
  ~SubmitRenderPopup();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void onOk();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  TDimension getPreferredSize() const override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  void configureNotify(const TDimension &d) override;
Shinya Kitaoka 38fd86
  bool onNcPaint(bool is_active, const TDimension &size,
Shinya Kitaoka 38fd86
                 const TRect &titlebar) override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void popup(const TPoint &p, const TFilePath &fp);
Shinya Kitaoka 120a6e
  void onIntFieldChange(const TNumField::Event &e);
Shinya Kitaoka 473e70
  void draw() override;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
private:
Shinya Kitaoka 120a6e
  class Data;
Shinya Kitaoka 120a6e
  Data *m_data;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class SubmitCleanupPopup final : public TModalPopup {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  SubmitCleanupPopup(TWidget *parent, std::string name);
Shinya Kitaoka 120a6e
  ~SubmitCleanupPopup();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void onOk();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  TDimension getPreferredSize() const override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  void configureNotify(const TDimension &d) override;
Shinya Kitaoka 38fd86
  bool onNcPaint(bool is_active, const TDimension &size,
Shinya Kitaoka 38fd86
                 const TRect &titlebar) override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void popup(const TPoint &p, const TFilePath &fp);
Shinya Kitaoka 120a6e
  void onIntFieldChange(const TNumField::Event &e);
Shinya Kitaoka 473e70
  void draw() override;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
private:
Shinya Kitaoka 120a6e
  class Data;
Shinya Kitaoka 120a6e
  Data *m_data;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class GRootEnvVarPopup final : public TModalPopup {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  GRootEnvVarPopup(TWidget *parent, std::string name);
Shinya Kitaoka 120a6e
  ~GRootEnvVarPopup();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void onOk();
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  TDimension getPreferredSize() const override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  void configureNotify(const TDimension &d) override;
Shinya Kitaoka 473e70
  void draw() override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  // bool onNcPaint(bool is_active, const TDimension &size, const TRect
Shinya Kitaoka 120a6e
  // &titlebar);
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void popup(const TPoint &p, bool missingvar);
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  bool canceled() { return m_canceled; }
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  TLabel *m_grootVarLabel;
Shinya Kitaoka 120a6e
  TTextField *m_grootVar;
Shinya Kitaoka 120a6e
  TButton *m_okBtn;
Shinya Kitaoka 120a6e
  TButton *m_cancelBtn;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  bool m_canceled;
Shinya Kitaoka 120a6e
  bool m_missingvar;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
TFilePath getGlobalRoot();
Toshihiro Shimizu 890ddd
void setGlobalRoot(const TFilePath &fp);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
TFarmController *getTFarmController();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
bool testConnection(const QString &ipaddr, int port);
Toshihiro Shimizu 890ddd
bool testConnectionToController();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
void getControllerData(QString &hostName, QString &ipAddr, int &port);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class TMissingGRootFolder final : public TException {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  TMissingGRootFolder() : TException() {}
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Shinya Kitaoka d1f6c4
class TMissingGRootEnvironmentVariable final : public TException {
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  TMissingGRootEnvironmentVariable() : TException() {}
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
}  // namespace TFarmStuff