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 :

[JavaHelp] Système d'aide intégré au logiciel


Sujet :

API standards et tierces Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Points : 47
    Points
    47
    Par défaut [JavaHelp] Système d'aide intégré au logiciel
    Hello tout le monde.

    Je suis en train de développer un logiciel de gestion d'étude de marché. Une de mes contraintes est d'offrir un système d'aide dans le logiciel. La fonctionnalité doit être la suivante. Sur chaque interface graphique du logiciel, un bouton ou lien doit permettre d'ouvrir une page contenant l'aide relative au fonction et fonctionnement d'interface...
    Je pensais faire un système d'identifiant sur chaque page d'aide et appeler l'identifiant à travers le bouton ou lien de mon interface. Vous en pensez quoi? De plus, que me conseiller vous pour les fichiers d'aide (word, xml, format d'aide windows) ? Comment (où) stocker les fichiers?

    Vos avis seraient vraiment les bienvenus!!
    Merci

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu as un système existant pour java relativement bien foutu : javahelp
    Tu trouveras un éditeur wysiwyg gratuit : JHelpBuilder
    Et un tuto sur dvp: http://cyberzoide.developpez.com/java/javahelp/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par sinok
    Tu as un système existant pour java relativement bien foutu : javahelp
    Tu trouveras un éditeur wysiwyg gratuit : JHelpBuilder
    Et un tuto sur dvp: http://cyberzoide.developpez.com/java/javahelp/
    Merci beaucoup! Je vais tester tout ca. Quelle est l'avantage par rapport aux fichiers chm de windows, je pensais en fait 'orienter la dedans.

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    ça marchera sur toutes les plateformes et ça s'intègre directement dans ton application java

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Y'a t il un moyen pour ouvrir l'aide à une certaine page. En passant un paramètre ou quelque chose comme ca. Le but et de pouvoir ouvrir l'aide relative à l'interface que l'utilisateur a sous les yeux et non pas l'intro de l'aide.

    Merci!

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 875
    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 875
    Points : 22 939
    Points
    22 939
    Billets dans le blog
    53
    Par défaut
    Oui, a cote de ton HelpSet (un fichier XML qui definira entre autre l'apparence de l'aide), tu vas definir une HelpMap, un fichier XML qui contient un mapping de type ID=>URL/Fichier HTML (ca peut une reference interne au fichier).

    Dans ton code et grace a la classe CSH, tu peux :
    - associer une ID a un composant pour permettre d'obtenir de l'aide contextelle.
    - ouvrir une page d'aide directement sur une ID appropriee.

    La page de garde n'est tout simplement que l'ID par defaut du HelpSet. Avec JavaHelp tu peux aussi avoir un module de recherche par topic ou mot-cles via le programme/script jhindexer qui est fourni avec JavaHelp (voir la doc).

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Et bien je m'y remets mais j'arrive a rien...
    Deja, je n'arrive pas a faire tourner l'exemple du tuto...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    HelpSet: Could not parse
    Got an IOException (null)
    Parsing failed for null
    HelpSet: d:/_Diplome/TD/Programmation/JavaHelp/myHelp/Sample.hs non trouvé
    Exception in thread "main" java.lang.NullPointerException
            at helpdetamere.HelpMenu.<init>(HelpMenu.java:22)
            at testhelp.Main.main(Main.java:28)
    Le chemin du fichier a été verifié et le fichier .hs est bien a cette endroit...

    Pour ce qui est de l'assignement des id je ne suis pas du tout au clair. Aurais-tu un exemple ou un poil plus d'explication??

    Merci d'avance!!

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 875
    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 875
    Points : 22 939
    Points
    22 939
    Billets dans le blog
    53
    Par défaut
    Pourrais-tu nous montrer plus de code, nottament la maniere dont tu specifies l'addresse/fichier du HelpSet.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Voila tout le code
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    import java.net.*;
    import javax.help.*;
    import javax.swing.*;
     
    public class HelpMenu {
        JFrame f;
        JMenuItem topics;
        public HelpMenu() {
            f = new JFrame("Mon application");
            JMenuBar mbar = new JMenuBar();
    // menus Fichier et Aide
            JMenu file = new JMenu("Fichier");
            JMenu help = new JMenu("Aide");
    // ajout d’un item dans le menu Aide
            help.add(topics = new JMenuItem("Aide"));
    // ajout des menu à la barre de menu
            mbar.add(file);
            mbar.add(help);
    // création des objets HelpSet et HelpBroker
            //HelpSet hs = getHelpSet("d:/monAide/helpset.hs");
            HelpSet hs = getHelpSet("helpset.hs");
            HelpBroker hb = hs.createHelpBroker();
    // affectation de l’aide au composant
            CSH.setHelpIDString(topics, "intro_html");
    // gestion des évènements
            topics.addActionListener(new CSH.DisplayHelpFromSource(hb));
    // attachement de la barre de menu à la fenêtre
            f.setJMenuBar(mbar);
            f.setSize(500, 300);
            f.setVisible(true);
        }
        public HelpSet getHelpSet(String helpsetfile) {
            HelpSet hs = null;
            ClassLoader cl = this.getClass().getClassLoader();
            try {
                URL hsURL = HelpSet.findHelpSet(cl, helpsetfile);
                hs = new HelpSet(null, hsURL);
            } catch(Exception ee) {
                System.out.println("HelpSet: "+ee.getMessage());
                System.out.println("HelpSet: "+ helpsetfile + " non trouvé");
            }
            return hs;
        }
        public static void main(String argv[]) {
            new HelpMenu();
        }
    }
    J'ai en fait mis le repertoire contenant tous les fichiers de mon aide dans le CLASS PATH et la cela fonctionne. N'y a t il pas un moyen pour ne pas a avoir a effectuer cette manipulation??

    Merci a tous!

  10. #10
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    fixer le class path au démarrage de ton application en utilisant java -cp /chemin/vers/fichier1;(ou : selon l'os) /chemin/vers/jar1 .... Classe.De.Ton.Appli

    ou si tu utilise un jar pour ton appli il faut définir le classpath dans ton manifest

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Merci.

    Dans le cas du jar, tu fixe defini comment exactement le classpath?

    Encore merci pour ces réponses!!!

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 115
    Points : 47
    Points
    47
    Par défaut
    Hello. Et bien cela fonctionne correctement si je lance l'application depuis netbeans.

    Mais maintenant je souhaite faire un .jar pour distribuer mon application et je n'arrive pas à le faire depuis le manifest... Je suis pas trop au clair avec l'utilisation de .jar.

    Deja comment faire pour avoir les lib et le tout dans un seul .jar (et non pas un jar et un dossier lib à coté... )

    pour le moment j'ai ca :
    - mon application : Dmind.jar contenant mes classe et le repertoire META-INF qui lui contient le manifest.mf

    Mon manifest :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.6.5
    Created-By: 1.5.0_06-b05 (Sun Microsystems Inc.)
    Main-Class: dmind.ProgrammeDmind
    Class-Path: lib/swing-layout-1.0.jar lib/jh.jar lib/DmindHelp lib/mysq
     l-connector-java-5.0.4-bin.jar
    X-COMMENT: Main-Class will be added automatically by build
    mon jar dans "c:\" et un repertoire lib dans "c:\" et avec mes librairies:
    - swing-layout-1.0.jar
    - mysql-connector-java-5.0.4-bin.jar
    - jh.jar
    - et un repertoire DmindHelp contenant les fichiers pour java help...

    Maintenant quand j'essaie de lancer mon appli depuis cmd il me retourne l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    C:\Documents and Settings\Binou>java -jar c:\Dmind.jar
    HelpSet: Could not parse
    Got an IOException (null)
    Parsing failed for null
    HelpSet: helpset.hs non trouvÚ
    Exception in thread "main" java.lang.NullPointerException
            at ihm.Ihm_creation_questionnaire.<init>(Ihm_creation_questionnaire.java
    :81)
            at dmind.ProgrammeDmind.main(ProgrammeDmind.java:22)
    Et mon code java:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     public Ihm_creation_questionnaire() {
            super("Creation of the questionnaire");
            // création des objets HelpSet et HelpBroker
            HelpSet hs = getHelpSet("helpset.hs");
            this.hb = hs.createHelpBroker();
            initComponents();
            setVisible(true);
        }
    Je demande vraiment de l'aide parce que je devrais envoyer le tout le plus rapidement possible...

  13. #13
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 875
    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 875
    Points : 22 939
    Points
    22 939
    Billets dans le blog
    53
    Par défaut
    Je ne sais pas ce qu'il en est dans NetBeans mais dans JBuilder quand tu definis une archive dans un projet, celle-ci herite de toutes les dependances du projet (qui sont en general des definitions d'autres libs requises au fonctionnement ou des chemin d'acces au repertoire de base contenant les donnes). Et il est apres possible de definir si ces dependances sont incluses dans l'archive JAR ou pas. Il m'est egalement possible de manuellement specifier des fichiers ou repertoires a inclure en supplement dans l'archive.

    ex : mon projet a un dependance vers MyProgramResources qui est tout simplement l'ajout du repertoire resources dans le CLASSPATH (c'est le repertoire qui contient les bundles i18n/l10n, image, icones, helpset, etc...) et dans la definition de l'archive je demande l'inclusion complete de cette dependance ce qui recopie integralement le contenu du repertoire resources (et ses sous-repertoires) dans le JAR lors de sa creation.

    De ce fait la resolution des resources via le ClassLoader ou le chargement des HelpSet se fait de la meme maniere dans l'IDE ou dans le JAR (puisque les donnees sont accessibles via le CLASSPATH).

    Voila.

Discussions similaires

  1. [Javahelp] ouvrir l'aide depuis un menu
    Par JuTs dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 16/08/2006, 01h02
  2. fenetre "aide" d'un logiciel
    Par clairette dans le forum Général Java
    Réponses: 3
    Dernier message: 21/07/2005, 17h33
  3. [Système d'aide] Lier mon *.hlp à mon projet
    Par termerair dans le forum MFC
    Réponses: 2
    Dernier message: 18/01/2005, 14h39

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