package automatvgi.components;

import java.awt.Graphics;

import automatvgi.LatexColor;
import automatvgi.Projection;
import automatvgi.edit.LineColorSetter;
import automatvgi.tools.Point;

public abstract class LineComponent extends AutomatonComponent implements LineColorSetter {

	protected AutomatonStyle.EdgeSetter defaut;
	protected StateComponent state;
	
	public void setDefaut(AutomatonStyle.EdgeSetter defaut) {
		this.defaut = defaut;
	}

	public LatexColor getLineColor() {
		if(lineColor==null) return defaut.getLineColor();
		return lineColor;
	}

	public LatexColor getLabelColor() {
		if(labelColor==null) return defaut.getLabelColor();
		return labelColor;
	}

	
	@Override
	public abstract void draw(Graphics g, Projection j);
	
	@Override
	public abstract void edit();
	
	@Override
	public abstract Point handle();

	public StateComponent getState() {
		return state;
	}

}
