package com.imyeyu.fx.ui.components;

import com.imyeyu.fx.ui.TimiFXUI;
import javafx.scene.paint.Paint;
import javafx.scene.shape.SVGPath;

/**
 * SVG 图标，主要简化 SVGPath 构造函数和可克隆（{@link #renew()}）
 *
 * @author 夜雨
 * @since 2021-02-13 13:35
 */
public class SVGIcon extends SVGPath implements TimiFXUI, TimiFXUI.Colorful {

	private final Paint color;
	private final String path;

	/**
	 * 构造 SVG 图标
	 *
	 * @param path SVG 路径
	 */
	public SVGIcon(String path) {
		this(path, ICON);
	}

	/**
	 * 构造 SVG 图标
	 *
	 * @param path  SVG 路径
	 * @param color 颜色
	 */
	public SVGIcon(String path, String color) {
		this(path, Paint.valueOf(color));
	}

	/**
	 * 构造 SVG 图标
	 *
	 * @param color 颜色
	 * @param path  SVG 路径
	 */
	public SVGIcon(Paint color, String path) {
		this(path, color);
	}

	/**
	 * 构造 SVG 图标
	 *
	 * @param path  SVG 路径
	 * @param color 颜色
	 */
	public SVGIcon(String path, Paint color) {
		this.path = path;
		this.color = color;

		setFill(color);
		setContent(path);
	}

	/**
	 * 自定克隆
	 *
	 * @return 克隆对象
	 */
	public SVGIcon renew() {
		return new SVGIcon(path, color);
	}
}
