org.ascape.util.swing
Class CustomSliderPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.ascape.util.swing.CustomSliderPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
CustomSliderPanelInf

public abstract class CustomSliderPanel
extends javax.swing.JPanel

A panel containg a slider and appropriate labels that automatically scale an actual value to the range of values expected by the slider. To use, subclass and overide the actual value getters and setters. For example, you might place the following lines in a model's createViews method.

 CustomSliderPanel mySlider = new CustomSliderPanel("Important value", 0.0, 1.0, 2) {
     public double getActualValue() {
         return getMyImportantValue();
     }
     public void setActualValue(double value) {
          setMyImportantValue(value);
          [If neccessary, let model know that an update has been made]
      }
 };
 
If any changes occur to the actual value (that are not caused by the slider itself, of course) you must call updateValue to inform the slider.

Since:
1.2.5
Version:
1.5
Author:
Miles Parker
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  double maximum
           
protected  double minimum
           
protected  javax.swing.JSlider slider
           
protected  javax.swing.JLabel valueLabel
           
 
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
CustomSliderPanel(java.lang.String name, double minimum, double maximum, int decPlaces)
          Constructs a slider panel taht can be set to any value between minimum and maximum, and that allows changes to the given decimal place precision.
 
Method Summary
 void build()
          Constructs the visual components of the slider panel.
abstract  double getActualValue()
          Returns the actual value the slider is representing.
 int getDecPlaces()
          Returns the number of decimal places selectable in the slider.
protected  double getIntermediateValue()
          Returns the intermediate value, that is the scaled value prior to being multiplied by the value multiplier.
 javax.swing.JLabel getLabel()
          Returns the slider name label for direct manipulation.
 javax.swing.JSlider getSlider()
          Returns the slider component for direct manipulation.
 javax.swing.JLabel getValueLabel()
          Returns the value label (the label that displays the sliders actual current value) for direct manipulation.
protected  double getValueMultiplier()
          Returns the value multiplier used in translating the slider value to the actual value and back.
abstract  void setActualValue(double value)
          Upon any slider change this method will be called with the new actual value the slider is representing.
 void setIntermediateValue(double value)
          Sets the intermediate value, updating the label in the process.
protected  void updateLabel()
          Updates the label with the current value.
 void valueUpdated()
          Informs the slider that the current actual value has been updated, causing the slider and label to be updated with the current actual value.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
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, 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, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, 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
 
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

slider

protected javax.swing.JSlider slider

valueLabel

protected javax.swing.JLabel valueLabel

minimum

protected double minimum

maximum

protected double maximum
Constructor Detail

CustomSliderPanel

public CustomSliderPanel(java.lang.String name,
                         double minimum,
                         double maximum,
                         int decPlaces)
Constructs a slider panel taht can be set to any value between minimum and maximum, and that allows changes to the given decimal place precision.

Parameters:
name - a name that will appear as the slider's label
minimum - the value of the slider at its minimum position
maximum - the value of the slider at its maximum position
decPlaces - the number of decimal places to have discrete points to
Method Detail

build

public void build()
Constructs the visual components of the slider panel.


updateLabel

protected void updateLabel()
Updates the label with the current value.


valueUpdated

public void valueUpdated()
Informs the slider that the current actual value has been updated, causing the slider and label to be updated with the current actual value. Call this method whenever a change has been made in the actual value, except of course if that change has been made by the slider itself.


getValueMultiplier

protected double getValueMultiplier()
Returns the value multiplier used in translating the slider value to the actual value and back.


getDecPlaces

public int getDecPlaces()
Returns the number of decimal places selectable in the slider.


getIntermediateValue

protected double getIntermediateValue()
Returns the intermediate value, that is the scaled value prior to being multiplied by the value multiplier.


setIntermediateValue

public void setIntermediateValue(double value)
Sets the intermediate value, updating the label in the process.

Parameters:
value - the intermediate value

getActualValue

public abstract double getActualValue()
Returns the actual value the slider is representing. Override this moethod to return the actual value you want the slider to portray.


setActualValue

public abstract void setActualValue(double value)
Upon any slider change this method will be called with the new actual value the slider is representing. Override this method to set the value in your model taht the slider is responsible for.

Parameters:
value - the new value that the slider has been changed to

getSlider

public javax.swing.JSlider getSlider()
Returns the slider component for direct manipulation.


getLabel

public javax.swing.JLabel getLabel()
Returns the slider name label for direct manipulation.


getValueLabel

public javax.swing.JLabel getValueLabel()
Returns the value label (the label that displays the sliders actual current value) for direct manipulation.



Copyright © 1998-2008 The Brookings Institution, NuTech Solutions, Metascape, LLC All Rights Reserved.