SysParam.cs 2.24 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Net;
using System.Xml.Serialization;
using System.IO;

namespace FLY.FeedbackRenZiJia.UI.Client
{
    //代替TDInitParam
    public class SysParam : Misc.ISaveToXml, INotifyPropertyChanged
    {
        static SysParam current;
        public static SysParam Current 
        {
            get {
                if (current == null)
                {
                    current = new SysParam();
                }
                return current;
            }
        }
        
        #region 属性,成员变量的代理
        public IPEndPoint ServerEP { get; set; }


        public IPEndPoint ThickEP { get; set; }


        public double PositionX { get; set; } = 5;


        public double PositionWidth { get; set; } = 95;

        public double InnerPlotPositionX { get; set; } = 5;

        public double InnerPlotPositionY { get; set; } = 5;

        public double InnerPlotPositionWidth { get; set; } = 92;

        public double InnerPlotPositionHeight { get; set; } = 80;

        /// <summary>
        /// 主界面隐藏稳定状态
        /// </summary>
        public bool IsHideStable { get; set; } 

        public string Path = "feedbackrenzijiaparam.xml";
        #endregion
        public SysParam() 
        {
            ServerEP = Misc.StringConverter.ToIPEndPoint("127.0.0.1:20007");
            ThickEP = Misc.StringConverter.ToIPEndPoint("127.0.0.1:20006");
            if (!Load())
                Save();
        }



        public bool Load()
        {
            return Misc.SaveToXmlHepler.Load(Path,this);
        }
        public void Save()
        {
            Misc.SaveToXmlHepler.Save(Path, this);
        }


        public string[] GetSavePropertyNames()
        {
            return new string[]{
                "ServerEP",
                "ThickEP",
                "PositionX",
                "PositionWidth",
                "InnerPlotPositionX",
                "InnerPlotPositionY",
                "InnerPlotPositionWidth",
                "InnerPlotPositionHeight",
                "IsHideStable"
            };
        }

        public event PropertyChangedEventHandler PropertyChanged;
    }
}