openxava réalisé par : ghandri houssem snoussi ahmed souissi salma torjmen salma yacoubi sinda

39
OpenXava Réalisé par : Ghandri Houssem Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda Saidi saif eddin

Upload: zelia

Post on 24-Feb-2016

67 views

Category:

Documents


0 download

DESCRIPTION

OpenXava Réalisé par : Ghandri Houssem Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda Saidi saif eddin. PLAN. Introduction Composant métier Vue Liste des données Mapping objet/relationnel Contrôleur Application Personnalisation Exemple . Introduction. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 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

Page 2: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

PLAN

•Introduction •Composant métier •Vue •Liste des données •Mapping objet/relationnel •Contrôleur •Application •Personnalisation•Exemple

Page 3: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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.

Page 4: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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.

Page 5: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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.

Page 6: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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.

Page 7: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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.

Page 8: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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.

Page 9: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

MODELE• Syntaxe pour une entité

Page 10: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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é.

Page 11: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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.

Page 12: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

Les requêtes sont des méthodes Java statiques qui vous permettent de chercher un ou plusieurs objets

qui répondent à des critères

Page 13: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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

Page 14: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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.

Page 15: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

Vue

Page 16: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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

Page 17: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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.

Page 18: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda
Page 19: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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

Page 20: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

Mapping objet/relationnel• Quelques exemples :

Mapping d'entité :

L'annotation @Table spécifie la table principale

pour l'entité annotée

Page 21: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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

Page 22: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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 :

Page 23: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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.

Page 24: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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 :

Page 25: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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

Page 26: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

Application• Voici comment déclarer un

module

Page 27: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

(obligatoire) : Le nom du module

unique

Dossier dans lequel réside le module

Nom court affiché à

l'utilisateur

Description longue

affichée à l'utilisateur

Page 28: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

(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

Page 29: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

(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

Page 30: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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.

Page 31: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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).

Page 32: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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 :

Page 33: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda
Page 34: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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.

Page 35: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda
Page 36: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda

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; }

}

Page 37: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda
Page 38: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda
Page 39: OpenXava Réalisé  par : Ghandri Houssem  Snoussi Ahmed Souissi Salma Torjmen Salma Yacoubi Sinda