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

de.invation.code.toval.graphic.component.VisualCircularPointGroupPanel Maven / Gradle / Ivy

package de.invation.code.toval.graphic.component;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.util.Iterator;

import javax.swing.JPanel;

import de.invation.code.toval.graphic.misc.CircularPointGroup;
import de.invation.code.toval.graphic.misc.PColor;
import de.invation.code.toval.graphic.misc.Position;
import de.invation.code.toval.graphic.util.GraphicUtils;

public class VisualCircularPointGroupPanel extends JPanel{
	private static final long serialVersionUID = 1L;
	
	protected static final Dimension defaultDimension = new Dimension(400,400);
	protected Dimension dimension = defaultDimension;
	protected Point center; 
	protected CircularPointGroup pointGroup;
	
	private VisualCircularPointGroupPanel(Dimension dimension){
		this.dimension = dimension;
		setPreferredSize(dimension);
		center = new Point(dimension.width/2,dimension.height/2);
	}
	
	public VisualCircularPointGroupPanel(CircularPointGroup circularPointGroup){
		this(new Dimension(circularPointGroup.getRequiredDiameter(), circularPointGroup.getRequiredDiameter()));
		this.pointGroup = circularPointGroup;	
	}
	
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		drawPoints();
	}
	
	protected void drawPoints(){
		Graphics g = getGraphics();
		Iterator iter = pointGroup.getColors().iterator();
		PColor actColor;
		while(iter.hasNext()){
			actColor = iter.next();
			g.setColor(new Color(actColor.getRGB()));
			for(Position p: pointGroup.getCoordinatesFor(actColor)){
				GraphicUtils.fillCircle(g, (int) (center.getX()+p.getX()), (int) (center.getY()+p.getY()), pointGroup.getPointDiameter());
			}
		}
	}
	
	public void asFrame() {
		new DisplayFrame(this, true);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy