Class GlimpseLayout
- java.lang.Object
-
- com.metsci.glimpse.core.layout.GlimpseLayout
-
- All Implemented Interfaces:
GlimpseTarget
,GlimpseKeyListener
,Keyable
,GlimpseMouseListener
,GlimpseMouseMotionListener
,GlimpseMouseWheelListener
,Mouseable
,GlimpsePainter
- Direct Known Subclasses:
GlimpseAxisLayout1D
,GlimpseAxisLayout2D
,GlimpseTouchLayout
,GlimpseTouchWrapper
,GlimpseVerticallyScrollableLayout
,MultiAxisPlot2D
,StackedPlot2D
public class GlimpseLayout extends Object implements GlimpsePainter, GlimpseTarget, Mouseable, Keyable
GlimpseLayout provides a means of rendering to specific areas of a GlimpseCanvas controlled by Mig Layout constraints. It also acts as a RenderTarget onto which other GlimpsePainters may be painted. GlimpseLayout satisfies the Glimpse-facing interfaces GlimpsePainter and RenderTarget.GlimpseLayout uses a delegate class
GlimpseLayoutDelegate
to interface with Mig Layout and hold transient state during layout operations. The final results of the layout are stored in aLayoutCache
.Don't forget the "bottomtotop" layout constraint for MiG, or things will be upside-down from what you probably expect.
- Author:
- osborn, ulman
- See Also:
GlimpseLayoutDelegate
-
-
Constructor Summary
Constructors Constructor Description GlimpseLayout()
GlimpseLayout(GlimpseLayout parent)
GlimpseLayout(GlimpseLayout parent, String name)
GlimpseLayout(String name)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addGlimpseKeyListener(GlimpseKeyListener listener)
void
addGlimpseMouseAllListener(GlimpseMouseAllListener listener)
void
addGlimpseMouseListener(GlimpseMouseListener listener)
void
addGlimpseMouseMotionListener(GlimpseMouseMotionListener listener)
void
addGlimpseMouseWheelListener(GlimpseMouseWheelListener listener)
void
addLayout(GlimpseLayout layout)
Adds a sub-layout to this GlimpseTarget which will only paint in a region of this GlimpseTarget based on its layout constraints.void
addLayout(GlimpseLayout layout, int zOrder)
void
addLayout(GlimpseLayout layout, GlimpsePainterCallback callback)
void
addLayout(GlimpseLayout layout, GlimpsePainterCallback callback, int zOrder)
void
addLayout(Object key, GlimpseLayout layout, GlimpsePainterCallback callback, int zOrder)
void
addPainter(GlimpsePainter painter)
void
addPainter(GlimpsePainter painter, int zOrder)
void
addPainter(GlimpsePainter painter, GlimpsePainterCallback callback)
void
addPainter(GlimpsePainter painter, GlimpsePainterCallback callback, int zOrder)
void
addPainter(Object key, GlimpsePainter painter, int zOrder)
void
addPainter(Object key, GlimpsePainter painter, GlimpsePainterCallback callback, int zOrder)
void
dispose(GlimpseContext context)
Free GPU and CPU memory associated with this this GlimpsePainter.Collection<GlimpseKeyListener>
getGlimpseKeyListeners()
Collection<GlimpseMouseListener>
getGlimpseMouseListeners()
Collection<GlimpseMouseMotionListener>
getGlimpseMouseMotionListeners()
Collection<GlimpseMouseWheelListener>
getGlimpseMouseWheelListeners()
GlimpseLayout
getLayoutByKey(Object key)
GlimpseLayoutManager
getLayoutManager()
ReentrantLock
getLock()
String
getName()
GlimpsePainter
getPainterByKey(Object key)
GlimpseBounds
getTargetBounds(GlimpseTargetStack stack)
Returns the cached or calculated bounds of this GlimpseTarget for a particular context.List<GlimpseTarget>
getTargetChildren()
void
invalidateLayout()
boolean
isDisposed()
boolean
isEventConsumer()
Event consumers do not pass on mouse events to their parents.boolean
isEventGenerator()
Event generators do not generate mouse events if they are the top layout when a mouse event occurs.boolean
isVisible()
If true, the GlimpseTarget should be drawn on the screen and mouse events should be dispatched for it.void
keyPressed(GlimpseKeyEvent event)
void
keyReleased(GlimpseKeyEvent event)
GlimpseBounds
layoutTo(GlimpseContext context)
GlimpseBounds
layoutTo(GlimpseTargetStack stack)
void
mouseEntered(GlimpseMouseEvent event)
void
mouseExited(GlimpseMouseEvent event)
void
mouseMoved(GlimpseMouseEvent event)
void
mousePressed(GlimpseMouseEvent event)
void
mouseReleased(GlimpseMouseEvent event)
void
mouseWheelMoved(GlimpseMouseEvent event)
void
paintTo(GlimpseContext context)
Renders this GlimpsePainter to the provided GlimpseContext.void
removeAll()
Deprecated.void
removeAllGlimpseListeners()
void
removeAllLayouts()
Removes all GlimpseLayouts added via#addLayout(GlimpseLayout)
.void
removeGlimpseKeyListener(GlimpseKeyListener listener)
void
removeGlimpseMouseAllListener(GlimpseMouseAllListener listener)
void
removeGlimpseMouseListener(GlimpseMouseListener listener)
void
removeGlimpseMouseMotionListener(GlimpseMouseMotionListener listener)
void
removeGlimpseMouseWheelListener(GlimpseMouseWheelListener listener)
void
removeLayout(GlimpseLayout layout)
Removes a previously added layout from this GlimpseTarget.void
removeLayoutByKey(Object key)
void
removePainter(GlimpsePainter painter)
void
removePainterByKey(Object key)
void
setEventConsumer(boolean consume)
Set whether or not this GlimpseTarget will consume or pass through mouse events.void
setEventGenerator(boolean generate)
Set whether or not this GlimpseTarget will generate GlimpseMouseEvents.void
setLayoutData(Object layoutData)
void
setLayoutManager(GlimpseLayoutManager manager)
void
setLookAndFeel(LookAndFeel laf)
Sets display options for the painter based on the provided LookAndFeel.void
setName(String name)
void
setVisible(boolean visible)
A painter which is set to non-visible should make no OpenGL calls when its paintTo method is called.void
setZOrder(GlimpseLayout layout, int zOrder)
void
setZOrder(GlimpsePainter painter, int zOrder)
Sets the relative ordering constant for this painter.String
toString()
-
-
-
Constructor Detail
-
GlimpseLayout
public GlimpseLayout(GlimpseLayout parent, String name)
-
GlimpseLayout
public GlimpseLayout(GlimpseLayout parent)
-
GlimpseLayout
public GlimpseLayout(String name)
-
GlimpseLayout
public GlimpseLayout()
-
-
Method Detail
-
getLock
public ReentrantLock getLock()
-
getName
public String getName()
-
setName
public void setName(String name)
-
setLayoutManager
public void setLayoutManager(GlimpseLayoutManager manager)
-
setLayoutData
public void setLayoutData(Object layoutData)
-
removeLayout
public void removeLayout(GlimpseLayout layout)
Description copied from interface:GlimpseTarget
Removes a previously added layout from this GlimpseTarget.- Specified by:
removeLayout
in interfaceGlimpseTarget
-
removeLayoutByKey
public void removeLayoutByKey(Object key)
-
getLayoutByKey
public GlimpseLayout getLayoutByKey(Object key)
-
getPainterByKey
public GlimpsePainter getPainterByKey(Object key)
-
removeAllLayouts
public void removeAllLayouts()
Removes all GlimpseLayouts added via#addLayout(GlimpseLayout)
.- Specified by:
removeAllLayouts
in interfaceGlimpseTarget
-
removeAll
public void removeAll()
Deprecated.Historical accident caused removeAll() and removeAllLayouts() to both exist they are both retained for backwards compatibility.
-
setZOrder
public void setZOrder(GlimpseLayout layout, int zOrder)
- Specified by:
setZOrder
in interfaceGlimpseTarget
-
setZOrder
public void setZOrder(GlimpsePainter painter, int zOrder)
Sets the relative ordering constant for this painter. Painters with low z order will be painter first (in the back) and those with high z order will be painted last (in the front).
The value itself has no meaning; it is relative to the z orders of the other painters in the GlimpseLayout. For
com.metsci.glimpse.layout.com.metsciGlimpseLayout
instances, the z order also affects the order in which mouse events are delivered to overlapping components.The z order is set to 0 by default. GlimpsePainters with the same z order are painted in the order they were added to the GlimpseLayout. This means the first painters added will be obscured by later painters.
-
addLayout
public void addLayout(GlimpseLayout layout)
Description copied from interface:GlimpseTarget
Adds a sub-layout to this GlimpseTarget which will only paint in a region of this GlimpseTarget based on its layout constraints. This same GlimpseLayout may be a child of any number of different GlimpseTargets.- Specified by:
addLayout
in interfaceGlimpseTarget
-
addLayout
public void addLayout(GlimpseLayout layout, GlimpsePainterCallback callback)
-
addLayout
public void addLayout(GlimpseLayout layout, int zOrder)
- Specified by:
addLayout
in interfaceGlimpseTarget
-
addLayout
public void addLayout(GlimpseLayout layout, GlimpsePainterCallback callback, int zOrder)
-
addLayout
public void addLayout(Object key, GlimpseLayout layout, GlimpsePainterCallback callback, int zOrder)
-
addPainter
public void addPainter(GlimpsePainter painter)
-
addPainter
public void addPainter(GlimpsePainter painter, GlimpsePainterCallback callback)
-
addPainter
public void addPainter(GlimpsePainter painter, int zOrder)
-
addPainter
public void addPainter(GlimpsePainter painter, GlimpsePainterCallback callback, int zOrder)
-
addPainter
public void addPainter(Object key, GlimpsePainter painter, int zOrder)
-
addPainter
public void addPainter(Object key, GlimpsePainter painter, GlimpsePainterCallback callback, int zOrder)
-
removePainterByKey
public void removePainterByKey(Object key)
-
removePainter
public void removePainter(GlimpsePainter painter)
-
invalidateLayout
public void invalidateLayout()
-
layoutTo
public GlimpseBounds layoutTo(GlimpseTargetStack stack)
-
layoutTo
public GlimpseBounds layoutTo(GlimpseContext context)
-
paintTo
public void paintTo(GlimpseContext context)
Description copied from interface:GlimpsePainter
Renders this GlimpsePainter to the provided GlimpseContext. The context defines the GLContext to use. The GlimpseContext also specifies where this GlimpsePainter should be rendered via the RenderTarget contained in the GlimpseContext.- Specified by:
paintTo
in interfaceGlimpsePainter
-
getTargetBounds
public GlimpseBounds getTargetBounds(GlimpseTargetStack stack)
Description copied from interface:GlimpseTarget
Returns the cached or calculated bounds of this GlimpseTarget for a particular context.- Specified by:
getTargetBounds
in interfaceGlimpseTarget
- Returns:
- the bounds for the given stack
-
getTargetChildren
public List<GlimpseTarget> getTargetChildren()
- Specified by:
getTargetChildren
in interfaceGlimpseTarget
- Returns:
- the list of children added through addLayout( GlimpseLayout ).
-
dispose
public void dispose(GlimpseContext context)
Description copied from interface:GlimpsePainter
Free GPU and CPU memory associated with this this GlimpsePainter. After this call returns, the results of calling other GlimpsePainter methods besides isDisposed( ) are undefined.- Specified by:
dispose
in interfaceGlimpsePainter
-
isDisposed
public boolean isDisposed()
- Specified by:
isDisposed
in interfaceGlimpsePainter
-
getGlimpseMouseListeners
public Collection<GlimpseMouseListener> getGlimpseMouseListeners()
- Specified by:
getGlimpseMouseListeners
in interfaceMouseable
-
getGlimpseMouseMotionListeners
public Collection<GlimpseMouseMotionListener> getGlimpseMouseMotionListeners()
- Specified by:
getGlimpseMouseMotionListeners
in interfaceMouseable
-
getGlimpseMouseWheelListeners
public Collection<GlimpseMouseWheelListener> getGlimpseMouseWheelListeners()
- Specified by:
getGlimpseMouseWheelListeners
in interfaceMouseable
-
getGlimpseKeyListeners
public Collection<GlimpseKeyListener> getGlimpseKeyListeners()
- Specified by:
getGlimpseKeyListeners
in interfaceKeyable
-
addGlimpseMouseListener
public void addGlimpseMouseListener(GlimpseMouseListener listener)
- Specified by:
addGlimpseMouseListener
in interfaceMouseable
-
addGlimpseMouseMotionListener
public void addGlimpseMouseMotionListener(GlimpseMouseMotionListener listener)
- Specified by:
addGlimpseMouseMotionListener
in interfaceMouseable
-
addGlimpseMouseWheelListener
public void addGlimpseMouseWheelListener(GlimpseMouseWheelListener listener)
- Specified by:
addGlimpseMouseWheelListener
in interfaceMouseable
-
addGlimpseMouseAllListener
public void addGlimpseMouseAllListener(GlimpseMouseAllListener listener)
- Specified by:
addGlimpseMouseAllListener
in interfaceMouseable
-
removeGlimpseMouseAllListener
public void removeGlimpseMouseAllListener(GlimpseMouseAllListener listener)
- Specified by:
removeGlimpseMouseAllListener
in interfaceMouseable
-
addGlimpseKeyListener
public void addGlimpseKeyListener(GlimpseKeyListener listener)
- Specified by:
addGlimpseKeyListener
in interfaceKeyable
-
removeGlimpseMouseListener
public void removeGlimpseMouseListener(GlimpseMouseListener listener)
- Specified by:
removeGlimpseMouseListener
in interfaceMouseable
-
removeGlimpseMouseMotionListener
public void removeGlimpseMouseMotionListener(GlimpseMouseMotionListener listener)
- Specified by:
removeGlimpseMouseMotionListener
in interfaceMouseable
-
removeGlimpseMouseWheelListener
public void removeGlimpseMouseWheelListener(GlimpseMouseWheelListener listener)
- Specified by:
removeGlimpseMouseWheelListener
in interfaceMouseable
-
removeGlimpseKeyListener
public void removeGlimpseKeyListener(GlimpseKeyListener listener)
- Specified by:
removeGlimpseKeyListener
in interfaceKeyable
-
removeAllGlimpseListeners
public void removeAllGlimpseListeners()
- Specified by:
removeAllGlimpseListeners
in interfaceKeyable
- Specified by:
removeAllGlimpseListeners
in interfaceMouseable
-
getLayoutManager
public GlimpseLayoutManager getLayoutManager()
-
mouseEntered
public void mouseEntered(GlimpseMouseEvent event)
- Specified by:
mouseEntered
in interfaceGlimpseMouseListener
-
mouseExited
public void mouseExited(GlimpseMouseEvent event)
- Specified by:
mouseExited
in interfaceGlimpseMouseListener
-
mousePressed
public void mousePressed(GlimpseMouseEvent event)
- Specified by:
mousePressed
in interfaceGlimpseMouseListener
-
mouseReleased
public void mouseReleased(GlimpseMouseEvent event)
- Specified by:
mouseReleased
in interfaceGlimpseMouseListener
-
mouseMoved
public void mouseMoved(GlimpseMouseEvent event)
- Specified by:
mouseMoved
in interfaceGlimpseMouseMotionListener
-
mouseWheelMoved
public void mouseWheelMoved(GlimpseMouseEvent event)
- Specified by:
mouseWheelMoved
in interfaceGlimpseMouseWheelListener
-
keyPressed
public void keyPressed(GlimpseKeyEvent event)
- Specified by:
keyPressed
in interfaceGlimpseKeyListener
-
keyReleased
public void keyReleased(GlimpseKeyEvent event)
- Specified by:
keyReleased
in interfaceGlimpseKeyListener
-
setLookAndFeel
public void setLookAndFeel(LookAndFeel laf)
Description copied from interface:GlimpsePainter
Sets display options for the painter based on the provided LookAndFeel.- Specified by:
setLookAndFeel
in interfaceGlimpsePainter
- Specified by:
setLookAndFeel
in interfaceGlimpseTarget
-
isEventConsumer
public boolean isEventConsumer()
Event consumers do not pass on mouse events to their parents.- Specified by:
isEventConsumer
in interfaceGlimpseTarget
- Returns:
- whether this target hides events from targets under it
-
setEventConsumer
public void setEventConsumer(boolean consume)
Description copied from interface:GlimpseTarget
Set whether or not this GlimpseTarget will consume or pass through mouse events.- Specified by:
setEventConsumer
in interfaceGlimpseTarget
-
isEventGenerator
public boolean isEventGenerator()
Event generators do not generate mouse events if they are the top layout when a mouse event occurs.- Specified by:
isEventGenerator
in interfaceGlimpseTarget
- Returns:
- whether this target will generate GlimpseMouseEvents
-
setEventGenerator
public void setEventGenerator(boolean generate)
Description copied from interface:GlimpseTarget
Set whether or not this GlimpseTarget will generate GlimpseMouseEvents.- Specified by:
setEventGenerator
in interfaceGlimpseTarget
-
setVisible
public void setVisible(boolean visible)
Description copied from interface:GlimpsePainter
A painter which is set to non-visible should make no OpenGL calls when its paintTo method is called.- Specified by:
setVisible
in interfaceGlimpsePainter
-
isVisible
public boolean isVisible()
Description copied from interface:GlimpseTarget
If true, the GlimpseTarget should be drawn on the screen and mouse events should be dispatched for it. Otherwise it is invisible and mouse events should not fire for the GlimpseTarget or its children.- Specified by:
isVisible
in interfaceGlimpsePainter
- Specified by:
isVisible
in interfaceGlimpseTarget
-
-