package automatvgi.components;

import automatvgi.LatexColor;
import automatvgi.edit.LabelColorSetter;
import automatvgi.edit.LineColorSetter;
import automatvgi.edit.FillColorSetter;
import automatvgi.edit.FrameEdit;

public class AutomatonStyle{
	LatexColor edgeLineColor=LatexColor.getColorByName("Black");
	LatexColor edgeLabelColor=LatexColor.getColorByName("Black");
	LatexColor stateLineColor=LatexColor.getColorByName("Black");
	LatexColor stateLabelColor=LatexColor.getColorByName("Black");
	LatexColor stateFillColor=LatexColor.getColorByName("White");
	

	public class EdgeSetter implements LabelColorSetter, LineColorSetter{
		public LatexColor getLineColor() {
			return edgeLineColor;
		}

		public LatexColor getLabelColor() {
			return edgeLabelColor;
		}

		public void setLineColor(LatexColor lineColor) {
			edgeLineColor = lineColor;
		}

		public void setLabelColor(LatexColor labelColor) {
			edgeLabelColor = labelColor;
		}
	}
	public class StateSetter implements FillColorSetter, LabelColorSetter, LineColorSetter{
		public LatexColor getLineColor() {
			return stateLineColor;
		}

		public LatexColor getLabelColor() {
			return stateLabelColor;
		}

		public LatexColor getFillColor() {
			return stateFillColor;
		}

		public void setLineColor(LatexColor lineColor) {
			stateLineColor = lineColor;
		}

		public void setFillColor(LatexColor fillColor) {
			stateFillColor = fillColor;
		}
		public void setLabelColor(LatexColor labelColor) {
			stateLabelColor = labelColor;
		}
	}
	
	public StateSetter getStateSetter(){
		return new StateSetter();
	}
	public EdgeSetter getEdgeSetter(){
		return new EdgeSetter();
	}
	
	public void edit() {
		new FrameEdit(this);
	}


}
