Example #1
0
        public override bool Remove(int serial)
        {
            bool changed = false;

            Item item = GetItem(serial);

            if (EntityList.ContainsKey(serial))
            {
                changed = base.Remove(serial);
            }
            else
            {
                IEnumerable <Item> containers = EntityList.Values.Where(i => i.IsContainer);

                foreach (Item container in containers)
                {
                    if (container.Container?.GetItem(serial) == null)
                    {
                        continue;
                    }

                    container.Container.Remove(serial);
                }
            }

            if (changed && item != null)
            {
                OnCollectionChanged(true, false, new[] { item });
            }

            return(changed);
        }
Example #2
0
 private SItem FindNamedSItem(string name)
 {
     if (EntityList.ContainsKey(name))
     {
         return(EntityList [name]);
     }
     if (TypeList.ContainsKey(name))
     {
         return(TypeList [name]);
     }
     return(null);
 }
Example #3
0
        //public static void AddText(Stream fs, string value)
        //{
        //    byte[] info = new UTF8Encoding(true).GetBytes(value);
        //    fs.Write(info, 0, info.Length);
        //}

        /// <summary>
        /// use for ToCSharpClass in associating select type to its components
        /// </summary>
        void AddSelectTypeInfo()
        {
            foreach (var pair in TypeList)
            {
                if (!(pair.Value is STypeSelect))
                {
                    continue;
                }
                var sel = pair.Value as STypeSelect;
                foreach (var item in sel.SelectList)
                {
                    if (EntityList.ContainsKey(item.Value.Name) && !EntityList [item.Value.Name].Select.Contains(pair.Value))
                    {
                        EntityList [item.Value.Name].Select.Add(pair.Value);
                    }
                    else if (TypeList.ContainsKey(item.Value.Name) && !TypeList [item.Value.Name].Select.Contains(pair.Value))
                    {
                        TypeList [item.Value.Name].Select.Add(pair.Value);
                    }
                }
            }
        }