Example #1
0
        private void listView_tags_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.listView_tags.SelectedItems.Count == 1)
            {
                ItemInfo item_info = (ItemInfo)this.listView_tags.SelectedItems[0].Tag;
                OneTag   tag       = item_info.OneTag;
                // var tag_info = tag.TagInfo;

                this.SelectedTag       = tag;
                this.button_OK.Enabled = true;

                this.chipEditor1.LogicChipItem = item_info.LogicChipItem;

                if (string.IsNullOrEmpty(item_info.Xml) == false)
                {
                    BookItem book_item = new BookItem();
                    int      nRet      = book_item.SetData("",
                                                           item_info.Xml,
                                                           null,
                                                           out string strError);
                    if (nRet == -1)
                    {
                        // 如何报错?
                    }
                    else
                    {
                        this.propertyGrid_record.SelectedObject = book_item;
                    }
                }
                else
                {
                    this.propertyGrid_record.SelectedObject = null;
                }
            }
            else
            {
                this.chipEditor1.LogicChipItem          = null;
                this.propertyGrid_record.SelectedObject = null;

                this.SelectedTag       = null;
                this.button_OK.Enabled = false;
            }
        }
Example #2
0
        // parameters:
        //      refid_change_table  修改过的refid。key为旧值,value为新值
        /// <summary>
        /// 根据一个 XML 字符串内容,构建出集合内的若干事项
        /// </summary>
        /// <param name="nodeItemCollection">XmlNode对象,本方法将使用其下属的 dprms:item 元素来构造事项</param>
        /// <param name="list">ListView 对象。构造好的事项会显示到其中</param>
        /// <param name="bRefreshRefID">构造事项的过程中,是否要刷新每个事项的 RefID 成员值</param>
        /// <param name="refid_change_table">返回修改过的refid。key为旧值,value为新值</param>
        /// <param name="strError">返回出错信息</param>
        /// <returns>-1: 出错。错误信息在 strError 中; 0: 成功</returns>
        public int ImportFromXml(XmlNode nodeItemCollection,
            ListView list,
            bool bRefreshRefID,
            out Hashtable refid_change_table,
            out string strError)
        {
            strError = "";
            refid_change_table = new Hashtable();
            int nRet = 0;

            if (nodeItemCollection == null)
                return 0;

            XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
            nsmgr.AddNamespace("dprms", DpNs.dprms);

            XmlNodeList nodes = nodeItemCollection.SelectNodes("dprms:item", nsmgr);
            for (int i = 0; i < nodes.Count; i++)
            {
                XmlNode node = nodes[i];

                BookItem book_item = new BookItem();
                nRet = book_item.SetData("",
                    node.OuterXml,
                    null,
                    out strError);
                if (nRet == -1)
                    return -1;

                if (bRefreshRefID == true)
                {
                    string strOldRefID = book_item.RefID;
                    book_item.RefID = Guid.NewGuid().ToString();
                    if (String.IsNullOrEmpty(strOldRefID) == false)
                    {
                        refid_change_table[strOldRefID] = book_item.RefID;
                    }
                }

                this.Add(book_item);
                book_item.ItemDisplayState = ItemDisplayState.New;
                book_item.AddToListView(list);

                book_item.Changed = true;
            }

            // 更换<binding>元素内<item>元素的refID属性值
            if (bRefreshRefID == true
                && refid_change_table.Count > 0)
            {
                foreach (BookItem item in this)
                {
                    nRet = item.ReplaceBindingItemRefID(refid_change_table,
                        out strError);
                    if (nRet == -1)
                        return -1;
                }
            }

            return 0;
        }
Example #3
0
        // parameters:
        //      refid_change_table  修改过的refid。key为旧值,value为新值
        /// <summary>
        /// 根据一个 XML 字符串内容,构建出集合内的若干事项
        /// </summary>
        /// <param name="nodeItemCollection">XmlNode对象,本方法将使用其下属的 dprms:item 元素来构造事项</param>
        /// <param name="list">ListView 对象。构造好的事项会显示到其中</param>
        /// <param name="bRefreshRefID">构造事项的过程中,是否要刷新每个事项的 RefID 成员值</param>
        /// <param name="refid_change_table">返回修改过的refid。key为旧值,value为新值</param>
        /// <param name="strError">返回出错信息</param>
        /// <returns>-1: 出错。错误信息在 strError 中; 0: 成功</returns>
        public int ImportFromXml(XmlNode nodeItemCollection,
                                 ListView list,
                                 bool bRefreshRefID,
                                 out Hashtable refid_change_table,
                                 out string strError)
        {
            strError           = "";
            refid_change_table = new Hashtable();
            int nRet = 0;

            if (nodeItemCollection == null)
            {
                return(0);
            }

            XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());

            nsmgr.AddNamespace("dprms", DpNs.dprms);

            XmlNodeList nodes = nodeItemCollection.SelectNodes("dprms:item", nsmgr);

            for (int i = 0; i < nodes.Count; i++)
            {
                XmlNode node = nodes[i];

                BookItem book_item = new BookItem();
                nRet = book_item.SetData("",
                                         node.OuterXml,
                                         null,
                                         out strError);
                if (nRet == -1)
                {
                    return(-1);
                }

                if (bRefreshRefID == true)
                {
                    string strOldRefID = book_item.RefID;
                    book_item.RefID = Guid.NewGuid().ToString();
                    if (String.IsNullOrEmpty(strOldRefID) == false)
                    {
                        refid_change_table[strOldRefID] = book_item.RefID;
                    }
                }

                this.Add(book_item);
                book_item.ItemDisplayState = ItemDisplayState.New;
                book_item.AddToListView(list);

                book_item.Changed = true;
            }

            // 更换<binding>元素内<item>元素的refID属性值
            if (bRefreshRefID == true &&
                refid_change_table.Count > 0)
            {
                foreach (BookItem item in this)
                {
                    nRet = item.ReplaceBindingItemRefID(refid_change_table,
                                                        out strError);
                    if (nRet == -1)
                    {
                        return(-1);
                    }
                }
            }

            return(0);
        }