Пример #1
0
        /// <summary>
        /// 添加一个Ribbon页
        /// </summary>
        /// <param name="pageEntity"></param>
        public void AddGroup(ToolStripGroupEntity entity)
        {
            Debug.Assert(entity != null, "entity 为 null");

            if (entity == null)
            {
                return;
            }

            //添加索引信息
            _indexXml.XPathSelectElement(XPATH_Index_Groups).Add(XElement.Parse(entity.ToXml()));

            SaveIndexFile();

            //发布事件
            ToolStripGroupEventArgs args = new ToolStripGroupEventArgs(entity);

            _eventAggregator.GetEvent <ToolStripGroupAddedEvent>().Publish(args);
        }
Пример #2
0
        /// <summary>
        /// 删除一个Ribbon分组,以及其下所有项
        /// </summary>
        /// <param name="id"></param>
        public void RemoveGroup(ToolStripGroupEntity entity)
        {
            Debug.Assert(entity != null, "entity 为 null");

            if (entity == null)
            {
                return;
            }

            //查找并删除其下所有项,并删除
            //避免发布过多删除项事件,所以不调用 Delete(item);
            XElement[] entityElements = _indexXml.XPathSelectElements(
                String.Format(XPATH_Index_SelectToolStrip_ByGroupId, entity.Id)).ToArray();
            foreach (XElement itemElement in entityElements)
            {
                string itemId = itemElement.Attribute("Id").Value;

                //移除索引信息
                itemElement.Remove();

                //移除实体文件
                _packageService.Current.DeleteFile(Path.Combine(Constant.PACKAGE_NAVIGATION_TOOLSTRIP_FOLDER, itemId));

                //移除缓存
                _cachingService.Remove(itemId);
            }

            //删除该分组
            XElement element = _indexXml.XPathSelectElement(String.Format(XPATH_Index_SelectGroup, entity.Id));

            if (element != null)
            {
                element.Remove();
            }

            SaveIndexFile();

            //发布事件
            ToolStripGroupEventArgs args = new ToolStripGroupEventArgs(entity);

            _eventAggregator.GetEvent <ToolStripGroupRemovedEvent>().Publish(args);
        }
Пример #3
0
        public void UpdateGroup(ToolStripGroupEntity entity)
        {
            Debug.Assert(entity != null, "ToolStripGroupEntity 为 null");

            if (entity == null)
            {
                return;
            }

            //更新索引信息
            XElement element = _indexXml.XPathSelectElement(String.Format(XPATH_Index_SelectGroup, entity.Id));

            Debug.Assert(element != null, "更新窗体文件夹索引时未找到指定文件夹的索引记录");
            if (element != null)
            {
                element.ReplaceWith(XElement.Parse(entity.ToXml()));
                SaveIndexFile();

                //发布事件
                ToolStripGroupEventArgs args = new ToolStripGroupEventArgs(entity);
                _eventAggregator.GetEvent <ToolStripGroupUpdatedEvent>().Publish(args);
            }
        }