All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jcckit.plot.PlotCanvas Maven / Gradle / Ivy

Go to download

PlantUML is a component that allows to quickly write : * sequence diagram, * use case diagram, * class diagram, * activity diagram, * component diagram, * state diagram * object diagram

The newest version!
/*
 * Copyright 2003-2004, Franz-Josef Elmer, All rights reserved
 *
 * This library 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 2.1 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
 * (http://www.gnu.org/copyleft/lesser.html).
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
package jcckit.plot;

import jcckit.data.DataPlot;
import jcckit.graphic.Anchor;
import jcckit.graphic.ClippingRectangle;
import jcckit.util.ConfigParameters;

/**
 * An abstract canvas containg a single {@link Plot}. The canvas is specified
 * by a {@link ClippingRectangle}, called paper. A horizontal and
 * vertical {@link Anchor} determine the position of the paper on the actual
 * device.
 * 
 * @author Franz-Josef Elmer
 */
public class PlotCanvas implements PlotListener {
	/** Configuration parameter key. */
	public static final String PAPER_KEY = "paper", HORIZONTAL_ANCHOR_KEY = "horizontalAnchor",
			VERTICAL_ANCHOR_KEY = "verticalAnchor", PLOT_KEY = "plot";
	private final ClippingRectangle _paper;
	private final Anchor _horizontalAnchor;
	private final Anchor _verticalAnchor;
	private final Plot _plot;

	/**
	 * Creates an instance from the specified configuration parameters. 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
Key & Default ValueTypeMandatoryDescription
horizontalAnchor = centerStringnoHorizontal position of the paper relative to the device border. * Possible values are left, center, and * right.
paper = 0, 0, 1, 0.6double[]noRectangle defining the paper. The first two values determine the x- * and y- coordinates (in device-independent units) of the lower-left * corner. The last two values determine the upper-right corner.
plot = default values of {@link Plot}ConfigParametersnoDefinition of the {@link Plot}.
verticalAnchor = centerStringnoVertical position of the paper relative to the device border. * Possible values are top, center, and * bottom.
*

* Note, that this instance registers itself at the wrapped {@link Plot} * instance. */ public PlotCanvas(ConfigParameters config) { double[] paper = config.getDoubleArray(PAPER_KEY, new double[] { 0, 0, 1, 0.6 }); _paper = new ClippingRectangle(paper[0], paper[1], paper[2], paper[3]); _horizontalAnchor = Anchor.getHorizontalAnchor(config, HORIZONTAL_ANCHOR_KEY, Anchor.CENTER); _verticalAnchor = Anchor.getVerticalAnchor(config, VERTICAL_ANCHOR_KEY, Anchor.CENTER); _plot = new Plot(config.getNode(PLOT_KEY)); _plot.addPlotListener(this); } /** Returns the paper definition. */ public ClippingRectangle getPaper() { return _paper; } /** Returns the horizontal anchor. */ public Anchor getHorizontalAnchor() { return _horizontalAnchor; } /** Returns the vertical anchor. */ public Anchor getVerticalAnchor() { return _verticalAnchor; } /** Returns the plot. */ public Plot getPlot() { return _plot; } /** * Connects the wrapped {@link Plot} instance with the specified * {@link DataPlot}. * * @param dataPlot * Data to be connected with this plot canvas. Can be * null in order to disconnect this instance from a * DataPlot. */ public void connect(DataPlot dataPlot) { _plot.connect(dataPlot); } /** * Handles the spcified event. Here nothing is done. But subclass may * override this method. */ public void plotChanged(PlotEvent event) { } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy