Transcript OpenXava

OpenXava
par :
Ghandri Houssem
Snoussi Ahmed
Souissi Salma
Torjmen Salma
Yacoubi Sinda
Saidi saif eddin
Réalisé
PLAN
•Introduction
•Composant métier
•Vue
•Liste des données
•Mapping objet/relationnel
•Contrôleur
•Application
•Personnalisation
•Exemple
Introduction
• Définition :
• OpenXava est un ensemble d'outils et de composants pour
développer des applications JavaEE/J2EE rapidement et
facilement.
• Le but d‘ OpenXava est de réaliser facilement les
fonctionnalités les plus courantes dans les applications
métier tout en gardant une certaine flexibilité afin de
permettre de développer sans restrictions des
fonctionnalités avancées.
Introduction
• Contrôleur :
• Le composant métier ne définit pas les actions qu'un
utilisateur peut effectuer dans l'application, c'est-à-dire les
fonctionnalités. Ceci est défini par les contrôleurs spécifiés
dans le fichierxava/controllers.xml du projet. En outre,
OpenXava fournit un ensemble de contrôleurs dans le
fichier OpenXava/ xava/default-controllers.xml.
Introduction
• Composant métier :
• La structure des données
• Les validateurs , les calculs et en général la logique associée
avec le composant métier
• Les vues possibles, c'est-à-dire, la configuration de toutes les
interfaces utilisateur possibles pour ce composant précis
• Les présentations des listes de données utilisées pour la
navigation des instances de composants, la recherche et les
rapports
• La mapping objet-relationnel, c'est-à-dire la cartographie qui
lie les objets Java au tables des bases de données. Ceci inclut
des informations sur les tables des bases de données et les
conversions entre les données de la base de données
.
Introduction
• Application :
• Une application OpenXava est un ensemble de modules. Un
module lie un composant métier avec un ou plusieurs
contrôleurs. Chaque module de l'application est ce que
l'utilisateur final utilise et est généralement configuré
comme un portlet d'un portail.
Structure du projet
• [racine] A la racine de la structure se trouve le fichier build.xml contenant les
tâches Ant.
• src [dossier source] Le dossier source contenant le code Java
• xava : Les fichiers de configuration XML de l'application. Les principaux fichiers
•
•
•
•
sont application.xml et controllers.xml.
i18n : Les fichiers ressources avec les libellés et les messages dans plusieurs
langues
properties [dossier source] : Fichiers de propriétés pour la configuration de
l'application
data : Dossier utile pour conserver les scripts de création des tables sur la base de
donnée, si nécessaire
web : Contenu de l'application web. En général des JSP, les librairies nécessaires
et les classes Java. La majorité du contenu est générée automatiquement, mais il
est possible d'y placer des pages JSP spécifiques ou d'autres ressource web
particulières.
MODELE
• La couche modèle dans une application orientée objet
contient la logique métier, c'est-à-dire la structure des
données et tous les calculs, les validations et processus
associés aux données.
OpenXava est un Framework (cadre de travail) orienté
modèle, dans lequel celui-ci est le plus important et tout le
reste en dépend. La façon de définir un modèle dans
OpenXava est d'utiliser des classes Java pures. OpenXava
génère une application complète à partir de la définition de
votre modèle
• L'unité de base pour créer une application OpenXava est le
composant métier. Les composants métier sont définis par
une classe Java appelée Entity.
MODELE
• Syntaxe pour une entité
Une propriété
représente un état
d'un objet qui peut
être lu et parfois mis
à jour
Une référence
vous permet
d'accéder à une
entité depuis
une autre
entité.
Il est possible de
définir une collection
de références à des
entités
Les méthodes sont définies
dans une entité OpenXava
comme dans une classe
Java classique.
Les requêtes sont des méthodes
Java statiques qui vous permettent
de chercher un ou plusieurs objets
qui répondent à des critères
Méthodes de rappel OX (à partir
de la V4.0.1)
En utilisant @PreCreate vous
pouvez définir une logique qui
sera exécutée avant la
persistance de l'objet
VUE
• OpenXava génère une interface utilisateur par
défaut à partir du modèle. Dans beaucoup de cas
simples, ceci est suffisant, mais parfois, il est
nécessaire de modéliser avec précision le format de
l'interface utilisateur ou des vues.
Vue
Liste des données
• Les liste de données sont affichées sous forme de
tableaux. Si vous créez un module conventionnel
OpenXava, l'utilisateur peut gérer les données du
composant avec une liste telle que celle-ci
Liste des données
• La liste permet à l'utilisateur de
filtrer par n'importe quelle colonne et n'importe quelle
combinaison de colonnes
• trier par n'importe quelle colonne sur un simple click
• afficher les données paginées et ainsi travailler
efficacement avec plusieurs millions d'enregistrements
• personnaliser la liste : ajouter, enlever des colonnes ou
encore changer leur ordre (avec le petit crayon situé dans
le coin en haut à gauche). Ces personnalisations sont
mémorisées pour chaque utilisateur
• exécuter des actions génériques de traitement des
données de la liste : générer des rapports PDF, exporter
vers Excel ou supprimer des objets sélectionnés.
Mapping objet/relationnel
• Les outils objet-relationnel vous permettent de
travailler avec des objets plutôt qu'avec des tables
et des colonnes et génèrent automatiquement le
code SQL pour lire et mettre à jour la base de
données. De cette manière, vous n'avez pas besoin
d'un accès direct à la base de données SQL. Bien
sûr, vous devez définir précisément la manière dont
vos classes correspondent aux tables et ce travail
est effectué à l'aide des annotations JPA
Mapping objet/relationnel
• Quelques exemples :

Mapping d'entité :
L'annotation @Table
spécifie la table principale
pour l'entité annotée
Mapping objet/relationnel
 Mapping de propriété
L'annotation @Column est
utilisée pour spécifier la
colonne d'une propriété
persistante ou un champ
Mapping objet/relationnel
 Mapping de référence
• L'annotation @JoinColumn
est utilisée pour spécifier
une colonne représentant
une référence. Exemple :
Contrôleur
• Les contrôleurs sont utilisés pour définir des actions
(boutons, liens, images) sur lesquels l'utilisateur peut
cliquer. Les contrôleurs sont définis dans le
fichier controllers.xml qui se trouve dans le
dossier xava de votre projet.
Les actions ne sont pas définies dans les composants,
car il existe beaucoup d'actions génériques qui
peuvent être utilisées avec n'importe quel
composant. Dans le dossier OpenXava/xava, vous
trouverez un fichier default-controllers.xml qui
contient un groupe de contrôleurs génériques qui
peuvent être utilisés dans votre application.
Application
• La définition d'une
application OpenXava
est contenue dans le
fichier application.xml
qui se trouve dans le
dossier xava de votre
projet.
La syntaxe du fichier est
comme suit :
Application
name (obligatoire) : Le nom de
l'application
label (optionnel) : Utilisez
plutôt les fichiers i18n
Optionnel :Les contrôleur pour
les modules par défaut (généré
automatiquement pour chaque
composant)
module (plusieurs, optionnel) : Chaque
module exécutable par l'utilisateur
final
Application
• Voici comment déclarer un
module
(obligatoire) : Le
nom du module
unique
Dossier dans lequel réside
le module
Nom court
affiché à
l'utilisateur
Description
longue
affichée à
l'utilisateur
(plusieurs,
optionnel) :
Définition d'une
variable et de sa
valeur, accessible
par les actions
(un, optionnel) :
Nom du composant
utilisé dans ce
module
(un, optionnel) :
Nom de la vue qui
doit être utilisée
dans l'édition de
détail. S'il est absent,
la vue par défaut est
utilisée
(un, optionnel) :
Page JSP utilisée
comme vue
: L'affichage utilisé
en mode liste. S'il
n'est pas spécifié,
celui par défaut est
utilisé
Les contrôleurs
avec les actions
utilisées
initialement
Comportement lors du
passage de l'affichage
des liste à l'affichage de
détail et vice-versa. De
même, il est possible de
définir un module avec
uniquement un
affichage de liste ou de
détail
Déclaration d'un module
qui ne contient que de la
documentation et aucune
logique.
Personnalisation
• L'interface utilisateur générée par OpenXava est
bonne pour la plupart des cas, mais parfois il est
nécessaire de personnaliser une partie de
l'interface (en créant vos propres éditeurs) ou créer
complètement une interface utilisateur "maison" (à
l'aide de vues JSP personnalisées).
Personnalisation
• Pour définir un rendu de propriétés, OpenXava
utilise des éditeurs.
Un éditeur indique l'apparence d'une propriété. Il
est constitué d'une définition XML ainsi qu'un
fragment JSP. Pour affiner le comportement des
éditeurs d'OpenXava ou pour ajouter des éditeurs
personnalisés, vous devez créer dans le dossier xava
de votre projet un fichier appelé editors.xml. Ce
fichier ressemble à ceci :
Création D’un OpenXava
• Tout d'abord, lancez Eclipse et choisissez le workspace (espace de travail)
qui est livré avec la distribution OpenXava.
En utilisant l'assistant approprié d'Eclipse, créez un nouveau projet Java
(New Java Project) nommé Management. Maintenant que vous avez un
nouveau projet Java vide dans le workspace.
• Ouvrez le projet OpenXavaTemplate et lancez CreateNewProject.xml en
utilisant Ant.
– Vous pouvez le faire en faisant un clic droit sur le
fichier CreateNewProject.xml et dans le menu, choisir Run as... > Ant
Build.
– Lorsque le script Ant vous demandera le nom du projet,
entrez Management dans la boîte de dialogue.
• Pour finir, sélectionnez votre projet Management et pressez sur F5 afin
de rafraîchir le contenu.
• Vous avez à présent un nouveau projet prêt pour y travailler. Toutefois,
avant de continuer, il s'agit de configurer le système de base de données.
Exemple
•
import javax.persistence.*;
import org.openxava.annotations.*;
@Entity
public class Teacher {
@Id @Column(length=5) @Required
private String id;
@Column(length=40) @Required
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}