Class AWTAdapter
- java.lang.Object
-
- com.jogamp.newt.event.awt.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 NEWTNEWTEventListener
.Attach the
com.jogamp.opengl.GLEvenListener
to a NEWTGLAutoDrawable
, e.g.GLWindow
,
or to an AWTGLAutoDrawable
, e.g.GLCanvas
.
Attach the NEWTNEWTEventListener
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
- See Also:
#attachTo
-
-
Field Summary
Fields Modifier and Type Field Description static boolean
DEBUG_IMPLEMENTATION
-
Constructor Summary
Constructors Constructor Description AWTAdapter()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract AWTAdapter
addTo(Component awtComponent)
Due to the fact that some NEWTNEWTEventListener
are mapped to more than oneEventListener
, 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 theNativeSurfaceHolder
actingas downstream
,NEWT window proxy
or as anNativeSurfaceHolder proxy
.NEWTEventListener
getNewtEventListener()
Returns theNEWT event-listener
if instance is used as anNativeSurfaceHolder proxy
orNEWT window proxy
, otherwise method returnsnull
.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!
-
-
-
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
-
clear
public AWTAdapter clear()
Removes all references, downstream and NEWT-EventListener.Also sets the internal
setup
flag andsetConsumeAWTEvent(boolean)
tofalse
.
-
setConsumeAWTEvent
public final void setConsumeAWTEvent(boolean v)
-
getNativeSurfaceHolder
public final NativeSurfaceHolder getNativeSurfaceHolder()
Returns theNativeSurfaceHolder
actingas downstream
,NEWT window proxy
or as anNativeSurfaceHolder proxy
.Returned value is never null.
-
getNewtWindow
public final Window getNewtWindow()
Returns theNEWT Window
actingas downstream
or as aNEWT window proxy
.Returned value maybe null if instance is used to be a
NativeSurfaceHolder proxy
.
-
getNewtEventListener
public final NEWTEventListener getNewtEventListener()
Returns theNEWT event-listener
if instance is used as anNativeSurfaceHolder proxy
orNEWT window proxy
, otherwise method returnsnull
.
-
addTo
public abstract AWTAdapter addTo(Component awtComponent)
Due to the fact that some NEWTNEWTEventListener
are mapped to more than oneEventListener
, this method is for your convenience to use this Adapter as a listener for all types.
E.g.MouseListener
is mapped toMouseListener
andMouseMotionListener
.
-
removeFrom
public abstract AWTAdapter removeFrom(Component awtComponent)
- See Also:
addTo(java.awt.Component)
-
-