Managers¶
Voici les différents managers (services) que fournit JTheque Core.
Les managers sont tous des singletons. Ils sont accessibles avec la classe Managers (getManager()) qui permet de récupérer des instances de chacun des managers. Les managers sont tous accessibles par leur interface IXManager, les méthodes accessibles sont donc celles de l'interface. Certains managers proposent également des classes "utilitaires".
1. Application¶
L'application n'est pas un vrai manager en soi, mais ce service permet d'accéder à des informations sur l'application modulaire englobante. Ce "manager" est récupérable avec la méthode Managers.getApplication() qui retourne une instance de IApplication.Voici ce qu'il est possible de faire avec ce manager :
- Récupérer les dossiers et les chiers de l'application. Ceci est possible avec les méthodes getFiles() et getFolders().
- Quitter et redémarrer l'application via les méthodes restart() et exit(boolean force). Normalement, ces méthodes ne devraient pas être appellées depuis les modules, étant donné qu'elles gèrent le cycle de vie de l'application.
- Récupérer le titre (getTitle()) et s'enregistrer comme écouteur du titre
((add-remove)TitleListener(TitleListener listener) ) pour rester informé du titre actuel lorsqu'il change. - Récupérer la fonction courante (getCurrentFunction()) et s'enregistrer comme écouteur de cette dernière ((add-remove)FunctionListener(FunctionListener listener)) pour rester constamment informé de la fonction courante de l'application. On peut également modier la fonction courante en utilisant la méthode setCurrentFunction(String function).
- Récupérer la conguration du Core via la méthode getConguration().
- Récupérer le "basename" pour les images pour les ressources de l'application. Ceci est réalisable avec la méthode getImagesBaseName(). Pour plus d'informations sur les basenames pour les images, référez-vous en à la documentation du ResourceManager.
- Savoir si la deuxième phase de démarrage est terminée avec la méthode isSecondPhaseDone().
- Indiquer au core un problème durant le chargement des modules, indicateLoadingError().
2. Core¶
Le Core permet de récupérer des informations sur l'application courante et sur le Core. Il permet aussi de modier les informations sur l'application. Normalement, ces méthodes ne devraient être utilisé qu'en interne et par l'application, mais normalement pas par les modules.
3. BeansManager¶
Ce manager permet de gérer de l'IOC. Ce manager est basé sur Spring.Voici les fonctions que fournit le manager :
- Récupérer un bean injecté via la méthode getBean(String name).
- Injecter les ressources dans un bean avec la méthode injectBean(String name).
- Ajouter une classe de configuration, c'est une classe annotée avec @Configuration, qui utilise le projet Spring JavaConfig, addConfigurationClass(Class< ?> classe).
- Récupérer le contexte d'application, getApplicationContext().
4. CacheManager¶
Ce manager permet de gérer des caches de données. Ce manager utilise descaches EhCache.
Voici ce qu'il est possible de faire avec ce manager :
- Ajouter un nouveau cache avec la méthode addCache(CacheConguration configuration). L'objet CacheConguration permet de congurer le cache à créer.
- Recupérer un cache avec getCache(String name). Le cache récupéré est un EhCache.
- Savoir si un cache existe, cacheExists(String name).
- Supprimmer un cache, removeCache(String name).
5. ErrorManager¶
Ce manager permet simplement d'acher d'enregistrer une erreur qui sera ensuite affichée. On peut ajouter une erreur avec la méthode addError() et récupérer la liste des erreurs enregistrées avec la méthode getErrors().
6. FeatureManager¶
Ce manager permet d'ajouter des éléments au menu (Feature).
Voici ce que propose ce manager :- Ajouter un élément au menu. Cet élément est ajouté directement à la barre
de menu. - Supprimer un élément du menu.
- Récupérer une liste contenant toutes les Feature de l'application.
- Récupérer les Feature spéciques (File, Edit, Advanced, Help).
- Désactiver les fonctionnalités d'import.
- Se tenir au courant des changements dans les Feature.
7. FileManager¶
Ce manager permet de gérer l'importation/exportation et la sauvegarde/restauration des données.
Voici ce qu'il est possible de faire avec ce manager :- Ajouter et enlever des Dao à vider en cas de restauration des données.
- Sauvegarder et restaurer les données dans et respectivement depuis un fichier d'un certain format.
- Enregistrer et enlever des objets de restauration/sauvegarde.
- Vider la base de données.
- Importer les données depuis une connexion à une base de données.
8. LoggingManager¶
Ce manager permet de récupérer un logger pour le logging de messages pour l'application. Ces loggers permettent d'enregistrer des messages, des erreurs ou encore des exceptions.
Le manager fournit qu'une seule méthode getLogger(Class< ?> classe) permettant de récupérer le logger pour la classe. Les logger sont uniques pour chaque classe. On peut aussi récupérer le logger en utilisant l'annotation @Logger sur un champ et en l'injectant ensuite avec le BeansManager.
9. MessageManager¶
Ce manager permet d'afficher des messages dans l'application depuis des sources externes. Les sources de ces messages sont les modules et l'application modulaire.Voici ce que propose ce manager :
- Retourner la liste des messages des différentes sources
- Charger les messages depuis les sources.
- Afficher les messages si cela est nécessaire.
10. ModuleManager¶
Ce manager permet de gérer les modules de l'application. Ce manager est surtout utilisé en interne dans l'application, ce n'est pas un manager des plus utile pour les modules.
Voici ce qu'il propose :- Récupérer le module primaire qui est lancé.
- Récupérer la liste de tous les modules.
- Récupérer la liste de tous les modules primaires.
- Se tenir au courant des changements au niveau des modules.
- Récupérer la liste des modules qui sont proposés sur le repository de l'application.
- Retourner le repository de modules de l'application.
- Permet de savoir si un module est installé, avec son nom.
- Récupérer la version d'un module
- Installer un module depuis son chier de version.
11. PersistenceManager¶
Ce manager permet de gérer la persistence des entités. La gestion principale des entités est geré avec Spring JDBC.
Voici ce qu'il est possible de faire :- Retourner la liste des versions de base de données depuis lesquelles il est possible de récupérer des données.
- Ouvrir, fermer et récupérer une connexion secondaire à une base de données.
- Retourner la liste des bases de données disponibles pour une connexion secondaire.
- Désactiver ce manager et savoir s'il est activé ou non.
- Savoir si le manager est complètement chargé ou non.
- GenericDao. Un Dao générique permettant de gérer un type d'entité (une classe étendant Entity). Ce dao fournit des méthodes de base pour gérer les entitès et a plusieurs méthodes abstraites permettant de faire les mappings entre les objets et la base de données.
- DaoPersistenceContext. Un contexte de persistence pour les Dao. Ce contexte permet d'accéder à des fonctions avancées et permet de récupérer le template Spring JDBC qui régit la connexion à la base de données.
12. PropertiesManager¶
Ce manager permet de gérer les propriétés des JavaBeans.Voici les fonctions que propose cette classe :
- Récupérer la liste des propriétés d'un bean.
- Récupérer la valeur d'une propriété d'un bean, soit en utilisant la propriété soit en utilisant le nom de la propriété.
- Créer le memento d'un bean. C'est-à-dire une copie conforme d'un bean.
- Construire la représentation en chaîne de caractères d'un bean.
- Générer un code de hachage pour un bean.
- Restaurer l'état du memento d'un bean.
13. ResourceManager¶
Ce manager permet de gérer les ressources, c'est-à-dire les fichiers d'internationalisation, les images et les miniatures.
Voici les fonctions :- Ajouter et supprimer un basename pour l'internationalisation, au sens Spring.
- Modifier et récupérer la Locale courante et le language courante.
- Récupérer un message internationalisé
- Ajouter un élément internationalisable.
- Récupérer tous les langages disponibles.
- Se tenir informé des changements de Locale.
- Récupérer des images JPG, GIF et PNG.
14. SchemaManager¶
Ce manager permet de gérer les schémas de base de données. Ce manager va
se charger de tenir à jour le schéma de la base de données en fonction des
schémas qui lui sont fournis par les différents modules.
- Enregistrer un nouveau schéma, registerSchema(Schema schema).
- Retirer un schéma de base de données, unregisterSchema(Schema schema).
- Un schema possède une version courante (getVersion()). C'est la version du schema, ce n'est pas la version installée.
- Un schema possède un nom (getName()).
- Un schéma peut être installé (install()). Cette méthode est exécutée uniquement lors de la première installation du schéma, c'est-à-dire quand le schéma n'est pas encore installé sur la base de données.
- Un schéma peut être mis à jour (update(Version from)), cette version permet de mettre à jour la version installée depuis une version précédente. La version précédente est celle passée en paramètre.
- Importer les données depuis l'ancienne base de données HSQL (importDataFromHSQL(List<Insert> inserts)). Lors de l'installation de la version de JTheque avec H2, cette méthode est appelée pour que les schémas puissent récupérer les données de l'ancienne base de données HSQL.
15. SkinManager¶
Ce manager permet de modifier le LookAndFeel (Skin) de l'application.Voici les fonctions que propose ce manager :
- Récupérer la liste des Skin de l'application. La méthode getSkins() retourne un tableau de Skin contenant tous les LookAndFeel installés.
- Appliquer un Skin, avec les méthodes setSkin(String name) et setSkin(Skin skin).
- Retourner le skin courant, getCurrentSkin().
- Être tenu informé des changements de Skins, add-removeSkinListener(SkinListener listener).
16. StateManager¶
Ce manager permet d'enregistrer des états. C'est-à-dire une classe (étendant IState) dont l'état sera enregistré puis rechargé au démarrage de l'application. Cela permet d'enregistrer des configurations pour les modules.
Voici ce qui est faisable avec ce manager :- Enregistrer un nouvel état.
- Créer un nouvel état.
- Récupérer un état.
17. UndoManager¶
Ce manager permet de gérer l'annulation et le rétablissement d'action. Ce manager permet donc d'annuler la dernière action (undo()), rétablir la dernière action annulée (redo()) et ajouter une nouvelle action annulable (addEdit(UndoableEdit edit)).
18. UpdateManager¶
Ce manager permet de gérer les mises à jour.
Voici exactement ce qu'il permet de faire :- Installer ou mettre à jour le core, un module ou un objet qui peut être mis à jour.
- Récupérer la liste des versions disponibles sur internet du core, d'un module ou d'un objet.
- Appliquer les patchs si c'est nécessaire.
19. ViewManager¶
Ce manager permet de gérer la vue.Voici ce qu'un module peut faire pour interagir avec la vue :
- Ajouter et supprimer un composant dans la barre d'état et se tenir informé des ajouts/suppressions de composants dans cette dernière.
- Ajouter et supprimer un onglet dans la panneau à onglets de la vue de configuration et se tenir informé des ajouts/suppressions de composants dans cette dernière.
- Ajouter et supprimer un onglet dans le panneau à onglets de la vue principale et se tenir informé des ajouts/suppressions de composants dans cette dernière.
- Sélectionner un répertoire ou un chier
- Afficher un message ou une erreur
- Demander une confirmation à l'utilisateur
- Récupérer les différentes vues de l'application.
- Exécuter des tâches dans l'EDT.
- Rafraîchir un composant.
- Afficher et cacher le splash screen.
- Modifier et récupérer le composant principal.