Class AWTAdapter
- All Implemented Interfaces:
EventListener
- Direct Known Subclasses:
AWTKeyAdapter
,AWTMouseAdapter
,AWTWindowAdapter
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
- See Also:
-
#attachTo
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract AWTAdapter
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.clear()
Removes all references, downstream and NEWT-EventListener.final NativeSurfaceHolder
Returns theNativeSurfaceHolder
actingas downstream
,NEWT window proxy
or as anNativeSurfaceHolder proxy
.final NEWTEventListener
Returns theNEWT event-listener
if instance is used as anNativeSurfaceHolder proxy
orNEWT window proxy
, otherwise method returnsnull
.final Window
abstract AWTAdapter
removeFrom
(Component awtComponent) final void
setConsumeAWTEvent
(boolean v) 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!
-
Field Details
-
DEBUG_IMPLEMENTATION
public static final boolean DEBUG_IMPLEMENTATION
-
-
Constructor Details
-
AWTAdapter
public AWTAdapter()
-
-
Method Details
-
setDownstream
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
Removes all references, downstream and NEWT-EventListener.Also sets the internal
setup
flag andsetConsumeAWTEvent(boolean)
tofalse
. -
setConsumeAWTEvent
public final void setConsumeAWTEvent(boolean v) -
getNativeSurfaceHolder
Returns theNativeSurfaceHolder
actingas downstream
,NEWT window proxy
or as anNativeSurfaceHolder proxy
.Returned value is never null.
-
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
Returns theNEWT event-listener
if instance is used as anNativeSurfaceHolder proxy
orNEWT window proxy
, otherwise method returnsnull
. -
addTo
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
- See Also:
-