Génération de menu avec RDF et Template

Vous vous penchez sur le développement d'applications ou d'extensions pour Mozilla ? C'est alors vers ce forum que se dirigeront naturellement vos requêtes...
Ptit Lutin
Iguane
Messages : 623
Inscription : 26 juin 2004, 14:02

Génération de menu avec RDF et Template

Message par Ptit Lutin »

Bonjour à tous,

Dans le cadre d'une extension, je voudrais générer automatiquement un menu (pour un bouton dans la barre d'outils) à partir d'un fichier RDF.

Voici le fichier RDF :

Code : Tout sélectionner

<?xml version="1.0"?>
 
 <!DOCTYPE overlay SYSTEM "chrome://babelzillamenu/locale/babelzillamenu.dtd">
 
 <RDF:RDF  xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
           xmlns:bzm="http://www.babelzilla.org/rdf/bzm#">
 
  <!-- Menu structure -->
 
  <RDF:Seq RDF:about="http://www.babelzilla.org/root">
      <RDF:li RDF:resource="site_main_page"/>
      <RDF:li>
          <RDF:Seq RDF:about="forum_menu">
              <RDF:li RDF:resource="forum_main_page"/>
              <RDF:li RDF:resource="forum_general"/>
              <RDF:li>
                  <RDF:Seq RDF:about="forum_extensions_menu">
                      <RDF:li RDF:resource="forum_extensions"/>
                      <RDF:li RDF:resource="forum_extensions_firefox"/>
                      <RDF:li RDF:resource="forum_extensions_thunderbird"/>
                      <RDF:li RDF:resource="forum_extensions_multi-application"/>
                  </RDF:Seq>
              </RDF:li>
              <RDF:li RDF:resource="forum_my_international_forum"/>
              <RDF:li RDF:resource="forum_wts_development"/>
              <RDF:li RDF:resource="forum_search"/>
          </RDF:Seq>
      </RDF:li>
      <RDF:li>
          <RDF:Seq RDF:about="wts_menu">
              <RDF:li RDF:resource="wts_main_page"/>
              <RDF:li RDF:resource="wts_submit_extension"/>
              <RDF:li RDF:resource="wts_list_all_extensions"/>
              <RDF:li RDF:resource="wts_manage_my_extensions"/>
              <RDF:li RDF:resource="wts_manage_my_translations"/>
              <RDF:li RDF:resource="wts_my_qa_page"/>
          </RDF:Seq>
      </RDF:li>
      <RDF:li RDF:resource="forum_view_new_posts"/>
      <RDF:li RDF:resource="site_my_glossary"/>
      <RDF:li RDF:resource="forum_pm"/>
      <RDF:li RDF:resource="forum_who_is_online"/>
      <RDF:li RDF:resource="forum_login"/>
  </RDF:Seq>
 
  <!-- Menu resources -->
 
  <RDF:Description RDF:about="site_main_page">
    <bzm:link>http://www.babelzilla.org</bzm:link>
    <bzm:label>&site.main.page.label;</bzm:label>
    <bzm:accesskey>&site.main.page.accesskey;</bzm:accesskey>
  </RDF:Description>
 
 ... 
 
 </RDF:RDF>
et le fichier XUL utilisé :

Code : Tout sélectionner

 ...
   <!-- Toolbar Button -->
   <toolbarpalette id="BrowserToolbarPalette">
 		<toolbarbutton  id="bzm-toolbarbutton" type="menu-button" class="toolbarbutton-1"
                    label="BabelZillaMenu" tooltiptext="BabelZillaMenu"
                    datasources="chrome://babelzillamenu/content/bzmCommonMenu.rdf"
                    ref="http://www.babelzilla.org/root"
                    oncommand="window.open('chrome://babelzillamenu/content/test.xul', 'TestRDF', 'chrome,centerscreen');"
                    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
 
       <template>
         <rule iscontainer="true">
           <menupopup>
             <menu uri="rdf:*" label="rdf:http://www.babelzilla.org/rdf/bzm#label"
             tooltiptext="rdf:http://www.babelzilla.org/rdf/bzm#label"
             accesskey="rdf:http://www.babelzilla.org/rdf/bzm#accesskey"/>
           </menupopup>
         </rule>
         <rule>
           <menupopup>
             <menuitem uri="rdf:*" label="rdf:http://www.babelzilla.org/rdf/bzm#label"
             tooltiptext="rdf:http://www.babelzilla.org/rdf/bzm#label"
             accesskey="rdf:http://www.babelzilla.org/rdf/bzm#accesskey"
             onclick="babel_open(event, ' rdf:http://www.babelzilla.org/rdf/bzm#link ');" oncommand="babel_open(null, ' rdf:http://www.babelzilla.org/rdf/bzm#link ');"/>
           </menupopup>
         </rule>
       </template>
 
     </toolbarbutton>
   </toolbarpalette>
 ...
inspiré de ce que j'ai trouvé ici : http://xulplanet.com/tutorials/xulqa/q_ ... menus.html

Voici le résultat :

Image

1. Les sous-menus (forum_menu et wts_menu) sont ignorés. Une erreur dans le RDF et/ou le template ?

2. Lorsqu'une option est sélectionnée, la commande du bouton est aussi exécutée (la fenêtre test.xul s'affiche). Comment empêcher cela ?

Merci d'avance pour votre aide :)
Image
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité