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

render.RectangleRenderer Maven / Gradle / Ivy

Go to download

TimeBench, a flexible, easy-to-use, and reusable software library written in Java that provides foundational data structures and algorithms for time- oriented data in Visual Analytics.

The newest version!
package render;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.geom.Point2D;

import prefuse.util.ColorLib;
import prefuse.visual.VisualItem;

public class RectangleRenderer implements prefuse.render.Renderer {
	/**
	 * Draws a filled rectangle as fast as possible.
	 * @see prefuse.render.Renderer#render(java.awt.Graphics2D, prefuse.visual.VisualItem)
	 */
	public void render(Graphics2D g, VisualItem item) {
		if(item.isHover() || item.isHighlighted()) {
			item.setStrokeColor(item.getStartFillColor());			
		} else {
			item.setStrokeColor(item.getFillColor());
		}

		g.setColor(ColorLib.getColor(item.getFillColor()));
		g.fillRect((int)item.getStartX(), (int)item.getStartY(), (int)(item.getEndX()-item.getStartX()+1), (int)(item.getEndY()-item.getStartY()+1));
		
		g.setColor(ColorLib.getColor(item.getStrokeColor()));
		if(item.isHighlighted())
			g.setStroke(new BasicStroke(5));
		else
			g.setStroke(new BasicStroke(1));
		g.drawRect((int)item.getStartX(), (int)item.getStartY(), (int)(item.getEndX()-item.getStartX()+1), (int)(item.getEndY()-item.getStartY()+1));
	}

	/**
	 * Checks whether a point is inside the bounds of the item.
	 * @see prefuse.render.Renderer#locatePoint(java.awt.geom.Point2D, prefuse.visual.VisualItem)
	 */
	public boolean locatePoint(Point2D p, VisualItem item) {
        return item.getBounds().contains(p);
	}

	/**
	 * Sets the bounds of the item to the bounds of the rectangle.
	 * @see prefuse.render.Renderer#setBounds(prefuse.visual.VisualItem)
	 */
	public void setBounds(VisualItem item) {
		item.setBounds(item.getStartX(), item.getStartY(), item.getEndX()-item.getStartX()+1, item.getEndY()-item.getStartY()+1);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy