Mer 11/04/2012 - Actualités

Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Mer 11/04/2012 - Actualités

Message non lu par Xavier »

Mer 11/04/2012 - Actualités


20:20

Le premier import de fichier XML vient d'être réalisé. Le fichier ne contenait que des nouvelles données, la gestion des conflits n'étant pas encore implémentée. Cependant, cela a permis de valider le bon fonctionnement du merge des dossiers lors d'un import.
Xavier
Administrateur du site
Messages : 817
Enregistré le : mer. 22 juin 2011 18:25

Mer 11/04/2012 - Actualités

Message non lu par Xavier »

21:30

La gestion des conflits est opérationelle.

L'interface d'import fonctionne donc finalement comme ça :
  • Un seul fichier est traité à la fois. (Cette limitation est due à des contraintes graphiques de sélection, mais la migration XT3 -> XT4 sera totale et n'en sera donc pas affectée.)
  • Le fichier est chargé en mémoire et ses dossiers et données sont convertis au format XT4 dans un arbre de données temporaire qui est reconstruit à la sélection d'un autre fichier et détruit à la fermeture de la fenêtre :
    • Pour un fichier XML, la liste des dossiers est affichée pour chaque outil, ainsi que le nombre de données qu'ils contiennent.
    • Pour un fichier XT3, un outil unique est affiché, ainsi qu'un ou plusieurs dossiers correspondants aux catégories des outils Répertoire et Tâches.
    • Pour un fichier TXT, la liste des dossiers ne s'affiche qu'après sélection de l'outil cible.
  • L'utilisateur a la possibilité de sélectionner un ou plusieurs dossiers à importer.
  • L'utilisateur doit choisir comment l'application gèrera les conflits :
    • Importer et remplacer la donnée locale.
    • Importer et ajouter dans le dossier de la donnée locale
    • Ne pas importer
Conflicts.png
L'import en lui-même fonctionne ainsi :
  • Une première partie boucle sur les dossiers représentants les outils. (Les dossiers orange. Il a fallu externaliser cette partie car le Label des dossiers "outils" n'est ni exporté ni importable.)
  • Une seconde partie boucle récursivement sur les dossiers utilisateurs de chaque dossier "outil" (les dossiers jaunes) et :
    • S'il s'agit d'un dossier sélectionné ou qui a un descendant sélectionné, alors le dossier est importé comme ceci : s'il existe un dossier du même nom dans l'arbre des données utilisateur, alors le dossier trouvé sera utilisé comme réceptacle, sinon un nouveau dossier sera créé. L'import des dossiers fonctionne donc toujours en mode Merge.
    • S'il s'agit d'une donnée (et que son dossier est sélectionné), alors elle sera importée, également en mode Merge, selon ce principe :
      • Si la donnée n'existe pas dans le dossier cible, elle est ajoutée. (La recherche se fait sur le nom.)
      • Si la donnée existe, alors son contenu est comparé et:
        • Si les deux données sont identiques, la donnée existante est conservée. Il ne s'agit pas là d'un conflit.
        • Si les deux données sont différentes, alors seulement on a un conflit, et le système va donc mettre en application le choix de l'utilisateur :
          • Importer et remplacer la donnée locale : la donnée existante est effacée, la donnée chargée est ajoutée.
          • Importer et ajouter dans le dossier de la donnée locale : la donnée chargée est ajoutée.
          • Ne pas importer : la donnée chargée est ignorée.
(Et le code est encore plus indenté que ce texte. lol )

La notion d'import dans un dossier "Conflits" a été abandonnée, je voudrais terminer XT4 de mon vivant.
A noter que l'import ajoute les données dans les dossiers (en dernière position donc), à voir si une insertion serait plus appropriée dans les cas de remplacement...


Le module d'export n'a pas été facile, celui-ci a été pire. Une petite période de qualification avant de s'attaquer à un autre gros morceau : la Barre et ses boutons dynamiques, paralysés depuis l'été dernier. Il restera ensuite l'Agenda, le reste étant à priori facile.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Denis
Messages : 180
Enregistré le : jeu. 23 juin 2011 09:21

Re: Mer 11/04/2012 - Actualités

Message non lu par Denis »

bon courage!
Répondre