Cette classe est un élément essentiel de ce projet. C'est aussi la plus longue et la plus complexe.
Son role consiste, à travers une interface unique, à :
- Représenter visuellement tous les champs. Chaque composant graphique est dépendant du type de donnée. De plus, le modèle logique inclut une dernière colonne nommée clef pour chaque champs : cela permet d'ajouter une légende internationalisée à chaque composant d'édition.
- Effectuer des recherches. Il est possible faire défiler toutes les entrées (si le formulaire de départ est entièrement vide) ou de réaliser une recherche en complétant certains champs, éventuellement partiellement. En fait, dans ce dernier cas, leur contenu sera simplement précédé et suivi de
%lors des requètes SQL. A noter que l'affichage d'une entrée implique automatiquement la mise à jour de toutes les autres instantes de TableFrame.- Modifier les données. Toutes les autres fenetres représentant les memes tables seront actualisées. A noter que la suppression des données à ce niveau est volontairement absente : une trace de l'ensemble du matériel confirme ainsi les écritures coomptables.
- Ajouter des données. Là encore, l'événement est transmis à toutes les représentations y faisant référence. Par exemple, les listes d'identifiants uniques sont mises à jour pour y inclure la nouvelle entrée. A noter que lors de cette opération, toutes les données entrées sont répercutées dans la base en dehors, bien entendu de l'identifiant unique, qui est ignoré car généré automatiquement (index renvoyé par le moteur de base de données lui-meme) .
Afin d'illustrer le fait que notre application n'est pas dépendante d'un modèle de base de données en particulier, nous avons reproduit ci-après les divers fichiers de paramètres associés aux tables de la base de données qui correspond à l'énoncé de notre projet suivis des TableFrames correspondantes, en francais puis en anglais.
Il est bien évident que GPI étant, comme son nom l'indique, un logiciel de Gestion de Parc Informatique mais aussi un Générateur de Projets Informatiques, pour gérer une base de données completement différente il suffira de modifier le contenu du dossier Tables qui, seul, détermine les tables de données gérées par l'applications.
Le format des fichiers textes utilisés est celui défini comme suit :
contact
# Champ type restriction clé texte id NUMBER PK id nom VARCHAR(64) NN last_name prenom VARCHAR(64) NN first_name mail VARCHAR(64) NULL mail telephone VARCHAR(32) NULL phone fax VARCHAR(32) NULL fax commentaires VARCHAR(512) NULL commentary societe_id NUMBER FK societe_id |
copie_logiciel
# Champ type restriction clé texte id NUMBER PK id licence VARCHAR(128) NN licence date_in DATE NN date_in date_out DATE NULL date_out logiciel_id NUMBER FK logiciel_id garantie_id NUMBER FK garantie_id materiel_id NUMBER FK materiel_id |
garantie
# Champ type restriction clé texte id NUMBER PK id date_debut DATE NN date_from date_fin DATE NN date_until type VARCHAR(128) NULL type cout NUMBER NN cost contact_id NUMBER FK contact_id societe_id NUMBER FK societe_id |
table_immeuble
# Champ type restriction clé texte id NUMBER PK id description VARCHAR(512) NULL description adresse VARCHAR(256) NN adresse ville VARCHAR(64) NN ville pays VARCHAR(64) NN pays debut_bail DATE NN debut_bail fin_bail DATE NN fin_bail loyer NUMBER NN loyer site_id NUMBER FK site_id |
individu
# Champ type restriction clé texte id NUMBER PK id nom VARCHAR(64) NN last_name prenom VARCHAR(64) NN first_name date_naissance DATE NULL born date_embauche DATE NN hired date_sortie DATE NULL date_out site_id NUMBER FK site_id |
logiciel
# Champ type restriction clé texte id NUMBER PK id titre VARCHAR(128) NN title version VARCHAR(128) NN version description VARCHAR(512) NULL description plateforme VARCHAR(128) NN platform |
materiel
# Champ type restriction clé texte id NUMBER PK id date_in DATE NN date_in date_out DATE NULL date_out remarques VARCHAR(512) NULL remarks type_materiel_id NUMBER FK hardware_type_id garantie_id NUMBER FK garantie_id individu_id NUMBER FK individual_id |
meuble
# Champ type restriction clé texte id NUMBER PK id description VARCHAR(512) NULL description date_in DATE NN date_in date_out DATE NULL date_out immeuble_id NUMBER FK immeuble_id garantie_id NUMBER FK garantie_id individu_id NUMBER FK individual_id |
site
# Champ type restriction clé texte id NUMBER PK id nom VARCHAR(128) NN name url_db VARCHAR(512) NN url_db |
societe
# Champ type restriction clé texte id NUMBER PK id nom VARCHAR(128) NN name adresse VARCHAR(128) NN adresse code_postal VARCHAR(5) NN code_postal ville VARCHAR(64) NN ville pays VARCHAR(64) NN pays telephone VARCHAR(32) NULL phone fax VARCHAR(32) NULL fax url VARCHAR(512) NN url commentaires VARCHAR(512) NULL commentary |
type_materiel
# Champ type restriction clé texte id NUMBER PK id type VARCHAR(128) NULL type nom VARCHAR(128) NN name description VARCHAR(512) NULL description remarques VARCHAR(512) NULL remarks |