Class AWTAdapter

  • All Implemented Interfaces:
    EventListener
    Direct Known Subclasses:
    AWTKeyAdapter, AWTMouseAdapter, AWTWindowAdapter

    public abstract class AWTAdapter
    extends Object
    implements EventListener
    Convenient adapter forwarding AWT events to NEWT via the event listener model.

    You may attach an instance of this adapter to an AWT Component. When an event happens, it is converted to a NEWT event and the given NEWT listener is being called.

    This adapter fullfills three use cases. First as a plain utility to write code AWT agnostic, ie write an com.jogamp.opengl.GLEvenListener and some appropriate NEWT NEWTEventListener.

    Attach the com.jogamp.opengl.GLEvenListener to a NEWT GLAutoDrawable, e.g. GLWindow,
    or to an AWT GLAutoDrawable, e.g. GLCanvas.

    Attach the NEWT NEWTEventListener to a NEWT component, e.g. Window,
    or to an AWT component, e.g. Component.

    Common:

        // your demo/render code
        com.jogamp.opengl.GLEvenListener demo1 = new com.jogamp.opengl.GLEvenListener() { ... } ;
    
        // your AWT agnostic NEWT mouse listener code
        com.jogamp.newt.event.MouseListener mouseListener = new com.jogamp.newt.event.MouseAdapter() { ... } ;
     

    Default NEWT use case, without using the AWTAdapter:

        // the NEWT GLAutoDrawable and Window
        GLWindow glWindow = GLWindow.create();
    
        // attach the renderer demo1
        glWindow.addGLEventListener(demo1);
    
        // attach the NEWT mouse event listener to glWindow
        glWindow.addMouseListener(mouseListener);
     

    AWT use case, AWTAdapter used as an AWT event translator and forwarder to your NEWT listener:

        // the AWT GLAutoDrawable and Canvas
        GLCanvas glCanvas = new GLCanvas();
    
        // attach the renderer demo1
        glCanvas.addGLEventListener(demo1);
    
        // attach the AWTMouseAdapter to glCanvas, which translates and forwards events to the NEWT mouseListener
        new AWTMouseAdapter(mouseListener).addTo(glCanvas);
     

    Previous code in detail:

        AWTMouseAdapter mouseAdapter = new AWTMouseAdapter(mouseListener);
        glCanvas.addMouseListener(mouseAdapter);
        glCanvas.addMouseMotionListener(mouseAdapter);
     

    Second use case is just a litte variation of the previous use case, where we pass a NEWT Window
    to be used as the source of the event.

        com.jogamp.newt.event.MouseListener mouseListener = new com.jogamp.newt.event.MouseAdapter() { ... } ;
    Component comp = ... ; // the AWT component
    GLWindow glWindow = GLWindow.create(); // the NEWT component

    new AWTMouseAdapter(mouseListener, glWindow).addTo(comp);

    Last but not least, the AWTAdapter maybe used as a general AWT event forwarder to NEWT.

        com.jogamp.newt.event.MouseListener mouseListener = new com.jogamp.newt.event.MouseAdapter() { ... } ;
    Component comp = ... ; // the AWT component
    GLWindow glWindow = GLWindow.create(); // the NEWT component
    glWindow.addMouseListener(mouseListener); // add the custom EventListener to the NEWT component

    new AWTMouseAdapter(glWindow).addTo(comp); // forward all AWT events to glWindow, as NEWT events

    See Also:
    #attachTo
    • Field Detail

      • DEBUG_IMPLEMENTATION

        public static final boolean DEBUG_IMPLEMENTATION
    • Constructor Detail

      • AWTAdapter

        public AWTAdapter()
    • Method Detail

      • setDownstream

        public AWTAdapter setDownstream​(Window downstream)
                                 throws IllegalStateException
        Setup a pipeline adapter, AWT EventListener.
        Once attached to an AWT component, it sends the converted AWT events to the NEWT downstream window.
        This is only supported with EDT enabled!
        Throws:
        IllegalStateException - if EDT is not enabled
      • setConsumeAWTEvent

        public final void setConsumeAWTEvent​(boolean v)
      • getNativeSurfaceHolder

        public final NativeSurfaceHolder getNativeSurfaceHolder()
        Returns the NativeSurfaceHolder acting as downstream, NEWT window proxy or as an NativeSurfaceHolder proxy.

        Returned value is never null.

      • getNewtWindow

        public final Window getNewtWindow()
        Returns the NEWT Window acting as downstream or as a NEWT window proxy.

        Returned value maybe null if instance is used to be a NativeSurfaceHolder proxy.

      • getNewtEventListener

        public final NEWTEventListener getNewtEventListener()
        Returns the NEWT event-listener if instance is used as an NativeSurfaceHolder proxy or NEWT window proxy, otherwise method returns null.