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

org.biojava.bio.gui.sequence.LabelRenderer Maven / Gradle / Ivy

The newest version!
/*
 *                    BioJava development code
 *
 * This code may be freely distributed and modified under the
 * terms of the GNU Lesser General Public Licence.  This should
 * be distributed with the code.  If you do not have a copy,
 * see:
 *
 *      http://www.gnu.org/copyleft/lesser.html
 *
 * Copyright for this code is held jointly by the individual
 * authors.  These should be listed in @author doc comments.
 *
 * For more information on the BioJava project and its aims,
 * or to join the biojava-l mailing list, visit the home page
 * at:
 *
 *      http://www.biojava.org/
 *
 */

package org.biojava.bio.gui.sequence;

import java.awt.Graphics2D;

/**
 * The interface for things that can render labels for a line of information
 * about a sequence.
 * 

* Renderers are always activated within the context of a particular * SequenceRenderContext. * A single LabelRenderer can be shared among many sequence panels, or added * multiple times to the same panel. The renderer is required to request how * much leading and trailing space it requires, as well as the depth (space * orthogonal to the direction that the sequence is rendered). * * @author Matthew Pocock */ public interface LabelRenderer { /** * Render a label for the information for sp to g. * * @param g the Graphics2D to render to * @param sp the SequencePanel that encapsulates the information to render * @param min the minimum symbol to render (inclusive) * @param max the maximum symbol to render (inclusive) */ void paint( Graphics2D g, SequenceRenderContext sp, int min, int max, SequenceRenderContext.Border border ); /** * Retrieve the minimum space required to render the label. * * @param sp the SequencePanel to return info for * @return the leading distance of the renderer for that sequence panel */ double getMinimumWidth(SequenceRenderContext sp); public static LabelRenderer RENDER_NOTHING = new RenderNothing(); static class RenderNothing implements LabelRenderer { public void paint( Graphics2D g, SequenceRenderContext sp, int min, int max, SequenceRenderContext.Border border ) {} public double getMinimumWidth(SequenceRenderContext src) { return 0.0; } }; }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy