UC Berkeley Group for User Interface Research
Updated November 17, 2000

edu.berkeley.guir.lib.satin.view
Class SemanticZoomViewImpl

java.lang.Object
  |
  +--edu.berkeley.guir.lib.satin.view.ViewImpl
        |
        +--edu.berkeley.guir.lib.satin.view.SemanticZoomViewImpl
All Implemented Interfaces:
Cloneable, SatinConstants, SemanticZoomView, Serializable, View

public abstract class SemanticZoomViewImpl
extends ViewImpl
implements SemanticZoomView

A sample implementation of View, which has a trapezoidally-shaped range of display values. This view is especially useful when used in conjunction with SemanticZoomMultiViewImpl, which can fade-in and fade-out the various views an object may have.

Be sure to implement ViewImpl.clone() correctly in your implementation, as copy and paste depend on it.

This software is distributed under the Berkeley Software License.

 Revisions:  - SATIN-v1.0-1.0.0, Aug 11 1999, JH
               Created class
             - SATIN-v2.1-1.0.0, Aug 11 2000, JH
               Touched for SATIN release
 

Since:
JDK 1.2.2
Version:
SATIN-v2.1-1.0.0, Aug 11 2000
Author:
Jason Hong ( jasonh@cs.berkeley.edu )
See Also:
Serialized Form

Inner classes inherited from class edu.berkeley.guir.lib.satin.SatinConstants
SatinConstants.ObjectPoolAffineTransform, SatinConstants.ObjectPoolPoint2D, SatinConstants.ObjectPoolPolygon2D, SatinConstants.ObjectPoolRectangle2D, SatinConstants.ObjectPoolStringBuffer, SatinConstants.UniqueAffineTransform, SatinConstants.UniquePoint2D, SatinConstants.UniquePolygon2D, SatinConstants.UniqueRectangle2D
 
Fields inherited from class edu.berkeley.guir.lib.satin.view.ViewImpl
gob, poly
 
Fields inherited from interface edu.berkeley.guir.lib.satin.SatinConstants
ABOVE, ALL, BAR, BELOW, clipboard, clprops, cmdqueue, cmdsubsys, CONTAINEDBY, CONTAINS, COORD_ABS, COORD_LOCAL, COORD_REL, DAMAGE_LATER, DAMAGE_NOW, DEBUG_GRAPHICS_OFFSET, DEBUG_STYLE_FILE, DEBUG_STYLE_GPROPERTY, DEEP, DEFAULT_POINT2D_POOL_SIZE, DEFAULT_POLYGON2D_POOL_SIZE, DEFAULT_RECTANGLE_POOL_SIZE, DEFAULT_REPAINT_THRESHOLD, DEFAULT_SELECT_THRESHOLD, DEFAULT_STRINGBUFFER_POOL_SIZE, DEFAULT_TRANSFORM_POOL_SIZE, DIR_CENTER, DIR_DOWN, DIR_DOWN_LEFT, DIR_DOWN_RIGHT, DIR_LEFT, DIR_RIGHT, DIR_UP, DIR_UP_LEFT, DIR_UP_RIGHT, FILTER_THRESHOLD, FIRST, FLOATING_PT_TOLERANCE, glprops, INTERSECTS, KEY_STYLE_DASHARRAY, KEY_STYLE_DASHPHASE, KEY_STYLE_DRAWCOLOR, KEY_STYLE_DRAWFONT, KEY_STYLE_DRAWTRANSPARENCY, KEY_STYLE_ENDCAP, KEY_STYLE_FILLCOLOR, KEY_STYLE_FILLTRANSPARENCY, KEY_STYLE_LINEJOIN, KEY_STYLE_LINEWIDTH, KEY_STYLE_MITERLIMIT, NEAR, NOTIFY_BOUNDS, NOTIFY_LAYER, NOTIFY_LOCATION, NOTIFY_STYLE, NOTIFY_TRANSFORM, poolPoints, poolPolys, poolRects, poolStrbuf, poolTx, rand, SATIN_DATA_DIRECTORY_DEFAULT, SATIN_DATA_DIRECTORY_GPROPERTY, SATIN_PROPERTIES_FILENAME, SHALLOW
 
Constructor Summary
SemanticZoomViewImpl()
          Does nothing.
SemanticZoomViewImpl(double start, double end)
          Create a new semantic zoom view with the specified range.
SemanticZoomViewImpl(double fIn, double s, double e, double fOut)
          Create a new semantic zoom view with the specified range.
 
Method Summary
protected  SemanticZoomViewImpl clone(SemanticZoomViewImpl v)
           
 double getEndScale()
          Get the end of the scale range in which the view will stop being displayed fully.
 double getFadeIn()
          Get the beginning of the scale range in which the view will begin to fade in.
 double getFadeOut()
          Get the beginning of the scale range in which the view will begin to fade out.
 double getStartScale()
          Get the beginning of the scale range in which the view will begin being displayed fully.
 float getViewDisplayValue()
          Check whether or not this view is valid, ie can and should be displayed.
 void setDisplayRange(double startScale, double endScale)
          Calls setDisplayRange(double, double, double, double), setting the fade-in value to be startScale, and fadeOut to be endScale.
 void setDisplayRange(double fadeIn, double startScale, double endScale, double fadeOut)
          Set the range of values.
 String toString()
           
 
Methods inherited from class edu.berkeley.guir.lib.satin.view.ViewImpl
clone, clone, getAttachedGraphicalObject, getBoundingPoints2DRef, getName, isVisible, setAttachedGraphicalObject, setBoundingPoints2DRef, setName, setVisible
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface edu.berkeley.guir.lib.satin.view.View
clone, getAttachedGraphicalObject, getBoundingPoints2DRef, getName, isVisible, render, setAttachedGraphicalObject, setBoundingPoints2DRef, setName, setVisible
 

Constructor Detail

SemanticZoomViewImpl

public SemanticZoomViewImpl()
Does nothing.

SemanticZoomViewImpl

public SemanticZoomViewImpl(double start,
                            double end)
Create a new semantic zoom view with the specified range.
See Also:
setDisplayRange(double, double)

SemanticZoomViewImpl

public SemanticZoomViewImpl(double fIn,
                            double s,
                            double e,
                            double fOut)
Create a new semantic zoom view with the specified range.
Parameters:
fIn - is the fade-in value.
s - is the start display value.
e - is the end display value.
fOut - is the fade-out value.
See Also:
setDisplayRange(double, double, double, double)
Method Detail

setDisplayRange

public void setDisplayRange(double fadeIn,
                            double startScale,
                            double endScale,
                            double fadeOut)
Description copied from interface: SemanticZoomView
Set the range of values. Please note that the passed scale variables should be increasing from left-to-right. That is, fadeIn < startScale < endScale < fadeOut.

What happens during zooming can be thought of as a trapezoid (see below). Starting from the left, the object appears at fadeIn, becomes more solid until it reaches startScale, remains solid until it reaches endScale, and starts becoming translucent again as it moves towards fadeOut.

             ______________________
           /|                      |\
         /  |                      |  \
       /    |                      |    \
     /      |                      |      \
   /        |                      |        \
 fadeIn   startScale          endScale    fadeOut
 
Specified by:
setDisplayRange in interface SemanticZoomView
Following copied from interface: edu.berkeley.guir.lib.satin.view.SemanticZoomView
Parameters:
fadeIn - is the scale value (absolute zoom) to start fading in.
startScale - is the scale value (absolute zoom) to start displaying without any fade.
endScale - is the scale value (absolute zoom) to stop displaying.
fadeOut - is the scale value (absolute zoom) to start fading out.

setDisplayRange

public void setDisplayRange(double startScale,
                            double endScale)
Description copied from interface: SemanticZoomView
Calls SemanticZoomView.setDisplayRange(double, double, double, double), setting the fade-in value to be startScale, and fadeOut to be endScale.
Specified by:
setDisplayRange in interface SemanticZoomView

getFadeIn

public double getFadeIn()
Description copied from interface: SemanticZoomView
Get the beginning of the scale range in which the view will begin to fade in.
Specified by:
getFadeIn in interface SemanticZoomView
Following copied from interface: edu.berkeley.guir.lib.satin.view.SemanticZoomView
Returns:
a double representing an absolute scale factor.

getStartScale

public double getStartScale()
Description copied from interface: SemanticZoomView
Get the beginning of the scale range in which the view will begin being displayed fully.
Specified by:
getStartScale in interface SemanticZoomView
Following copied from interface: edu.berkeley.guir.lib.satin.view.SemanticZoomView
Returns:
a double representing an absolute scale factor.

getEndScale

public double getEndScale()
Description copied from interface: SemanticZoomView
Get the end of the scale range in which the view will stop being displayed fully.
Specified by:
getEndScale in interface SemanticZoomView
Following copied from interface: edu.berkeley.guir.lib.satin.view.SemanticZoomView
Returns:
a double representing an absolute scale factor.

getFadeOut

public double getFadeOut()
Description copied from interface: SemanticZoomView
Get the beginning of the scale range in which the view will begin to fade out.
Specified by:
getFadeOut in interface SemanticZoomView
Following copied from interface: edu.berkeley.guir.lib.satin.view.SemanticZoomView
Returns:
a double representing an absolute scale factor.

getViewDisplayValue

public float getViewDisplayValue()
Description copied from interface: View
Check whether or not this view is valid, ie can and should be displayed. This can be a combination of any range of parameters. For example, you could say that this view is valid when:
Specified by:
getViewDisplayValue in interface View
Following copied from interface: edu.berkeley.guir.lib.satin.view.View
Returns:
a value between 0.0 and 1.0, with 0.0 meaning do not display, and 1.0 meaning must display.

clone

protected SemanticZoomViewImpl clone(SemanticZoomViewImpl v)

toString

public String toString()
Overrides:
toString in class ViewImpl

Copyright Information