예제 #1
0
파일: TextRenderer.cs 프로젝트: NLADP/ADF
        public IEnumerable<object> Render(PanelItem panelItem)
        {
            if (panelItem.Type == PanelItemType.EditableText)
            {
                var text = new TextBox { ID = panelItem.GetId(), Wrap = true, ReadOnly = !panelItem.Editable, Width = new Unit(panelItem.Width, UnitType.Ex), Visible = panelItem.Visible };

                if (panelItem.MaxLength > 0) text.MaxLength = panelItem.MaxLength;

                text
                    .AddStyle(CssClass.Item)
                    .AttachToolTip(panelItem)
                    .ToggleStyle(panelItem.Editable, CssClass.Editable, CssClass.ReadOnly);

                panelItem.Target = text;

                return new List<Control> { text, PanelValidator.Create(panelItem) };
            }
            if (panelItem.Type == PanelItemType.Password)
            {
                var text = new TextBox { ID = panelItem.GetId(), Wrap = true, TextMode = TextBoxMode.Password, ReadOnly = !panelItem.Editable, Width = new Unit(panelItem.Width, UnitType.Ex), Visible = panelItem.Visible };

                if (panelItem.MaxLength > 0) text.MaxLength = panelItem.MaxLength;

                text
                    .AddStyle(CssClass.Item)
                    .AttachToolTip(panelItem)
                    .ToggleStyle(panelItem.Editable, CssClass.Editable, CssClass.ReadOnly);

                panelItem.Target = text;

                return new List<Control> { text, PanelValidator.Create(panelItem) };
            }
            if (panelItem.Type == PanelItemType.MultiLineText)
            {
                var text = new TextBox { ID = panelItem.GetId(), TextMode = TextBoxMode.MultiLine, Wrap = true, ReadOnly = !panelItem.Editable, Width = new Unit(panelItem.Width, UnitType.Ex), Height = new Unit((panelItem.Height > 0) ? panelItem.Height : 20, UnitType.Ex), Visible = panelItem.Visible };

                if (panelItem.MaxLength > 0) text.MaxLength = panelItem.MaxLength;

                text
                    .AddStyle(CssClass.Item)
                    .AttachToolTip(panelItem)
                    .ToggleStyle(panelItem.Editable, CssClass.Editable, CssClass.ReadOnly);

                panelItem.Target = text;

                return new List<Control> { text, PanelValidator.Create(panelItem) };
            }
            if (panelItem.Type == PanelItemType.NonEditableText)
            {
                var text = new TextBox { ID = panelItem.GetId(), Wrap = true, ReadOnly = !panelItem.Editable, Width = new Unit(panelItem.Width, UnitType.Ex), Visible = panelItem.Visible };

                if (panelItem.MaxLength > 0) text.MaxLength = panelItem.MaxLength;

                text
                    .AddStyle(CssClass.Item)
                    .AttachToolTip(panelItem)
                    .ToggleStyle(panelItem.Editable, CssClass.Editable, CssClass.ReadOnly);

                panelItem.Target = text;

                return new List<Control> { text, PanelValidator.Create(panelItem) };
            }
            if (panelItem.Type == PanelItemType.Label)
            {
                var text = new Label { ID = panelItem.GetId(), Enabled = panelItem.Editable, Width = new Unit(panelItem.Width, UnitType.Ex), Text = (!panelItem.Text.IsNullOrEmpty() ? panelItem.Text : string.Empty), Visible = panelItem.Visible };

                text
                    .AddStyle(CssClass.Item)
                    .AttachToolTip(panelItem)
                    .ToggleStyle(panelItem.Editable, CssClass.Editable, CssClass.ReadOnly);

                panelItem.Target = text;

                return new List<Control> { text, PanelValidator.Create(panelItem) };
            }

            return null;
        }