示例#1
0
        public override DefaultStyle VisitDefaultStyle(QLSParser.DefaultStyleContext context)
        {
            DataType dataType        = StringEnum.GetEnumerationValue <DataType>(context.TYPE().GetText());
            var      styleAttributes = new List <StyleAttribute>();

            foreach (var styleAttributeContext in context.style_attr())
            {
                styleAttributes.Add(styleAttributeContext.Accept(new StyleAttributeBuilder()));
            }

            return(new DefaultStyle(dataType, styleAttributes, context.GetTextPosition()));
        }
示例#2
0
        public override INode VisitDefaultStyle([NotNull] QLSParser.DefaultStyleContext context)
        {
            var widget = GetWidgetFromText(context.widget().Widget().GetText());
            var type   = GetTypeFromStyleContext(context);

            var defaultStyle = new DefaultStyle(type, (dynamic)widget);

            foreach (var setting in context.setting())
            {
                var keyValuePair = setting.Accept(this);
                defaultStyle.AddWidgetProperty((dynamic)keyValuePair);
            }

            return(defaultStyle);
        }
示例#3
0
        private IType GetTypeFromStyleContext(QLSParser.DefaultStyleContext context)
        {
            var type = context.Type().GetText();

            Debug.Assert(type == "boolean" || type == "int" || type == "string" || type == "money");
            switch (type)
            {
            case "boolean": return(new BooleanType());

            case "int": return(new IntegerType());

            case "string": return(new StringType());

            case "money": return(new MoneyType());
            }
            throw new InvalidProgramException();
        }