http://www.jpicedt.org

jpicedt.graphic.view
Class DefaultViewFactory.TextView

java.lang.Object
  extended by jpicedt.graphic.view.AbstractView
      extended by jpicedt.graphic.view.DefaultViewFactory.LeafElementView
          extended by jpicedt.graphic.view.DefaultViewFactory.TextView
All Implemented Interfaces:
View, ViewConstants
Direct Known Subclasses:
EepicViewFactory.TextView
Enclosing class:
DefaultViewFactory

public class DefaultViewFactory.TextView
extends DefaultViewFactory.LeafElementView

a View for rendering Text's from TextLayout's


Field Summary
protected  double strx
          TextLayout location with respect to PicText's anchor point
protected  double stry
          TextLayout location with respect to PicText's anchor point
protected  TextLayout textLayout
          the TextLayout that renders the text string of this TextEditable
protected  AffineTransform tl2ModelTr
           
 
Fields inherited from class jpicedt.graphic.view.DefaultViewFactory.LeafElementView
interiorPaint, lineWidth, outlinePaint, outlineStroke, overStrikeWidth, shadowBounds, shape
 
Fields inherited from class jpicedt.graphic.view.AbstractView
bounds, element, highlighter
 
Fields inherited from interface jpicedt.graphic.view.ViewConstants
BARBELL_SIZE, CLICK_DISTANCE
 
Constructor Summary
DefaultViewFactory.TextView(PicText te)
          construct a new View for the given PicRectangle
 
Method Summary
 void changedUpdate(DrawingEvent.EventType eventType)
          Give notification from the model that a change occured to the text this view is responsible for rendering.
protected  double getRotation()
          Returns the text rotation in radians : subclassers that don't support rotating text may return 0 here.
 TextLayout getTextLayout()
          [SR:pending] make this view implement aka TextEditableView interface (or something like it), where TextEditableView is a subinterface of View with text-editing specific capabilities.
 AffineTransform getTextToModelTransform()
          Return an affine transform which translat b/w the TextLayout coordinate system and the jpicedt.graphic.model coordinate system.
 HitInfo hitTest(PEMouseEvent e)
          This implementation calls super.hitTest and returns the result if non-null (this should be a HitInfo.Point), then returns a HitInfo.Interior if the mouse-click occured inside the text bound (as defined by text layout)
 void paint(Graphics2D g, Rectangle2D a)
          Render the View to the given graphic context.
protected  void syncBounds()
          Synchronizes bounding box with the model ;
protected  void syncFrame()
          synchronize frame shape and location
protected  void syncShape()
          Synchronize the textLayout and the shape (=frame box, by calling syncFrame) with the model This delegates to getRotation() where computing rotation angle is concerned, and updates the AffineTransform returned by getTextToModelTransform().
protected  void syncStringLocationX()
          update strx = x-location of TextLayout's bottom-Left corner with respect to PicText's anchor-point
protected  void syncStringLocationY()
          update strx = y-location of TextLayout's bottom-Left corner with respect to PicText's anchor-point
 
Methods inherited from class jpicedt.graphic.view.DefaultViewFactory.LeafElementView
getViewFactory, syncAttributes
 
Methods inherited from class jpicedt.graphic.view.AbstractView
getBounds, getContainer, getDrawing, getElement, getGraphics, getHighlighter, getParentView, hitTest, paintHighlighter, repaint, setElement, setHighlighter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

textLayout

protected TextLayout textLayout
the TextLayout that renders the text string of this TextEditable


strx

protected double strx
TextLayout location with respect to PicText's anchor point


stry

protected double stry
TextLayout location with respect to PicText's anchor point


tl2ModelTr

protected AffineTransform tl2ModelTr
Constructor Detail

DefaultViewFactory.TextView

public DefaultViewFactory.TextView(PicText te)
construct a new View for the given PicRectangle

Method Detail

changedUpdate

public void changedUpdate(DrawingEvent.EventType eventType)
Give notification from the model that a change occured to the text this view is responsible for rendering.

Specified by:
changedUpdate in interface View
Overrides:
changedUpdate in class DefaultViewFactory.LeafElementView

getRotation

protected double getRotation()
Returns the text rotation in radians : subclassers that don't support rotating text may return 0 here.


syncShape

protected void syncShape()
Synchronize the textLayout and the shape (=frame box, by calling syncFrame) with the model This delegates to getRotation() where computing rotation angle is concerned, and updates the AffineTransform returned by getTextToModelTransform().

Overrides:
syncShape in class DefaultViewFactory.LeafElementView

syncBounds

protected void syncBounds()
Synchronizes bounding box with the model ;

Overrides:
syncBounds in class DefaultViewFactory.LeafElementView

syncFrame

protected void syncFrame()
synchronize frame shape and location


syncStringLocationX

protected void syncStringLocationX()
update strx = x-location of TextLayout's bottom-Left corner with respect to PicText's anchor-point


syncStringLocationY

protected void syncStringLocationY()
update strx = y-location of TextLayout's bottom-Left corner with respect to PicText's anchor-point


paint

public void paint(Graphics2D g,
                  Rectangle2D a)
Render the View to the given graphic context. This implementation render the interior first, then the outline.

Specified by:
paint in interface View
Overrides:
paint in class DefaultViewFactory.LeafElementView
a - the current graphic clip

hitTest

public HitInfo hitTest(PEMouseEvent e)
This implementation calls super.hitTest and returns the result if non-null (this should be a HitInfo.Point), then returns a HitInfo.Interior if the mouse-click occured inside the text bound (as defined by text layout)

Overrides:
hitTest in class DefaultViewFactory.LeafElementView
Returns:
a HitInfo corresponding to the given mouse-event

getTextLayout

public TextLayout getTextLayout()
[SR:pending] make this view implement aka TextEditableView interface (or something like it), where TextEditableView is a subinterface of View with text-editing specific capabilities. Returns the TextLayout which is responsible for painting the textual content of this element


getTextToModelTransform

public AffineTransform getTextToModelTransform()
Return an affine transform which translat b/w the TextLayout coordinate system and the jpicedt.graphic.model coordinate system. [SR:pending] refactor method name to something more explanatory


http://www.jpicedt.org

Submit a bug : syd@jpicedt.org