+ /// Returns true if the workshop validator filter has been already activated
+ /// \return boolean value
+ bool isFilterActivated() const;
+
+protected:
+ /// Gets the validity state of the presentation in an internal map. Returns true if the valid state of value is stored
+ /// \param theValue a viewer presentation
+ /// \param theValid a valid state
+ bool getValidState(const std::shared_ptr<ModuleBase_ViewerPrs>& theValue, bool& theValid);
+
+ /// Store the validity state of the presentation in an internal map
+ /// \param theValue a viewer presentation
+ /// \param theValid a valid state
+ void storeValidState(const std::shared_ptr<ModuleBase_ViewerPrs>& theValue, const bool theValid);
+
+private:
+ /// Applies AIS context filters to the parameter list. The not approved presentations are
+ /// removed from the parameters.
+ /// \param theValues a list of presentations.
+ void filterPresentations(QList<std::shared_ptr<ModuleBase_ViewerPrs>>& theValues);
+
+ /// Remove subshapes of compsolids if whole compsolid is present.
+ /// \param theValues a list of presentations.
+ void filterCompSolids(QList<std::shared_ptr<ModuleBase_ViewerPrs>>& theValues);
+
+protected:
+ /// Reference to workshop
+ ModuleBase_IWorkshop* myWorkshop;
+ /// The widget is in validation mode: store is performed, restore is not
+ bool myIsInValidate;
+
+private:
+ ObjectPtr myPresentedObject; /// back up of the filtered object
+ QList<std::shared_ptr<ModuleBase_ViewerPrs>> myValidPrs; /// cash of valid selection presentations
+ QList<std::shared_ptr<ModuleBase_ViewerPrs>> myInvalidPrs; /// cash of invalid selection presentations
+
+ /// store to backup parameters of the model
+ ModuleBase_WidgetSelectorStore* myAttributeStore;