Ejemplo n.º 1
0
        /// <summary>
        /// 当软件的[语言]改变时
        /// </summary>
        /// <param name="_languageType">是中文的性格?还是英文的性格?</param>
        public void OnLanguageChange(LanguageType _languageType)
        {
            //修改每一个数据
            for (int i = 0; i < LatelyProjectDatas.Count; i++)
            {
                LatelyProjectData _data = LatelyProjectDatas[i];

                if (_data != null)
                {
                    _data.OpenTimeString = DateTimeTool.DateTimeToString(_data.OpenTime.ToLocalTime(), TimeFormatType.YearMonthDayHourMinute);
                    if (_data.Mode == ModeType.Collaboration)
                    {
                        _data.ModeString = AppManager.Systems.LanguageSystem.CollaborativeModeString;
                    }
                    else
                    {
                        _data.ModeString = "";
                    }
                }
            }

            //修改[最近项目]的右键菜单
            if (AppManager.Uis.LatelyProjectUi.UiControl != null && AppManager.Uis.LatelyProjectUi.UiControl.Items != null)
            {
                //获取所有的Item
                List <LatelyProjectListItemControl> _items = AppManager.Uis.LatelyProjectUi.UiControl.Items;

                //遍历所有的Item
                for (int i = 0; i < _items.Count; i++)
                {
                    _items[i].OpenFolderTextBlock.Text = AppManager.Systems.LanguageSystem.LatelyProjectItemOpenFolderString;
                    _items[i].RemoveTextBlock.Text     = AppManager.Systems.LanguageSystem.LatelyProjectItemRemoveString;
                }
            }
        }
        /// <summary>
        /// 当点击[列表的Item]的[打开文件夹]按钮的时候
        /// </summary>
        /// <param name="_source">触发事件的LatelyProjectData对象</param>
        public void ClickListItemOpenFolderButton(LatelyProjectData _source)
        {
            //取到文件的信息
            FileInfo _fileInfo = new FileInfo(_source.Path);

            //如果文件存在
            if (_fileInfo.Exists == true)
            {
                //打开文件夹
                try
                {
                    System.Diagnostics.Process.Start(_fileInfo.Directory.FullName);//打开文件夹
                }
                catch (Exception e)
                {
                }
            }

            //如果文件不存在
            else
            {
                //提示:是否把这个数据从文件中移除?
                AppManager.Uis.LatelyProjectTipUi.UiControl.TipTitle   = AppManager.Systems.LanguageSystem.LatelyProjectTipTitle;
                AppManager.Uis.LatelyProjectTipUi.UiControl.TipContent = AppManager.Systems.LanguageSystem.LatelyProjectTipContent + "\n" +
                                                                         "\" " + StringTool.Clamp(_source.Name, 20) + " \"";

                //把数据传递给提示界面
                AppManager.Uis.LatelyProjectTipUi.UiControl.Tag = _source;

                //打开提示界面
                AppManager.Uis.LatelyProjectTipUi.OpenOrClose(true);
            }
        }
 /// <summary>
 /// 当点击[列表的Item]的[从列表中移除]按钮的时候
 /// </summary>
 /// <param name="_source">触发事件的LatelyProjectData对象</param>
 public void ClickListItemRemoveButton(LatelyProjectData _source)
 {
     //从列表中删除这个项目
     if (_source != null)
     {
         AppManager.Systems.LatelySystem.Remove(_source);//把这个数据从列表中删除
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 删除1个数据
        /// </summary>
        /// <param name="_data">数据</param>
        public void Remove(LatelyProjectData _data)
        {
            //删除数据
            LatelyProjectDatas.Remove(_data);

            //保存
            Save();
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 修改1个数据
        /// (修改打开时间)
        /// </summary>
        /// <param name="_data">数据</param>
        public void Change(LatelyProjectData _data)
        {
            //标识符:是否有相同的数据
            bool _isSame = false;

            //遍历所有的数据
            for (int i = 0; i < LatelyProjectDatas.Count; i++)
            {
                /* 如果有一样的数据 */
                if (LatelyProjectData.Compare(CompareType.All, _data, LatelyProjectDatas[i]) == true)
                {
                    //修改当前的打开时间
                    LatelyProjectDatas[i] = _data;
                    _isSame = true;
                    break;
                }
            }


            //如果没有一样的数据 ,就把这个数据添加到所有数据中
            if (_isSame == false)
            {
                LatelyProjectDatas.Add(_data);
            }

            //修改这个数据的打开时间
            _data.OpenTime = DateTime.UtcNow;

            //然后进行排序
            ObservableCollection <LatelyProjectData> _sortDatas = Sort(LatelyProjectDatas);

            //然后只保留10个数据
            List <LatelyProjectData> _deleteDatas = new List <LatelyProjectData>(); //要删除的数据

            for (int i = 0; i < _sortDatas.Count; i++)                              //找出要删除的数据
            {
                if (i >= 10)
                {
                    _deleteDatas.Add(_sortDatas[i]);
                }
            }
            for (int i = 0; i < _deleteDatas.Count; i++)//删除要删除的数据
            {
                _sortDatas.Remove(_deleteDatas[i]);
            }

            //赋值
            LatelyProjectDatas = _sortDatas;

            //更新Ui
            OnLanguageChange(AppManager.Systems.LanguageSystem.LanguageType);

            //保存
            Save();
        }
        //当点击[Item]中的[从列表中移除]按钮时
        private void LatelyProjectListItemControl_OnClickRemoveButton(object sender, RoutedPropertyChangedEventArgs <bool> e)
        {
            //获取控件
            LatelyProjectListItemControl _latelyProjectListItemControl = sender as LatelyProjectListItemControl;

            //获取数据
            LatelyProjectData _latelyProjectData = _latelyProjectListItemControl.DataContext as LatelyProjectData;

            //触发事件
            this.OnClickListItemRemoveButton(_latelyProjectData);
        }
        /// <summary>
        /// 这个方法,用于触发 ClickListItemRemoveButton 路由事件
        /// </summary>
        /// <param name="_value">数据</param>
        private void OnClickListItemRemoveButton(LatelyProjectData _value)
        {
            //创建路由事件参数
            RoutedPropertyChangedEventArgs <LatelyProjectData> args = new RoutedPropertyChangedEventArgs <LatelyProjectData>(_value, _value);

            //设置这是哪个路由事件?
            args.RoutedEvent = LatelyProjectUiControl.ClickListItemRemoveButtonEvent;

            //引发这个路由事件
            RaiseEvent(args);
        }
        /// <summary>
        /// 当点击[确认]按钮时
        /// </summary>
        public void ClickYesButton()
        {
            //从列表中删除这个项目
            LatelyProjectData _data = this.UiControl.Tag as LatelyProjectData;//取到当前要操作的数据

            if (_data != null)
            {
                AppManager.Systems.LatelySystem.Remove(_data);//把这个数据从列表中删除
            }

            //关闭提示
            this.OpenOrClose(false);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 添加1个数据
        /// </summary>
        /// <param name="_data">Project数据</param>
        /// <param name="_projectFolderPath">项目文件夹的路径(.bug文件所在的文件夹)</param>
        public void Add(ProjectData _data, string _projectFolderPath)
        {
            /* 把Project数据,变为LatelyProject数据 */
            LatelyProjectData _latelyProjectData = new LatelyProjectData();

            _latelyProjectData.Id   = _data.Id;
            _latelyProjectData.Name = _data.Name;
            _latelyProjectData.Path = _projectFolderPath;
            _latelyProjectData.Mode = _data.ModeType;


            /* 把数据添加到列表中 */
            Change(_latelyProjectData);
        }
Ejemplo n.º 10
0
 /// <summary>
 /// 验证完整性
 /// (验证1个Data的完整性。
 /// 如果Data是完整的,代表这个Data是有效的;
 /// 如果Data是不完整的,代表Data文件还没有同步完,或者是Data文件已损坏)
 /// </summary>
 /// <param name="_data">要验证的Data</param>
 /// <returns>Data是否是完整的</returns>
 public static bool VerifyIntegrity(LatelyProjectData _data)
 {
     if (_data == null ||
         _data.Id < 0 ||
         _data.Path == null || _data.path == "" ||
         _data.Name == null || _data.Name == "" ||
         _data.Mode == ModeType.None)
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
Ejemplo n.º 11
0
        /// <summary>
        /// 比较2个数据是否相同
        /// </summary>
        /// <param name="_compareType">是比较所有的属性,还是只比较编号?</param>
        /// <param name="_data1">第1个数据</param>
        /// <param name="_data2">第2个数据</param>
        /// <returns>2个数据是否相同?</returns>
        public static bool Compare(CompareType _compareType, LatelyProjectData _data1, LatelyProjectData _data2)
        {
            if (_data1 == null || _data2 == null)
            {
                return(false);
            }



            //是否相同?
            bool _isSame = false;

            //比较
            switch (_compareType)
            {
            case CompareType.Id:
                if (_data1.Id == _data2.Id)
                {
                    _isSame = true;
                }
                else
                {
                    _isSame = false;
                }
                break;

            case CompareType.All:
                if (_data1.Id == _data2.Id &&
                    _data1.Name == _data2.Name &&
                    _data1.Path == _data2.Path &&
                    _data1.Mode == _data2.Mode)
                {
                    _isSame = true;
                }
                else
                {
                    _isSame = false;
                }
                break;
            }


            //返回值
            return(_isSame);
        }
        /// <summary>
        /// 把[BaseData对象]转换为[Data对象]
        /// </summary>
        /// <param name="_baseData">要转换的BaseData对象</param>
        /// <returns>转换后的Data对象</returns>
        public static LatelyProjectData BaseDataToData(LatelyProjectBaseData _baseData)
        {
            if (_baseData != null)
            {
                LatelyProjectData _data = new LatelyProjectData();

                _data.Id       = _baseData.Id;
                _data.Name     = _baseData.Name;
                _data.Path     = _baseData.Path;
                _data.Mode     = (ModeType)_baseData.Mode;
                _data.OpenTime = new DateTime(_baseData.OpenTime[0], _baseData.OpenTime[1], _baseData.OpenTime[2], _baseData.OpenTime[3], _baseData.OpenTime[4], _baseData.OpenTime[5]);

                return(_data);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 复制一个LatelyProjectData对象
        /// </summary>
        /// <param name="_data">要复制哪个?</param>
        /// <returns>复制出来的LatelyProjectData对象</returns>
        public static LatelyProjectData Copy(LatelyProjectData _data)
        {
            if (_data == null)
            {
                return(null);
            }

            else
            {
                LatelyProjectData _copyData = new LatelyProjectData();

                _copyData.Id       = _data.Id;
                _copyData.Name     = _data.Name;
                _copyData.Path     = _data.Path;
                _copyData.Mode     = _data.Mode;
                _copyData.OpenTime = _data.OpenTime;


                return(_copyData);
            }
        }
        /// <summary>
        /// 把[Data对象]转换为[BaseData对象]
        /// </summary>
        /// <param name="_data">要转换的Data对象</param>
        /// <returns>转换后的BaseData对象</returns>
        public static LatelyProjectBaseData DataToBaseData(LatelyProjectData _data)
        {
            if (_data != null)
            {
                LatelyProjectBaseData _baseData = new LatelyProjectBaseData();

                _baseData.Id       = _data.Id;
                _baseData.Name     = _data.Name;
                _baseData.Path     = _data.Path;
                _baseData.Mode     = (int)_data.Mode;
                _baseData.OpenTime = new List <int>()
                {
                    _data.OpenTime.Year, _data.OpenTime.Month, _data.OpenTime.Day, _data.OpenTime.Hour, _data.OpenTime.Minute, _data.OpenTime.Second
                };

                return(_baseData);
            }
            else
            {
                return(null);
            }
        }
        /// <summary>
        /// 当点击[列表的Item]的[Base]按钮的时候
        /// </summary>
        /// <param name="_source">触发事件的LatelyProjectData对象</param>
        public void ClickListItemBaseButton(LatelyProjectData _source)
        {
            //如果文件存在
            if (File.Exists(_source.Path) == true)
            {
                //读取项目
                AppManager.Uis.MainUi.LoadProjectAll(_source.Path);
            }

            //如果文件不存在
            else
            {
                //提示:是否把这个数据从文件中移除?
                AppManager.Uis.LatelyProjectTipUi.UiControl.TipTitle   = AppManager.Systems.LanguageSystem.LatelyProjectTipTitle;
                AppManager.Uis.LatelyProjectTipUi.UiControl.TipContent = AppManager.Systems.LanguageSystem.LatelyProjectTipContent + "\n" +
                                                                         "\" " + StringTool.Clamp(_source.Name, 20) + " \"";

                //把数据传递给提示界面
                AppManager.Uis.LatelyProjectTipUi.UiControl.Tag = _source;

                //打开提示界面
                AppManager.Uis.LatelyProjectTipUi.OpenOrClose(true);
            }
        }