You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

188 lines
7.7 KiB

using log4net;
using SparkClient.Model.Helper;
using SparkClient.ViewModel.Grading;
namespace SparkClient.ViewModel.Configuration.SettingsPages;
/// <summary>
/// 系统配置中颜色配置页面VM
/// </summary>
public class ModelColorSetPageVM : BaseViewModel
{
private static readonly ILog Logger = LogManager.GetLogger(typeof(ModelColorSetPageVM));
private string _FACET_COLOR;
private string _BORDER_COLOR;
private string _SELECTED_FACET_COLOR;
private string _SELECTED_BORDER_COLOR;
private string _SELECTED_TYPE_COLOR;
private string _SELECTED_FONT_COLOR;
private string _RULER_COLOR;
private string _ARROW_COLOR;
private string _BLEMISH_FACET_COLOR;
private string _TABLE_FACET_COLOR;
private string _UPPER_MAIN_FACET_COLOR;
private string _STAR_FACET_COLOR;
private string _UPPER_GIRDLE_FACET_COLOR;
private string _GIRDLE_FACET_COLOR;
private string _PAVILION_MAIN_FACET_COLOR;
private string _LOWER_GIRDLE_FACET_COLOR;
private string _CULET_COLOR;
/// <summary>
/// 面部颜色
/// </summary>
public string FACET_COLOR { get { return _FACET_COLOR; } set { _FACET_COLOR = value; OnPropertyChanged(nameof(FACET_COLOR)); } }
/// <summary>
/// 边框颜色
/// </summary>
public string BORDER_COLOR { get { return _BORDER_COLOR; } set { _BORDER_COLOR = value; OnPropertyChanged(nameof(BORDER_COLOR)); } }
/// <summary>
/// 选中面颜色
/// </summary>
public string SELECTED_FACET_COLOR { get { return _SELECTED_FACET_COLOR; } set { _SELECTED_FACET_COLOR = value; OnPropertyChanged(nameof(SELECTED_FACET_COLOR)); } }
/// <summary>
/// 选中面边框颜色
/// </summary>
public string SELECTED_BORDER_COLOR { get { return _SELECTED_BORDER_COLOR; } set { _SELECTED_BORDER_COLOR = value; OnPropertyChanged(nameof(SELECTED_BORDER_COLOR)); } }
/// <summary>
/// 选中面同类面颜色
/// </summary>
public string SELECTED_TYPE_COLOR { get { return _SELECTED_TYPE_COLOR; } set { _SELECTED_TYPE_COLOR = value; OnPropertyChanged(nameof(SELECTED_TYPE_COLOR)); } }
/// <summary>
/// 选中面文字信息颜色
/// </summary>
public string SELECTED_FONT_COLOR { get { return _SELECTED_FONT_COLOR; } set { _SELECTED_FONT_COLOR = value; OnPropertyChanged(nameof(SELECTED_FONT_COLOR)); } }
/// <summary>
/// 标识线条颜色
/// </summary>
public string RULER_COLOR { get { return _RULER_COLOR; } set { _RULER_COLOR = value; OnPropertyChanged(nameof(RULER_COLOR)); } }
/// <summary>
/// 正方向标记颜色
/// </summary>
public string ARROW_COLOR { get { return _ARROW_COLOR; } set { _ARROW_COLOR = value; OnPropertyChanged(nameof(ARROW_COLOR)); } }
/// <summary>
/// 瑕疵面颜色
/// </summary>
public string BLEMISH_FACET_COLOR { get { return _BLEMISH_FACET_COLOR; } set { _BLEMISH_FACET_COLOR = value; OnPropertyChanged(nameof(BLEMISH_FACET_COLOR)); } }
/// <summary>
/// 台面颜色
/// </summary>
public string TABLE_FACET_COLOR { get { return _TABLE_FACET_COLOR; } set { _TABLE_FACET_COLOR = value; OnPropertyChanged(nameof(TABLE_FACET_COLOR)); } }
/// <summary>
/// 风筝面颜色
/// </summary>
public string UPPER_MAIN_FACET_COLOR { get { return _UPPER_MAIN_FACET_COLOR; } set { _UPPER_MAIN_FACET_COLOR = value; OnPropertyChanged(nameof(UPPER_MAIN_FACET_COLOR)); } }
/// <summary>
/// 星刻面颜色
/// </summary>
public string STAR_FACET_COLOR { get { return _STAR_FACET_COLOR; } set { _STAR_FACET_COLOR = value; OnPropertyChanged(nameof(STAR_FACET_COLOR)); } }
/// <summary>
/// 上腰面颜色
/// </summary>
public string UPPER_GIRDLE_FACET_COLOR { get { return _UPPER_GIRDLE_FACET_COLOR; } set { _UPPER_GIRDLE_FACET_COLOR = value; OnPropertyChanged(nameof(UPPER_GIRDLE_FACET_COLOR)); } }
/// <summary>
/// 腰面颜色
/// </summary>
public string GIRDLE_FACET_COLOR { get { return _GIRDLE_FACET_COLOR; } set { _GIRDLE_FACET_COLOR = value; OnPropertyChanged(nameof(GIRDLE_FACET_COLOR)); } }
/// <summary>
/// 亭部主刻面颜色
/// </summary>
public string PAVILION_MAIN_FACET_COLOR { get { return _PAVILION_MAIN_FACET_COLOR; } set { _PAVILION_MAIN_FACET_COLOR = value; OnPropertyChanged(nameof(PAVILION_MAIN_FACET_COLOR)); } }
/// <summary>
/// 下腰面颜色
/// </summary>
public string LOWER_GIRDLE_FACET_COLOR { get { return _LOWER_GIRDLE_FACET_COLOR; } set { _LOWER_GIRDLE_FACET_COLOR = value; OnPropertyChanged(nameof(LOWER_GIRDLE_FACET_COLOR)); } }
/// <summary>
/// 底面颜色
/// </summary>
public string CULET_COLOR { get { return _CULET_COLOR; } set { _CULET_COLOR = value; OnPropertyChanged(nameof(CULET_COLOR)); } }
private Dictionary<string, string> colors;
public ModelColorSetPageVM()
{
InitSetting();
}
/// <summary>
/// 页面初始化参数赋值
/// </summary>
private void InitSetting()
{
try
{
colors = new Dictionary<string, string>();
colors.Add("FACET_COLOR", "面部颜色");
colors.Add("BORDER_COLOR", "边框颜色");
colors.Add("SELECTED_FACET_COLOR", "选中面颜色");
colors.Add("SELECTED_BORDER_COLOR", "选中面边框颜色");
colors.Add("SELECTED_TYPE_COLOR", "选中面同类面颜色");
colors.Add("SELECTED_FONT_COLOR", "选中面文字信息颜色");
colors.Add("RULER_COLOR", "标识线条颜色");
colors.Add("ARROW_COLOR", "正方向标记颜色");
colors.Add("BLEMISH_FACET_COLOR", "瑕疵面颜色");
colors.Add("TABLE_FACET_COLOR", "台面颜色");
colors.Add("UPPER_MAIN_FACET_COLOR", "风筝面颜色");
colors.Add("STAR_FACET_COLOR", "星刻面颜色");
colors.Add("UPPER_GIRDLE_FACET_COLOR", "上腰面颜色");
colors.Add("GIRDLE_FACET_COLOR", "腰面颜色");
colors.Add("PAVILION_MAIN_FACET_COLOR", "亭部主刻面颜色");
colors.Add("LOWER_GIRDLE_FACET_COLOR", "下腰面颜色");
colors.Add("CULET_COLOR", "底面颜色");
foreach (var color in colors)
{
setColor(color.Key);
}
}
catch (Exception ex)
{
Logger.Error($"全局异常捕获:{ex.Message}", ex);
}
}
/// <summary>
/// 颜色数据更新
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
public bool SaveUpdate(object param)
{
try
{
DataBaseHelper.BeginTransaction();
foreach (var color in colors)
{
updateDataBase(color.Key);
}
DataBaseHelper.commit();
return true;
}
catch (Exception ex)
{
Logger.Error($"全局异常捕获:{ex.Message}", ex);
return false;
}
}
private void updateDataBase(string SETTING_ID)
{
Type type = this.GetType();
Settings colorData = new Settings()
{
Key = SETTING_ID,
ItemName = colors[SETTING_ID],
Value = (string)type.GetProperty(SETTING_ID).GetValue(this),
};
colorData.insert();
}
/// <summary>
/// 画面中颜色属性赋值
/// </summary>
/// <param name="SETTING_ID"></param>
private void setColor(string SETTING_ID)
{
var value = Settings.SelectValueById(SETTING_ID);
if (value == null || string.IsNullOrEmpty(value))
{
value = "#FF000000";
}
Type type = this.GetType();
type.GetProperty(SETTING_ID).SetValue(this, value);
}
}