IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

Librairies open source pour la réalisation de diagramme


Sujet :

API standards et tierces Java

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 105
    Points : 71
    Points
    71
    Par défaut Librairies open source pour la réalisation de diagramme
    Bonjour a tous et très bonne année !

    Je ne connais pas beaucoup le java (je suis même au niveau 0) mais pour une anticipation de projet je m'intéresse aux librairies pouvant faire des diagrammes assez complexes.

    Nom : exemple.gif
Affichages : 371
Taille : 49,4 Ko

    Mes besoins par rapport a ce dessin sont les suivants :

    - Possibilité de traiter un grand nombre d'éléments et de les placer dans l'espace de manière optimale pour avoir une bonne clarté et vision du diagramme (forme de diagramme : arbre hiérarchique).
    - Possibilité d'avoir des formats de sortie variés (pdf, html viewver)
    - Possibilité d'automatiser un processus complet de recueil d'informations, traitement, génération d'un diagramme et sauvegarde dans un répertoire cible.

    Il y a surement des questions ou des précisions que je ne donne pas mais par manque de connaissances donc si vous avez des questions ou des conseils.

    Merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Je n'ai de réponse absolue par rapport à ce que tu décris, surtout pour donner un nom de bibliothèque unique qui fait tout ça. C'est pour ça que je n'ai pas répondu avant.

    Personnellement, pour avoir faire des interfaces non standard avec beaucoup de nœuds (des dizaines de milliers), mais dans un contexte différent (pas vraiment un diagramme, et surtout un besoin de ZUI), j'ai utilisé Piccolo2D (qui peut tout à fait afficher ce que tu montres dans ta copie d'écran, mais qui ne te proposera pas de layout déjà fait (il n'est pas difficile à faire à priori, mais je n'ai pas la vision de l'ensemble de tes besoins)). Pour la production de PDF, j'ai utilisé iText (mais ça demandera pas mal de travail). En revanche, pour le HTML, je ne connais pas d'API, mais on peut envisager d'encapsuler une image (png par exemple), dans un html, ou de produire un SVG peut-être (avec Batik — on peut même envisager un socle commun de fabriques pour générer du Piccolo2D, du PDF et du SVG, ce qui limitera le travail), qui sera assez portable pour être converti et affiché pas par mal de soft.

    Sinon, peut-être peux-tu regarder Jung ? Ou Yed (ce n'est pas une API normalement, mais c'est peut-être suffisamment ouvert) ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 936
    Points : 4 356
    Points
    4 356
    Par défaut
    Processing (écrit en Java)
    http://processing.org

    GraphViz (basé sur DOT)
    http://www.graphviz.org
    le lien avec Java se fait avec une librairie native

    voir aussi le langage DOT
    https://en.wikipedia.org/wiki/DOT_(g...tion_language)

    Pour Javascript:
    processing.js
    d3.js

  4. #4
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 105
    Points : 71
    Points
    71
    Par défaut
    Merci a tout les 2,

    J'ai fait déjà mon programme avec yEd le soucis c'est que l'automatisation est impossible sans licence

    Je regarde tout cela et je reviens vers vous pour résoudre la discussions avec des petites questions techniques s'il y en a.

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 105
    Points : 71
    Points
    71
    Par défaut
    Merci encore,

    J'ai surfé sur les sites de vos réponses, c'est encore ardu pour moi. Du coup, peut-on imaginer un programme qui parse un fichier d'information en bloc.Puis par la suite, ces blocs deviennent un diagramme hiérarchique comme montré au tout début du topic.
    Sachant que le nombre d'information est variable et que j'aimerais mettre des filtres pour pouvoir séparer des diagrammes en fonction d'un mot clé (par exemple, prendre tout les blocs commençant par les lettres XXX et faire un diagramme qu'avec ces blocs).Puis par la suite avoir un pdf avec recherche de caractère.

    Merci pour tout

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Bah, on peut tout imaginer, oui. C'est quoi la question au juste ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 105
    Points : 71
    Points
    71
    Par défaut
    La question est plutôt une énoncée du besoin car c'est un domaine que je ne maîtrise pas du tout.Pur l'instant, je fais toute ces étapes par plusieurs langages (parser langage C et layout automatique sur Yed).Sachant que sur Yed, l'automatisation est impossible, je cherche une solution open source.
    Si toutes mes descriptions de besoins peuvent être réalisées par vos réponses, je peux clôturer ce topic en vous remerciant et JAVA me voici

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Si la question est "est-ce que je parser un fichier en Java", la réponse est oui. Maintenant, sans le format, je ne peux donner de détail, de conseil ou autre.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 105
    Points : 71
    Points
    71
    Par défaut
    Le fichier est un point .txt avec les informations ligne par ligne.

    Les blocs sont séparés par une information "début bloc information".

    début bloc information
    INFo 1
    INFo 1 bis
    INFo 1 ter
    début bloc information
    INFo 2
    INFo 2 bis
    INFo 2 ter
    relier à info 1
    début bloc information
    INFo 3
    INFo 3 bis
    INFo 3 ter

    Mon but serait de parser ce document en bloc d'information.Puis de créer des formes rectangulaire pour chaque info 1,2,3....N.De créer, par la suite ,des liens en fonction des informations (les prédécesseurs sont marqués dans les blocs).Pour par la suite, créer un graph hiérarchique en format PDF.En automatisant la partie du programme mis en souligné

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Pour lire un fichier, soit tu utilises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    List<String> lignes = Files.readAllLines(Paths.get(nomfichier));
    for(String ligne : lignes) {
        // traitement ligne
    }
    ,

    ce qui lit tout le fichier d'un coup (attention à l'occupation mémoire). Pour lire le fichier ligne à ligne (moins d'occupation mémoire, donc mieux si le fichier est vraiment énorme) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try(BufferedReader reader = Files.newBufferedReader(Paths.get(nomfichier))) {
           for(String ligne = reader.readLine(); ligne!=null; ligne = reader.readLine(){
                // traitement ligne
           }
    }
    Ensuite, pour lire les blocs, il y a 2 techniques. Il te faut une classe Bloc par exemple, dans laquelle tu vas stocker les informations d'un bloc.

    1. Technique 1
      On créé un bloc d'avance, et on accumule les informations lues jusqu'à ce qu'on détecte un nouveau bloc. Il faut dans ce cas que la classe de bloc puisse accumuler les lignes.
      Par exemple :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      public class Bloc {
       
          private final List<String> infos;
          /*...*/
       
          public void add(String info) {
                infos.add(info);
          }
       
       
      }
    2. Technique 2
      On créé le bloc lorsqu'on a lu toutes les informations du bloc. On doit accumuler les informations quand même tant qu'on a pas lu toutes les informations du bloc (la liste qu'on a dans la classe Bloc de la technique 1 sera dans la boucle. Il faut penser que lorsqu'on a traiter toutes les lignes, après la fin de la boucle de traitement des lignes, on a des données en attente, et donc un dernier bloc à créer.


    Ensuite,
    1. il faut pouvoir savoir lorsqu'on traite une ligne, quel type d'information on a dedans. Pour ça, il faut avoir un état (une variable) qui indique comment traiter la ligne. Il faut également un moyen de changer cet état, pour dire la prochaine ligne on la traite comme ça. Vu ton format, la difficulté est qu'il n'y a pas de séparateur identifiable (un motif de caractères identifiable qui dit le texte du bloc est terminé, maintenant on a des lignes de liens. Soit il y a un moyen imparable de déterminer qu'une ligne n'est pas une ligne de texte (une syntaxe), soit on part du principe que c'est la dernière ligne, soit autre chose, mais il faut un moyen pour distinguer une ligne qui définit un lien entre bloc des autres lignes. Personnellement, je mettrais une ligne vide, voire 2 même, à la manière du format des requêtes http.
    2. pour pouvoir lier les blocs, il faut des identifiants. Cela peut-être tout simplement un numéro d'ordre de lecture, à défaut d'avoir un identifiant indiqué dans le texte du fichier. Ensuite, au niveau code, en utilisant une "Map<identifant, bloc>", on peut traiter facilement les liens.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 105
    Points : 71
    Points
    71
    Par défaut
    D'accord joel.drigo, merci pour les pistes a creuser.

    La mise en place de caractères significatifs de début et de fin bloc sont, a priori, pas difficile a faire.

    "pour pouvoir lier les blocs, il faut des identifiants. Cela peut-être tout simplement un numéro d'ordre de lecture, à défaut d'avoir un identifiant indiqué dans le texte du fichier. Ensuite, au niveau code, en utilisant une "Map<identifant, bloc>", on peut traiter facilement les liens."

    En faite, les blocs sont définis par des identifiant, on va dire ID.Dans le bloc d'information, on va avoir un ID et un/des preIDs (PreiDs) qui seront les ID d'autres blocs.Le but est de relier les blocs ID en fonction de leurs listes preIDS.

    ID1(preID2) => ID2

    Tu vois ce que je veux dire?

    Une fois, ces liens faits Processing peut-il me faire un diagramme en me montrant tout ces blocs reliés?

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ça me semble démesuré d'utiliser Processing pour afficher un graphe. Mais je ne connais pas du tout. Cela dit, il est toujours possible de tout faire (ou presque) : il suffit de le faire. Certaines API demanderont simplement plus de programmation Java que d'autres. Avec Java2D, sans API dédiée aux graphes, le layout sera juste la partie la plus ardue.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #13
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2015
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 105
    Points : 71
    Points
    71
    Par défaut
    Oui en voyant ce que faisait processing, cela faisait grand moyen pour petit problème . Merci pour tout!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recherche librairie AS3 open source pour afficher des graphiques
    Par Lorenzo77 dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 07/05/2010, 00h05
  2. Quelle solution open source pour capitalisation documentaire?
    Par keiserjo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 02/02/2007, 15h17
  3. Réponses: 16
    Dernier message: 06/07/2006, 01h28
  4. De nouveaux moteurs de bases de données open source pour MySQL
    Par brice01 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 10/05/2006, 14h46
  5. Choix d'un sgbd open source pour de la production
    Par gueeyom dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 14/05/2004, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo