Path: blob/main/src/netedit/dialogs/fix/GNEFixDemandElementsDialog.h
169684 views
/****************************************************************************/1// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo2// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.3// This program and the accompanying materials are made available under the4// terms of the Eclipse Public License 2.0 which is available at5// https://www.eclipse.org/legal/epl-2.0/6// This Source Code may also be made available under the following Secondary7// Licenses when the conditions for such availability set forth in the Eclipse8// Public License 2.0 are satisfied: GNU General Public License, version 29// or later which is available at10// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html11// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later12/****************************************************************************/13/// @file GNEFixDemandElementsDialog.h14/// @author Pablo Alvarez Lopez15/// @date March 201916///17// Dialog used to fix demand elements during saving18/****************************************************************************/19#pragma once20#include <config.h>2122#include "GNEFixElementsDialog.h"2324// ===========================================================================25// class declarations26// ===========================================================================2728class GNEDemandElement;2930// ===========================================================================31// class definitions32// ===========================================================================3334class GNEFixDemandElementsDialog : public GNEFixElementsDialog<GNEDemandElement*> {3536public:37/// @brief groupbox for all radio buttons related with fix route options38class FixRouteOptions : public GNEFixElementsDialog::FixOptions {39/// @brief FOX-declaration40FXDECLARE(FixRouteOptions)4142public:43/// @brief constructor44FixRouteOptions(GNEFixDemandElementsDialog* fixDemandElementsParent);4546/// @brief select internal test solution47void selectInternalTestSolution(const std::string& solution);4849/// @brief apply selected fix option50bool applyFixOption();5152/// @name FOX-callbacks53/// @{5455/// @brief called when user select a option56long onCmdSelectOption(FXObject* obj, FXSelector, void*);5758/// @}5960protected:61/// @brief FOX needs this62FOX_CONSTRUCTOR(FixRouteOptions)6364/// @brief Option "Remove invalid routes"65FXRadioButton* myRemoveInvalidRoutes;6667/// @brief Option "Save invalid routes"68FXRadioButton* mySaveInvalidRoutes;6970/// @brief Option "Select invalid routes and cancel"71FXRadioButton* mySelectRouteInvalids;7273/// @brief Option "Remove stops out of route"74FXCheckButton* myRemoveStopsOutOfRoute;7576private:77/// @brief Invalidated copy constructor.78FixRouteOptions(const FixRouteOptions&) = delete;7980/// @brief Invalidated assignment operator.81FixRouteOptions& operator=(const FixRouteOptions&) = delete;82};8384/// @brief groupbox for all radio buttons related with fix vehicle options85class FixVehicleOptions : public GNEFixElementsDialog::FixOptions {86/// @brief FOX-declaration87FXDECLARE(FixVehicleOptions)8889public:90/// @brief constructor91FixVehicleOptions(GNEFixDemandElementsDialog* fixDemandElementsParent);9293/// @brief select internal test solution94void selectInternalTestSolution(const std::string& solution);9596/// @brief apply selected fix option97bool applyFixOption();9899/// @name FOX-callbacks100/// @{101102/// @brief called when user select a option103long onCmdSelectOption(FXObject* obj, FXSelector, void*);104105/// @}106107protected:108/// @brief FOX needs this109FOX_CONSTRUCTOR(FixVehicleOptions)110111/// @brief Option "remove invalid elements"112FXRadioButton* myRemoveInvalidVehicles;113114/// @brief Option "save invalid vehicles"115FXRadioButton* mySaveInvalidVehicles;116117/// @brief Option "Select invalid vehicles and cancel"118FXRadioButton* mySelectInvalidVehicles;119120/// @brief Option "Remove stops out of vehicle"121FXCheckButton* myRemoveStopsOutOfVehicle;122123private:124/// @brief Invalidated copy constructor.125FixVehicleOptions(const FixVehicleOptions&) = delete;126127/// @brief Invalidated assignment operator.128FixVehicleOptions& operator=(const FixVehicleOptions&) = delete;129};130131/// @brief groupbox for all radio buttons related with fix stop options132class FixStopPositionOptions : public GNEFixElementsDialog::FixOptions {133/// @brief FOX-declaration134FXDECLARE(FixStopPositionOptions)135136public:137/// @brief build Position Options138FixStopPositionOptions(GNEFixDemandElementsDialog* fixDemandElementsParent);139140/// @brief select internal test solution141void selectInternalTestSolution(const std::string& solution);142143/// @brief apply selected fix option144bool applyFixOption();145146/// @name FOX-callbacks147/// @{148149/// @brief called when user select a option150long onCmdSelectOption(FXObject* obj, FXSelector, void*);151152/// @}153154protected:155/// @brief FOX needs this156FOX_CONSTRUCTOR(FixStopPositionOptions)157158/// @brief Option "Activate friendlyPos and save"159FXRadioButton* myActivateFriendlyPosition;160161/// @brief Option "Fix Positions and save"162FXRadioButton* myFixPositions;163164/// @brief Option "Save invalid"165FXRadioButton* mySaveInvalid;166167/// @brief Option "Select invalid stops and cancel"168FXRadioButton* mySelectInvalidStops;169170private:171/// @brief Invalidated copy constructor.172FixStopPositionOptions(const FixStopPositionOptions&) = delete;173174/// @brief Invalidated assignment operator.175FixStopPositionOptions& operator=(const FixStopPositionOptions&) = delete;176};177178/// @brief groupbox for all radio buttons related with fix person plan options179class FixPlanOptions : public GNEFixElementsDialog::FixOptions {180/// @brief FOX-declaration181FXDECLARE(FixPlanOptions)182183public:184/// @brief build Position Options185FixPlanOptions(GNEFixDemandElementsDialog* fixDemandElementsParent);186187/// @brief select internal test solution188void selectInternalTestSolution(const std::string& solution);189190/// @brief apply selected fix option191bool applyFixOption();192193/// @name FOX-callbacks194/// @{195196/// @brief called when user select a option197long onCmdSelectOption(FXObject* obj, FXSelector, void*);198199/// @}200201protected:202/// @brief FOX needs this203FOX_CONSTRUCTOR(FixPlanOptions)204205/// @brief Option "remove invalid plan"206FXRadioButton* myRemoveInvalidPlan;207208/// @brief Option "Save invalid"209FXRadioButton* mySaveInvalid;210211/// @brief Option "Select invalid person plans and cancel"212FXRadioButton* mySelectInvalidPlans;213214private:215/// @brief Invalidated copy constructor.216FixPlanOptions(const FixPlanOptions&) = delete;217218/// @brief Invalidated assignment operator.219FixPlanOptions& operator=(const FixPlanOptions&) = delete;220};221222/// @brief Constructor223GNEFixDemandElementsDialog(GNEApplicationWindow* mainWindow,224const std::vector<GNEDemandElement*>& elements);225226/// @brief destructor227~GNEFixDemandElementsDialog();228229protected:230/// @brief fix route options231FixRouteOptions* myFixRouteOptions = nullptr;232233/// @brief fix vehicle options234FixVehicleOptions* myFixVehicleOptions = nullptr;235236/// @brief fix stop options237FixStopPositionOptions* myFixStopPositionOptions = nullptr;238239/// @brief fix person plan options240FixPlanOptions* myFixPlanOptions = nullptr;241242private:243/// @brief Invalidated copy constructor.244GNEFixDemandElementsDialog(const GNEFixDemandElementsDialog&) = delete;245246/// @brief Invalidated assignment operator.247GNEFixDemandElementsDialog& operator=(const GNEFixDemandElementsDialog&) = delete;248};249250251