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

JavaFX Discussion :

Indexer projets JavaFX dans une fenêtre


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    conducteur autocar
    Inscrit en
    Janvier 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : conducteur autocar
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2020
    Messages : 67
    Par défaut Indexer projets JavaFX dans une fenêtre
    Bonjour a vous,

    je cherche comment indexer les projets, exos, tests, exemples que j'ai fait ds 1 seule fenetre avec 1 bouton pr chaque projet qui executerait le dit projet.
    Et dc comment relier 2 projets totalement différents.

    je reference quoi?
    les Main, MainApp?
    les fichiers module-info
    autre chose.

    En vs remerciant,
    Bon we a vous
    grub

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 899
    Billets dans le blog
    54
    Par défaut
    Et re, fin des vacances, retour au turbin.

    Une analyse rapide permet de voir qu'il y a plusieurs problèmes bien distincts dans le projet de launcher que tu veux tenter de créer. Chacun devra être traiter separement de manière a bien isoler les couches et et divers services a effectuer dans ce soft :
    • Lister et parcourir une arborescence de répertoires et leur contenu
    • Découvrir et différencier ce qui est un projet JavaFX ou pas
    • Créer une GUI de manière dynamique pour afficher les infos et détails des projets et permettre de les lancer.
    • Lancer un projet soit de manière autonome (process externe) soit dans la même JVM que le launcher.


    La premiere grande question tu dois te poser est : veux-tu que ton exploration soit dynamique (on parcours les répertoire et on détecte au vol si tel ou tel répertoire contient un projet) ou statique (ton application dispose d'un fichier catalogue qui liste tous les projets, si tu rajoutes un projet, tu devras modifier le catalogue).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre confirmé
    Homme Profil pro
    conducteur autocar
    Inscrit en
    Janvier 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : conducteur autocar
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2020
    Messages : 67
    Par défaut
    slt a vous, slt a toi (désolé pr ta fin de vacances, (j'espere qu'elles ont été à la hauteur de tes attentes))

    En ce qui concerne le sujet du post,
    je vais etre gourmand et répondre "les 2 mon capitaine"

    J'attaque ce qui semble etre le + simple, ta seconde solution,

    Je dirai qu'il faut que je fasse 1 fichier txt avec
    1L (au moins) pr chaque projet que je souhaite referencer.
    Lecture du fichier
    A partir de là, questions
    - que faut il ecrire ds ce fichier txt?
    - Que faut il ecrire comme L ds le launcher? (lancer la methode main() du Main.java du projet indéxé?, autre?) (en utilisant forcement ce qui est ecrit ds le fichier txt)
    - comment executer cette L depuis la fenetre qui indexe les projets (avec 1 bouton ms qu'en est il de la methode associée au bouton?)

    Ta 1° solution qui necessite + d étapes
    1° etape, lister des dossiers, lire ces dossiers, lire des sous dossiers, verifier la presence de fichiers specifiques
    Ca a l'air d'etre du "simple code que je saurai faire ("sans trop de difficultés")

    2° etape,
    différencier les projets JavaFX
    Sachant que je construis mes projets toujours de la meme maniere:
    j'ajoute les 8 .jar fx depuis le modulepath
    Je dirai vite fait, comme ça que la lecture d'1 fichier .classpath ns renseigne ms je ne sais pas trop si c'est fiable (je ne vois pas non plus de raison pr ne pas appliquer cette methode, c'est 1 petit truc perso que je souhaite, dc...)

    3° etape:
    creer la GUI de maniere dynamique:
    1 variable qui stocke le nbre de projets
    1 boucle for
    pr chaque iteration, j'ajoute 1 bouton et son action
    ca signifie, ecriture ds 1 fichier (voir +)

    4° etape:
    je pense que le mx c'est le process externe
    et dc creat° d'1 Thread (ou d'1 couple Service + Task)

    je dirai qu'on peut regrouper etape01 et etape02

    Voilà a quoi je pense.
    Qu'en dis tu?

    PS: je dirai comme ca, qu'à l'utilisation, je n'ouvrirai pas plusieurs "projetx indexes" en meme temps. je lance 1 projet, je regarde ce qu'il fait
    - ça m'interesse, je ferme le projet indexé et le launcher, j'ouvre le projet visé ds l'IDE pr voir le code
    - ça m'interesse pas, je ferme le projet indexé et je passe au suivant

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 899
    Billets dans le blog
    54
    Par défaut
    Commençons par le commencement, on va faire une version statique.
    Pour le moment rien de JavaFX, c'est juste des bête opérations IO sans rapport avec la GUI.

    Citation Envoyé par grub_fr Voir le message
    Je dirai qu'il faut que je fasse 1 fichier txt avec
    1L (au moins) pr chaque projet que je souhaite referencer.
    Lecture du fichier
    A partir de là, questions
    - que faut il ecrire ds ce fichier txt?
    - Que faut il ecrire comme L ds le launcher? (lancer la methode main() du Main.java du projet indéxé?, autre?) (en utilisant forcement ce qui est ecrit ds le fichier txt)
    - comment executer cette L depuis la fenetre qui indexe les projets (avec 1 bouton ms qu'en est il de la methode associée au bouton?)
    Franchement, c'est toi le maître de ton projet, donc tu fais ce que tu veux. Dans mon cas, pour des listing statiques, souvent je fais un truc dans le genre :

    Fichier settings.properties :
    Code TXT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    projects=toto, tutu
    toto.title=Toto
    toto.description=Le projet Toto !
    toto.path=projects/toto
    tutu.title=Tutu
    tutu.description=Le projet Tutu !
    tutu.path=projects/tutu

    Ce fichier peut être charge via la méthode Properties.load(). Il suffit ensuite d'extraire la propriété projects et de découper (split()) la String retournées (séparateurs ',' et ' ').
    On obtient alors les ids de chaque projet et il devient alors super facile de reconstruire les infos dont ont a besoin en faisant <iddeprojet>+".title", etc.
    Et on peut rajouter d'autres infos qui peuvent être pertinente a afficher plus tard dans la GUI a volonté (ex: date de création, état fonctionnel/bug, etc).

    Mais ça c'est moi, tu peux aussi faire ta propre syntaxe maison avec le projet qui est décrit en une seule ligne.
    Et c'est juste une manière parmi une infinité d'autre de faire. Et ici c'est juste un fichier TXT, mais on aurai tout aussi bien pu faire ça en XML ou en JSON ou en n'importe quoi d'autre et c'est pas franchement plus compliqué...

    Ex, fichier settings.xml :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?xml version="1.0" encoding="UTF-8"?>
     
    <projects>
        <project>  
            <id>toto</id>
            <name>Toto</name>
            <Description>Le projet Toto !</Description>
            <path>projects/toto</path>
        </project>
        <project>
            <id>tutu</id>
            <name>Tutu</name>
            <Description>Le projet Tutu!</Description>
            <path>projects/tutu</path>
        </project>
    </projects>

    Et ça se charge facilement via SAX ou DOM (évidement je te donnerai des conseils si tu pars vers cette voie et que tu ne sais pas comment faire).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre confirmé
    Homme Profil pro
    conducteur autocar
    Inscrit en
    Janvier 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : conducteur autocar
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2020
    Messages : 67
    Par défaut
    Hello,

    Je suis parti sur ta soluce du fichier .properties
    Je mets les 2 methodes
    - charge le fichier
    - affiche les proprietes

    y'a le strict minimum, pas de verifs du fichier ni quoi que ce soit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
        private Map<String,String> chargerProperties() throws Exception {
     
        	Map<String, String> sortedMap = new TreeMap<>();
     
            FileReader reader = new FileReader("./src/application/resource/settings.properties");
            Properties proprietes = new Properties();
            proprietes.load(reader);
     
            Enumeration keys = proprietes.propertyNames();
     
            while(keys.hasMoreElements()) {
                String key = (String)keys.nextElement();
                sortedMap.put(key,proprietes.getProperty(key));
            }
     
            reader.close();
     
            return sortedMap;
        }
     
    	// =======================================================
     
        //
        private void afficherProprietes(Map<String,String> p_proprietes) {
            for(String key:p_proprietes.keySet()) {
                System.out.println(key + ":" + p_proprietes.get(key));
            }
        }
     
    	// =======================================================
    ca affiche bien,
    si je modifie le fichier .properties, tt est bien repercuté

    Dc maintenant si j'ai bien compris,
    je dois
    - denombrer les projets (découper la Ligne projetcs=toto, tutu) pr obtenir le nbre et les id des projets
    - lire chaque L du fichier et reconstruire les infos. Reconstruire les infos..? les rassembler ds 1 tableau (1 tableau pr chaque projet j'entends), en faire 1 classe (ou Bean)?

    Bon we a toi ( a vous)

    PS: j'ai 1 warning sur l'enumeration, car je ne sais pas quoi mettre sur le parametre de type

  6. #6
    Membre confirmé
    Homme Profil pro
    conducteur autocar
    Inscrit en
    Janvier 2020
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : conducteur autocar
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2020
    Messages : 67
    Par défaut
    Bon je pense etre arrivé a ce que je voulais.
    je me suis battu avec des Regex, des boucles imbriquées, des ArrayList de ArrayList créees dynamiquement (ou pas)... pas triste.
    Au final j'obtiens 1 ArrayList<ArrayList<String>>.
    les ArrayList<String> st des listes, 1 pr chaque projet et qui contiennent les propriétés de chaque projet.
    ds le fichier settings.properties, je peux ajouter autant de projets que je le souhaite et autant de proprietes que je le souhaite.
    il faut que le nbre de proprietes soit identique pr tous les projets.
    j'ai pas ecrit les verifs, je m'y collerai plus tard.
    Alors maintenant, la question c'est de savoir ce que je dois mettre ds la propriete path?
    Tu me dis ou je cherche?
    Pas ce soir, j'en ai marre.

    a+

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/06/2021, 03h01
  2. Réponses: 6
    Dernier message: 22/12/2004, 11h00
  3. Perte de gestionnaire d'événements dans une fenêtre
    Par Benjamin GAGNEUX dans le forum Composants VCL
    Réponses: 15
    Dernier message: 23/08/2004, 20h14
  4. Supprimer la croix dans une fenêtre modale
    Par AnneOlga dans le forum C++Builder
    Réponses: 3
    Dernier message: 15/01/2004, 14h52
  5. [JDialog] Modification dans une fenêtre
    Par cefabien dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 01/10/2003, 13h18

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