Package com.bbn.openmap.omGraphics.awt

Source Code of com.bbn.openmap.omGraphics.awt.AbstractShapeDecoration

package com.bbn.openmap.omGraphics.awt;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Stroke;

/**
* A minimal implementation of ShapeDecoration, adds members and
* accessors for graphic attributes :
* <UL>
* <LI>length : the decoration length, along the path to decorate
* </LI>
* <LI>width : the decoration width, normal to the path to decorate
* </LI>
* <LI>orientation : the decoration is on the left or on the right of
* the path</LI>
* <LI>stroke, paint : the stroke and paint to be used</LI>
* </UL>
*
* @author Eric LEPICIER
* @version 27 juil. 2002
*/
public abstract class AbstractShapeDecoration implements ShapeDecoration {

    private float width;
    private float length;
    private int orientation;
    private Stroke stroke;
    private Paint paint;

    private Stroke saveStroke;
    private Paint savePaint;

    /**
     * Constructor.
     *
     * @param length
     * @param width
     * @param orientation
     */
    public AbstractShapeDecoration(float length, float width, int orientation) {
        this.length = length;
        this.width = width;
        this.orientation = orientation;
    }

    /**
     * Returns the length.
     *
     * @return float
     */
    public float getLength() {
        return length;
    }

    /**
     * Sets the length.
     *
     * @param length The length to set
     */
    public void setLength(float length) {
        this.length = length;
    }

    /**
     * Returns the width.
     *
     * @return float
     */
    public float getWidth() {
        return width;
    }

    /**
     * Sets the width.
     *
     * @param width The width to set
     */
    public void setWidth(float width) {
        this.width = width;
    }

    /**
     * Returns the orientation.
     *
     * @return int
     */
    public int getOrientation() {
        return orientation;
    }

    /**
     * Sets the orientation.
     *
     * @param orientation The orientation to set
     */
    public void setOrientation(int orientation) {
        this.orientation = orientation;
    }

    /**
     * Reverts the orientation
     *
     * @see com.bbn.openmap.omGraphics.awt.ShapeDecoration#revert()
     */
    public void revert() {
        orientation = orientation == RIGHT ? LEFT : RIGHT;
    }

    /**
     * Returns the paint.
     *
     * @return Paint
     */
    public Paint getPaint() {
        return paint;
    }

    /**
     * Returns the stroke.
     *
     * @return Stroke
     */
    public Stroke getStroke() {
        return stroke;
    }

    /**
     * Sets the paint.
     *
     * @param paint The paint to set
     */
    public void setPaint(Paint paint) {
        this.paint = paint;
    }

    /**
     * Sets the stroke.
     *
     * @param stroke The stroke to set
     */
    public void setStroke(Stroke stroke) {
        this.stroke = stroke;
    }

    /**
     * Applies stroke and paint to the Graphics, saving previous
     * settings
     *
     * @param g
     */
    protected void setGraphics(Graphics g) {
        Graphics2D g2D = (Graphics2D) g;
        saveStroke = g2D.getStroke();
        savePaint = g2D.getPaint();
        if (stroke != null)
            g2D.setStroke(stroke);
        if (paint != null)
            g2D.setPaint(paint);
    }

    /**
     * Restores previous settings to the Graphics. Beware : no
     * verification is made to be sure that it is the same Graphics
     * ...
     *
     * @param g
     */
    protected void restoreGraphics(Graphics g) {
        Graphics2D g2D = (Graphics2D) g;
        g2D.setStroke(saveStroke);
        g2D.setPaint(savePaint);
    }
}
TOP

Related Classes of com.bbn.openmap.omGraphics.awt.AbstractShapeDecoration

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.