public abstract class AWTAdapter extends Object implements EventListener
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() { ... } ;Last but not least, the AWTAdapter maybe used as a general AWT event forwarder to NEWT.
Component comp = ... ; // the AWT component
GLWindow glWindow = GLWindow.create(); // the NEWT component
new AWTMouseAdapter(mouseListener, glWindow).addTo(comp);
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
#attachTo
Modifier and Type | Field and Description |
---|---|
static boolean |
DEBUG_IMPLEMENTATION |
Constructor and Description |
---|
AWTAdapter() |
Modifier and Type | Method and Description |
---|---|
abstract AWTAdapter |
addTo(Component awtComponent)
Due to the fact that some NEWT
NEWTEventListener
are mapped to more than one EventListener ,
this method is for your convenience to use this Adapter as a listener for all types.E.g. |
AWTAdapter |
clear()
Removes all references, downstream and NEWT-EventListener.
|
NativeSurfaceHolder |
getNativeSurfaceHolder()
Returns the
NativeSurfaceHolder acting as downstream ,
NEWT window proxy
or as an NativeSurfaceHolder proxy . |
NEWTEventListener |
getNewtEventListener()
Returns the
NEWT event-listener if instance
is used as an NativeSurfaceHolder proxy
or NEWT window proxy ,
otherwise method returns null . |
Window |
getNewtWindow()
|
abstract AWTAdapter |
removeFrom(Component awtComponent) |
void |
setConsumeAWTEvent(boolean v) |
AWTAdapter |
setDownstream(Window downstream)
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! |
public AWTAdapter setDownstream(Window downstream) throws IllegalStateException
IllegalStateException
- if EDT is not enabledpublic AWTAdapter clear()
Also sets the internal setup
flag and setConsumeAWTEvent(boolean)
to false
.
public final void setConsumeAWTEvent(boolean v)
public final NativeSurfaceHolder getNativeSurfaceHolder()
NativeSurfaceHolder
acting as downstream
,
NEWT window proxy
or as an NativeSurfaceHolder proxy
.
Returned value is never null.
public final Window getNewtWindow()
NEWT Window
acting as downstream
or as a NEWT window proxy
.
Returned value maybe null if instance is used to be a
NativeSurfaceHolder proxy
.
public final NEWTEventListener getNewtEventListener()
NEWT event-listener
if instance
is used as an NativeSurfaceHolder proxy
or NEWT window proxy
,
otherwise method returns null
.public abstract AWTAdapter addTo(Component awtComponent)
NEWTEventListener
are mapped to more than one EventListener
,
this method is for your convenience to use this Adapter as a listener for all types.MouseListener
is mapped to MouseListener
and MouseMotionListener
.public abstract AWTAdapter removeFrom(Component awtComponent)
addTo(java.awt.Component)
Copyright 2010 JogAmp Community.