Example #1
0
        public override void Create(Control container, IConfigurationType config, ITemplatable templatable, IEnumerable registry, IBinder binder, WebPartManager manager)
        {
            if (null == container)
            {
                throw new ArgumentNullException("container");
            }
            if (null == config)
            {
                throw new ArgumentNullException("config");
            }
            if (!(config is IConfigurationSection))
            {
                throw new ArgumentException("config must be an IConfigurationSection");
            }
            if (!(registry is ITemplatingItemsCollection))
            {
                throw new ArgumentException("registry must be an ITemplatingItemsCollection");
            }
            ITemplatingItemsCollection filters = registry as ITemplatingItemsCollection;
            IDictionary <string, IConfigurationElement> itemElements = (config as IConfigurationSection).Elements;

            if (itemElements.ContainsKey("filter"))
            {
                Table table;
                if (container is Table)
                {
                    table = (container as Table);
                }
                else
                {
                    table    = new Table();
                    table.ID = container.ID + "filter";
                }
                table.ApplyStyle(templatable.FilterStyle);
                for (int i = 0; i < filters.Count; i++)
                {
                    foreach (IConfigurationElement element in itemElements["filter"].Elements.Values)
                    {
                        string prefix = "filter" + element.ConfigKey + i.ToString();
                        this.DisplayItem(table, element, prefix, binder, filters[i], templatable.FilterRowStyle, templatable.InvalidItemStyle, manager);
                    }
                }
                if (!(container is Table))
                {
                    container.Controls.Add(table);
                }
            }
        }
Example #2
0
        public override void Extract(Control container, IConfigurationType config, IEnumerable registry, WebPartManager manager)
        {
            if (null == container)
            {
                throw new ArgumentNullException("container");
            }
            if (null == config)
            {
                throw new ArgumentNullException("config");
            }
            if (!(config is IConfigurationSection))
            {
                throw new ArgumentException("config must be an IConfigurationSection");
            }
            if (!(registry is ITemplatingItemsCollection))
            {
                throw new ArgumentException("registry must be an ITemplatingItemsCollection");
            }
            ITemplatingItemsCollection filters = registry as ITemplatingItemsCollection;

            if (filters.Count != 0)
            {
                IDictionary <string, IConfigurationElement> itemElements = (config as IConfigurationSection).Elements;
                if (itemElements.ContainsKey("filter"))
                {
                    for (int i = 0; i < filters.Count; i++)
                    {
                        Dictionary <string, object> data = filters[i].Data as Dictionary <string, object>;
                        foreach (IConfigurationElement element in itemElements["filter"].Elements.Values)
                        {
                            string prefix = "filter" + element.ConfigKey + i.ToString();
                            foreach (IConfigurationElement fieldElement in element.Elements.Values)
                            {
                                foreach (IConfigurationElement propertyElement in fieldElement.Elements.Values)
                                {
                                    if (propertyElement.Attributes.ContainsKey("push"))
                                    {
                                        string propertyName       = propertyElement.GetAttributeReference("member").Value.ToString();
                                        string sourcePropertyName = propertyElement.GetAttributeReference("push").Value.ToString();
                                        if (!data.ContainsKey(sourcePropertyName))
                                        {
                                            data.Add(sourcePropertyName, null);
                                        }
                                        string id = string.Concat(new string[]
                                        {
                                            container.ID,
                                            "-",
                                            element.ConfigKey,
                                            "-",
                                            prefix,
                                            "-",
                                            fieldElement.ConfigKey,
                                            "-ctrl"
                                        });
                                        Control fieldControl = ReflectionServices.FindControlEx(id, container);
                                        if (null != fieldControl)
                                        {
                                            data[sourcePropertyName] = ReflectionServices.ExtractValue(fieldControl, propertyName);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Example #3
0
 public virtual void CreateFilter(IConfigurationType config, ITemplatingItemsCollection filters, IBinder binder, ITemplatable templatable)
 {
     FiltersTemplate.Instance.Create(_container, config, templatable, filters, binder, this.manager);
 }
Example #4
0
        public override void Extract(Control container, IConfigurationType config, ITemplatable templatable, IBinder binder, IEnumerable registry, ITemplatingItem item, int itemIndex, int itemsCount, WebPartManager manager)
        {
            if (null == container)
            {
                throw new ArgumentNullException("container");
            }
            if (null == config)
            {
                throw new ArgumentNullException("config");
            }
            if (!(config is IConfigurationSection))
            {
                throw new ArgumentException("config must be an IConfigurationSection");
            }
            if (!(registry is ITemplatingItemsCollection))
            {
                throw new ArgumentException("registry must be ITemplatingItemsCollection");
            }
            ITemplatingItemsCollection items = registry as ITemplatingItemsCollection;

            items.Clear();
            IDictionary <string, IConfigurationElement> itemElements = (config as IConfigurationSection).Elements;

            for (int i = 0; i < itemsCount; i++)
            {
                item = new TemplatingItem();
                Control hiddenReadOnly = ReflectionServices.FindControlEx(i.ToString() + "-readOnly", container);
                if (null != hiddenReadOnly)
                {
                    bool isReadOnly = false;
                    bool.TryParse(((HiddenField)hiddenReadOnly).Value, out isReadOnly);
                    item.IsReadOnly = isReadOnly;
                }
                Control hiddenNew = ReflectionServices.FindControlEx(i.ToString() + "-new", container);
                if (null != hiddenNew)
                {
                    bool isNew = false;
                    bool.TryParse(((HiddenField)hiddenNew).Value, out isNew);
                    item.IsNew = isNew;
                }
                Control hiddenCurrent = ReflectionServices.FindControlEx(i.ToString() + "-current", container);
                if (null != hiddenCurrent)
                {
                    bool isCurrent = false;
                    bool.TryParse(((HiddenField)hiddenCurrent).Value, out isCurrent);
                    item.IsCurrent = isCurrent;
                }
                Control hiddenHasChanges = ReflectionServices.FindControlEx(i.ToString() + "-hasChanges", container);
                if (null != hiddenHasChanges)
                {
                    bool hasChanges = false;
                    bool.TryParse(((HiddenField)hiddenHasChanges).Value, out hasChanges);
                    item.HasChanges = hasChanges;
                }
                Control hiddenIsValid = ReflectionServices.FindControlEx(i.ToString() + "-isValid", container);
                if (null != hiddenIsValid)
                {
                    bool isValid = false;
                    bool.TryParse(((HiddenField)hiddenIsValid).Value, out isValid);
                    item.IsValid = isValid;
                }
                Control hiddenInvalidMember = ReflectionServices.FindControlEx(i.ToString() + "-invalidMember", container);
                if (null != hiddenInvalidMember)
                {
                    item.InvalidMember = ((HiddenField)hiddenInvalidMember).Value;
                }
                this.PopulateItem(container, config, item, i.ToString());
                items.Add(item);
            }
        }
Example #5
0
 public virtual void ExtractItems(IConfigurationType config, int itemsCount, ITemplatingItemsCollection items)
 {
     ItemTemplate.Instance.Extract(_container, config, null, null, items, null, -1, itemsCount, this.manager);
 }
Example #6
0
 public virtual void ExtractFilter(IConfigurationType config, ITemplatingItemsCollection filters)
 {
     FiltersTemplate.Instance.Extract(_container, config, filters, this.manager);
 }
Example #7
0
 public virtual void ExtractItems(IConfigurationType config, int itemsCount, ITemplatingItemsCollection items)
 {
     ItemTemplate.Instance.Extract(_container, config, null, null, items, null, -1, itemsCount, this.manager);
 }
Example #8
0
 public virtual void ExtractFilter(IConfigurationType config, ITemplatingItemsCollection filters)
 {
     FiltersTemplate.Instance.Extract(_container, config, filters, this.manager);
 }
Example #9
0
 public virtual void CreateFilter(IConfigurationType config, ITemplatingItemsCollection filters, IBinder binder, ITemplatable templatable)
 {
     FiltersTemplate.Instance.Create(_container, config, templatable, filters, binder, this.manager);
 }