net.sf.latexdraw.ui
Class ScaleRuler

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by net.sf.latexdraw.ui.ScaleRuler
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, Eventable, Pickable
Direct Known Subclasses:
XScaleRuler, YScaleRuler

public abstract class ScaleRuler
extends javax.swing.JComponent
implements Pickable, Eventable, javax.accessibility.Accessible

This class defines an abstract scale ruler.

This file is part of LaTeXDraw
Copyright (c) 2005-2012 Arnaud BLOUIN

LaTeXDraw is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

LaTeXDraw is distributed without any warranty; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

11/12/10

Version:
3.0
Author:
Arnaud BLOUIN
See Also:
Serialized Form

Nested Class Summary
protected  class ScaleRuler.AccessibleScaleRuler
          This class implements accessibility support for the ScaleRuler class.
static class ScaleRuler.Unit
          Defines the different possible units used by the rulers.
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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
protected  ICanvas canvas
          The canvas that the ruler manages.
protected  SwingEventManager eventManager
          The event manager that listens events produced by the panel.
protected static double MIN_PCC_SUBLINES
          This value defines the threshold under which sub-lines of the rule will be not drawn.
private static long serialVersionUID
           
static int SIZE
          The size of the lines in axes
protected static java.awt.BasicStroke STROKE
          The stroke of the ruler.
protected static IUnary<ScaleRuler.Unit> UNIT
          The current unit of the rulers.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
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
ScaleRuler(ICanvas canvas)
          Creates the ruler.
 
Method Summary
 boolean contains(double x, double y)
          Tests if the given point is into the pickable object.
protected abstract  void drawLine(java.awt.Graphics2D g2, double positionA, double positionB1, double positionB2)
          Draws a line of the ruler.
 javax.accessibility.AccessibleContext getAccessibleContext()
           
 SwingEventManager getEventManager()
           
protected abstract  double getLength()
           
 Picker getPicker()
           
protected abstract  double getStart()
           
static ScaleRuler.Unit getUnit()
           
static IUnary<ScaleRuler.Unit> getUnitSingleton()
           
 boolean hasEventManager()
           
 void paintComponent(java.awt.Graphics g)
           
static void setUnit(ScaleRuler.Unit unit)
           
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

UNIT

protected static final IUnary<ScaleRuler.Unit> UNIT
The current unit of the rulers.


STROKE

protected static final java.awt.BasicStroke STROKE
The stroke of the ruler.


MIN_PCC_SUBLINES

protected static final double MIN_PCC_SUBLINES
This value defines the threshold under which sub-lines of the rule will be not drawn.

See Also:
Constant Field Values

canvas

protected ICanvas canvas
The canvas that the ruler manages.


eventManager

protected SwingEventManager eventManager
The event manager that listens events produced by the panel.


SIZE

public static final int SIZE
The size of the lines in axes

See Also:
Constant Field Values
Constructor Detail

ScaleRuler

public ScaleRuler(ICanvas canvas)
Creates the ruler.

Parameters:
canvas - The canvas that the ruler manages.
Throws:
java.lang.IllegalArgumentException - If the given canvas is null.
Method Detail

getStart

protected abstract double getStart()
Returns:
The starting position where the ruler must be drawn.
Since:
3.0

getLength

protected abstract double getLength()
Returns:
The length of the ruler.
Since:
3.0

drawLine

protected abstract void drawLine(java.awt.Graphics2D g2,
                                 double positionA,
                                 double positionB1,
                                 double positionB2)
Draws a line of the ruler.

Parameters:
g2 - The graphics where the line will be drawn. Must not be null.
positionA - The static position of the vertical or horizontal line.
positionB1 - The starting point of the line.
positionB2 - The ending point of the line.
Throws:
java.lang.NullPointerException - if the given graphics is null.
Since:
3.0

paintComponent

public void paintComponent(java.awt.Graphics g)
Overrides:
paintComponent in class javax.swing.JComponent

contains

public boolean contains(double x,
                        double y)
Description copied from interface: Pickable
Tests if the given point is into the pickable object.

Specified by:
contains in interface Pickable
Parameters:
x - The x-coordinate of the point to test.
y - The y-coordinate of the point to test.
Returns:
True if the given point is into the pickable object.

getPicker

public Picker getPicker()
Specified by:
getPicker in interface Pickable
Returns:
The picker object that contains the pickable object.

hasEventManager

public boolean hasEventManager()
Specified by:
hasEventManager in interface Eventable
Returns:
True: the Eventable object has an event manager that gathers events it produces.

getUnit

public static ScaleRuler.Unit getUnit()
Returns:
the current unit used by the rulers.
Since:
3.0

setUnit

public static void setUnit(ScaleRuler.Unit unit)
Parameters:
unit - The unit that the rulers must use. Must not be null.
Since:
3.0

getUnitSingleton

public static IUnary<ScaleRuler.Unit> getUnitSingleton()
Returns:
The singleton that contains the unit value.
Since:
3.0

getEventManager

public SwingEventManager getEventManager()
Specified by:
getEventManager in interface Eventable
Returns:
The event manager that gathers events the Eventable object produces.

getAccessibleContext

public javax.accessibility.AccessibleContext getAccessibleContext()
Specified by:
getAccessibleContext in interface javax.accessibility.Accessible
Overrides:
getAccessibleContext in class javax.swing.JComponent