Package com.macrofocus.treemap.swing
Class DefaultTreeMapController<N,Row,Column>
- java.lang.Object
-
- com.macrofocus.treemap.swing.DefaultTreeMapController<N,Row,Column>
-
- All Implemented Interfaces:
TreeMapController<javax.swing.JComponent,N,Row,Column,java.awt.Color,java.awt.Font>
public class DefaultTreeMapController<N,Row,Column> extends java.lang.Object implements TreeMapController<javax.swing.JComponent,N,Row,Column,java.awt.Color,java.awt.Font>
Default controller mediating user interactions with a TreeMapView. It currently supports selection, zooming, panning and drilling.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DefaultTreeMapController.Mode
Interaction mode.
-
Field Summary
Fields Modifier and Type Field Description protected TreeMapView<javax.swing.JComponent,N,Row,Column,java.awt.Color,java.awt.Font>
_view
-
Constructor Summary
Constructors Constructor Description DefaultTreeMapController()
DefaultTreeMapController(TreeMapView<javax.swing.JComponent,N,Row,Column,java.awt.Color,java.awt.Font> view)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.awt.Component
createPopupMenuEntry(N node, Column c)
javax.swing.JPopupMenu
getPopupMenu()
boolean
isImprovedBorderZooming()
boolean
isMultipleSelectionEnabled()
boolean
isSelectOnPopupTrigger()
boolean
isZoomingEnabled()
void
setImprovedBorderZooming(boolean improvedBorderZooming)
Enabling it will make use of the DefaultTreeMapController.zoomingCenterFunction() to correct the focus point of the zoom.void
setMultipleSelectionEnabled(boolean multipleSelectionEnabled)
void
setPopupMenu(javax.swing.JPopupMenu popupMenu)
void
setSelectOnPopupTrigger(boolean selectOnPopupTrigger)
Defines whether selection will occur prior to the display of the context menu.void
setView(TreeMapView<javax.swing.JComponent,N,Row,Column,java.awt.Color,java.awt.Font> view)
Replace the view currently under control.void
setZoomingEnabled(boolean zoomingEnabled)
Controls whether the zooming is permitted.protected double
zoomingCenterFunction(double center)
Currently returnsMath.tanh(x * 3)
.
-
-
-
Field Detail
-
_view
protected TreeMapView<javax.swing.JComponent,N,Row,Column,java.awt.Color,java.awt.Font> _view
-
-
Constructor Detail
-
DefaultTreeMapController
public DefaultTreeMapController()
-
DefaultTreeMapController
public DefaultTreeMapController(TreeMapView<javax.swing.JComponent,N,Row,Column,java.awt.Color,java.awt.Font> view)
-
-
Method Detail
-
zoomingCenterFunction
protected double zoomingCenterFunction(double center)
Currently returnsMath.tanh(x * 3)
. Can be overridden to use other (e.g. logistic) function.- Parameters:
center
- the center within a normalized (-1..1) range- Returns:
- the new center within a normalized (-1..1) range
-
setView
public void setView(TreeMapView<javax.swing.JComponent,N,Row,Column,java.awt.Color,java.awt.Font> view)
Replace the view currently under control.- Specified by:
setView
in interfaceTreeMapController<javax.swing.JComponent,N,Row,Column,java.awt.Color,java.awt.Font>
- Parameters:
view
- the TreeMapView to use
-
createPopupMenuEntry
protected java.awt.Component createPopupMenuEntry(N node, Column c) throws java.net.URISyntaxException
- Throws:
java.net.URISyntaxException
-
isMultipleSelectionEnabled
public boolean isMultipleSelectionEnabled()
-
setMultipleSelectionEnabled
public void setMultipleSelectionEnabled(boolean multipleSelectionEnabled)
-
isSelectOnPopupTrigger
public boolean isSelectOnPopupTrigger()
-
setSelectOnPopupTrigger
public void setSelectOnPopupTrigger(boolean selectOnPopupTrigger)
Defines whether selection will occur prior to the display of the context menu.- Parameters:
selectOnPopupTrigger
- true if selection should occur, false otherwise
-
getPopupMenu
public javax.swing.JPopupMenu getPopupMenu()
-
setPopupMenu
public void setPopupMenu(javax.swing.JPopupMenu popupMenu)
-
isImprovedBorderZooming
public boolean isImprovedBorderZooming()
-
setImprovedBorderZooming
public void setImprovedBorderZooming(boolean improvedBorderZooming)
Enabling it will make use of the DefaultTreeMapController.zoomingCenterFunction() to correct the focus point of the zoom.- Parameters:
improvedBorderZooming
- true to enable customized zooming function, false otherwise.
-
setZoomingEnabled
public void setZoomingEnabled(boolean zoomingEnabled)
Description copied from interface:TreeMapController
Controls whether the zooming is permitted.- Specified by:
setZoomingEnabled
in interfaceTreeMapController<javax.swing.JComponent,N,Row,Column,java.awt.Color,java.awt.Font>
- Parameters:
zoomingEnabled
- true to enable zooming, false otherwise.
-
isZoomingEnabled
public boolean isZoomingEnabled()
- Specified by:
isZoomingEnabled
in interfaceTreeMapController<javax.swing.JComponent,N,Row,Column,java.awt.Color,java.awt.Font>
-
-