Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| http://www.jpicedt.org
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## jpicedt.graphic.view
Class DefaultViewFactory.TextViewHybrid

    java.lang.Object
      jpicedt.graphic.view.AbstractView
          jpicedt.graphic.view.DefaultViewFactory.LeafElementView
              jpicedt.graphic.view.DefaultViewFactory.TextViewHybrid

All Implemented Interfaces:
  Runnable, View, ViewConstants

Enclosing class:
  DefaultViewFactory

public class DefaultViewFactory.TextViewHybrid
extends DefaultViewFactory.LeafElementView
implements Runnable

a View for rendering Text's based on bitmaps (when available) or TextLayout (when image not available)

Field Summary
`protected boolean` | `areDimensionsComputed`
`protected int` | `fileDPI`
`protected BufferedImage` | `image`
`protected double` | `strx`
`protected double` | `stry`
`protected AffineTransform` | `text2ModelTr`
`protected TextLayout` | `textLayout`

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.TextViewHybrid(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 void` | `getDimensionsFromLogFile(BufferedReader reader, PicText text)`
`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.
`void` | `run()`
`protected void` | `syncBounds()` Synchronizes bounding box with the model ;
`protected void` | `syncFrame()` synchronize frame shape and location (TextLayout only) ; this is called by syncShape(), so that subclasser might override easily when only rectangular shapes are availables.
`protected void` | `syncShape()` Synchronize the textLayout and the shape (=frame box, by calling syncFrame) with the model When TextLayout is used, this delegates to getRotation() where computing rotation angle is concerned, and updates the AffineTransform returned by getTextToModelTransform().
`protected void` | `syncStringLocation()` update strx stry = 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

### strx

    protected double strx

### stry

    protected double stry

### textLayout

    protected TextLayout textLayout

### text2ModelTr

    protected AffineTransform text2ModelTr

### image

    protected BufferedImage image

### areDimensionsComputed

    protected boolean areDimensionsComputed

### fileDPI

    protected int fileDPI

Constructor Detail

### DefaultViewFactory.TextViewHybrid

    public DefaultViewFactory.TextViewHybrid(PicText te)

  construct a new View for the given PicRectangle

Method Detail

### getRotation

    protected double getRotation()

  Returns the text rotation in radians : subclassers that don't support rotating text may return 0 here. Used by TextLayout only.

### 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`

### run

    public void run()

  Specified by:
    `run` in interface `Runnable`

### syncStringLocation

    protected void syncStringLocation()

  update strx stry = location of TextLayout's bottom-Left corner with respect to PicText's anchor-point

### syncShape

    protected void syncShape()

  Synchronize the textLayout and the shape (=frame box, by calling syncFrame) with the model When TextLayout is used, this delegates to getRotation() where computing rotation angle is concerned, and updates the AffineTransform returned by getTextToModelTransform().

  Overrides:
    `syncShape` in class `DefaultViewFactory.LeafElementView`

### syncFrame

    protected void syncFrame()

  synchronize frame shape and location (TextLayout only) ; this is called by syncShape(), so that subclasser might override easily when only rectangular shapes are availables.

### getDimensionsFromLogFile

    protected void getDimensionsFromLogFile(BufferedReader reader,
                                            PicText text)

### syncBounds

    protected void syncBounds()

  Synchronizes bounding box with the model ;

  Overrides:
    `syncBounds` in class `DefaultViewFactory.LeafElementView`

### 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`
  Parameters:
    `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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| http://www.jpicedt.org
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug : syd@jpicedt.org