Class DefaultViewFactory

  • All Implemented Interfaces:
    PicObjectConstants, ViewFactory
    Direct Known Subclasses:
    EepicViewFactory, PstricksViewFactory

    public class DefaultViewFactory
    extends java.lang.Object
    implements ViewFactory, PicObjectConstants
    This is the default factory used to create a View for a given Element ; should be used when one wants to render all Element's attributes ; otherwise subclass with your own ViewFactory and override :
    • createView : simply return your own View for some or all Element's (then call super.createView)
    • factory methods, e.g. createStroke, createPaintForInterior, createPaintForOutline, ... : these methods are called by various View's to extract rendering information from PicAttributeSet's when common behaviour is expected, whatever the particular Element being actually rendered.
    Since:
    jPicEdt 1.3.2
    Version:
    $Id: DefaultViewFactory.java,v 1.47.2.2 2007/09/02 11:56:29 reynal Exp $
    Author:
    Sylvain Reynal
    • Field Detail

      • TEXT_FONT_DEFAULT

        public static java.awt.Font TEXT_FONT_DEFAULT
        default font used to display text with TextView
      • KEY_TEXT_FONT

        public static java.lang.String KEY_TEXT_FONT
        key used to fetch the font family value from a Properties object
      • TEXT_FONT_SCALE

        protected static final float TEXT_FONT_SCALE
        scaling factor to be applied to the default font before rendering, so as to compensate for zoom factor
        See Also:
        Constant Field Values
      • textFont

        protected static java.awt.Font textFont
        font used to display text strings with TextView
    • Constructor Detail

      • DefaultViewFactory

        public DefaultViewFactory()
    • Method Detail

      • main

        public static void main​(java.lang.String[] arg)
        for debugging purpose
      • configure

        public static void configure​(java.util.Properties preferences)
        Configure static fields using the given Properties object
        Parameters:
        properties - used to read shared parameters If null, default values are used.
      • createView

        public View createView​(Element element)
        Specified by:
        createView in interface ViewFactory
        Returns:
        a View for the given Element Current implementation returns a View appropriate for the following elements :
        • PicEllipse and any subclass -> EllipseView ;
        • BranchElement -> CompositeView ;
        • PicParallelogram -> ParallelogramView ;
        • PicEllipse / PicCircleFrom3Points -> EllipseView ;
        • PicText -> TextView ;
        • other -> null (this give a change for the receiver to provide its own View)
      • createStroke

        protected java.awt.Stroke createStroke​(PicAttributeSet set)
        Returns:
        a Stroke built from the given attributes ; null if LINE_STYLE=NONE. All currently supported attributes for stroke are rendered.
      • createPaintForOutline

        protected java.awt.Paint createPaintForOutline​(PicAttributeSet set)
        Returns a Paint object from the given attributes, that is suited for painting an outline, or null if LINE_STYLE is NONE.

        All currently supported attributes for painting an outline are rendered. It's up to subclassers to adapt this behavior to their need (probably by restricting it).

      • createPaintForInterior

        protected java.awt.Paint createPaintForInterior​(PicAttributeSet set)
        Returns a Paint object from the given attributes, that is suited for painting the interior of a shape.

        The returned object depends on the FILL_STYLE and FILL_COLOR attributes of the given set:

        • FILL_STYLE = NONE: returns null
        • FILL_STYLE = SOLID, VLINES, VLINES_FILLED, HLINES, HLINES_FILLED, CROSSHATCH and CROSSHATCH_FILLED: returns a Color object created from FILL_COLOR.
        To sum up, all currently supported attributes (as defined in jpicedt.graphic.model.PicObjectConstants) for painting the interior of shapes are rendered. [pending] gradient (need to add some attributes).
      • paintHatches

        protected void paintHatches​(java.awt.Graphics2D g,
                                    PicAttributeSet set,
                                    java.awt.Shape shape)
        paint hatches (vlines,...) depending on the FILL_STYLE attributes of the given set. Factories that don't paint hatches should override this method to do nothing.
        Parameters:
        shape - used to clip the hatch (ie the shape the calling view must render)
      • paintShadow

        protected void paintShadow​(java.awt.Graphics2D g,
                                   PicAttributeSet set,
                                   java.awt.Shape shape)
        paint shadow depending on the SHADOW attribute and rel. Factory that don't paint shadow should override to do nothing.
        Parameters:
        shape - the Shape under which to drop a shadow
        set - used to fetch the shadow attributes
      • paintOverStrike

        protected void paintOverStrike​(java.awt.Graphics2D g,
                                       PicAttributeSet set,
                                       java.awt.Shape shape)
        paint overstrike depending on the OVER_STRIKE attribute and rel. Factory that don't overstrike should override to do nothing.
        Parameters:
        shape - the Shape to overstrike
        set - used to fetch the overstrike attributes
      • createArrow

        protected Arrow createArrow​(PicAttributeSet set,
                                    PicAttributeName direction)
        Parameters:
        direction - LEFT_ARROW or RIGHT_ARROW
        Returns:
        an Arrow from the given attribute set, or null if Arrow.NONE.