/* 
 * This code is part of Project Waterloo from King's College London
 * 
 *
 * Copyright King's College London  2011-
 * 
 * @author Malcolm Lidierth, King's College London  [Contact]
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see .
 *
 */
package kcl.waterloo.annotation;

import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import kcl.waterloo.marker.GJMarker;

/**
 *
 * Defines the methods for use by annotations.
 *
 * @param 
 * @param 
 * @param 
 * @param 
 * @param 
 * @author Malcolm Lidierth, King's College London  [Contact]
 */
public interface GJAnnotationInterface {

    /**
     * @return the Annotation
     */
    public T getPath();

    /**
     * @param annotation
     */
    public void setPath(T annotation);

    /**
     * @return the Marker
     */
    public GJMarker getMarker();

    /**
     * @param Marker the Marker to set
     */
    public void setMarker(GJMarker Marker);

    /**
     * @return the plot
     */
    public U getParentGraph();

    /**
     * @param plot the plot to set
     */
    public void setParentGraph(U plot);

    /**
     * @return the LineStroke
     */
    public V getLineStroke();

    /**
     * @param LineStroke the LineStroke to set
     */
    public void setLineStroke(V LineStroke);

    /**
     * @return the LineColor
     */
    public W getLineColor();

    /**
     * @param LineColor the LineColor to set
     */
    public void setLineColor(W LineColor);

    /**
     * @return the Fill
     */
    public W getFill();

    /**
     * @param Fill the Fill to set
     */
    public void setFill(W Fill);

    /**
     * @return the Font
     */
    public X getFont();

    /**
     * @param Font the Font to set
     */
    public void setFont(X Font);

    /**
     * @return the X
     */
    public double getXData();

    /**
     * @param X the X to set
     */
    public void setXData(double X);

    /**
     * @return the Y
     */
    public double getYData();

    /**
     * @param Y the Y to set
     */
    public void setYData(double Y);

    /**
     * @return the Text
     */
    public String getText();

    /**
     * @param Text the Text to set
     */
    public void setText(String Text);

    /**
     * @return the TextColor
     */
    public W getTextColor();

    /**
     * @param TextColor the TextColor to set
     */
    public void setTextColor(W TextColor);

    /**
     * @return the Name
     */
    public String getName();

    /**
     * @param Name the Name to set
     */
    public void setName(String Name);

    /**
     * Sets an extra data object used internally by some annotations.
     *
     * @param o
     */
    public void setExtra(GJMarker o);

    /**
     * Gets the extra data.
     *
     * @return the GJMarker
     */
    public GJMarker getExtra();

    /**
     * Removes the annotation
     *
     */
    public void remove();

    /**
     * Removes annotation(s) named by the string
     *
     * @param s the name of the annotation(s) to remove
     */
    public void remove(String s);

    /**
     * Paints the annotation to the specified Graphics2D object. The
     * AffineTransform should be set up to scale and translate the graphics from
     * the GJGraphInterface space specified in the GJAnnotation instance.
     *
     * @param g2 Graphics2D instance
     * @param af AffineTransform
     */
    public void paintAnnotation(Graphics2D g2, AffineTransform af);
}

 

Ads help maintain this website.