User Tools

Site Tools


wiki:epims4_1m1:developer:ep-pole

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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
wiki/epims4_1m1/developer/ep-pole.1244465553.txt.gz · Last modified: 2009/06/08 14:52 by 132.168.73.9