/*
* Created on May 11, 2006
*/
package org.seqcode.viz.metaprofile;
import java.awt.*;
import org.seqcode.viz.DynamicAttribute;
import org.seqcode.viz.paintable.*;
/**
* @author tdanford
*/
public class FauxGenePaintable extends AbstractPaintable {
private double widthFraction;
private DynamicAttribute attrib;
public FauxGenePaintable(double wf) {
widthFraction = wf;
attrib = new DynamicAttribute();
}
public FauxGenePaintable(int h, int w, double wf) {
super(h, w);
widthFraction = wf;
attrib = new DynamicAttribute();
}
public void setWidthFraction(double wf) { widthFraction = wf; }
public void paintItem(Graphics g, int x1, int y1, int x2, int y2) {
Graphics2D g2 = (Graphics2D)g;
int w = x2 - x1, h = y2 - y1;
int mx = x1 + (int)Math.round((double)w * widthFraction);
//int lineWidth = Math.max(1, 2 * attrib.getLineWidth(w, h) / 3);
int lineWidth = 3;
Stroke oldStroke = g2.getStroke();
g2.setStroke(new BasicStroke((float)lineWidth));
int spacing = h/6 + (lineWidth * 2);
int ah = h - spacing * 2;
int my = y1 + h/2;
int ty = my - ah/2;
int by = my + ah/2;
g2.setColor(Color.black);
g2.drawLine(x1, my, mx, my);
g2.drawLine(mx, ty, mx, by);
g2.drawLine(mx, ty, x2, ty);
g2.drawLine(mx, by, x2, by);
int lxa = mx - spacing;
int rxa = mx + spacing * 2;
int txa = rxa + spacing;
int[] ax = {lxa, lxa, rxa, rxa, txa, rxa, rxa };
int bya = my;
int tya = ty - spacing;
int[] ay = { bya, tya, tya, tya - spacing, tya, tya + spacing, tya };
g2.drawPolyline(ax, ay, 7);
g2.setStroke(oldStroke);
}
}