1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: ModuleBase_WidgetValidated.h
4 // Created: 12 Mar 2015
5 // Author: Natalia ERMOLAEVA
8 #ifndef MODULEBASE_WIDGETVALIDATED_H_
9 #define MODULEBASE_WIDGETVALIDATED_H_
11 #include <ModuleBase.h>
12 #include <ModuleBase_ModelWidget.h>
14 #include <GeomAPI_Shape.h>
15 #include <ModelAPI_Object.h>
17 #include <SelectMgr_ListOfFilter.hxx>
20 class ModuleBase_IWorkshop;
21 class Config_WidgetAPI;
22 class Handle_SelectMgr_EntityOwner;
26 * Implementation of widget with validators and filters processing.
28 class MODULEBASE_EXPORT ModuleBase_WidgetValidated : public ModuleBase_ModelWidget
33 /// \param theParent the parent object
34 /// \param theData the widget configuation. The attribute of the model widget is obtained from
35 /// \param theParentId is Id of a parent of the current attribute
36 ModuleBase_WidgetValidated(QWidget* theParent,
37 const Config_WidgetAPI* theData,
38 const std::string& theParentId);
39 virtual ~ModuleBase_WidgetValidated();
41 /// Checks all widget validator if the owner is valid
42 /// \param theOwner a selected owner in the view
43 /// \return a boolean value
44 bool isValid(const Handle_SelectMgr_EntityOwner& theOwner);
46 /// Set the given wrapped value to the current widget
47 /// This value should be processed in the widget according to the needs
48 /// \param theValue the wrapped widget value
49 virtual bool setSelection(ModuleBase_ViewerPrs theValue);
52 /// Creates a backup of the current values of the attribute
53 /// It should be realized in the specific widget because of different
54 /// parameters of the current attribute
55 /// \param isBackup a boolean flag, if true, store values from the attribute
56 /// to backup, otherwise set the backed up values to the attribute
57 virtual void backupAttributeValue(const bool isBackup) = 0;
59 /// Fills the attribute with the value of the selected owner
60 /// \param theOwner a selected owner
61 virtual bool setSelection(const Handle_SelectMgr_EntityOwner& theOwner) = 0;
63 /// Checks the current attibute in all attribute validators
64 // \return true if all validators return that the attribute is valid
65 bool isValidAttribute() const;
67 /// Check the selected with validators if installed
68 /// \param theObj the object for checking
69 /// \param theShape the shape for checking
70 virtual bool isValid(ObjectPtr theObj, GeomShapePtr theShape) const;
72 /// It obtains selection filters from the workshop and activates them in the active viewer
73 /// \param theWorkshop an active workshop
74 /// \param toActivate a flag about activation or deactivation the filters
75 virtual void activateFilters(ModuleBase_IWorkshop* theWorkshop, const bool toActivate) const;
77 /// Fills the given list with all widget filters.
78 /// \param theWorkshop an active workshop
79 /// \param theFilters a list of filters
80 void selectionFilters(ModuleBase_IWorkshop* theWorkshop,
81 SelectMgr_ListOfFilter& theFilters) const;
84 #endif /* MODULEBASE_WIDGETVALIDATED_H_ */