Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/src/netedit/dialogs/fix/GNEFixDemandElementsDialog.h
169684 views
1
/****************************************************************************/
2
// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3
// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.
4
// This program and the accompanying materials are made available under the
5
// terms of the Eclipse Public License 2.0 which is available at
6
// https://www.eclipse.org/legal/epl-2.0/
7
// This Source Code may also be made available under the following Secondary
8
// Licenses when the conditions for such availability set forth in the Eclipse
9
// Public License 2.0 are satisfied: GNU General Public License, version 2
10
// or later which is available at
11
// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13
/****************************************************************************/
14
/// @file GNEFixDemandElementsDialog.h
15
/// @author Pablo Alvarez Lopez
16
/// @date March 2019
17
///
18
// Dialog used to fix demand elements during saving
19
/****************************************************************************/
20
#pragma once
21
#include <config.h>
22
23
#include "GNEFixElementsDialog.h"
24
25
// ===========================================================================
26
// class declarations
27
// ===========================================================================
28
29
class GNEDemandElement;
30
31
// ===========================================================================
32
// class definitions
33
// ===========================================================================
34
35
class GNEFixDemandElementsDialog : public GNEFixElementsDialog<GNEDemandElement*> {
36
37
public:
38
/// @brief groupbox for all radio buttons related with fix route options
39
class FixRouteOptions : public GNEFixElementsDialog::FixOptions {
40
/// @brief FOX-declaration
41
FXDECLARE(FixRouteOptions)
42
43
public:
44
/// @brief constructor
45
FixRouteOptions(GNEFixDemandElementsDialog* fixDemandElementsParent);
46
47
/// @brief select internal test solution
48
void selectInternalTestSolution(const std::string& solution);
49
50
/// @brief apply selected fix option
51
bool applyFixOption();
52
53
/// @name FOX-callbacks
54
/// @{
55
56
/// @brief called when user select a option
57
long onCmdSelectOption(FXObject* obj, FXSelector, void*);
58
59
/// @}
60
61
protected:
62
/// @brief FOX needs this
63
FOX_CONSTRUCTOR(FixRouteOptions)
64
65
/// @brief Option "Remove invalid routes"
66
FXRadioButton* myRemoveInvalidRoutes;
67
68
/// @brief Option "Save invalid routes"
69
FXRadioButton* mySaveInvalidRoutes;
70
71
/// @brief Option "Select invalid routes and cancel"
72
FXRadioButton* mySelectRouteInvalids;
73
74
/// @brief Option "Remove stops out of route"
75
FXCheckButton* myRemoveStopsOutOfRoute;
76
77
private:
78
/// @brief Invalidated copy constructor.
79
FixRouteOptions(const FixRouteOptions&) = delete;
80
81
/// @brief Invalidated assignment operator.
82
FixRouteOptions& operator=(const FixRouteOptions&) = delete;
83
};
84
85
/// @brief groupbox for all radio buttons related with fix vehicle options
86
class FixVehicleOptions : public GNEFixElementsDialog::FixOptions {
87
/// @brief FOX-declaration
88
FXDECLARE(FixVehicleOptions)
89
90
public:
91
/// @brief constructor
92
FixVehicleOptions(GNEFixDemandElementsDialog* fixDemandElementsParent);
93
94
/// @brief select internal test solution
95
void selectInternalTestSolution(const std::string& solution);
96
97
/// @brief apply selected fix option
98
bool applyFixOption();
99
100
/// @name FOX-callbacks
101
/// @{
102
103
/// @brief called when user select a option
104
long onCmdSelectOption(FXObject* obj, FXSelector, void*);
105
106
/// @}
107
108
protected:
109
/// @brief FOX needs this
110
FOX_CONSTRUCTOR(FixVehicleOptions)
111
112
/// @brief Option "remove invalid elements"
113
FXRadioButton* myRemoveInvalidVehicles;
114
115
/// @brief Option "save invalid vehicles"
116
FXRadioButton* mySaveInvalidVehicles;
117
118
/// @brief Option "Select invalid vehicles and cancel"
119
FXRadioButton* mySelectInvalidVehicles;
120
121
/// @brief Option "Remove stops out of vehicle"
122
FXCheckButton* myRemoveStopsOutOfVehicle;
123
124
private:
125
/// @brief Invalidated copy constructor.
126
FixVehicleOptions(const FixVehicleOptions&) = delete;
127
128
/// @brief Invalidated assignment operator.
129
FixVehicleOptions& operator=(const FixVehicleOptions&) = delete;
130
};
131
132
/// @brief groupbox for all radio buttons related with fix stop options
133
class FixStopPositionOptions : public GNEFixElementsDialog::FixOptions {
134
/// @brief FOX-declaration
135
FXDECLARE(FixStopPositionOptions)
136
137
public:
138
/// @brief build Position Options
139
FixStopPositionOptions(GNEFixDemandElementsDialog* fixDemandElementsParent);
140
141
/// @brief select internal test solution
142
void selectInternalTestSolution(const std::string& solution);
143
144
/// @brief apply selected fix option
145
bool applyFixOption();
146
147
/// @name FOX-callbacks
148
/// @{
149
150
/// @brief called when user select a option
151
long onCmdSelectOption(FXObject* obj, FXSelector, void*);
152
153
/// @}
154
155
protected:
156
/// @brief FOX needs this
157
FOX_CONSTRUCTOR(FixStopPositionOptions)
158
159
/// @brief Option "Activate friendlyPos and save"
160
FXRadioButton* myActivateFriendlyPosition;
161
162
/// @brief Option "Fix Positions and save"
163
FXRadioButton* myFixPositions;
164
165
/// @brief Option "Save invalid"
166
FXRadioButton* mySaveInvalid;
167
168
/// @brief Option "Select invalid stops and cancel"
169
FXRadioButton* mySelectInvalidStops;
170
171
private:
172
/// @brief Invalidated copy constructor.
173
FixStopPositionOptions(const FixStopPositionOptions&) = delete;
174
175
/// @brief Invalidated assignment operator.
176
FixStopPositionOptions& operator=(const FixStopPositionOptions&) = delete;
177
};
178
179
/// @brief groupbox for all radio buttons related with fix person plan options
180
class FixPlanOptions : public GNEFixElementsDialog::FixOptions {
181
/// @brief FOX-declaration
182
FXDECLARE(FixPlanOptions)
183
184
public:
185
/// @brief build Position Options
186
FixPlanOptions(GNEFixDemandElementsDialog* fixDemandElementsParent);
187
188
/// @brief select internal test solution
189
void selectInternalTestSolution(const std::string& solution);
190
191
/// @brief apply selected fix option
192
bool applyFixOption();
193
194
/// @name FOX-callbacks
195
/// @{
196
197
/// @brief called when user select a option
198
long onCmdSelectOption(FXObject* obj, FXSelector, void*);
199
200
/// @}
201
202
protected:
203
/// @brief FOX needs this
204
FOX_CONSTRUCTOR(FixPlanOptions)
205
206
/// @brief Option "remove invalid plan"
207
FXRadioButton* myRemoveInvalidPlan;
208
209
/// @brief Option "Save invalid"
210
FXRadioButton* mySaveInvalid;
211
212
/// @brief Option "Select invalid person plans and cancel"
213
FXRadioButton* mySelectInvalidPlans;
214
215
private:
216
/// @brief Invalidated copy constructor.
217
FixPlanOptions(const FixPlanOptions&) = delete;
218
219
/// @brief Invalidated assignment operator.
220
FixPlanOptions& operator=(const FixPlanOptions&) = delete;
221
};
222
223
/// @brief Constructor
224
GNEFixDemandElementsDialog(GNEApplicationWindow* mainWindow,
225
const std::vector<GNEDemandElement*>& elements);
226
227
/// @brief destructor
228
~GNEFixDemandElementsDialog();
229
230
protected:
231
/// @brief fix route options
232
FixRouteOptions* myFixRouteOptions = nullptr;
233
234
/// @brief fix vehicle options
235
FixVehicleOptions* myFixVehicleOptions = nullptr;
236
237
/// @brief fix stop options
238
FixStopPositionOptions* myFixStopPositionOptions = nullptr;
239
240
/// @brief fix person plan options
241
FixPlanOptions* myFixPlanOptions = nullptr;
242
243
private:
244
/// @brief Invalidated copy constructor.
245
GNEFixDemandElementsDialog(const GNEFixDemandElementsDialog&) = delete;
246
247
/// @brief Invalidated assignment operator.
248
GNEFixDemandElementsDialog& operator=(const GNEFixDemandElementsDialog&) = delete;
249
};
250
251