# Class HistogramAxisController

java.lang.Object
uk.ac.starlink.topcat.plot2.AxisController<uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile, uk.ac.starlink.ttools.plot2.geom.PlaneAspect>
uk.ac.starlink.topcat.plot2.CartesianAxisController<uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile, uk.ac.starlink.ttools.plot2.geom.PlaneAspect>
uk.ac.starlink.topcat.plot2.HistogramAxisController

All Implemented Interfaces:
  `Configger`

public class HistogramAxisController extends CartesianAxisController<uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile, uk.ac.starlink.ttools.plot2.geom.PlaneAspect>
Axis control for histogram window.

Since:
  21 Jan 2014
Author:
  Mark Taylor

## Field Summary

Fields
Modifier and Type
Field
Description
`static uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory`
`HISTOGRAM_SURFACE_FACTORY`

## Constructor Summary

Constructors
Constructor
Description
`HistogramAxisController()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected boolean`
`clearRange(uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile oldProfile, uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile newProfile, uk.ac.starlink.ttools.plot2.PlotLayer[] oldLayers, uk.ac.starlink.ttools.plot2.PlotLayer[] newLayers, boolean lock)`
Indicates whether a new configuration should result in clearing the current ranges and plot aspect.
`protected boolean`
`logChanged(uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile prof1, uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile prof2)`
Indicates whether the scaling has changed to or from logarithmic for any of the cartesian axes between two profiles.
`void`
`submitReports(Map<LayerId, uk.ac.starlink.ttools.plot2.ReportMap> reports)`
Accepts report information generated by plotting layers.

### Methods inherited from class CartesianAxisController

`addLabelsTab, configureForLayers, forceClearRange, getLabelSpecifier`

### Methods inherited from class AxisController

`addActionListener, addAspectConfigTab, addControl, addNavigatorTab, assertHasKeys, clearAspect, getActionForwarder, getAspect, getConfig, getControls, getMainControl, getNavigator, getRanges, getSurfaceFactory, removeActionListener, setAspect, setLatestSurface, setRanges, updateState`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### HISTOGRAM_SURFACE_FACTORY

public static uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory HISTOGRAM_SURFACE_FACTORY

## Constructor Details

### HistogramAxisController

public HistogramAxisController()
Constructor.

## Method Details

### logChanged

protected boolean logChanged(uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile prof1, uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile prof2)
Description copied from class: `CartesianAxisController`
Indicates whether the scaling has changed to or from logarithmic for any of the cartesian axes between two profiles. If so, it's going to be necessary to rescale, since attempting a log plot with negative values would fail.

Specified by:
  `logChanged` in class `CartesianAxisController<uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile, uk.ac.starlink.ttools.plot2.geom.PlaneAspect>`
Parameters:
  `prof1` - first profile
  `prof2` - second profile
Returns:
  true iff some of the axes are log in prof1 and linear in prof2 or vice versa

### clearRange

protected boolean clearRange(uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile oldProfile, uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile newProfile, uk.ac.starlink.ttools.plot2.PlotLayer[] oldLayers, uk.ac.starlink.ttools.plot2.PlotLayer[] newLayers, boolean lock)
Description copied from class: `AxisController`
Indicates whether a new configuration should result in clearing the current ranges and plot aspect.

Overrides:
  `clearRange` in class `AxisController<uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile, uk.ac.starlink.ttools.plot2.geom.PlaneAspect>`
Parameters:
  `oldProfile` - profile for last plot
  `newProfile` - profile for next plot
  `oldLayers` - layer set for last plot
  `newLayers` - layer set for next plot
  `lock` - whether re-ranging is inhibited; normally, if `lock` is true this method should return false, but the implementation can overrule this and return true even when locked if it needs to
Returns:
  true iff the range should be re-established for the next plot

### submitReports

public void submitReports(Map<LayerId, uk.ac.starlink.ttools.plot2.ReportMap> reports)
Description copied from class: `AxisController`
Accepts report information generated by plotting layers. Null map values are permitted, with the same meaning as an empty map.

The default implementation does nothing, but subclasses may override it to enquire about plot results.

Overrides:
  `submitReports` in class `AxisController<uk.ac.starlink.ttools.plot2.geom.PlaneSurfaceFactory.Profile, uk.ac.starlink.ttools.plot2.geom.PlaneAspect>`
Parameters:
  `reports` - per-layer plot reports for layers generated by the most recent plot