What uses Lookup?
Note: These pages are being reviewed.
There are a number of places Lookup is commonly found/used in NetBeans. Generally, if you have found some class and you are wondering where on earth you get an actual instance of one of those, the answer is probably "from something-or-other’s Lookup".
Lookup.getDefault()()- you want to find some global singleton or all instances of a particular object registered in the system
Project.getLookup()- provides objects specific to a project. The typical pattern is, you have used FileOwnerQuery to get the Project that owns some file, and now you want to find something like the classpath (from the Project’s ClassPathProvider, which lives in its Lookup)
Node.getLookup()- this is how you get things like syntax trees, open and save interfaces and other miscellaneous stuff from Nodes representing files or other things
TopComponent.getLookup()- if you are writing a UI component, and want to affect the global selection, but your component doesn’t display nodes and you don’t have any use for Nodes, you probably want to provide your own Lookup here with whatever you want to include in it (things like OpenCookie, SaveCookie, objects your other UI code may want to track if you’re doing a master-detail view, etc.)
Lookupwhich represents the global "selection context" in NetBeans. It is a
ProxyLookupwhich proxies the lookup of whichever
TopComponentcurrently has focus. So if you listen for changes in the presence or absence of a particular type in this lookup, you will receive appropriate changes whenever the backing
Lookupbeing proxied changes.