Exemplo n.º 1
0
        public object CreateInputWidget(Sandwych.Layout.Models.Input input)
        {
            var metaField = this.metaFields.Where(i => (string)i["name"] == input.Field).Single();
            var fieldType = (string)metaField["type"];

            var t      = fieldTypeMapping[fieldType];
            var widget = (IFieldWidget)Activator.CreateInstance(t, metaField);

            this.createdFieldWidgets.Add(input.Field, widget);
            return(widget);
        }
Exemplo n.º 2
0
        private object CreateQueryForm(Dictionary <string, object>[] fields, IEnumerable <XElement> viewFields, string where)
        {
            //生成基本查询条件表单
            var columnsPerRow = 6;// (int)Math.Round(this.Width / 150.00) * 2;

            if (columnsPerRow % 2 != 0)
            {
                columnsPerRow--;
            }
            var basicQueryForm = new Sandwych.Layout.Models.Form()
            {
                ColumnCount = columnsPerRow,
            };

            var basicFields = viewFields.Where(ele =>
            {
                var attr = ele.Attribute("where");
                return(attr != null && attr.Value == where);
            });

            var basicQueryFormChildren = new List <Sandwych.Layout.Models.Placable>();
            var factory = new QueryFieldControlFactory(fields);
            var createdFieldControls = new Dictionary <string, IQueryField>();

            foreach (var fieldLayout in basicFields)
            {
                var fieldName = fieldLayout.Attribute("name").Value;
                var metaField = fields.Single(i => (string)i["name"] == fieldName);
                var label     = new Sandwych.Layout.Models.Label()
                {
                    Text = (string)metaField["label"],
                };
                basicQueryFormChildren.Add(label);

                var field = new Sandwych.Layout.Models.Input()
                {
                    Field = (string)metaField["name"],
                };
                basicQueryFormChildren.Add(field);
            }
            basicQueryForm.ChildElements = basicQueryFormChildren.ToArray();

            var layoutEngine   = new Sandwych.Layout.LayoutEngine(factory);
            var basicQueryGrid = layoutEngine.BuildLayout(basicQueryForm);

            foreach (var p in factory.CreatedQueryFields)
            {
                this.createdQueryFields.Add(p.Key, p.Value);
            }

            return(basicQueryGrid);
        }
Exemplo n.º 3
0
        public object CreateInputWidget(Sandwych.Layout.Models.Input field)
        {
            var metaField = this.metaFields.Where(i => (string)i["name"] == field.Field).Single();
            var fieldType = (string)metaField["type"];

            var fieldName = (string)metaField["name"];
            //TODO F**K ME
            IQueryField queryField = null;

            if (fieldTypeControlMapping.ContainsKey(fieldType))
            {
                var t = fieldTypeControlMapping[fieldType];
                queryField = (IQueryField)Activator.CreateInstance(t, metaField);
            }
            else
            {
                queryField = new QueryFieldControls.StringQueryFieldControl(metaField);
            }

            this.createdQueryFields.Add(fieldName, queryField);
            return(queryField);
        }