Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 1.94 KB | None | 0 0
  1. // ImagePanel, the class which must provide the BufferedImage to listeners.
  2. public class ImagePanel extends JPanel implements Lookup.Provider {
  3.     private BufferedImage m_Image;
  4.  
  5.     ...
  6.  
  7.     private InstanceContent m_Content;
  8.     private Lookup m_Lookup;
  9.  
  10.     public ImagePanel(EditorTopComponent comp) {
  11.         m_TopComponent = comp;
  12.        
  13.         m_Content = new InstanceContent();
  14.         m_Lookup = new AbstractLookup(m_Content);
  15.     }
  16.  
  17.     @Override
  18.     public Lookup getLookup() {
  19.         return m_Lookup;
  20.     }
  21.  
  22.     public void setImage(BufferedImage image) {
  23.         m_Image = image;
  24.         m_Content.add(m_Image);
  25.     }
  26.  
  27.     ...
  28. }
  29.  
  30.  
  31.  
  32. // ImageTab, the class that needs the image as soon as it is set.
  33. // In the constructor of that class (ImageTab is created after ImagePanel is, but BEFORE the image is set in ImagePanel)
  34. final Lookup.Result temp = m_ImagePanel.getLookup().lookupResult(BufferedImage.class);
  35.         temp.addLookupListener(new LookupListener() {
  36.             @Override
  37.             public void resultChanged(LookupEvent ev) {
  38.                 ImageTab.this.resultChanged(temp);
  39.             }
  40.         });
  41.         resultChanged(temp);
  42. ...
  43. public void resultChanged(Lookup.Result result) {
  44.         Logger.getLogger(getClass().getName()).info("Something changed: " + result.toString());
  45.     }
  46.  
  47.  
  48. // Output
  49. Something changed: org.openide.util.lookup.AbstractLookup$R@2fdcf09f for Lookup.Template[type=class java.awt.image.BufferedImage,id=null,instance=null]
  50. Something changed: org.openide.util.lookup.AbstractLookup$R@74ed4eb6 for Lookup.Template[type=class java.awt.image.BufferedImage,id=null,instance=null]
  51. Something changed: org.openide.util.lookup.AbstractLookup$R@34490808 for Lookup.Template[type=class java.awt.image.BufferedImage,id=null,instance=null]
  52. 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