cox.jmatt.java.MathTools.demo.gpgdemo
Class LogPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Panel
              extended by cox.jmatt.java.MathTools.demo.gpgdemo.GraphPanel
                  extended by cox.jmatt.java.MathTools.demo.gpgdemo.LogPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class LogPanel
extends GraphPanel

This panel generates logarithmic and semilog graph paper. Either or both scales can be linear or logarithmic, but setting both to linear is the same as standard quadrille paper. Every aspect of the paper is configurable.The '[]Linear' Checkboxes ('Scale Type') cause that particular scale to be linear. The minor pen is used for linear scale and the 'Initial Interval' is used for the (fixed and constant) length of the linear scale.

Logarithmic scales are rendered as a fixed number of cycles all of constant length but decreasing interval size. The settings are used as follows:

The default settings have a logarithmic vertical scale (horizontal lines) and a quarter-inch linear horizontal scale (vertical lines). For a decent horizontal log scale use 4 cycles at length 10 with an interval of 55.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class java.awt.Panel
java.awt.Panel.AccessibleAWTPanel
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
LogPanel()
          Basic constructor.
 
Method Summary
 void drawGraph(int mTop, int mBottom, int mLeft, int mRight, SVGTag pPaper)
          Draw the graph.
 void eatPizza(java.util.Properties pPizza, java.lang.String pPrefix)
          This method accepts a Properties object and an optional String prefix and attempts to extract configuration data from it.
 void reset()
          Reset to default values.
 void setCycleLengths(int pHorizontal, int pVertical)
          Set the length of each cycle.
 void setCycles(int pHorizontal, int pVertical)
          Set the number of cycles for each axis.
 void setIntervals(int pHorizontal, int pVertical)
          Set the initial interval for a lograrithmic scale and the fixed interval for a linear scale.
 void setPens(int pHorizontalMajor, int pHorizontalMinor, int pVerticalMajor, int pVerticalMinor)
          Set the pens used.
 void setScales(double pHorizontal, double pVertical)
          Set the scale factors for each scale.
 void setScaleTypes(boolean pHorizLinear, boolean pVertLinear)
          Set the scale type for the vertical and horizontal axes.
 java.lang.String toPizza(java.lang.String pPrefix)
          This method extracts the configuration and state information from a generator and produces java.util.Properties-style output.
 
Methods inherited from class cox.jmatt.java.MathTools.demo.gpgdemo.GraphPanel
asDouble, asInt, eatGlobalPizza, getKey, getKey, getPen, getPen, GP_DEBUG, loadPizza, setGPDebug, setGPDebugMode, setKey, setKey
 
Methods inherited from class java.awt.Panel
addNotify, getAccessibleContext
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusBackward, transferFocusDownCycle, update, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LogPanel

public LogPanel()
Basic constructor.

Method Detail

toPizza

public java.lang.String toPizza(java.lang.String pPrefix)
Description copied from class: GraphPanel

This method extracts the configuration and state information from a generator and produces java.util.Properties-style output. A String prefix can be prepended to each key. If 'pPrefix' is not null or blank it will be attached to the front of the key String, separated by a single dot. If the prefix does not end with a dot one will be supplied automatically.

Use of the prefix allows multiple configurations to be stored in a single file. Also, since each generator has its own unique prefix (separate from the one supplied) multiple generator configs can be stored in a single file.

This is primarily a scripting method. It was developed in order to allow the perfect settings to be saved in a (scripting-) language-agnostic way that was also human-readable. The individual property names are typically Java-fied versions of their GUI labels. If MathTools is run from its JAR and the standard GUI is present the instances exposed to scripts are the ones in the GUI, so setting values in the GUI will affect script output and settings made by the script are reflected in the GUI.

Specified by:
toPizza in class GraphPanel
Parameters:
pPrefix - The prefix to prepend to each key. Ignored if null or blank.

eatPizza

public void eatPizza(java.util.Properties pPizza,
                     java.lang.String pPrefix)
Description copied from class: GraphPanel

This method accepts a Properties object and an optional String prefix and attempts to extract configuration data from it. It complements toPizza(). If 'pPizza' is null or empty nothing happens: the method returns silently. If 'pPrefix' is not null or blank it is used as a prefix to each key. If the String sent in does not end with a dot one will be supplied automatically. All of the keys requested have default valus that match the ones on the GUI.

Under normal cirucmstances the generator instances exposed to scripts are the ones in the GUI so changes using one are reflected in the other.

Specified by:
eatPizza in class GraphPanel
Parameters:
pPizza - A java.util.Properties object containing configuration data.
pPrefix - An optional prefix to include with each key. Ignored if null or blank.

reset

public void reset()
Reset to default values. Everything!

Overrides:
reset in class GraphPanel

drawGraph

public void drawGraph(int mTop,
                      int mBottom,
                      int mLeft,
                      int mRight,
                      SVGTag pPaper)
Draw the graph.

Overrides:
drawGraph in class GraphPanel
Parameters:
mTop - The top margin of the drawable area.
mBottom - The bottom margin of the drawable area.
mLeft - The left margin.
mRight - The right margin.
pPaper - The SVGTag on which the drawing is to occur.

setScaleTypes

public void setScaleTypes(boolean pHorizLinear,
                          boolean pVertLinear)
Set the scale type for the vertical and horizontal axes. Set true to make the specified scale linear, false for logarithmic.


setCycles

public void setCycles(int pHorizontal,
                      int pVertical)
Set the number of cycles for each axis. If linear, this is ignored.


setCycleLengths

public void setCycleLengths(int pHorizontal,
                            int pVertical)
Set the length of each cycle. Ignored if a scale is linear.


setIntervals

public void setIntervals(int pHorizontal,
                         int pVertical)
Set the initial interval for a lograrithmic scale and the fixed interval for a linear scale.


setScales

public void setScales(double pHorizontal,
                      double pVertical)
Set the scale factors for each scale. The values will be clamped if it is outside [0.0, 1.0]. Ignored if the scale is linear.


setPens

public void setPens(int pHorizontalMajor,
                    int pHorizontalMinor,
                    int pVerticalMajor,
                    int pVerticalMinor)
Set the pens used. The vertical pen is used for vertical lines, which are on the horizontal scale, and vise versa.

Parameters:
pHorizontalMajor - The pen used for major lines on the vertical scale (horizontal lines!).
pHorizontalMinor - The pen used for minor lines on the vertical scale.
pVerticalMajor - The cycle initial line pen (major) for the horizontal scale (vertical lines).
pVerticalMinor - The minor vertical line pen (horizontal scale).