public void ApplyTemplate(TunableListTemplate template)
        {
            if (null == template)
            {
                throw new ArgumentNullException(nameof(template));
            }

            mTunableList.ApplyTemplate(template);
        }
        public void ApplyTemplate(TableTemplate template)
        {
            if (null == template)
            {
                throw new ArgumentNullException(nameof(template));
            }

            Height = TableTemplate.Height;

            var listTemplate = new TunableListTemplate
            {
                HeaderClickable = template.HeaderClickable,
                CommandMenu     = template.CommandMenu
            };

            listTemplate.Columns.AddRange(template.Columns);
            listTemplate.Icons.AddRange(template.Icons);

            listTemplate.SetTemplateInternals(template.TemplateName, template.BaseDirectory);

            ApplyTemplate(listTemplate);
        }
示例#3
0
        public void ApplyTemplate(TunableListTemplate template)
        {
            if (null == template)
            {
                throw new ArgumentNullException(nameof(template));
            }

            Reset();

            if (null == template.Columns)
            {
                throw new BadTemplateException("null == template.Columns");
            }

            BeginUpdate();
            Enabled = false;

            HeaderStyle = template.HeaderClickable ? ColumnHeaderStyle.Clickable : ColumnHeaderStyle.Nonclickable;

            if (template.Groups.Count > 0)
            {
                var groups = new List <ListViewGroup>();

                foreach (var groupTemplate in template.Groups)
                {
                    if (null == groupTemplate.Key)
                    {
                        throw new BadTemplateException("null == groupTemplate.Key");
                    }

                    if (null == groupTemplate.HeaderText)
                    {
                        throw new BadTemplateException("null == groupTemplate.HeaderText");
                    }

                    groups.Add(new ListViewGroup(groupTemplate.Key, groupTemplate.HeaderText));
                }

                Groups.AddRange(groups.ToArray());
                ShowGroups = true;
            }

            var columnHeaders = new List <ColumnHeader>();

            foreach (var columnTemplate in template.Columns)
            {
                if (null == columnTemplate.Name)
                {
                    throw new BadTemplateException("null == columnTemplate.Name");
                }

                if (null == columnTemplate.HeaderText)
                {
                    throw new BadTemplateException("null == columnTemplate.HeaderText");
                }

                if (0 == columnTemplate.Width)
                {
                    throw new BadTemplateException("0 == columnTemplate.Width");
                }

                var columnHeader = new ColumnHeader
                {
                    Name  = columnTemplate.Name,
                    Text  = columnTemplate.HeaderText,
                    Width = columnTemplate.Width
                };

                columnHeaders.Add(columnHeader);
            }

            Columns.AddRange(columnHeaders.ToArray());

            if (null != template.CommandMenu && 0 != template.CommandMenu.Items.Count)
            {
                _commandMenu.ApplyTemplate(template.CommandMenu);
                ContextMenuStrip = _commandMenu;
            }

            if (template.Icons.Any())
            {
                foreach (var imageTemplate in template.Icons)
                {
                    if (null == imageTemplate.Name)
                    {
                        throw new BadTemplateException("null == imageTemplate.Name");
                    }

                    var iconHolder = imageTemplate.BuildIconHolder();

                    if (null == iconHolder)
                    {
                        throw new BadTemplateException("null == iconHolder");
                    }

                    var image = iconHolder.TryBuildImage();

                    if (null != image)
                    {
                        _imageList.Images.Add(imageTemplate.Name, image);
                    }
                }

                SmallImageList = _imageList;
            }

            if (template.CheckBoxes)
            {
                CheckBoxes = true;
                OwnerDraw  = true;
            }

            Enabled = true;
            EndUpdate();
        }