Beispiel #1
0
        /// <summary>
        /// Write TOC Html elements for the table of contents
        /// </summary>
        /// <returns></returns>
        public void TocElementsHtml(HttpRequest Request, string AssignmentGradingViewName)
        {
            // If there was an error on page load, do nothing here.
            if (m_session == null)
                return; 

            TableOfContentsElement toc = m_session.GetTableOfContents(true);    // get toc without sequencing information
            using (HtmlStringWriter sw = new HtmlStringWriter(Response.Output))
            {
                sw.Indent = 2;  // start at table level 2, since that's where we are

                WriteTocEntry(sw, toc);

                string SLKView =  Request.QueryString["SlkView"];
                
                // Write the TOC entry to submit the training, only in Execute view or RandomAccess (SLK only) views

                if ((m_session.View == SessionView.Execute)
                    || ((m_session.View == SessionView.Review) && (SLKView.ToLower() == AssignmentGradingViewName.ToLower())))
                    WriteSubmitPageEntry(sw);
            }
        }
Beispiel #2
0
        [SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")]    // parameter is validated
        private void WriteTocEntry(HtmlStringWriter sw, TableOfContentsElement currentElement)
        {
            FramesetUtil.ValidateNonNullParameter("sw", sw);
            FramesetUtil.ValidateNonNullParameter("currentElement", currentElement);

            string activityId = FramesetUtil.GetStringInvariant(currentElement.ActivityId);
            bool elementHasChildren = currentElement.Children.Count > 0;
            HtmlString activityIdHtml = new PlainTextString(activityId).ToHtmlString();
            HtmlString titleHtml = new PlainTextString(currentElement.Title).ToHtmlString();

            // If the current element is visible or is an invisible leaf node, then render it. (If it's an 
            // invisible leaf node, the node will exist but not be visible.)
            if (RenderThisNode(currentElement))
            {
                sw.AddAttribute(HtmlTextWriterAttribute.Class, new PlainTextString("NodeParent"));
                sw.AddAttribute("activityId", activityIdHtml);
                sw.AddAttribute("isValidChoice", (currentElement.IsValidChoiceNavigationDestination ? "true" : "false"));
                sw.AddAttribute(HtmlTextWriterAttribute.Id, ResHelper.FormatInvariant("div{0}", activityIdHtml));
                sw.RenderBeginTag(HtmlTextWriterTag.Div);   // #Div1

                if (currentElement.IsVisible)
                {
                    sw.AddAttribute(HtmlTextWriterAttribute.Id, ResHelper.FormatInvariant("icon{0}", activityIdHtml));
                    if (currentElement.HasVisibleChildren)
                        sw.AddAttribute(HtmlTextWriterAttribute.Src, "Theme/MinusBtn.gif");
                    else
                        sw.AddAttribute(HtmlTextWriterAttribute.Src, "Theme/Leaf.gif");
                    sw.AddAttribute(HtmlTextWriterAttribute.Align, "absMiddle");
                    sw.RenderBeginTag(HtmlTextWriterTag.Img);
                    sw.RenderEndTag();

                    sw.AddAttribute(HtmlTextWriterAttribute.Src, "Theme/1px.gif");
                    sw.AddAttribute(HtmlTextWriterAttribute.Align, "absMiddle");
                    sw.RenderBeginTag(HtmlTextWriterTag.Img);
                    sw.RenderEndTag();
                    sw.WriteLine();

                    sw.AddAttribute(HtmlTextWriterAttribute.Href, "javascript:void(0)");
                    sw.AddAttribute(HtmlTextWriterAttribute.Id, ResHelper.FormatInvariant("a{0}", activityIdHtml));
                    if (!currentElement.IsValidChoiceNavigationDestination)
                    {
                        sw.AddAttribute(HtmlTextWriterAttribute.Disabled, "true");
                        sw.AddAttribute("class", "disable");
                    }

                    sw.AddAttribute(HtmlTextWriterAttribute.Style,
                                        ResHelper.FormatInvariant("FONT-WEIGHT: normal;visibility:{0}", (currentElement.IsVisible ? "visible" : "hidden")));
                    sw.AddAttribute(HtmlTextWriterAttribute.Title, titleHtml);
                    sw.RenderBeginTag(HtmlTextWriterTag.A);
                    sw.WriteHtml(titleHtml);
                    sw.RenderEndTag();
                }
            }

            // Write sub-elements (regardless of whether or not this node is rendered)
            if (elementHasChildren)
            {
                sw.WriteLine();
                bool clusterStarted = false;
                if (currentElement.IsVisible)
                {
                    sw.AddAttribute(HtmlTextWriterAttribute.Id, ResHelper.FormatInvariant("divCluster{0}", activityIdHtml));
                    sw.AddAttribute(HtmlTextWriterAttribute.Style, "MARGIN-TOP: 5px; DISPLAY: block; MARGIN-LEFT: 18px;");
                    sw.RenderBeginTag(HtmlTextWriterTag.Div);
                    clusterStarted = true;
                }

                foreach (TableOfContentsElement childElement in currentElement.Children)
                {
                    WriteTocEntry(sw, childElement);
                }

                if (clusterStarted)
                {
                    sw.RenderEndTag(); // end div
                    sw.WriteLine();
                }
            }

            if (RenderThisNode(currentElement))
            {
                sw.RenderEndTag();  // div (see #Div1, above)
                sw.WriteLine();
            }
        }
Beispiel #3
0
        /// <summary>
        /// Write an element in to the TOC that allows submitting the attempt.
        /// </summary>
        /// <param name="sw">The string writer to write the toc entry to.</param>
        private void WriteSubmitPageEntry(HtmlStringWriter sw)
        {
            string activityId = "SUBMIT";
            HtmlString activityIdHtml = new PlainTextString(activityId).ToHtmlString();
            HtmlString titleHtml = new PlainTextString(m_submitPageLinkText).ToHtmlString();

            sw.AddAttribute(HtmlTextWriterAttribute.Class, new PlainTextString("NodeParent"));
            sw.AddAttribute("activityId", activityIdHtml);
            sw.AddAttribute("isValidChoice", "true");
            sw.AddAttribute(HtmlTextWriterAttribute.Id, ResHelper.FormatInvariant("div{0}", activityIdHtml));
            sw.RenderBeginTag(HtmlTextWriterTag.Div);   // #Div1
                      
            sw.AddAttribute(HtmlTextWriterAttribute.Id, ResHelper.FormatInvariant("icon{0}", activityIdHtml));
            sw.AddAttribute(HtmlTextWriterAttribute.Src, "Theme/Leaf.gif");
            sw.AddAttribute(HtmlTextWriterAttribute.Align, "absMiddle");
            sw.RenderBeginTag(HtmlTextWriterTag.Img);
            sw.RenderEndTag();

            sw.AddAttribute(HtmlTextWriterAttribute.Src, "Theme/1px.gif");
            sw.AddAttribute(HtmlTextWriterAttribute.Align, "absMiddle");
            sw.RenderBeginTag(HtmlTextWriterTag.Img);
            sw.RenderEndTag();
            sw.WriteLine();

            sw.AddAttribute(HtmlTextWriterAttribute.Href, "");
            sw.AddAttribute(HtmlTextWriterAttribute.Id, ResHelper.FormatInvariant("a{0}", activityIdHtml));
            sw.AddAttribute(HtmlTextWriterAttribute.Style, "FONT-WEIGHT: normal;visibility:visible");
            sw.AddAttribute(HtmlTextWriterAttribute.Title, titleHtml);
            sw.RenderBeginTag(HtmlTextWriterTag.A);
            sw.WriteHtml(titleHtml);
            sw.RenderEndTag();
        
            sw.RenderEndTag();  // div (see #Div1, above)
            sw.WriteLine();
        }
Beispiel #4
0
        /// <summary>
        /// Write TOC Html elements for the table of contents
        /// </summary>
        /// <returns></returns>
        /// 
        public void TocElementsHtml()
        {
            // If there was an error on page load, do nothing here.
            if (m_session == null)
                return;

            TableOfContentsElement toc = m_session.GetTableOfContents(true);    // get toc without sequencing information
            using (HtmlStringWriter sw = new HtmlStringWriter(Response.Output))
            {
                sw.Indent = 2;  // start at table level 2, since that's where we are

                WriteTocEntry(sw, toc);

                // Write the TOC entry to submit the training, only in Execute view or RandomAccess (SLK only) views
                if ((m_session.View == SessionView.Execute)
                    || (m_session.View == SessionView.RandomAccess))
                    WriteSubmitPageEntry(sw);
            }
        }