Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ImagePanel, the class which must provide the BufferedImage to listeners.
- public class ImagePanel extends JPanel implements Lookup.Provider {
- private BufferedImage m_Image;
- ...
- private InstanceContent m_Content;
- private Lookup m_Lookup;
- public ImagePanel(EditorTopComponent comp) {
- m_TopComponent = comp;
- m_Content = new InstanceContent();
- m_Lookup = new AbstractLookup(m_Content);
- }
- @Override
- public Lookup getLookup() {
- return m_Lookup;
- }
- public void setImage(BufferedImage image) {
- m_Image = image;
- m_Content.add(m_Image);
- }
- ...
- }
- // ImageTab, the class that needs the image as soon as it is set.
- // In the constructor of that class (ImageTab is created after ImagePanel is, but BEFORE the image is set in ImagePanel)
- final Lookup.Result temp = m_ImagePanel.getLookup().lookupResult(BufferedImage.class);
- temp.addLookupListener(new LookupListener() {
- @Override
- public void resultChanged(LookupEvent ev) {
- ImageTab.this.resultChanged(temp);
- }
- });
- resultChanged(temp);
- ...
- public void resultChanged(Lookup.Result result) {
- Logger.getLogger(getClass().getName()).info("Something changed: " + result.toString());
- }
- // Output
- Something changed: org.openide.util.lookup.AbstractLookup$R@2fdcf09f for Lookup.Template[type=class java.awt.image.BufferedImage,id=null,instance=null]
- Something changed: org.openide.util.lookup.AbstractLookup$R@74ed4eb6 for Lookup.Template[type=class java.awt.image.BufferedImage,id=null,instance=null]
- Something changed: org.openide.util.lookup.AbstractLookup$R@34490808 for Lookup.Template[type=class java.awt.image.BufferedImage,id=null,instance=null]
- Something changed: org.openide.util.lookup.AbstractLookup$R@34490808 for Lookup.Template[type=class java.awt.image.BufferedImage,id=null,instance=null]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement