Пример #1
0
        /// <summary>Creates a <see cref="Panel" /> from a tag, setting its <see cref="Panel.CssClass" /> and supplying Text or inner controls, if it has any.</summary>
        /// <param name="tag">The tag whose content is being represented.</param>
        /// <param name="slide">The object from which to get the property.</param>
        /// <param name="resourceFile">The resource file from which to get localized resources.</param>
        /// <returns>The created container</returns>
        private Panel CreateRotatorContainer(Tag tag, ITemplateable slide, string resourceFile)
        {
            Panel container = null;

            try
            {
                container          = new Panel();
                container.CssClass = TemplateEngine.GetAttributeValue(tag, slide, null, resourceFile, "CssClass", "class");

                if (tag.HasChildTags)
                {
                    TemplateEngine.ProcessTags(container, tag.ChildTags, slide, null, resourceFile, this.ProcessTags, this.GetSlides);
                }
                else
                {
                    var innerText = TemplateEngine.GetAttributeValue(tag, slide, (ITemplateable)null, resourceFile, "Text");
                    if (!string.IsNullOrEmpty(innerText))
                    {
                        container.Controls.Add(new LiteralControl(innerText));
                    }
                }

                return(container);
            }
            catch
            {
                if (container != null)
                {
                    container.Dispose();
                }

                throw;
            }
        }
Пример #2
0
        /// <summary>Creates a <see cref="Label" /> whose content is the total number of <see cref="Slide" />s for this rotator.</summary>
        /// <param name="tag">The tag whose content is being represented.</param>
        /// <param name="slide">The object from which to get the property.</param>
        /// <param name="resourceFile">The resource file from which to get localized resources.</param>
        /// <returns>The <see cref="Label" /> instance that was created</returns>
        private static Control CreateTotalCountControl(Tag tag, ITemplateable slide, string resourceFile)
        {
            Label totalCountLabel = null;

            try
            {
                totalCountLabel          = new Label();
                totalCountLabel.CssClass = TemplateEngine.GetAttributeValue(tag, slide, null, resourceFile, "CssClass", "class");
                totalCountLabel.CssClass = Utility.AddCssClass(totalCountLabel.CssClass, "total-slide-count");
                return(totalCountLabel);
            }
            catch
            {
                if (totalCountLabel != null)
                {
                    totalCountLabel.Dispose();
                }

                throw;
            }
        }
Пример #3
0
        /// <summary>Creates a <see cref="Label" /> whose content is the (1-based) index of the currently displayed <see cref="Slide" /></summary>
        /// <param name="tag">The tag whose content is being represented.</param>
        /// <param name="slide">The object from which to get the property.</param>
        /// <param name="resourceFile">The resource file from which to get localized resources.</param>
        /// <returns>The <see cref="Label" /> instance that was created</returns>
        private static Control CreateCurrentIndexControl(Tag tag, ITemplateable slide, string resourceFile)
        {
            Label currentSlideIndexWrapper = null;

            try
            {
                currentSlideIndexWrapper          = new Label();
                currentSlideIndexWrapper.CssClass = TemplateEngine.GetAttributeValue(tag, slide, null, resourceFile, "CssClass", "class");
                currentSlideIndexWrapper.CssClass = Utility.AddCssClass(currentSlideIndexWrapper.CssClass, "current-slide-index");
                currentSlideIndexWrapper.Text     = 1.ToString(CultureInfo.CurrentCulture);
                return(currentSlideIndexWrapper);
            }
            catch
            {
                if (currentSlideIndexWrapper != null)
                {
                    currentSlideIndexWrapper.Dispose();
                }

                throw;
            }
        }
Пример #4
0
        /// <summary>Creates a <c>div</c> tag for the given <paramref name="tag" />.
        /// Then sets the tag to be the container for an auto-generated pager.</summary>
        /// <param name="tag">The tag whose content is being represented.</param>
        /// <param name="slide">The object from which to get the property.</param>
        /// <param name="resourceFile">The resource file from which to get localized resources.</param>
        /// <returns>The created pager container</returns>
        private Control CreatePager(Tag tag, ITemplateable slide, string resourceFile)
        {
            Panel pagerContainer = null;

            try
            {
                pagerContainer = this.CreateRotatorContainer(tag, slide, resourceFile);

                pagerContainer.CssClass      = Utility.AddCssClass(pagerContainer.CssClass, "rotator-pager");
                this.CycleOptions.PagerEvent = TemplateEngine.GetAttributeValue(tag, slide, (ITemplateable)null, resourceFile, "Event") ?? "click";

                return(pagerContainer);
            }
            catch
            {
                if (pagerContainer != null)
                {
                    pagerContainer.Dispose();
                }

                throw;
            }
        }
Пример #5
0
        private bool ProcessTag(Control container, Tag tag, ITemplateable templateItem, string resourceFile)
        {
            var currentEvent = (Event)templateItem;

            if (tag.TagType == TagType.Open)
            {
                switch (tag.LocalName.ToUpperInvariant())
                {
                case "EVENTSORT":
                    this.SortAction = (SortAction)this.LoadControl(this.ActionsControlsFolder + "SortAction.ascx");
                    this.SortAction.ModuleConfiguration = this.ModuleConfiguration;
                    this.SortAction.LocalResourceFile   = resourceFile;
                    this.SortAction.SortChanged        += this.SortActions_SortChanged;

                    container.Controls.Add(this.SortAction);
                    break;

                case "STATUSFILTER":
                    this.StatusFilterAction = (StatusFilterAction)this.LoadControl(this.ActionsControlsFolder + "StatusFilterAction.ascx");
                    this.StatusFilterAction.ModuleConfiguration = this.ModuleConfiguration;
                    this.StatusFilterAction.LocalResourceFile   = resourceFile;
                    this.StatusFilterAction.SortChanged        += this.SortActions_SortChanged;

                    container.Controls.Add(this.StatusFilterAction);
                    break;

                case "CATEGORYFILTER":
                    this.CategoryFilterAction = (CategoryFilterAction)this.LoadControl(this.ActionsControlsFolder + "CategoryFilterAction.ascx");
                    this.CategoryFilterAction.ModuleConfiguration = this.ModuleConfiguration;
                    this.CategoryFilterAction.LocalResourceFile   = resourceFile;
                    this.CategoryFilterAction.CategoryChanged    += this.CategoryFilter_SortChanged;

                    container.Controls.Add(this.CategoryFilterAction);
                    break;

                case "MULTIPLECATEGORYFILTER":
                    this.MultipleCategoriesFilterAction = (MultipleCategoriesFilterAction)this.LoadControl(this.ActionsControlsFolder + "MultipleCategoriesFilterAction.ascx");
                    this.MultipleCategoriesFilterAction.ModuleConfiguration = this.ModuleConfiguration;
                    this.MultipleCategoriesFilterAction.LocalResourceFile   = resourceFile;
                    this.MultipleCategoriesFilterAction.CategoryChanged    += this.MultipleCategoriesActions_SortChanged;

                    this.MultipleCategoriesFilterAction.DialogPosition    = TemplateEngine.GetAttributeValue(tag, templateItem, this.TemplateProvider.GlobalItem, resourceFile, "DialogPosition", "my");
                    this.MultipleCategoriesFilterAction.ButtonPosition    = TemplateEngine.GetAttributeValue(tag, templateItem, this.TemplateProvider.GlobalItem, resourceFile, "ButtonPosition", "at");
                    this.MultipleCategoriesFilterAction.CollisionBehavior = TemplateEngine.GetAttributeValue(tag, templateItem, this.TemplateProvider.GlobalItem, resourceFile, "CollisionBehavior", "collision");

                    container.Controls.Add(MultipleCategoriesFilterAction);
                    break;

                case "READMORE":
                    var linkUrl = currentEvent != null
                                          ? this.BuildLinkUrl(
                        this.DetailsTabId,
                        this.DetailsModuleId,
                        "EventDetail",
                        Dnn.Events.Utility.GetEventParameters(currentEvent))
                                          : Globals.NavigateURL(this.DetailsTabId);

                    TemplateEngine.AddControl(container, TemplateEngine.CreateLink(tag, templateItem, this.TemplateProvider.GlobalItem, resourceFile, linkUrl));
                    break;

                default:
                    return(this.ProcessCommonTag(container, tag, currentEvent, resourceFile));
                }
            }
            else if (tag.TagType == TagType.Close)
            {
                return(this.ProcessCommonTag(container, tag, currentEvent, resourceFile));
            }

            return(false);
        }