-public:
- JobRecord (shared_ptr<Job> job, wxScrolledWindow* window, wxPanel* panel, wxFlexGridSizer* table, bool pause)
- : _job (job)
- , _window (window)
- , _panel (panel)
- , _table (table)
- {
- int n = 0;
-
- wxStaticText* m = new wxStaticText (panel, wxID_ANY, std_to_wx (_job->name ()));
- table->Insert (n, m, 0, wxALIGN_CENTER_VERTICAL | wxALL, 6);
- ++n;
-
- _gauge = new wxGauge (panel, wxID_ANY, 100);
- table->Insert (n, _gauge, 1, wxEXPAND | wxLEFT | wxRIGHT);
- ++n;
-
- _message = new wxStaticText (panel, wxID_ANY, std_to_wx (""));
- table->Insert (n, _message, 1, wxALIGN_CENTER_VERTICAL | wxALL, 6);
- ++n;
-
- _cancel = new wxButton (panel, wxID_ANY, _("Cancel"));
- _cancel->Bind (wxEVT_COMMAND_BUTTON_CLICKED, &JobRecord::cancel_clicked, this);
- table->Insert (n, _cancel, 1, wxALIGN_CENTER_VERTICAL | wxALL, 6);
- ++n;
-
- if (pause) {
- _pause = new wxButton (_panel, wxID_ANY, _("Pause"));
- _pause->Bind (wxEVT_COMMAND_BUTTON_CLICKED, &JobRecord::pause_clicked, this);
- table->Insert (n, _pause, 1, wxALIGN_CENTER_VERTICAL | wxALL, 6);
- ++n;
+ auto job = j.lock ();
+ if (job) {
+ shared_ptr<JobView> v;
+ if (_batch) {
+ v.reset (new BatchJobView(job, this, _panel, _table));
+ } else {
+ v.reset (new NormalJobView(job, this, _panel, _table));