Newer
Older
// Mantid Repository : https://github.com/mantidproject/mantid
//
// Copyright © 2011 ISIS Rutherford Appleton Laboratory UKRI,
// NScD Oak Ridge National Laboratory, European Spallation Source
// & Institut Laue - Langevin
// SPDX - License - Identifier: GPL - 3.0 +
#ifndef MANTID_ISISREFLECTOMETRY_BATCHPRESENTER_H
#define MANTID_ISISREFLECTOMETRY_BATCHPRESENTER_H
#include "GUI/Event/IEventPresenter.h"
#include "GUI/Experiment/IExperimentPresenter.h"
#include "GUI/Instrument/IInstrumentPresenter.h"
#include "GUI/Save/ISavePresenter.h"
#include <memory>
namespace MantidQt {
namespace CustomInterfaces {
BatchPresenter is the concrete main window presenter implementing the
functionality defined by the interface IBatchPresenter.
class MANTIDQT_ISISREFLECTOMETRY_DLL BatchPresenter
: public IBatchPresenter,
public BatchViewSubscriber {
BatchPresenter(IBatchView *view, Batch model,
std::unique_ptr<IRunsPresenter> runsPresenter,
std::unique_ptr<IEventPresenter> eventPresenter,
std::unique_ptr<IExperimentPresenter> experimentPresenter,
std::unique_ptr<IInstrumentPresenter> instrumentPresenter,
std::unique_ptr<ISavePresenter> savePresenter);
void notifyReductionPaused() override;
void notifyReductionResumed() override;
MantidWidgets::DataProcessor::GroupData const &group,
std::string const &workspaceName) override;
MantidWidgets::DataProcessor::GroupData const &group,
std::string const &workspaceName) override;
void notifyAutoreductionResumed() override;
void notifyAutoreductionPaused() override;
void notifyAutoreductionCompleted() override;
void notifyInstrumentChanged(const std::string &instName) override;
void notifySettingsChanged() override;
bool hasPerAngleOptions() const override;
MantidWidgets::DataProcessor::OptionsQMap
getOptionsForAngle(const double angle) const override;
bool requestClose() const override;
bool isProcessing() const override;
bool isAutoreducing() const override;
void reductionCompletedForGroup(
MantidWidgets::DataProcessor::GroupData const &group,
std::string const &workspaceName);
void
reductionCompletedForRow(MantidWidgets::DataProcessor::GroupData const &group,
std::string const &workspaceName);
void autoreductionResumed();
void autoreductionPaused();
void autoreductionCompleted();
void instrumentChanged(const std::string &instName);
void settingsChanged();
Batch m_model;
// The view is currently unused
std::unique_ptr<IRunsPresenter> m_runsPresenter;
std::unique_ptr<IEventPresenter> m_eventPresenter;
std::unique_ptr<IExperimentPresenter> m_experimentPresenter;
std::unique_ptr<IInstrumentPresenter> m_instrumentPresenter;
std::unique_ptr<ISavePresenter> m_savePresenter;
bool m_isProcessing;
bool m_isAutoreducing;
} // namespace CustomInterfaces
} // namespace MantidQt
#endif /* MANTID_ISISREFLECTOMETRY_BATCHPRESENTER_H */