Envoyé par : wako
Date : 09/05/2006 17:43
Et il possible de charger un overlay dynamiquement ?
J'ai essayer en creer l'id de l'overlay par l'intermédiaire du dom js, sa n'a rien donné.
Comment doit on faire ? ou alors ce n'est peut être tout simplement impossible.
La solution se situe dans les bindings alors p e ?
wako
Envoyé par : wako
Date : 10/05/2006 10:18
En effet, sa charge bien mon overlay, mais quelque chose de bisard ce passe quand même.
Mon overlay contient 1 arbre qui se charge automatiquement via un rdf.
Le problème : l'arbre n'affiche rien alors que dans la source DOM, tout est parfaitement la, tel que sa devrait être chargé.
Au chargement j'obtient une erreur JS :
Erreur : this.view has no properties Fichier source : chrome://global/content/bindings/tree.xml Ligne : 0
Quand je fait un :
document.getElementById("addLdapTree").view.rowCount (addLdapTree est le nom de l'id de l'arbre)
J'obtient une erreur dans la console JS :
document.getElementById("addLdapTree") has no property
Bref, je comprend pas pk mes elements ne s'affiche pas.
wako
Envoyé par : laurentj
Date : 10/05/2006 11:51
erreur classique : tu essaie d'acceder à un element qui n'existe pas encore. loadOverlay effectue le chargement de manière asynchrone.
Envoyé par : wako
Date : 10/05/2006 14:15
J'ai pensé à cela, mais ce n'est pas sa.
J'ai mis l'action ci dessus sur un bouton. Je vérifie dans la source DOM l'existance de l'id, et le résultat est le même.
Pour l'instant j'ai tricher en créant deux pagewizard et en fonction des choix précedent, j'affiche l'une ou l'autre. Mais je trouve pas sa tip top.
wako
Envoyé par : wako
Date : 11/05/2006 15:44
J'ai un nouveau petit problème avec ces overlays dynamiques.
Quelqu'un a t il eu le cas d'un overlay contenant un ou plusieurs tree qui se remplisse via des templates ?
Chez moi, tout fonctionne, mais rien ne s'affiche (en contenu).
Quand on regarde la source, on peut récuperer des valeurs qui ne sont pas vu par l'utilisateur (les deux sources DOM des screenshots suivants sont identique, sisi).
Par contre, si on charge l'overlays directement genre
chrome://apl/content/overlays/tree.xul
Dans ce cas là, tout fonctionne parfaitement.
Si quelqu'un à eu le cas, a t il trouvé une solution ?
J'ai essayer de le refresh ainsi que de le rebuild, mais rien n'y fait, toujours pas affiché.
Un peu de code maintenant :
Pour charger mon overlay
document.loadOverlay("chrome://apl/content/overlays/tree.xul", null);
tree.xul :
<?xml version="1.0" encoding="utf8" ?> <!DOCTYPE overlay SYSTEM "chrome://apl/locale/tree.dtd" > <overlay xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" > <hbox id="mainTree" flex="8"> <tree id="ldapTree" datasources="http://localhost/apl/data/treeLdap.rdf" ref="http://apl/domain" hidecolumnpicker="true" context="popupTreemenu" onclick="getInfo(this)" onselect="getInfo(this)" min-width="150" flex="1"> <!-- ici ce trouve le contenu + template --> <splitter /> <hbox /> <!-- Dans cet boite s'affiche le contenu de l'item selectionner dans le tree --> </hbox> </overlay>
En cadeau bonus au problème, deux screenshots, l'un avec le loadOverlay et l'autre en notifiant l'overlay dans la fenaitre principal.
celui avec un probleme de loadOverlay
celui sans problème, mais pas charger dynamiquement
wako
Envoyé par : wako
Date : 17/05/2006 09:03
Je n'ai pas trouver de solution au loadoverlay avec un tree, du coup, je triche en utilisant des proprietés d'affichage (display / visibility).
Si quelqu'un trouve une solution, je suis toujours preneur car la mienne alourdie sensiblement le code.
wako
Envoyé par : Eric
Date : 17/07/2006 17:31
Voici une solution
var observer = { observe: function(subject, topic, data){ alert("Topic sent: " + topic); } }; document.loadOverlay("chrome://apl/content/overlays/tree.xul", observer);
Apès avoir chargé l'overlay, le document notifie l'observer au moyen du topic xul-overlay-merged.
Il faut noter que le système va être modifié en 2.0 : http://developer.mozilla.org/en/docs/doc(..)
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.