Hi all,

Major issues which i have in this is that local-store doesnot get
refreshed when toolbar is enabled or disabled i guess.... It gets
reloaded only when firefox is restarted or so... So i dont know whether
i can use local - store to listen when toolbar state is changed...


Thanks,
Vindys
[EMAIL PROTECTED] wrote:
> Ok here is my code now lol::
>
>       
> netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
>       var RDF =  Components.classes["@mozilla.org/rdf/rdf-service;1"].
>                 getService(Components.interfaces.nsIRDFService);
>       try{
>
>               var history =
> Components.classes["@mozilla.org/rdf/datasource;1?name=local-store"].
>                         getService(Components.interfaces.nsIRDFDataSource);
>
>               var tbId="chrome://browser/content/browser.xul#MyToolbar";
>               alert(tbId);
>               var isDisabled=history.HasAssertion(
>                          RDF.GetResource(tbId),
>                          RDF.GetResource("collapsed"),
>                          RDF.GetLiteral("true"),
>                          true
>               );
>               if(isDisabled==true)
>                       alert('disabled');
>               else
>                       alert('enabled');
>
> Thanks for Michel
>
> Vindys
>
> Michel Gutierrez wrote:
> > You may simplify your code by checking directly the 'collapsed' property
> > of your toolbar RDF resource instead of walking through the whole
> > locastore db:
> >
> > var tbId="chrome://browser/content/browser.xul#MyToolbar";
> > var isDisabled=DS.HasAssertion(
> >    rdfService.GetResource(tbId),
> >    rdfService.GetResource("collapsed"),
> >    rdfService.GetLiteral("true"),
> >    true
> > );
> >
> > /mig
> >
> > [EMAIL PROTECTED] wrote:
> > > Hi,
> > >
> > > First of all thanks to mig to give me idea light to local store....
> > > I have finished the problem and i can now find whether my toolbar is
> > > enabled or disabled. Here is the code if any one needs it any time...
> > >
> > > Also please tell if I can make the code some more better.
> > >
> > >
> > >
> > > function FindtoolbarInRdf()
> > > {
> > >
> > >
> > >   
> > > netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
> > >
> > >
> > >   var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
> > >                       getService(Components.interfaces.nsIRDFService);
> > >   var DS = rdfService.GetDataSource('rdf:local-store');
> > >
> > >   DS =DS.QueryInterface(Components.interfaces.nsIRDFDataSource);
> > >
> > >   var all_res=DS.GetAllResources();
> > >   var t=" ";
> > >
> > >   for(var r=0; all_res.hasMoreElements(); r++)
> > >   {
> > >           var arcCursor;
> > >
> > >           if(t.length>5000)
> > >                   break;
> > >           var res=all_res.getNext().QueryInterface(
> > > Components.interfaces.nsIRDFResource);
> > >           var tool=res.Value;
> > > //Here add your toolbar name
> > >           var b='chrome://browser/content/browser.xul#MyToolbar';
> > >
> > >           if(tool==b)
> > >           {
> > >
> > >
> > >
> > >                   arcCursor = DS.ArcLabelsOut(res);
> > >                   showArcs(res, arcCursor);
> > >           }
> > >   }
> > >
> > >
> > >
> > > }
> > >
> > > function showArcs(res, arcCursor)
> > > {
> > >   var arcTargets;
> > >   var thisArc;
> > >   var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
> > >                        getService(Components.interfaces.nsIRDFService);
> > >
> > >   var DS = rdfService.GetDataSource('rdf:local-store');
> > >   DS =DS.QueryInterface(Components.interfaces.nsIRDFDataSource);
> > >
> > >   while(arcCursor.hasMoreElements())
> > >   {
> > >
> > >           thisArc = arcCursor.getNext().QueryInterface(
> > > Components.interfaces.nsIRDFResource);
> > >
> > >           if(thisArc.Value=="collapsed")
> > >           {
> > >                   arcTargets =DS.GetTargets( res, thisArc, true );
> > >
> > >                   while(arcTargets.hasMoreElements())
> > >                   {
> > >                           thisTarget = arcTargets.getNext();
> > >
> > >                           if (thisTarget instanceof 
> > > Components.interfaces.nsIRDFLiteral)
> > >                           {
> > >                                   thisTarget.QueryInterface( 
> > > Components.interfaces.nsIRDFLiteral);
> > >                                   if(thisTarget.Value=="true")
> > >                                           alert('toolbar is disabled');
> > >                           }
> > >                   }
> > >           }
> > >   }
> > >
> > >
> > > }
> > >
> > >
> > >
> > > Thanks,
> > >
> > > Vindy
> > >
> > >
> > > [EMAIL PROTECTED] wrote:
> > >
> > >>Thanks a lot mig,
> > >>
> > >>Let me try to do some thing with nsIRDFResource.
> > >>
> > >>Thanks for ur fast replies
> > >>Vindys
> > >>Michel Gutierrez wrote:
> > >>
> > >>>As far as I understand, the toolbar is not disabled in the overlay. When
> > >>>the toolbar is defined in the overlay, Firefox decides from its
> > >>>localstore info whether the toolbar should be displayed.
> > >>>You can access the localstore data programmatically using the RDF API
> > >>>(nsIDatasource, nsIRDFResource, ...)
> > >>>
> > >>>/mig
> > >>>
> > >>>
> > >>>>I saw the localstrore.rdf and found my extension with collapsed =true.
> > >>>>But is there a way to find programmically tht the toolbar is disabled
> > >>>>in my overlay.xul?
> > >>>
> > >>>>>>I m making a toolbar in mozilla firefox and right now i m struck in 
> > >>>>>>one
> > >>>>>>position. I want to know when my toolbar is disabled/enabled by right
> > >>>>>>clicking on toolbar and unticking my toolbar or by view -> toolbar.
> > >>>
> > >>>>>I think you should be able to get this information from the localstore
> > >>>>>database.
> > >>>>>If your toolbar is disabled, you should have the property 'collapsed' 
> > >>>>>of
> > >>>>>your toolbar set to 'true'
> > >>>>>Maybe there are better ways to do this.
> > > 
> > >

_______________________________________________
dev-tech-xpcom mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-xpcom

Reply via email to