X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_PluginManager.h;h=8fc49bdf2c6e9ccb84c136360b34c33a91bd933b;hb=053481dcc854e8f47d2674bf2cf04b424f773cde;hp=5a847abce16589cfe4f65c7c2b274afcbfe8586d;hpb=e1f8fb3cfc1ee565db16fbbd9fe6f65121c4577c;p=modules%2Fshaper.git diff --git a/src/Model/Model_PluginManager.h b/src/Model/Model_PluginManager.h index 5a847abce..8fc49bdf2 100644 --- a/src/Model/Model_PluginManager.h +++ b/src/Model/Model_PluginManager.h @@ -10,28 +10,39 @@ #include #include +class Model_Document; + /**\class Model_PluginManager * \ingroup DataModel * \brief Object that knows (from the initial XML file) which * plugin contains which feature, loads and stores reference to loaded plugins by * the feature functionality request. */ - class Model_PluginManager : public ModelAPI_PluginManager, public Event_Listener { bool myPluginsInfoLoaded; ///< it true if plugins information is loaded - /// map of feature IDs to plugin name and object + /// map of feature IDs to plugin name std::map myPlugins; std::map myPluginObjs; ///< instances of the already plugins std::string myCurrentPluginName; ///< name of the plugin that must be loaded currently + std::shared_ptr myCurrentDoc; ///< current working document public: - /// Creates the feature object using plugins functionality - MODEL_EXPORT virtual boost::shared_ptr createFeature(std::string theFeatureID); + /// Returns the root document of the application (that may contains sub-documents) + MODEL_EXPORT virtual std::shared_ptr rootDocument(); + + /// Return true if root document has been already created + MODEL_EXPORT virtual bool hasRootDocument(); + + /// Returns the current document that used for current work in the application + MODEL_EXPORT virtual std::shared_ptr currentDocument(); + + /// Defines the current document that used for current work in the application + MODEL_EXPORT virtual void setCurrentDocument(std::shared_ptr theDoc); /// Registers the plugin that creates features. /// It is obligatory for each plugin to call this function on loading to be found by /// the plugin manager on call of the feature) - virtual void registerPlugin(ModelAPI_Plugin* thePlugin); + MODEL_EXPORT virtual void registerPlugin(ModelAPI_Plugin* thePlugin); /// Processes the configuration file reading MODEL_EXPORT virtual void processEvent(const Event_Message* theMessage); @@ -39,9 +50,12 @@ public: /// Is called only once, on startup of the application Model_PluginManager(); -private: +protected: /// Loads (if not done yet) the information about the features and plugins void LoadPluginsInfo(); + + /// Creates the feature object using plugins functionality + virtual std::shared_ptr createFeature(std::string theFeatureID); }; #endif