+ /// Returns data model object for representation of data tree in Object browser
+ virtual ModuleBase_IDocumentDataModel* dataModel() const { return myDataModel; }
+
+ /// Performs functionality on closing document
+ virtual void closeDocument();
+
+ /// Clears specific presentations in the viewer
+ virtual void clearViewer();
+
+ /// Event Listener method
+ /// \param theMessage an event message
+ virtual void processEvent(const std::shared_ptr<Events_Message>& theMessage);
+
+ /// Set the object with the object results are customized
+ /// \param theFeature a feature
+ void setCustomized(const FeaturePtr& theFeature);
+
+ /** Update the object presentable properties such as color, lines width and other
+ * If the object is result with the color attribute value set, it is used,
+ * otherwise the customize is applyed to the object's feature if it is a custom prs
+ * \param theObject an object instance
+ * \param theUpdateViewer the parameter whether the viewer should be update immediatelly
+ * \returns true if the object is modified
+ */
+ virtual bool customizeObject(ObjectPtr theObject, const bool theUpdateViewer);
+
+ /// This method is called on object browser creation for customisation of module specific features
+ /// \param theObjectBrowser a pinter on Object Browser widget
+ virtual void customizeObjectBrowser(QWidget* theObjectBrowser);
+
+ /// Returns the viewer Z layer
+ int getVisualLayerId() const { return myVisualLayerId; }
+
+ //! Returns data object by AIS
+ virtual ObjectPtr findPresentedObject(const AISObjectPtr& theAIS) const;
+
+ /// Update state of pop-up menu items in viewer
+ /// \param theStdActions - a map of standard actions
+ virtual void updateViewerMenu(const QMap<QString, QAction*>& theStdActions);
+