This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
wiki:epims4_1m1:developer:ep-pole [2009/06/08 14:52] 132.168.73.9 |
wiki:epims4_1m1:developer:ep-pole [2009/10/29 16:23] (current) 132.168.73.9 |
||
---|---|---|---|
Line 19: | Line 19: | ||
* **SampleDTO** : Ajout de méthode clone() et copyFields(SampleDTO) afin de subvenir à des besoins côté client d'eP-POLE. | * **SampleDTO** : Ajout de méthode clone() et copyFields(SampleDTO) afin de subvenir à des besoins côté client d'eP-POLE. | ||
* Plusieurs classe du domaine n'ont pas encore été transformé en DTO ce qui résulte en des champs parfois supprimé (en commentaire) dans certains classes : | * Plusieurs classe du domaine n'ont pas encore été transformé en DTO ce qui résulte en des champs parfois supprimé (en commentaire) dans certains classes : | ||
- | * BiologicOrigin | ||
* Protocol | * Protocol | ||
* Robot | * Robot | ||
Line 27: | Line 26: | ||
+ | === Conversion du domaine en DTO et inversement : classe DTOUtils === | ||
+ | Les services d'eP-POLE fonctionnent avec les deux mondes : les objets du domaine provenant des services d'eP-Core et les objets DTO envoyés au client. Afin de faire les conversions une classe regroupant toutes les méthodes de conversions a été créé : **DTOUtils**. Ces méthodes se nomment comme suit : | ||
+ | * [objet concerné]ConversionTo[monde vers lequel se fait la conversion : DTO ou Domain] | ||
+ | * exemple : sampleConversionToDTO(Sample), runRobotConversionToDomain(RunRobotDTO) | ||
- | ===== Organisation de l'interface ===== | + | Des méthodes acceptant des listes d'objet sont aussi présentes. |
+ | Se reporter aux javadoc des méthodes pour lesquelles il existe des particularités. | ||
+ | |||
+ | ==== Architecture des classes "principales" ==== | ||
+ | :!: Il y a pas mal de refactoring à faire côté serveur :!: | ||
{{:wiki:epims4_1m1:developer:structure_classes_ep-pole.png|}} | {{:wiki:epims4_1m1:developer:structure_classes_ep-pole.png|}} | ||
+ | |||
+ | |||
+ | ==== Le SampleCache et ses listes ==== | ||
+ | La classe SampleCache garde en mémoire plusieurs "liste" permettant aux différents composants d'eP-POLE d'obtenir les données dont ils ont besoin sans avoir à faire de long traitement. Il y en a 4, et ce sont toutes des Map. | ||
+ | |||
+ | === sampleMap === | ||
+ | * Type : Map<String, SampleDTO> | ||
+ | * Clés (String) : Noms des échantillons | ||
+ | * Valeurs (SampleDTO) : Les échantillons | ||
+ | * Utilité : La liste complète des échantillons de l'étude en cours. Le nom des échantillons en clé permet de ne pas avoir à parcourir tout le temps la liste quand on sait quel échantillon on veut récupérer. | ||
+ | |||
+ | === sampleMapByProcessStep === | ||
+ | * Type : Map<ProcessStep, List<SampleDTO>> | ||
+ | * Clés (ProcessStep) : L'ensemble des ProcessStep((Tout ProtocolApplication + MassPlanning + RobotPlanning)) impliquant au moins un échantillon de l'étude en cours | ||
+ | * Valeurs (List<SampleDTO>) : La liste des échantillon **de l'étude** impliqués dans le ProcessStep correspondant. | ||
+ | * Utilité : Cette map permet d'avoir une liste des échantillons rangé par ProcessStep subit. | ||
+ | |||
+ | === processStepMapBySample === | ||
+ | * Type : Map<SampleDTO, SortedSet<ProcessStep>> | ||
+ | * Clés (SampleDTO) : L'ensemble des échantillons de l'étude **ayant subit au moins un ProcessStep** (les échantillon venant d'être créé n'apparaissent pas dans cette liste). | ||
+ | * Valeurs (SortedSet<ProcessStep>) : La liste ordonnée (sur la date grâce au ProcessStepDateComparator) de tout les processStep subit par l'échantillon correspondant. | ||
+ | * Utilité : Permet d'avoir facilement une liste ordonnée de ce qu'a subit un échantillon durant sa vie au laboratoire. | ||
+ | |||
+ | === sampleMapByLastProcessType === | ||
+ | * Type : Map<ProcessType, List<SampleDTO>> | ||
+ | * Clés (ProcessType) : La liste de tout les ProcessType((Pool, Planning Masse, Nouveau, etc...)) | ||
+ | * Valeurs (List<SampleDTO>) : La liste de tout les échantillon de l'étude dont le dernier ProcessStep subit est du type correspondant. Tout les échantillons n'ayant pas subit de ProcessStep sont inclus dans le type Nouveau. | ||
+ | * Utilité : Permet la liste des échantillons de l'étude classés par type de process. | ||
+ | |||
+ | ===== Organisation de l'interface ===== | ||
+ | Ci-après est décrit l'organisation des panels formant l'interface d'eP-POLE (les noms sont ceux utilisés dans le code) | ||
+ | |||
+ | {{:wiki:epims4_1m1:developer:ep-pole-panels_configuration.png|}} | ||
+ | |||
+ | Pour faire le lien avec le schéma précédent montrant les classes "principales" d'eP-POLE : | ||
+ | * CoreManager gère : | ||
+ | * le fittingPanel, | ||
+ | * le contentPanel, | ||
+ | * le westPanel, | ||
+ | * l'eastPanel. | ||
+ | * SelectionPanelManager gère : tout ce qui est contenu dans le westPanel : | ||
+ | * le selectionTabPanel, | ||
+ | * le treeSelectPanel, | ||
+ | * le processTypeSelectPanel (non montré sur le schéma) | ||
+ | * le selectedSplPanel. | ||
+ | * InformationPanelManager gère : | ||
+ | * le samplePanel et tout ce qu'il contient : | ||
+ | * sampleLowerPanel, | ||
+ | * sampleUpperPanel, | ||
+ | * sampleNamePanel, | ||
+ | * sampleDetailsPanel, | ||
+ | * processStepPanel (non montré sur le schéma) | ||
+ | * genealogyPanel (non montré sur le schéma). | ||
+ | * MesssagePanelManager gère : | ||
+ | * le messagePanel |