2010-10-26 5 views
0

J'ai une boîte de dialogue dans laquelle l'utilisateur insère diverses données via les contrôles gui, et cette information est sauvegardée en tant que fichier xml (implémenté en java).
Les informations stockées dans le fichier xml sont les informations de configuration pour l'application.
Je peux modifier manuellement le fichier de configuration xml, mais je souhaite également fournir cette fonctionnalité via une interface utilisateur.
Ainsi, lorsque le dialogue est ouvert (pour la création de la configuration), un objet bien défini correspondant est rempli par les différentes valeurs entrées par l'utilisateur.
Une fois que l'utilisateur appuie sur «Enregistrer», les informations contenues dans l'objet sont stockées en tant que xml.
Maintenant, je pensais à fournir l'option pour modifier le fichier via l'interface utilisateur. Ainsi, la même boîte de dialogue s'affiche pour l'utilisateur, mais cette fois avec les informations de configuration déjà renseignées par le fichier chargé. L'objet correspondant est également renseigné.
Je ne sais pas quelle est la meilleure façon de modifier le fichier à ce stade.
Devrais-je utiliser 2 objets, 1 qui stocke toutes les informations du fichier et 1 qui stocke les valeurs modifiées dans la boîte de dialogue, et commencer à comparer les objets pour les modifications afin que je modifie le fichier? Ou devrais-je supprimer le fichier et en créer un nouveau?
Quelle est la meilleure approche, et comment procéder dans chacun?modification du fichier xml dans java

Merci

Répondre

0

Considérons le flux de données. L'utilisateur va travailler avec l'interface graphique et apporter des modifications. Au moment où ils font une modification, les données sur l'interface graphique sont en décalage avec le XML. Si l'utilisateur choisit d'enregistrer les données, une simple opération de tri (trivial si vous utilisez JAXB) garantira la mise à jour du fichier XML. Vous n'avez pas besoin de comparer tous les champs, cela ne sert à rien - bien sûr, vous avez validé le contenu avant de les valider. Si l'utilisateur opte pour l'annulation, aucun rassemblement n'a lieu.

Il n'est pas nécessaire de faire une sauvegarde et pas besoin de comparer ce qui est déjà dans le XML. Cependant, si l'utilisateur doit pouvoir annuler une sauvegarde (par exemple, revenir à la configuration précédente), vous devez disposer d'une structure de sauvegarde (ou conserver une pile de modèles GUI en mémoire). Je ne recommanderais pas cette approche, cependant, car vous êtes juste en train de jeter dans la complexité inutile. Les utilisateurs sont généralement heureux avec un bouton Enregistrer ou Annuler et aucun retour.

0

Restez simple. Remplacez simplement le fichier entier en utilisant l'objet mis à jour. Ensuite, vous n'aurez pas besoin de code spécial pour chaque cas. Tout ce dont vous aurez besoin est une méthode pour rassembler l'objet dans le fichier et une méthode pour le démonter.

+0

Un fichier de sauvegarde doit-il être créé en premier? – Cratylus