Logo Search packages:      
Sourcecode: jaxe version File versions  Download package

JMenu jaxe::Config::creationMenu ( final JaxeDocument  doc,
final Element  menudef 
) [inline, protected]

Renvoie un JMenu correspondant à la définition d'un menu dans le fichier de config, pour un document Jaxe donné.

Parameters:
doc Le document Jaxe pour lequel le menu est créé
menudef L'élément MENU du fichier de config

Definition at line 982 of file Config.java.

References documentation(), documentationMenu(), formatageDoc(), LOG, referenceElement(), and titreMenu().

Referenced by makeMenus().

                                                                                {
        final String nomMenu = menudef.getAttribute("nom");
        String titreMenu = titreMenu(nomMenu);
        if (resourceTitres != null) {
            try {
                titreMenu = resourceTitres.getString(titreMenu);
            } catch (final MissingResourceException ex) {
            }
        }
        final JMenu jmenu = new JMenu(titreMenu);
        String docMenu = documentationMenu(nomMenu);
        if (docMenu != null) {
            docMenu = "<html><body>" + docMenu.replaceAll("\n", "<br>") + "</body></html>";
            jmenu.setToolTipText(docMenu);
        }
        Node menunode = menudef.getFirstChild();
        while (menunode != null) {
            JMenuItem item = null;
            final String nodename = menunode.getNodeName();
            if ("MENU_INSERTION".equals(nodename)) {
                final Element insnoeud = (Element)menunode;
                final String nom = insnoeud.getAttribute("nom");
                final String titre = titreMenu(nom);
                String typeNoeud = insnoeud.getAttribute("type_noeud");
                if ("".equals(typeNoeud))
                    typeNoeud = "element";
                final Element refElement;
                if ("element".equals(typeNoeud)) {
                    refElement = referenceElement(nom);
                    if (refElement == null)
                        LOG.error("Erreur: MENU_INSERTION: pas de référence pour '" + nom + "' dans le schéma");
                } else
                    refElement = null;
                item = jmenu.add(new ActionInsertionBalise(doc, titre, refElement, nom, typeNoeud));
                String itemdoc = documentation(refElement);
                if (itemdoc != null) {
                    itemdoc = formatageDoc(itemdoc);
                    item.setToolTipText(itemdoc);
                }
            } else if ("MENU_FONCTION".equals(nodename)) {
                final Element fonction = (Element)menunode;
                final String classe = fonction.getAttribute("classe");
                final String nom = fonction.getAttribute("nom");
                final String titre = titreMenu(nom);
                item = jmenu.add(new ActionFonction(doc, titre, classe, fonction));
            } else if ("MENU".equals(nodename)) {
                item = creationMenu(doc, (Element)menunode);
                jmenu.add(item);
            } else if ("SEPARATEUR".equals(nodename))
                jmenu.addSeparator();
            
            if (item != null) {
                final String commande = ((Element)menunode).getAttribute("raccourci");
                if (commande != null && !"".equals(commande)) {
                    final char c = commande.toUpperCase().charAt(0);
                    final int cmdMenu = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
                    item.setAccelerator(KeyStroke.getKeyStroke(c, cmdMenu));
                }
            }
            menunode = menunode.getNextSibling();
        }
        return(jmenu);
    }


Generated by  Doxygen 1.6.0   Back to index