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