class QWidget;
class ModuleBase_IWorkshop;
+class ModuleBase_ISelection;
+class ModelAPI_Validator;
class Config_WidgetAPI;
class Handle_SelectMgr_EntityOwner;
/// Checks all widget validator if the owner is valid
/// \param theOwner a selected owner in the view
/// \return a boolean value
- bool isValid(const Handle_SelectMgr_EntityOwner& theOwner);
+ bool isValidSelection(const ModuleBase_ViewerPrs& theValue);
+
+ /// Set the given wrapped value to the current widget
+ /// This value should be processed in the widget according to the needs
+ /// The method is called by the current operation to process the operation preselection.
+ /// It is redefined to check the value validity and if it is, fill the attribute with by value
+ /// \param theValues the wrapped selection values
+ /// \param thePosition an index in the list of values, the values should be get from the index
+ virtual bool setSelection(const QList<ModuleBase_ViewerPrs>& theValues, int& thePosition);
protected:
/// Creates a backup of the current values of the attribute
/// It should be realized in the specific widget because of different
/// parameters of the current attribute
- /// \param isBackup a boolean flag, if true, store values from the attribute
- /// to backup, otherwise set the backed up values to the attribute
- virtual void backupAttributeValue(const bool isBackup) = 0;
+ virtual void storeAttributeValue() = 0;
+
+ /// Creates a backup of the current values of the attribute
+ /// It should be realized in the specific widget because of different
+ /// parameters of the current attribute
+ /// \param theValid a boolean flag, if restore happens for valid parameters
+ virtual void restoreAttributeValue(const bool theValid) = 0;
/// Fills the attribute with the value of the selected owner
/// \param theOwner a selected owner
- virtual void setSelection(const Handle_SelectMgr_EntityOwner& theOwner) = 0;
+ virtual bool setSelectionCustom(const ModuleBase_ViewerPrs& thePrs) = 0;
+
+ virtual void removePresentations() {};
/// Checks the current attibute in all attribute validators
// \return true if all validators return that the attribute is valid
bool isValidAttribute() const;
- /// Check the selected with validators if installed
- /// \param theObj the object for checking
- /// \param theShape the shape for checking
- virtual bool isValid(ObjectPtr theObj, GeomShapePtr theShape) const;
-
/// It obtains selection filters from the workshop and activates them in the active viewer
/// \param theWorkshop an active workshop
/// \param toActivate a flag about activation or deactivation the filters
virtual void activateFilters(ModuleBase_IWorkshop* theWorkshop, const bool toActivate) const;
- /// Fills the given list with all widget filters.
- /// \param theWorkshop an active workshop
- /// \param theFilters a list of filters
- void selectionFilters(ModuleBase_IWorkshop* theWorkshop,
- SelectMgr_ListOfFilter& theFilters) const;
+ /// Puts additional validators to the given list
+ /// \param theValidators a list of validators
+ /// \param theArguments a list of validators arguments
+ virtual void customValidators(std::list<ModelAPI_Validator*>& theValidators,
+ std::list<std::list<std::string> >& theArguments) const;
+
+ /// Returns a list of selected presentations. Firstly it is obtained from the viewer,
+ /// if there are not selected objects in the viewer, it get the selection from the object browser.
+ /// If the browser has selected objects, the viewer prs objects are created with only object
+ /// field of the presentation initialized. The widget should accept the selection in the object
+ /// browser at the same way as in the viewer.
+ /// \param theSelection a selection, where the selected objects and presentations are found
+ /// \return a list of presentations
+ QList<ModuleBase_ViewerPrs> getSelectedEntitiesOrObjects(ModuleBase_ISelection* theSelection) const;
+
};
#endif /* MODULEBASE_WIDGETVALIDATED_H_ */