+ /// Performs functionality on closing document\r
+ virtual void closeDocument() = 0;\r
+\r
+ /// Clears specific presentations in the viewer\r
+ virtual void clearViewer() = 0;\r
+\r
+ /// Returns a list of modes, where the AIS objects should be activated\r
+ /// \param theModes a list of modes\r
+ virtual void activeSelectionModes(QIntList& theModes) {}\r
+\r
+ /** Update the object presentable properties such as color, lines width and other\r
+ * If the object is result with the color attribute value set, it is used,\r
+ * otherwise the customize is applyed to the object's feature if it is a custom prs\r
+ * \param theObject an object instance\r
+ * \param theUpdateViewer the parameter whether the viewer should be update immediately\r
+ * \returns true if the object is modified\r
+ */\r
+ virtual bool customizeObject(ObjectPtr theObject, const bool theUpdateViewer);\r
+\r
+ /// This method is called on object browser creation for customization of module specific features\r
+ /// \param theObjectBrowser a pinter on Object Browser widget\r
+ virtual void customizeObjectBrowser(QWidget* theObjectBrowser) {}\r
+\r
+ /// Creates a new operation\r
+ /// \param theCmdId the operation name\r
+ virtual ModuleBase_Operation* createOperation(const std::string& theCmdId);\r
+\r
+ /// Sends the operation for launching\r
+ /// \param theOperation the operation\r
+ virtual void sendOperation(ModuleBase_Operation* theOperation);\r
+\r
+ //! Returns data object by AIS\r
+ virtual ObjectPtr findPresentedObject(const AISObjectPtr& theAIS) const = 0;\r
+\r
+ /// Update state of pop-up menu items in object browser\r
+ /// \param theStdActions - a map of standard actions\r
+ virtual void updateObjectBrowserMenu(const QMap<QString, QAction*>& theStdActions) {}\r
+\r
+ /// Update state of pop-up menu items in viewer\r
+ /// \param theStdActions - a map of standard actions\r
+ virtual void updateViewerMenu(const QMap<QString, QAction*>& theStdActions) {}\r
+\r
+ //! Returns the feature error if the current state of the feature in the module is not correct\r
+ //! If the feature is correct, it returns an empty value\r
+ //! \return string value\r
+ virtual QString getFeatureError(const FeaturePtr& theFeature);\r
+\r
+ //! Returns the widget error, get it from the attribute validator and state of the widget\r
+ //! If the feature is correct, it returns an empty value\r
+ //! \return string value\r
+ virtual QString getWidgetError(ModuleBase_ModelWidget* theWidget);\r
+\r
+ /// Returns list of granted operation indices\r
+ virtual void grantedOperationIds(ModuleBase_Operation* theOperation, QStringList& theIds) const;\r
+\r
+ /// Connects or disconnects to the value changed signal of the property panel widgets\r
+ /// \param theWidget a property contol widget\r
+ /// \param isToConnect a boolean value whether connect or disconnect\r
+ virtual void connectToPropertyPanel(ModuleBase_ModelWidget* theWidget, const bool isToConnect) {};\r
+\r
+ /// Validates the operation to change the "Apply" button state.\r
+ /// \param thePreviousState the previous state of the widget\r
+ virtual void widgetStateChanged(int thePreviousState) {};\r
+\r
+ /// Returns true if the event is processed.\r
+ /// \param thePreviousAttributeID an index of the previous active attribute\r
+ virtual bool processEnter(const std::string& thePreviousAttributeID) { return false; };\r
+\r
+ /// Performs some GUI actions after an operation transaction is opened\r
+ /// Default realization is empty\r
+ virtual void beforeOperationStarted(ModuleBase_Operation* theOperation) {};\r
+\r
+ /// Performs some GUI actions before an operation transaction is stopped\r
+ /// Default realization is empty\r
+ virtual void beforeOperationStopped(ModuleBase_Operation* theOperation) {};\r
+\r
+signals:\r
+ /// Signal which is emitted when operation is launched\r
+ void operationLaunched();\r
+\r
+ /// Segnal emitted when an operation is resumed\r
+ /// \param theOp a resumed operation\r
+ void resumed(ModuleBase_Operation* theOp);\r
+\r