Mantid
Loading...
Searching...
No Matches
IFitScriptGeneratorView.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2020 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
7#pragma once
8
9#include "DllOption.h"
10
11#include "MantidAPI/IFunction.h"
17
18#include <string>
19#include <tuple>
20#include <vector>
21
22#include <QObject>
23#include <QPushButton>
24#include <QWidget>
25
26namespace MantidQt {
27namespace MantidWidgets {
28
29class AddWorkspaceDialog;
30class FitScriptGeneratorDataTable;
31class IAddWorkspaceDialog;
32class IFitScriptGeneratorPresenter;
33struct GlobalParameter;
34struct GlobalTie;
35
37 Q_OBJECT
38
39public:
40 enum class Event {
41 ADSDeleteEvent,
42 ADSClearEvent,
43 ADSRenameEvent,
44 RemoveDomainClicked,
45 AddDomainClicked,
46 StartXChanged,
47 EndXChanged,
48 SelectionChanged,
49 FunctionRemoved,
50 FunctionAdded,
51 FunctionReplaced,
52 ParameterChanged,
53 AttributeChanged,
54 ParameterTieChanged,
55 ParameterConstraintRemoved,
56 ParameterConstraintChanged,
57 GlobalParametersChanged,
58 EditLocalParameterClicked,
59 EditLocalParameterFinished,
60 OutputBaseNameChanged,
61 FittingModeChanged,
62 GenerateScriptToFileClicked,
63 GenerateScriptToClipboardClicked
64 };
65
66 IFitScriptGeneratorView(QWidget *parent = nullptr) : API::MantidWidget(parent) {}
67 virtual ~IFitScriptGeneratorView() = default;
68
70
71 [[nodiscard]] virtual std::string workspaceName(FitDomainIndex index) const = 0;
72 [[nodiscard]] virtual WorkspaceIndex workspaceIndex(FitDomainIndex index) const = 0;
73 [[nodiscard]] virtual double startX(FitDomainIndex index) const = 0;
74 [[nodiscard]] virtual double endX(FitDomainIndex index) const = 0;
75
76 [[nodiscard]] virtual std::vector<FitDomainIndex> allRows() const = 0;
77 [[nodiscard]] virtual std::vector<FitDomainIndex> selectedRows() const = 0;
78 [[nodiscard]] virtual FitDomainIndex currentRow() const = 0;
79
80 [[nodiscard]] virtual bool hasLoadedData() const = 0;
81
82 [[nodiscard]] virtual double parameterValue(std::string const &parameter) const = 0;
83 [[nodiscard]] virtual Mantid::API::IFunction::Attribute attributeValue(std::string const &attribute) const = 0;
84
85 virtual void renameWorkspace(std::string const &workspaceName, std::string const &newName) = 0;
86
87 virtual void removeDomain(FitDomainIndex domainIndex) = 0;
88 virtual void addWorkspaceDomain(std::string const &workspaceName, WorkspaceIndex workspaceIndex, double startX,
89 double endX) = 0;
90
91 virtual void openAddWorkspaceDialog() = 0;
92 [[nodiscard]] virtual std::vector<Mantid::API::MatrixWorkspace_const_sptr>
94
95 virtual void openEditLocalParameterDialog(std::string const &parameter,
96 std::vector<std::string> const &workspaceNames,
97 std::vector<std::string> const &domainNames,
98 std::vector<double> const &values, std::vector<bool> const &fixes,
99 std::vector<std::string> const &ties,
100 std::vector<std::string> const &constraints) = 0;
101 virtual std::tuple<std::string, std::vector<double>, std::vector<bool>, std::vector<std::string>,
102 std::vector<std::string>>
104
105 [[nodiscard]] virtual std::tuple<std::string, std::string, std::string, std::string, std::string, bool>
106 fitOptions() const = 0;
107 [[nodiscard]] virtual std::string filepath() const = 0;
108
109 virtual void resetSelection() = 0;
110
111 virtual bool applyFunctionChangesToAll() const = 0;
112
113 virtual void clearFunction() = 0;
114 virtual void setFunction(Mantid::API::IFunction_sptr const &function) const = 0;
115
116 virtual void setSimultaneousMode(bool simultaneousMode) = 0;
117
118 virtual void setGlobalTies(std::vector<GlobalTie> const &globalTies) = 0;
119 virtual void setGlobalParameters(std::vector<GlobalParameter> const &globalParameter) = 0;
120
121 virtual void displayWarning(std::string const &message) = 0;
122
123 virtual void setSuccessText(std::string const &text) = 0;
124 virtual void saveTextToClipboard(std::string const &text) const = 0;
125
126public:
129 virtual QPushButton *removeButton() const = 0;
130 virtual QPushButton *addWorkspaceButton() const = 0;
131 virtual QPushButton *generateScriptToFileButton() const = 0;
132 virtual QPushButton *generateScriptToClipboardButton() const = 0;
133};
134
135} // namespace MantidWidgets
136} // namespace MantidQt
#define EXPORT_OPT_MANTIDQT_COMMON
Definition DllOption.h:15
std::map< DeltaEMode::Type, std::string > index
This is the base class all customised widgets that do not wish to be tied to a specific Mantid algori...
This class represents the table widget which holds domain data for the FitScriptGenerator interface.
virtual std::vector< FitDomainIndex > allRows() const =0
virtual QPushButton * addWorkspaceButton() const =0
virtual std::vector< Mantid::API::MatrixWorkspace_const_sptr > getDialogWorkspaces(MantidWidgets::IAddWorkspaceDialog *dialog)=0
virtual void subscribePresenter(IFitScriptGeneratorPresenter *presenter)=0
virtual void renameWorkspace(std::string const &workspaceName, std::string const &newName)=0
virtual void setSimultaneousMode(bool simultaneousMode)=0
virtual void setGlobalTies(std::vector< GlobalTie > const &globalTies)=0
virtual FitScriptGeneratorDataTable * tableWidget() const =0
Testing accessors.
virtual std::vector< FitDomainIndex > selectedRows() const =0
virtual Mantid::API::IFunction::Attribute attributeValue(std::string const &attribute) const =0
virtual std::tuple< std::string, std::string, std::string, std::string, std::string, bool > fitOptions() const =0
virtual void setSuccessText(std::string const &text)=0
virtual void removeDomain(FitDomainIndex domainIndex)=0
virtual QPushButton * generateScriptToFileButton() const =0
virtual std::string workspaceName(FitDomainIndex index) const =0
virtual void addWorkspaceDomain(std::string const &workspaceName, WorkspaceIndex workspaceIndex, double startX, double endX)=0
virtual QPushButton * removeButton() const =0
virtual FitDomainIndex currentRow() const =0
virtual std::string filepath() const =0
virtual void openEditLocalParameterDialog(std::string const &parameter, std::vector< std::string > const &workspaceNames, std::vector< std::string > const &domainNames, std::vector< double > const &values, std::vector< bool > const &fixes, std::vector< std::string > const &ties, std::vector< std::string > const &constraints)=0
virtual void setGlobalParameters(std::vector< GlobalParameter > const &globalParameter)=0
virtual double endX(FitDomainIndex index) const =0
virtual double startX(FitDomainIndex index) const =0
virtual void displayWarning(std::string const &message)=0
virtual std::tuple< std::string, std::vector< double >, std::vector< bool >, std::vector< std::string >, std::vector< std::string > > getEditLocalParameterResults() const =0
virtual void setFunction(Mantid::API::IFunction_sptr const &function) const =0
virtual WorkspaceIndex workspaceIndex(FitDomainIndex index) const =0
virtual QPushButton * generateScriptToClipboardButton() const =0
virtual void saveTextToClipboard(std::string const &text) const =0
virtual double parameterValue(std::string const &parameter) const =0
Attribute is a non-fitting parameter.
Definition IFunction.h:285
The AlgorithmProgressDialogPresenter keeps track of the running algorithms and displays a progress ba...
std::shared_ptr< IFunction > IFunction_sptr
shared pointer to the function base class
Definition IFunction.h:743
A struct to impliment strongly typed integers, without implicit conversion.
Definition IndexTypes.h:24