コード例 #1
0
        public object Render(T obj, EditorField <T> editorField, Action preview)
        {
            object   _value = editorField.GetValue(obj);
            DateTime?value;

            if (_value == null)
            {
                value = null;
            }
            else if (_value is DateTimeOffset dto)
            {
                value = dto.DateTime;
            }
            else if (_value is DateTime dt)
            {
                value = dt;
            }
            else
            {
                throw new ArgumentException("Not a DateTime or DateTimeOffset.");
            }

            _dateBox = new DateBox(value)
            {
            };
            //_dateBox.HtmlElement.SetAttribute("placeholder", "YYYY-MM-DD");

            _dateBox.TextInput += (sender, args) => preview();

            _dateBox.Enabled = editorField.Enabled;

            return(_field = new Field(editorField.Label, _dateBox, editorField.Description, editorField.Helper, editorField.Required));
        }
コード例 #2
0
        public object Render(T obj, EditorField <T> editorFieldInfo, Action preview)
        {
            object value = editorFieldInfo.GetValue(obj);

            var options = GetOptions(editorFieldInfo);

            var selectedOption = options.Where(e => Equals(e.Value, value)).Select(e => e.Label).FirstOrDefault();

            _selectBox = new Controls.SelectBox(options.Select(e => e.Label).ToArray())
            {
                SelectedOption = selectedOption
            };

            _selectBox.SelectionChanged += (sender, args) => preview();

            _selectBox.Enabled = editorFieldInfo.Enabled;

            return(_field = new Field(
                       editorFieldInfo.Label,
                       _selectBox,
                       editorFieldInfo.Description,
                       editorFieldInfo.Helper,
                       editorFieldInfo.Required
                       ));
        }
コード例 #3
0
        public object Render(T obj, EditorField <T> editorFieldInfo, Action updated)
        {
            var value = Convert.ToString(editorFieldInfo.GetValue(obj));

            if (_multiLine)
            {
                _textBox = new Controls.TextArea(value);
                _textBox.Styles["width"] = "-webkit-fill-available";
                ((Controls.TextArea)_textBox).TextInput += (sender, args) => updated();
            }
            else
            {
                _textBox = new Controls.TextBox(value);
                ((Controls.TextBox)_textBox).TextInput += (sender, args) => updated();
            }

            if (_fixedFont)
            {
                _textBox.HtmlElement.SetAttribute("class", "fixed-font");
            }

            _textBox.Enabled = editorFieldInfo.Enabled;

            return(_field = new Field(
                       editorFieldInfo.Label,
                       _textBox,
                       editorFieldInfo.Description,
                       editorFieldInfo.Helper,
                       editorFieldInfo.Required
                       ));
        }
コード例 #4
0
        public object Render(T obj, EditorField <T> editorFieldInfo, Action preview)
        {
            var container = new Div(_dumpContainer);

            container.SetClass("entity-editor-literal");
            _dumpContainer.Content = _contentFormatter.Format(editorFieldInfo.GetValue(obj), emptyContent: "-");
            return(_field = new Field(editorFieldInfo.Label, container, editorFieldInfo.Description, editorFieldInfo.Helper));
        }
コード例 #5
0
        public object Render(T obj, EditorField <T> editorFieldInfo, Action preview)
        {
            object value        = editorFieldInfo.GetValue(obj);
            double?initialValue = value == null ? (double?)null : Convert.ToDouble(value);

            _numberBox = new NumberBox(initialValue, _decimals)
            {
            };

            _numberBox.TextInput += (sender, args) => preview();

            _numberBox.Enabled = editorFieldInfo.Enabled;

            return(_field = new Field(editorFieldInfo.Label, _numberBox, editorFieldInfo.Description, editorFieldInfo.Helper, editorFieldInfo.Required));
        }
コード例 #6
0
        public object Render(T obj, EditorField <T> editorFieldInfo, Action updated)
        {
            var value = Convert.ToString(editorFieldInfo.GetValue(obj));

            _codeBox            = new Controls.CodeEditor(value, _language);
            _codeBox.TextInput += (sender, args) => updated();

            return(_field = new Field(
                       editorFieldInfo.Label,
                       _codeBox,
                       editorFieldInfo.Description,
                       editorFieldInfo.Helper,
                       editorFieldInfo.Required
                       ));
        }
コード例 #7
0
        public object Render(T obj, EditorField <T> editorFieldInfo, Action preview)
        {
            object value = editorFieldInfo.GetValue(obj);

            _selectBox = new AsyncDataListBox(_queryOptions, _findOption)
            {
            };

            if (value != null)
            {
                _selectBox.SetValueAsync(value).GetAwaiter().GetResult();
            }

            _selectBox.Updated += (_) => preview();

            return(_field = new Field(editorFieldInfo.Label, _selectBox, editorFieldInfo.Description, editorFieldInfo.Helper, editorFieldInfo.Required));
        }
コード例 #8
0
        public object Render(T obj, EditorField <T> editorField, Action preview)
        {
            object value = editorField.GetValue(obj);

            var labelText = value?.ToString() ?? "";

            _dataListBox = new DataListBox(_options)
            {
                Text = labelText
            };

            _dataListBox.TextInput += (sender, args) => preview();

            _dataListBox.Enabled = editorField.Enabled;

            return(_field = new Field(editorField.Label, _dataListBox, editorField.Description, editorField.Helper, editorField.Required));
        }
コード例 #9
0
        public object Render(T obj, EditorField <T> editorField, Action preview)
        {
            var value = Convert.ToBoolean(editorField.GetValue(obj));

            _checkBox = new CheckBox(editorField.Label, value);

            _checkBox.Click += (sender, args) => preview();

            var _container = new Div(_checkBox);

            _container.SetClass("entity-editor-bool");

            _wrapper = new DumpContainer(_container);

            _checkBox.Enabled = editorField.Enabled;

            return(_wrapper);
        }
コード例 #10
0
        public object Render(T obj, EditorField <T> editorFieldInfo, Action updated)
        {
            var value = Convert.ToString(editorFieldInfo.GetValue(obj));

            _fileBox            = new FileBox(value, _initialCatalog);
            _fileBox.TextInput += (sender, args) => updated();

            if (editorFieldInfo.Required)
            {
                _fileBox.TextBox.HtmlElement.SetAttribute("required", "required");
            }

            return(_field = new Field(
                       editorFieldInfo.Label,
                       _fileBox,
                       editorFieldInfo.Description,
                       editorFieldInfo.Helper,
                       editorFieldInfo.Required
                       ));
        }
コード例 #11
0
        public object Render(T obj, EditorField <T> editorFieldInfo, Action preview)
        {
            object value = editorFieldInfo.GetValue(obj);

            _elementType = editorFieldInfo.Type.GenericTypeArguments.Single();

            int[] _selectedIndexes = null;

            if (value is IEnumerable selectedItems)
            {
                _selectedIndexes = selectedItems.Cast <object>().Select(e => Array.IndexOf(_options.Select(f => f.Value).ToArray(), e)).Where(e => e != -1).ToArray();
            }

            _selectBox = new MultiSelectBox(_options, _selectedIndexes);
            _selectBox.SelectionChanged += (sender, args) => preview();

            _selectBox.Enabled = editorFieldInfo.Enabled;

            return(_field = new Field(editorFieldInfo.Label, _selectBox, editorFieldInfo.Description, editorFieldInfo.Helper, editorFieldInfo.Required));
        }
コード例 #12
0
        public object Render(T obj, EditorField <T> editorFieldInfo, Action preview)
        {
            var label = Convert.ToString(editorFieldInfo.GetValue(obj));

            Control link;

            if (_fetchUrl != null)
            {
                var url = _fetchUrl(obj);
                link = new Controls.Hyperlink(label, url);
            }
            else if (_onClick != null)
            {
                link = new Controls.Hyperlink(label, (_) => _onClick(obj));
            }
            else
            {
                link = new Controls.Hyperlink(label, label);
            }

            link.HtmlElement.SetAttribute("class", "entity-editor-link");

            return(new Field(editorFieldInfo.Label, link, editorFieldInfo.Description, editorFieldInfo.Helper));
        }