thank you, i found out these code works, but some object is null so I have to 
filter it out

Set<TopComponent> set = WindowManager.getDefault().getRegistry().getOpened();
            for (TopComponent com : set) {
                DataObject d = com.getLookup().lookup(DataObject.class);
                System.out.println("d=" + d);
                if (d != null) {
                    com.repaint();
                }
            }


Thanks

>From Peter (System Architect, Quantr Limited https://www.quantr.hk , Mobile : 
>96554595)

________________________________
From: John Kostaras <jkosta...@gmail.com>
Sent: Wednesday, September 28, 2022 2:46 AM
To: dev@netbeans.apache.org <dev@netbeans.apache.org>
Subject: Re: super confuse for years

Also look at this <https://dzone.com//articles/netbeans-lookups-explained>.

On Tue, Sep 27, 2022 at 3:40 PM Moacir da Roza <moaci...@gmail.com> wrote:

> Lookups is like a bag of objects, you can have global lookups or local
> lookups.
> *Globals*
> 1-*Lookup.getDefault() *- Is default lookup in general it will have all
> services that exists on META-INF/services.
> 2- *Utilities.actionsGlobalContext() *- In this you can have the lookup of
> all that have focus on Netbeans
> *Ex.:* Utilities.actionsGlobalContext().lookup(FileObject.class);
> Will probably give you the file opened that have focus on Netbeans.
> *Local*
> All other classes that implements Lookup.Provider*. *
> TopComponent.getRegistry().getActivated().getLookup(), note that this
> lookup probably can have all items of the default with additional items of
> the TopComponent, because the constructor of TopComponent receives a
> lookup.
>
>
> TopComponent.getRegistry().getActivated().getLookup().lookup(FileObject.class);
> Will give you same as
> Utilities.actionsGlobalContext().lookup(FileObject.class);
>
> *If I want to lookup all opened files, that mean all DataObjects. What I
> should use?*
>
> You must to find what is the default class responsible by editor, is a
> TopComponent, so you must get all TopComponent Implementations and get his
> lookup.
>
> >       var list = TopComponent.getRegistry().getOpened();
> >        for(TopComponent item : list){
> >             if(item instanceof CloneableTopComponent){
> >
> > System.out.println(item.getLookup().lookup(FileObject.class));
> >             }
> >         }
> >
>
> Probably has other ways, but this way works.
>
>
> Em ter., 27 de set. de 2022 às 01:00, Peter Cheung <pe...@quantr.hk>
> escreveu:
>
> > Dear All
> >     I have been super confused by these for many years, what is the
> > difference? when I use should which?
> >
> >
> >   1.  Lookup.getDefault().lookupAll
> >   2.
> > DataObject.find(FileUtil.toFileObject(realFile)).getLookup().lookupAll
> >   3.  Utilities.actionsGlobalContext().lookupAll
> >   4.  TopComponent.getRegistry().getActivated().getLookup().lookupAll
> >
> > If I want to lookup all opened files, that mean all DataObjects. What I
> > should use?
> >
> >
> > Thanks
> >
> > From Peter (System Architect, Quantr Limited https://www.quantr.hk ,
> > Mobile : 96554595)
> >
>
>
> --
> Moacir R.F
> Desenvolvedor de Softwares
>
> https://www.moacirrf.com.br <http://www.moacirrf.com.br>
>

Reply via email to