Download - OpenXava Réalisé par : Ghandri Houssem Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda
OpenXava
Réalisé par :Ghandri Houssem
Snoussi AhmedSouissi SalmaTorjmen SalmaYacoubi Sinda
Saidi saif eddin
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 :
Applicationname (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.*;
@Entitypublic 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; }
}