Formation Usine Retraite
Download
Report
Transcript Formation Usine Retraite
Formation Usine Retraite
Radja
Unissons nos Talents
PROBTP - Module M1.1 – Concepts BST et BREF
Le 13/10/2010
1
Sommaire
1
Présentation
2
Jive
3
Jivol
4
Bibliographie et glossaire
5
Questions / Réponses
6
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
2
Sommaire
1
Architecture
1.1 Intégration de Jive et Jivol dans l’UR
1.2 Composants sollicités lors d’un appel de service métier
1.3
2
Jive
3
Jivol
4
Bibliographie et glossaire BST/BREF
5
Questions / Réponses
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
3
Le framework
Techniquement, Radja est :
un framework d’applications Java client riche
un framework SWING
un framework MVC
un framework intégrant des services COBOL grâce à JIVE
un framework de trace basé sur log4j
etc.
Fonctionnellement, Radja est :
un framework suivant la charte graphique de l’Usine Retraite
un framework gérant les habilitations métier dans les écrans
un framework intégrant des services métier existants
etc.
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
4
Sommaire
Urbanisation : RADJA, BST, JIVE…
Architecture d’une application RADJA
Typologie et modalité des fonctions et des écrans
Architecture MVC des écrans RADJA
Méthodologie du développement
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
5
Urbanisation – Radja, BST, Jive
1.1 – BST
BST est le Bureau Services Transverses
C’est avant tout le lanceur des applications :
Il assure aussi des services transverses aux applications :
Applications / fonctions Radja de l’Usine Retraite
Applications externes : bloc-notes, calculette, etc.
Corbeilles et contextes
Habilitations
Remarque : BST est réalisé avec Radja
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
6
Urbanisation – Radja, BST, Jive
1.1 – L’Interface d’Accueil (IA)
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
7
Urbanisation – Radja, BST, Jive
1.1 – Jive
Jive est un framework pour intégrer des services externes dans une
application Java.
Radja utilise Jive pour accéder depuis les applications de l’Usine
Retraite :
aux référentiels métier (dictionnaires, messages)
aux préférences (groupe/utilisateur)
aux services métier existants (écrits en Cobol)
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
8
Urbanisation – Radja, BST, Jive
Application
métier
Référentiel
métier
Référentiel
métier
RADJA
JIVE
COBOL
Bureau
(BST)
RADJA
Application
externe
Application
métier
RADJA
Service
métier
JIVE
Service
métier
COBOL
?
JAVA
Formation Usine Retraite – Jive / Jivol
MAINFRAME
Le 03/11/2010
9
Ecrans, fonctions, applications Radja
Un écran Radja est un module autonome, avec son visuel mais
aussi son comportement métier propre
Une fonction Radja est un processus métier orchestrant un ou
plusieurs écrans
Les règles métier sont situés dans les services métier Cobol
Découpage fonctionnellement cohérent et unitaire d’une application
Enchaînement d’écrans et d’appels de services permettant des
consultations ou des mises à jour et laissant le système dans un
état cohérent.
Une application Radja est un ensemble de fonctions possédant
une configuration commune (dictionnaires, aide, messages
d’erreurs, habilitations…)
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
10
Exemple d’enchaînements
Bureau (BST)
Application2
Application1
Fonction1 (P)
Ecran1
Fonction3 (P)
Ecran3
Ecran2
Ecran4
Ecran6
Ecran7
Fonction4 (I)
Fonction2 (P)
Ecran8
Ecran5
Formation Usine Retraite – Jive / Jivol
Ecran1
Ecran2
Le 03/11/2010
11
Typologie des fenêtres
Les fenêtres des écrans Radja sont uniformisées :
Respect de la charte ergonomique UR
Pas besoin de « développer les fenêtres » dans une application Radja
Plusieurs éléments sont cependant personnalisables :
Titre
Bandeau contextuel
Boutons standards (cycle de vie)
Saisie de masse
Barre d’outils
Menu
etc.
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
12
Exemple
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
13
Sommaire
Urbanisation : RADJA, BST, JIVE…
Architecture d’une application RADJA
Typologie et modalité des fonctions et des écrans
Architecture MVC des écrans RADJA
Méthodologie du développement
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
14
Le modèle MVC
Un écran métier Radja comprend plusieurs éléments :
le Modèle : données représentées par l’écran
la Vue : visuel de l’écran
le Contrôleur de Vue : logique métier de l’écran
Séparer ces éléments permet de plus facilement les maintenir et les
réutiliser : c’est le principe des architectures MVC
Vue
appel méthode
événement
Contrôleur
Modèle
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
15
Usine Retraite
Framework RADJA
Modèle
Décembre 2006
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
16
Rôle
Le Modèle est passé par la fonction à ses écrans
Pour un écran, le Modèle contient les données :
la synchronisation permanente des données entre composants,
le retour aux anciennes valeurs du Modèle en cas d’annulation
Le Modèle est donc la zone d’échange entre :
représentées par la Vue
manipulées par le Contrôleur
Radja assure automatiquement :
La fonction instancie et peuple le Modèle
Chaque écran utilise un sous-ensemble des données, peut les modifier
ou en ajouter de nouvelles
Le Contrôleur de la fonction
Les Contrôleurs des Vues
Les composants graphiques des Vues
A la fin du dernier écran, la fonction récupère les données du
Modèle
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
17
Sommaire
Introduction
Lire / écrire dans le Modèle depuis un Contrôleur
Référentiels métier
Lier un composant graphique au Modèle
Concevoir le Modèle d’un écran
Clonage et contraintes techniques
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
18
Adressage d’une propriété
Les données du Modèle sont hiérarchisées et accédées en
utilisant une adresse (comme un système de fichiers)
L’adresse d’un objet situé à la racine du Modèle est préfixée par
un « # »
Une propriété d’un objet est accédée en utilisant le séparateur «
/»
Exemple : #personne/adresse
L’objet doit posséder des accesseurs standards pour pouvoir
accéder à ses propriétés
Exemple : #personne
Exemple : getAdresse et setAdresse pour la propriété
adresse
On peut utiliser plusieurs fois le séparateur pour accéder aux
propriétés de propriétés
Exemple : #personne/adresse/codePostal
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
19
Adressage d’une propriété
Les méthodes getValue et setValue sont utilisées pour lire et écrire
le Modèle
Exemples :
getValue ("#personne/entreprise/salaries");
personne.getEntreprise ().getSalaries ();
setValue ("#personne/nom", "DURAND");
personne.setNom ("DURAND");
setValue ("#personne/entreprise/nom", "XYZ");
personne.getEntreprise ().setNom ("XYZ");
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
20
Les référentiels métier
Depuis une application Radja, on peut faire référence à des référentiels
métier particuliers :
Dictionnaires (code / libellé court / libellé long)
Messages d’erreur (code / message / criticité)
Il existe des dictionnaires et un référentiel de messages communs à
toutes les applications
Chaque application peut en outre définir ses propres dictionnaires et
messages
Quand un code adressé depuis un composant ou un contrôleur n’existe
pas dans le référentiel de l’application, il est recherché dans le
référentiel commun
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
21
Accès aux référentiels métier
On accède aux référentiels métier comme s’ils faisaient partie du
Modèle, avec deux racines spéciales :
#dic pour les dictionnaires de l’application
#msg pour le référentiel de messages de l’application
Pour chaque item du dictionnaire, on peut sélectionner :
/code : le code
/shortLabel : le libellé court
/fullLabel : le libellé long
Les référentiels métier sont en lecture seule
Exemple : Lecture des libellés longs d’un dictionnaire
getValue ("#dic/civilite/fullLabel");
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
22
Composants graphiques
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
23
Sommaire
Généralités
Fonctionnalités communes
Composants à valeur statique
Champs
Composants activables
Composants sélectionnables
Conteneurs
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
24
Généralités
Composants de base issus de SWING, avec valeur ajoutée :
Composants moins standards :
Déversoirs (listes, arbres, tableaux), écran de recherche, etc.
Un composant graphique s’utilise au sein d’une Vue
Techniquement plus simples à utiliser : formateurs, aide et menu
contextuels, synchronisation automatique avec les données, etc.
Intégrés au métier : habilitations, charte ergonomique, etc.
Création
Configuration
Ajout à la Vue
Certains composants graphique peuvent être liés au Modèle en leur
associant l’adresse de l’objet représenté
Exemple : champTexte.setValuePath ("#personne/nom");
Exemple : liste.setReferencePath ("#dic/civilite");
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
25
Fonctionnalités communes
setFrameworkName ("monComposant")
Nom métier du composant
Permettra d’adresser le composant depuis le Contrôleur
setGroups (unEnsembleDeGroupes)
Associe le composant à des groupes
Permettra d’agir sur plusieurs composants simultanément depuis le
Contrôleur
setFrameworkEnabled (boolean)
setFrameworkVisible (boolean)
setPreferredSize (new Dimension (50, 50))
addActionOnEvent (EVENT_TYPE, "EventName")
EVENT_FOCUS_GAINED : prise du focus
EVENT_FOCUS_LOST : perte du focus
EVENT_VALUE_CHANGED : changement de valeur dans le composant
EVENT_ACTION_PERFORMED : activation (clic, boutons Espace, Entrée…)
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
26
RjLabel, RjTextField
RjLabel : un libellé statique
setText ("Telephone :")
setItalic (true)
RjTextField : un champ texte simple
setValuePath ("#nom")
label champ texte
setReferencePath ("#listeNoms")
setMandatory (true)
setHelpText ("Entrez un nom")
setMinLength (0)
setMaxLength (20)
setBold (true)
setEditPattern ("#.##.##.#A.###.###")
L’argument suit la syntaxe de MaskFormater en Java :
# caractère numérique,
A caractère alpha-numérique,
etc.
setValidationPattern ("0\\d|1[12]")
L’argument est une expression régulière
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
27
RjButton, RjComboBox
RjButton : un bouton
addActionOnEvent (EVENT_ACTION_PERFORMED, "MettreAJour")
setItalic (true)
RjComboBox : une boîte de sélection
setDisplayFormat("Item {.}")
setDisplayFormat("Echéance au {fin,date,yyyy-MM-dd}")
setDisplayFormat("{code} ## {fullLabel}")
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
28
RjFilterList, RjOverflowLists
RjFilterList : liste filtrable
RjOverflowLists : déversoir à listes
setOverflowMode (MODE_COPY_ELEMENTS) : le mode de
fonctionnement du déversoir, en copie ou en déplacement
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
29
RjTable, RjTextFieldDate
RjTable : un tableau
addColumn (new RjColumn ("id",
"Index", false, Integer.class))
addColumn (new RjColumn ("marie", "Marié", true, Boolean.class))
addColumn (new RjColumn ("nom",
"Nom",
false, String.class))
RjTextFieldDate : une date (avec ou sans sélecteur)
setDatePickerVisible (true)
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
30
RjPanel, RjPanelLogicalGroup, RjSplitPane
RjPanel : un panel classique
RjPanelLogicalGroup : cadre avec titre
setLayout (new GridLayout (3,2)) : disposition des composants
add (unComposant) : ajout d’un composant
add (unComposant, BorderLayout.SOUTH) : ajout avec un paramètre
setTitle ("Champs texte")
RjSplitPane : un panel divisé par une barre déplaçable
setLeftComponent (unComposant)
setRightComponent (unComposant)
setDividerLocation (120)
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
31
Les Vues
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
32
Rôle de la Vue
La Vue est la partie visuelle d’un écran
métier. C’est :
une organisation cohérente de
composants graphiques :
choix des composants, disposition
la configuration de ces composants :
données représentées,
déclenchement d’actions métier
Une Vue peut être réutilisée comme un
composant, au sein d’une autre Vue :
on parle alors de vue incluse.
vue
Vue racine
Vue incluse
Vue incluse
Vue incluse
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
33
Création d’une vue
Une Vue Radja se développe sous la forme d’une classe qui hérite de
RjAbstractViewImpl
Les composants sont créés et configurés dans le constructeur de la vue
public class NouvelleVue extends RjAbstractViewImpl {
public NouvelleVue () {
// Création et configuration d’un label
RjLabel leLabel = new RjLabel ();
leLabel.setText ("Nom :");
// Création et configuration d’un champ texte
RjTextField leChamp = new RjTextField ();
leChamp.setValuePath ("#personne/nom");
// Ajout des composants dans la vue et configuration
setLayout (new GridLayout ());
add (leLabel);
add (leChamp);
setPermissionName ("habilitationXYZ");
}
}
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
34
Les Contrôleurs de Vues
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
35
Rôle du Contrôleur de Vue
Le contrôleur implémente la logique métier propre à l’écran
L’initialisation de l’écran
Des actions métier déclenchées par l’interface graphique
La validation de l’écran
En redéfinissant certaines méthodes, le développeur métier définit des
comportements métier pour l’écran
Aucun de ces comportements n’est obligatoire
Radja accepte qu’il n’y ait aucun contrôleur associé à une vue.
Radja accepte qu’un contrôleur n’implémente pas toutes les méthodes
possibles, voire aucune d’elles.
Il y a toujours un comportement par défaut qu’on peut débrayer /
modifier / enrichir
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
36
Création d’un Contrôleur de Vue
Un Contrôleur de Vue Radja se développe sous la forme d’une
classe qui hérite de RjViewControllerImpl
public class MyViewController extends RjViewControllerImpl {
// Aucun comportement métier
}
Associer un Contrôleur de Vue à la Vue « MyView »,
Convention de nommage : MyViewController
Méthode dédiée depuis une vue :
myView.setControllerType (MyController.class)
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
37
Cycle de vie d’un écran / contrôleur
Une partie du cycle de vie dépend du contrôleur parent
restauration
ko
ko
lancement
initialisation
actions
métier
validation
ok
sur-validation
ok
implémentation par le contrôleur
initialisation
écran / contrôleur
fermeture
écran / contrôleur
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
38
Méthodes définissables / redéfinissables
Initialisation : la méthode setup effectue l’initialisation d’un écran
setup est rappelée automatiquement lors de la restauration des données de
l’écran ou dans le cas d’un tunnel, si l’utilisateur revient sur la vue avec
Précédent
En cas de vues incluses, les setup sont appelés successivement dans le sens
descendant (d’abord une vue parente puis ses vues incluses)
Validation : la méthode validate effectue la validation d’un écran
validate est appelée par Radja quand :
l’utilisateur clique sur Enregistrer (ou Valider ou Ok)
le contrôleur appelle sa propre méthode validateAndSave
Si validate retourne false, la vue n’est pas enregistrée ni fermée
Actions métier : doMonAction
Elles sont associées par le développeur :
aux événements de la vue
aux changements de valeurs du modèle
La méthode est appelée à chaque fois qu’un évènement de ce type intervient
dans la vue / dans le modèle
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
39
Méthodes définissables / redéfinissables
Validation d’une vue fille : viewSaved
Le contrôleur qui a lancé une vue fille décide de l’action à effectuer en cas de
validation de la vue fille
L’argument viewId indique de quelle vue fille il s’agit
closeView (viewId) est l’action par défaut de la validation
Annulation d’une vue fille : viewCancelled
Le contrôleur qui a lancé une vue fille décide de l’action à effectuer en cas
d’annulation de la vue fille
Par défaut, viewCancelled restaure les données et ferme l’écran fils
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
40
Méthodes à disposition
Lire ou écrire une donnée du Modèle : getValue, setValue
S’abonner à une donnée du Modèle : addActionOnValueChange
S’abonner à une valeur du Modèle permet de déclencher automatiquement
une action métier, chaque fois que la valeur change dans le Modèle
Exemple: addActionOnValueChange ("#personne", "MonAction")
Récupérer un message du référentiel : getMessage
Simuler le clique sur les boutons Enregistrer (ou Valider ou Ok),
Restaurer ou Annuler (ou Fermer) :
validateAndSave, restore, cancel
Activer / désactiver un composant, un groupe ou une vue :
setComponentEnabled, setGroupEnabled, setViewEnabled
Afficher / cacher un composant, un groupe ou une vue :
setComponentVisible, setGroupVisible, setViewVisible
Récupérer l’interface d’un DPS Jive :
getService (ServicesMetierDPS.class)
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
41
Les boîtes de dialogue
Le développeur métier peut déclencher 3 types de popups :
Erreur
Une fois la popup fermée par l'utilisateur, la fonction est automatiquement
fermée
Avertissement
Une fois la popup fermée par l'utilisateur, le travail sur la vue continue
Choix utilisateur
L'utilisateur doit choisir Oui ou Non pour continuer à travailler sur la vue
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
42
Les boîtes de dialogue
Les méthodes disponibles sont :
Les boîtes de dialogue sont bloquantes :
launchErrorPopup ("un message", "des details")
launchWarningPopup ("un message", "des details")
launchChoicePopup ("un message", "des details")
La fenêtre parente est désactivée tant que la boîte n’est pas validée
Cas particulier : launchChoicePopup retourne le résultat Oui /
Non sous la forme d’une constante :
POPUP_RETURNED_YES
POPUP_RETURNED_NO
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
43
Les vues filles
A partir d’un contrôleur de vue, on peut lancer une fenêtre fille modale contenant
une nouvelle vue : on parle alors de vue fille
On lance une vue fille en deux temps
Configuration : on utilise la méthode getNewWindowConfig en lui passant le type de vue à
lancer, pour obtenir une configuration par défaut (personnalisable)
Lancement : on appelle ensuite la méthode launchView en fournissant un identifiant
unique et la configuration à utiliser
Exemple :
// Personnaliser la configuration par défaut
RjWindowConfig config = getNewWindowConfig (AdresseView.class);
config.setWindowTitle ("Edition d'une adresse");
config.addDataRootAlias ("#adresse", "#personne/adresse");
// Lancer une vue fille avec cette configuration
launchView ("Adresses", config);
Restaurer les données telles qu’elles étaient quand la vue fille a été lancée
restoreView (unIdentifiantDeVueFille)
Fermer une vue fille
closeView (unIdentifiantDeVueFille)
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
44
Personnalisation des vues filles
Classe de contrôleur de vue : setControllerType
Mode de navigation de la fenêtre : setWindowMode
Mode d’affichage du bandeau : setContextBarMode
Données du bandeau : addContextData
Activation de la saisie de masse : setMassInputEnabled
Lancer une fonction : launchFunction, launchFunctionIndependent
Visibilité du menu : setMenuEnabled
Visibilité de la barre d’outils : setToolBarEnabled
Visibilité de la barre de statut : setStatusBarEnabled
Taille de la vue : setViewPreferredSize
Titre de la fenêtre : setWindowTitle
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
45
Personnalisation du mode de navigation
Mode de navigation de la fenêtre : setWindowMode
MODE_NORMAL : étoile normale
MODE_SELECTION : sélection
MODE_CONSULTATION_CONFIRM : consultation avec bouton Ok
MODE_CONSULTATION_CLOSE : consultation avec bouton Fermer
MODE_NONE : aucun bouton
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
46
Personnalisation du bandeau contextuel
Mode d’affichage du bandeau : setContextBarMode
UPPER_CONTEXT_BAR
BOTH_CONTEXT_BAR
Données du bandeau
addContextData (String text, int line, boolean append)
Personne p = (Personne) getValue ("personne");
config.addContextData (p.nom(),
UPPER_CONTEXT_BAR, true);
config.addContextData (" - AGIRC-ARRCO", UPPER_CONTEXT_BAR, true);
config.addContextData (p.code(),
LOWER_CONTEXT_BAR, false);
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
47
Personnalisation de la saisie de masse
Activation de la saisie de masse : setMassInputEnabled
Quand la saisie de masse est activée, une case à cocher apparaît dans
cette vue
Quand la vue est validée, Radja informe le contrôleur parent de l’état de
la saisie de masse
Un traitement différent peut ainsi être effectué selon l’état actif ou inactif de la
saisie de masse
Exemple :
Saisie de masse plus active : enregistrer les données et fermer la vue fille
Saisie de masse encore active : enregistrer les données, mettre de nouvelles
données à éditer dans la vue fille, ne pas fermer la vue fille (le gestionnaire
continue de travailler dessus)
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
48
Fonctions filles et indépendantes
Il est possible de lancer une fonction fille à partir d’un Contrôleur de
Vue : launchFunction
Le code métier de la fonction (cf. catalogue de fonctions), le contexte et la
modalité sont passés à la méthode
La méthode renvoie le contexte retourné par la fonction fille
L’écran courant ne peut se terminer que si toutes ses fenêtres filles sont
terminées, qu’elles soient modales ou non modales
Exemple :
// Préparer un contexte d’entrée
BusinessFunctionContext context = new BusinessFunctionContextImpl ();
context.put ("pm", getValue ("#personne"));
// Lancer une fonction avec le contexte
launchFunction ("MiseAJourPM", “enregistrement.pm", context);
On peut aussi lancer une fonction indépendante :
launchFunctionIndependent
L’écran courant peut se terminer sans que la fonction lancée soit terminée
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
49
Les Contrôleurs de Fonctions
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
50
Contextes et modèles
Le contexte d’entrée d’une fonction contient les données qui lui sont fournies à
son lancement
Le modèle contient les données sur lesquelles travaillent la fonction et ses écrans
fils
Le contexte de sortie contient les données que la fonction retourne à sa fermeture
Lancement
de la fonction
Passage d’un
contexte
Peuplement d’un nouveau
modèle à partir du contexte
et/ou d’appels à des services
Modification du modèle :
modifications des valeurs,
nouvelles adresses, etc.
Préparation d’un contexte
à partir des données
du modèle
Initialisation
Vie
Notification de
la fermeture
de la fonction
Renvoi d’un
contexte
Fin
Cycle de vie de la fonction
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
51
Etoiles et tunnels
Une fonction étoile lance un seul écran dans sa fenêtre principale
Cet écran peut lancer des écrans fils
Une fonction tunnel lance plusieurs écrans dans sa fenêtre principale
Les boutons Précédent et Suivant permettent de naviguer entre les écrans
d’un tunnel
Chaque écran peut lancer des écrans fils
Remarque : on peut aussi développer une fonction sans écran
Exemple : enchaînement de fonctions filles (acte de gestion)
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
52
Exemple de fonction tunnel
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
53
Création d’un Contrôleur de Fonction étoile
Un Contrôleur de Fonction Radja étoile se développe sous la forme
d’une classe qui hérite de RjDefaultFunctionControllerImpl
Il implémente 3 méthodes du cycle de vie de la fonction :
setup
populate
validate
public class MyController extends RjDefaultFunctionControllerImpl {
public void setup () {
}
public void populate (BusinessFunctionContext context) {
}
public RjValidationResult validate () {
}
}
setup
populate
Initialisation
validate
Vie
Fin
Cycle de vie de la fonction
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
54
Setup, Populate et Validate
Initialiser la fonction : setup
Peupler le modèle : populate
Déclarer la vue qui s’affichera dans la fenêtre principale de la fonction avec la
méthode : setView
Configurer et personnaliser la vue
(identique au lancement d’une vue fille depuis un Contrôleur de Vue)
Une fonction sans écran ne définie aucune vue
Lire des données dans son contexte d’entrée : context.get ("nom")
Lire des données en utilisant des services : getService (ServicesDPS.class)
Valider la fonction : validate
Retourne soit le résultat « valide » sans contexte de retour
soit le résultat « valide » avec un contexte de retour
soit le résultat « invalide » avec la liste des erreurs
// Création et peuplement d’un contexte de retour
BusinessFunctionContext context = new BusinessFunctionContextImpl ();
context.put ("nom", getValue ("#nom"));
// Renvoi du résultat
return (new RjValidationResultImpl (true, outputContext));
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
55
Création d’un Contrôleur de Fonction tunnel
Un Contrôleur de Fonction Radja tunnel se développe sous la forme
d’une classe qui hérite de RjTunnelFunctionControllerImpl
Les méthodes a implémenter sont les mêmes que pour une étoile :
Déclaration des vues : addView
setup
populate
validate
On utilise plusieurs fois la méthode addView, au lieu d’un setView unique
pour une étoile
Saisie de masse : celle-ci est définie sur la première vue, et s’applique à
tout le tunnel
La case à cocher n’apparaît que sur le dernier écran
On boucle en revenant au début du tunnel
Formation Usine Retraite – Jive / Jivol
Le 03/11/2010
56