The following figure shows the plugin manager component:
Each line presented in the table represents a plugin in the system. Note in the Enabling column that there are some plugins checked and others are not checked. The plugins checked are loaded with the applicaton and the unchecked are not loaded even though they are available in the system.
Loading and unloading plugins changes the way they are presented in the table. The lines highlighted in bold letter reflects the plugins changes. Thus, it is possible to know which plugins changed from Enable to Disable and vice-versa looking all lines highlighted. These modifications are not valid until the user press the Apply buttom. After that the highlighted lines comes back to normal.
When enabling a plugin all of its dependencies must be loaded either. The dependencies list are checked by the plugin manager that ask for the user to load them one by one. If all dependencies are satisfied then the plugin will be loaded.
When disabling a plugin all of its dependencies will also be unloaded, unless the client answer "no" to the question.
Adding plugins does not means that it will be enabled. The add operation just adds the plugin to the list of unloaded plugins. See the enabel/diable section above.
Removing plugins do not remove physically its files, it only removes its reference in the list. The manager will not load it any more.
Brokek Plugins are plugins which have dependencies missed. For some reason its dependencies can not be load. This kind of plugin will be showed in the manager without the checking box enabled, because it can not be loaded. To revert this situation, its is necessary to load all its dependencies.