private void AddItemToBasketGrid(IDescription itemDescription)
        {
            Grid newItemGrid = new Grid();

            newItemGrid.Margin = new Thickness(5, 0, 0, 10);
            newItemGrid.Height = 50;

            var imageColumn = new ColumnDefinition();

            imageColumn.Width = new GridLength(50);

            newItemGrid.ColumnDefinitions.Add(imageColumn);
            newItemGrid.ColumnDefinitions.Add(new ColumnDefinition());

            ElementRenderer.VisualizeImageInPanel(
                newItemGrid, itemDescription.Name, App.FileManager.GetBaseDirectory(itemDescription.GetType().Name));

            var textBlock = new TextBlock();

            textBlock.Text = itemDescription.Name;
            textBlock.VerticalAlignment = System.Windows.VerticalAlignment.Center;
            textBlock.Margin            = new Thickness(5, 0, 0, 0);
            textBlock.FontSize          = 15;

            Grid.SetColumn(textBlock, 1);
            newItemGrid.Children.Add(textBlock);

            this.BasketElementsStackPanel.Children.Add(newItemGrid);
        }
        private void AddItemToBasketGrid(IDescription itemDescription)
        {
            Grid newItemGrid = new Grid();
            newItemGrid.Margin = new Thickness(5, 0, 0, 10);
            newItemGrid.Height = 50;

            var imageColumn = new ColumnDefinition();
            imageColumn.Width = new GridLength(50);

            newItemGrid.ColumnDefinitions.Add(imageColumn);
            newItemGrid.ColumnDefinitions.Add(new ColumnDefinition());

            ElementRenderer.VisualizeImageInPanel(
                newItemGrid, itemDescription.Name, App.FileManager.GetBaseDirectory(itemDescription.GetType().Name));

            var textBlock = new TextBlock();
            textBlock.Text = itemDescription.Name;
            textBlock.VerticalAlignment = System.Windows.VerticalAlignment.Center;
            textBlock.Margin = new Thickness(5, 0, 0, 0);
            textBlock.FontSize = 15;

            Grid.SetColumn(textBlock, 1);
            newItemGrid.Children.Add(textBlock);

            this.BasketElementsStackPanel.Children.Add(newItemGrid);
        }
예제 #3
0
        /// <summary>
        /// 解释逻辑非运算表达式.
        /// </summary>
        /// <param name="DbParameters">用于缓存在解释过程中可能会产生的参数。</param>
        /// <returns></returns>
        public override string Parsing(ref List <IDbDataParameter> DbParameters)
        {
            LogicNotDescription logicNot   = (LogicNotDescription)this.Description;
            List <Type>         allowTypes = new List <Type>(new Type[] {
                typeof(FieldDescription), typeof(ExpDescription), typeof(FunDescription), typeof(GroupDescription)
            });
            IDescription desObject = logicNot.Expression;
            Type         expType   = desObject.GetType();

            if (!(allowTypes.Contains(expType)))
            {
                throw new NotSupportedException(string.Format("Can not use this description object: {0} for logical not expression.", expType.FullName));
            }
            desObject.DescriptionParserAdapter = this.Adapter;
            string buffer = desObject.GetParser().Parsing(ref DbParameters);

            if (buffer[0] == (char)0x20)
            {
                return(string.Format(" NOT{0}", buffer));
            }
            else
            {
                return(string.Format(" NOT {0}", buffer));
            }
        }
예제 #4
0
            protected override bool Matches(string item, IDescription mismatchDescription)
            {
                if (mismatchDescription.GetType() != typeof(NullDescription))
                {
                    throw new Exception("Expected null description");
                }

                return(_match(item));
            }
예제 #5
0
        /// <summary>
        /// 通过 Descript 对象获取其对应的解释器。
        /// </summary>
        /// <param name="desObj">命令描述对象。</param>
        /// <returns></returns>
        public ParserBase GetParserByObject(IDescription desObj)
        {
            ParserBase parser = Get(desObj.GetType());

            if (parser != null)
            {
                parser.Description = desObj;
            }
            return(parser);
        }