示例#1
0
        protected bool AssignItemsFlags(ref FOptItemFlags flags, bool throwOnError)
        {
            FOptItemFlags changes        = itemFlagsDefault ^ flags;
            FOptItemFlags validChanges   = changes & itemFlagsMask;
            FOptItemFlags invalidChanges = (changes | itemFlagsMask) ^ itemFlagsMask;

            if (throwOnError && (invalidChanges != FOptItemFlags.None))             //проверяем флаги, которые устанавливаются или сбрасываются
            {
                throw new Exception("При добавлении элемента в опцию " + ID + " устанавливаются или сбрасываются недопустимые флаги: " + invalidChanges.ToString() + ".");
            }

            flags = itemFlagsDefault ^ validChanges;                    //применяем пользовательские изменения к itemFlagsDefault

            if ((flags & (FOptItemFlags.Less | FOptItemFlags.EqualsOrMore)) ==
                (FOptItemFlags.Less | FOptItemFlags.EqualsOrMore))
            {
                throw new Exception("Недопустимо одновременное применение флагов: Less,More и Equals\nДобавление элемента в опцию " + ID + " .");
            }

            if (flags == FOptItemFlags.None)
            {
                throw new Exception("Необходимо указать хотя бы один флаг.\nДобавление элемента в опцию " + ID + " .");
            }

            return(true);
        }
示例#2
0
        public FOpt(Dso ds, string id)
        {
            this.ds = ds;
            flags   = FOptFlags.None;

            this.id = id;

            description = "";
            is4Sql      = true;
            is4User     = true;

            order = ds.opts.Count;
            ds.opts.Add(this);
        }
示例#3
0
        public virtual void LoadFromXmlElement(XmlElement el)
        {
            flags = (FOptFlags)int.Parse(el.GetAttribute("flags"));

            items.Clear();
            if (el.SelectNodes("Item") != null)
            {
                foreach (XmlElement elIt in el.SelectNodes("Item"))
                {
                    Add(elIt.GetAttribute("value"),
                        (FOptItemFlags)int.Parse(elIt.GetAttribute("flags")),
                        false);
                }
            }
        }