5.1 Fonctionnement du widget de document

5.1.1 Introduction

Ce chapitre détaille le fonctionnement du widget de document. Il explicite les différents éléments le composant et les relations entre ces éléments.

5.1.2 Architecture

Le client document est composé des éléments suivants :

  • le documentController : cet élément permet d'interagir avec le document,
  • le document : l'objet document est un objet interne qui contient les informations sur le document en cours,
  • les attribut : l'objet attribut est un objet interne qui contient les informations sur un attribut,
  • les widget : l'objet widget est un objet interne, indépendant du document, qui permet de représenter une partie de celui-ci (type d'attribut, élément d'interface (menu, propriétés, etc.). Chaque widget est autonome et peut-être utilisé en dehors du cadre du document pour construire des interfaces.

5.1.3 Cinématique

Ce chapitre présente la cinématique des éléments fondamentaux du widget de document.

La légende des schémas suivants est :

  • rond noir : point de départ,
  • flèche noire : communication entre deux éléments,
  • rectangle gris : vie d'un élément,
  • rond vert : événement pouvant être annulé,
  • rond bleu : événement ne pouvant pas être annulé.

5.1.3.1 Initialisation

Ce schéma montre le comportement du document lors du chargement d'un nouveau widget document.

Initialisation

Figure 56. Initialisation

Le point de départ (Initialisation du widget) est soit déclenché automatiquement (chargement d'une nouvelle page), soit à la demande du widget document.

Le controller se charge d'effectuer toutes les opérations nécessaires au rendu du document (initialisation des objets internes, récupération des données et représentation des données). En cas d'erreur, un message est affiché à l'utilisateur.

Les événements déclenchés sont les suivants :

1 : attributeReady
à chaque attribut rendu un événement est déclenché.
2 : ready (document)
lorsque le document est rendu un événement est déclenché.

5.1.3.2 Sauvegarde du document

Sauvegarde

Figure 57. Sauvegarde

La sauvegarde du document est déclenchée soit via une action utilisateur (clic sur un menu) ou via le controller (dans ce cas le schéma commence à l'émission de l'événement 2).

La sauvegarde serveur peut échouer pour plusieurs raisons :

  • problème serveur : dans ce cas un message est affiché à l'utilisateur et le processus de sauvegarde est annulé,
  • contrainte non respectée : dans ce cas un message est affiché à l'utilisateur et les attributs concernés sont mis en évidence.

Les événements déclenchés sont les suivants :

1 : actionClick
cet événement est déclenché au clic sur le menu et peut être annulé. Dans ce cas, la suite de la procédure est annulée sans avertissement à l'utilisateur.
2 : beforeSave
cet événement est déclenché quelle que soit la méthode de sauvegarde demandée et peut être annulé. Dans ce cas, la suite de la procédure est annulée sans avertissement à l'utilisateur.
3 : constraint
cet élément n'est pas un événement en tant que tel (voir chapitre sur les contraintes). Les contraintes sont déclenchées pour chaque attribut du document. En cas d'annulation, le processus de sauvegarde est annulé et un message est affiché à l'utilisateur et sur l'attribut concerné.
4 : validate
cet événement est déclenché une fois les contraintes analysées. En cas d'annulation, la suite de la procédure est annulée sans avertissement à l'utilisateur.
5 : afterSave/close
ces événements sont déclenchés une fois le retour des données du serveur et l'analyse de ces données faite. Cet événement n'est pas annulable.
6 : attributeReady
à chaque attribut rendu cet événement est déclenché.
7 : ready
lorsque le document est rendu cet événement est déclenché.

5.1.3.3 Changement de document

Changement de document

Figure 58. Changement de document

Le changement de document peut-être déclenché soit via le menu, via des liens internes ou via le controller (dans ce cas le schéma commence à l'émission de l'événement 1).

Le changement de document peut échouer pour :

  • problème serveur : dans ce cas un message est affiché à l'utilisateur et le processus de changement de document est annulé.

Les événements déclenchés sont les suivants :

1 : beforeClose
cet événement est déclenché (dans le contexte de l'ancien document) avant le changement de document (fetchDocument). En cas d'annulation le processus de changement est annulé sans avertissement à l'utilisateur.
2 : attributeReady
à chaque attribut rendu cet événement est déclenché.
3 : ready (document ready)
lorsque le document est rendu cet événement est déclenché. Attention : dans le cas d'un document avec onglets, cet événement arrive avant que l'onglet par défaut ne soit complètement affiché. Les événements attributeReady des attributs de l'onglet arrivent après le ready du document.

5.1.3.4 Suppression de document

La suppression d'un document est une suppression logique : mise à la corbeille. Un document supprimé reste visible mais n'est plus modifiable.

Suppression de document

Figure 59. Suppression de document

La suppression d'un document peut-être déclenchée soit via le menu soit via le controller (dans ce cas le schéma commence à l'émission de l'événement 2).

Cette opération est la seule conduisant à la suppression de l'objet interne document. Celui-ci est automatiquement réinstancié une fois la suppression terminée et le document supprimé est ensuite affiché.

Les événements déclenchés sont les suivants :

1 : actionClick
cet événement est déclenché au clic sur le menu et peut être annulé. Dans ce cas, la suite de la procédure est annulée sans avertissement à l'utilisateur.
2 : beforeDelete
cet événement est déclenché quelle que soit la méthode de suppression demandée et peut être annulé. Dans ce cas, la suite de la procédure est annulée sans avertissement à l'utilisateur.
3 : afterDelete/close
ces événements sont déclenchés une fois le retour des données du serveur et l'analyse de ces données faite. Cet événement n'est pas annulable.
4 : attributeReady
à chaque attribut rendu cet événement est déclenché.
5 : ready (document)
lorsque le document (supprimé) est rendu cet événement est déclenché.

5.1.3.5 Changement d'une valeur (via l'interface)

Changement d'une valeur via l'interface

Figure 60. Changement d'une valeur via l'interface

l'appel à la contrainte se fait après le changement de la valeur de l'attribut, la contrainte ne permet donc que d'afficher un message (et ne peut en aucun cas empêcher la saisis de la valeur. Néanmoins, l'enregistrement sur le serveur pourra être interdit en cas de contrainte non respectée.

Les événements déclenchés sont les suivants :

1 : change
cet événement est déclenché à chaque fois qu'un attribut est modifié.
2 : constraint
cet élément n'est pas événement en tant que tel, voir chapitre sur les contraintes. En cas d'annulation, un message est affiché sur l'attribut concerné.

5.1.3.6 Changement d'une valeur (controller)

Changement d'une valeur via le controller

Figure 61. Changement d'une valeur via le controller

l'appel à la contrainte se fait après le changement de la valeur de l'attribut, la contrainte ne permet donc que d'afficher un message (et ne peut en aucun cas empêcher la saisis de la valeur. Néanmoins, l'enregistrement sur le serveur pourra être interdit en cas de contrainte non respectée.

Les événements déclenchés sont les suivants :

1 : change
cet événement est déclenché à chaque fois qu'un attribut est modifié.
2 : constraint
cet élément n'est pas événement en tant que tel, voir chapitre sur les contraintes. En cas d'annulation, un message est affiché sur l'attribut concerné.
×