示例#1
0
        private void RenderTopLevelColumnGroupForXmlBrowser(BocListRenderingContext renderingContext)
        {
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Colgroup);

            // Left: list block
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Col);
            renderingContext.Writer.RenderEndTag();

            if (renderingContext.Control.HasMenuBlock)
            {
                //  Right: menu block
                string menuBlockWidth = c_defaultMenuBlockWidth;
                if (!renderingContext.Control.MenuBlockWidth.IsEmpty)
                {
                    menuBlockWidth = renderingContext.Control.MenuBlockWidth.ToString();
                }

                string menuBlockOffset = c_defaultMenuBlockOffset;
                if (!renderingContext.Control.MenuBlockOffset.IsEmpty)
                {
                    menuBlockOffset = renderingContext.Control.MenuBlockOffset.ToString();
                }

                renderingContext.Writer.AddStyleAttribute(HtmlTextWriterStyle.Width, menuBlockWidth);
                renderingContext.Writer.AddStyleAttribute(HtmlTextWriterStyle.PaddingLeft, menuBlockOffset);
                renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Col);
                renderingContext.Writer.RenderEndTag();
            }

            renderingContext.Writer.RenderEndTag();
        }
 public void RenderEmptyListDataRow(BocListRenderingContext renderingContext)
 {
     ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
     renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, "emptyStub");
     renderingContext.Writer.RenderBeginTag("tr");
     renderingContext.Writer.RenderEndTag();
 }
示例#3
0
        /// <summary>
        /// Renders the navigation bar consisting of the move buttons and the page information.
        /// </summary>
        public void Render(BocListRenderingContext renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            bool isFirstPage = renderingContext.Control.CurrentPageIndex == 0;
            bool isLastPage  = renderingContext.Control.CurrentPageIndex + 1 >= renderingContext.Control.PageCount;

            renderingContext.Writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClasses.Navigator);
            renderingContext.Writer.AddStyleAttribute("position", "relative");
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Div);

            //  Page info
            string pageInfo = GetResourceManager(renderingContext).GetString(ResourceIdentifier.PageInfo);

            string navigationText = string.Format(pageInfo, renderingContext.Control.CurrentPageIndex + 1, renderingContext.Control.PageCount);

            // Do not HTML encode.
            renderingContext.Writer.Write(navigationText);

            if (renderingContext.Control.HasClientScript)
            {
                renderingContext.Writer.Write(c_whiteSpace + c_whiteSpace + c_whiteSpace);

                RenderNavigationIcon(renderingContext, isFirstPage, GoToOption.First, 0);
                RenderNavigationIcon(renderingContext, isFirstPage, GoToOption.Previous, renderingContext.Control.CurrentPageIndex - 1);
                RenderNavigationIcon(renderingContext, isLastPage, GoToOption.Next, renderingContext.Control.CurrentPageIndex + 1);
                RenderNavigationIcon(renderingContext, isLastPage, GoToOption.Last, renderingContext.Control.PageCount - 1);

                RenderValueField(renderingContext);
            }
            renderingContext.Writer.RenderEndTag();
        }
示例#4
0
        public void RenderTitleCell(BocListRenderingContext renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            if (!renderingContext.Control.IsIndexEnabled)
            {
                return;
            }

            string cssClass = CssClasses.TitleCell + " " + CssClasses.TitleCellIndex;

            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClass);
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Th);
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Span);
            string indexColumnTitle = renderingContext.Control.IndexColumnTitle;

            if (string.IsNullOrEmpty(renderingContext.Control.IndexColumnTitle))
            {
                indexColumnTitle = renderingContext.Control.GetResourceManager().GetString(BocList.ResourceIdentifier.IndexColumnTitle);
            }

            // Do not HTML encode.
            renderingContext.Writer.Write(indexColumnTitle);
            renderingContext.Writer.RenderEndTag();
            renderingContext.Writer.RenderEndTag();
        }
示例#5
0
        private void RenderTopLevelColumnGroupForLegacyBrowser(BocListRenderingContext renderingContext)
        {
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Colgroup);

            //  Left: list block
            renderingContext.Writer.WriteBeginTag("col"); //  Required because RenderBeginTag(); RenderEndTag();
            //  writes empty tags, which is not valid for col in HTML 4.01
            renderingContext.Writer.Write(">");

            if (renderingContext.Control.HasMenuBlock)
            {
                //  Right: menu block
                renderingContext.Writer.WriteBeginTag("col");
                renderingContext.Writer.Write(" style=\"");

                string menuBlockWidth = c_defaultMenuBlockWidth;
                if (!renderingContext.Control.MenuBlockWidth.IsEmpty)
                {
                    menuBlockWidth = renderingContext.Control.MenuBlockWidth.ToString();
                }
                renderingContext.Writer.WriteStyleAttribute("width", menuBlockWidth);

                string menuBlockOffset = c_defaultMenuBlockOffset;
                if (!renderingContext.Control.MenuBlockOffset.IsEmpty)
                {
                    menuBlockOffset = renderingContext.Control.MenuBlockOffset.ToString();
                }
                renderingContext.Writer.WriteStyleAttribute("padding-left", menuBlockOffset);

                renderingContext.Writer.Write("\">");
            }

            renderingContext.Writer.RenderEndTag();
        }
        public void RenderDataRow(BocListRenderingContext renderingContext, BocListRowRenderingContext rowRenderingContext, int rowIndex)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
            ArgumentUtility.CheckNotNull("rowRenderingContext", rowRenderingContext);

            var absoluteRowIndex = rowRenderingContext.SortedIndex;
            var originalRowIndex = rowRenderingContext.Row.Index;
            var businessObject   = rowRenderingContext.Row.BusinessObject;

            bool isChecked = rowRenderingContext.IsSelected;
            bool isOddRow  = (rowIndex % 2 == 0); // row index is zero-based here, but one-based in rendering => invert even/odd

            string cssClassTableRow  = GetCssClassTableRow(renderingContext, isChecked);
            string cssClassTableCell = CssClasses.GetDataCell(isOddRow);

            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClassTableRow);
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Tr);

            _indexColumnRenderer.RenderDataCell(renderingContext, originalRowIndex, absoluteRowIndex, cssClassTableCell);
            _selectorColumnRenderer.RenderDataCell(renderingContext, rowRenderingContext, cssClassTableCell);

            var dataRowRenderEventArgs = new BocListDataRowRenderEventArgs(originalRowIndex, businessObject, true, isOddRow);

            renderingContext.Control.OnDataRowRendering(dataRowRenderEventArgs);

            foreach (BocColumnRenderer renderer in renderingContext.ColumnRenderers)
            {
                renderer.RenderDataCell(renderingContext, rowIndex, dataRowRenderEventArgs);
            }

            renderingContext.Writer.RenderEndTag();
        }
示例#7
0
        /// <summary> Renders the column group, which provides the table's column layout. </summary>
        private void RenderTableBlockColumnGroup(BocListRenderingContext renderingContext)
        {
            BocColumnRenderer[] columnRenderers = renderingContext.ColumnRenderers;

            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Colgroup);

            bool isTextXml = false;

            if (!renderingContext.Control.IsDesignMode)
            {
                isTextXml = ControlHelper.IsXmlConformResponseTextRequired(renderingContext.HttpContext);
            }

            RenderIndexColumnDeclaration(renderingContext, isTextXml);
            RenderSelectorColumnDeclaration(renderingContext, isTextXml);

            foreach (var renderer in columnRenderers)
            {
                renderer.RenderDataColumnDeclaration(renderingContext, isTextXml);
            }

            //  Design-mode and empty table
            if (ControlHelper.IsDesignMode(renderingContext.Control) && columnRenderers.Length == 0)
            {
                for (int i = 0; i < BocRowQuirksModeRenderer.DesignModeDummyColumnCount; i++)
                {
                    renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Col);
                    renderingContext.Writer.RenderEndTag();
                }
            }

            renderingContext.Writer.RenderEndTag();
        }
        public void RenderTitlesRow(BocListRenderingContext renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Tr);

            _indexColumnRenderer.RenderTitleCell(renderingContext);
            _selectorColumnRenderer.RenderTitleCell(renderingContext);

            foreach (var renderer in renderingContext.ColumnRenderers)
            {
                renderer.RenderTitleCell(renderingContext);
            }

            if (ControlHelper.IsDesignMode(renderingContext.Control) && renderingContext.ColumnRenderers.Length == 0)
            {
                for (int i = 0; i < DesignModeDummyColumnCount; i++)
                {
                    renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Td);
                    renderingContext.Writer.Write(String.Format(DesignModeDummyColumnTitle, i + 1));
                    renderingContext.Writer.RenderEndTag();
                }
            }

            renderingContext.Writer.RenderEndTag();
        }
示例#9
0
        /// <summary> Renders the zero-based row index normalized to a one-based format
        /// (Optionally as a label for the selector control). </summary>
        private void RenderRowIndex(BocListRenderingContext renderingContext, int index, string selectorControlID)
        {
            bool hasSelectorControl = selectorControlID != null;

            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClasses.Content);
            if (hasSelectorControl)
            {
                renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.For, selectorControlID);
                if (renderingContext.Control.HasClientScript)
                {
                    const string script = "BocList_OnSelectorControlLabelClick();";
                    renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Onclick, script);
                }
                renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Label);
            }
            else
            {
                renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Span);
            }
            int renderedIndex = index + 1;

            if (renderingContext.Control.IndexOffset != null)
            {
                renderedIndex += renderingContext.Control.IndexOffset.Value;
            }
            renderingContext.Writer.Write(renderedIndex);
            renderingContext.Writer.RenderEndTag();
        }
示例#10
0
        public void RenderDataCell(BocListRenderingContext renderingContext, int originalRowIndex, int absoluteRowIndex, string cssClassTableCell)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
            ArgumentUtility.CheckNotNull("cssClassTableCell", cssClassTableCell);

            if (!renderingContext.Control.IsIndexEnabled)
            {
                return;
            }

            string selectorControlID = renderingContext.Control.GetSelectorControlName().Replace('$', '_') + "_" + absoluteRowIndex;
            string cssClass          = cssClassTableCell + " " + CssClasses.DataCellIndex;

            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClass);
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Td);
            if (renderingContext.Control.Index == RowIndex.InitialOrder)
            {
                RenderRowIndex(renderingContext, originalRowIndex, selectorControlID);
            }
            else if (renderingContext.Control.Index == RowIndex.SortedOrder)
            {
                RenderRowIndex(renderingContext, absoluteRowIndex, selectorControlID);
            }
            renderingContext.Writer.RenderEndTag();
        }
 public void RenderDataRow(BocListRenderingContext renderingContext, BocListRowRenderingContext rowRenderingContext, int rowIndex)
 {
     ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
     ArgumentUtility.CheckNotNull("rowRenderingContext", rowRenderingContext);
     renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, "dataStub");
     renderingContext.Writer.RenderBeginTag("tr");
     renderingContext.Writer.RenderEndTag();
 }
示例#12
0
        /// <summary>
        /// Renders the data row of the <see cref="BocList"/>.
        /// </summary>
        /// <remarks>
        /// This method provides the outline of the table head, actual rendering of each row is delegated to
        /// <see cref="Web.UI.Controls.BocListImplementation.Rendering.BocRowRenderer.RenderTitlesRow"/>.
        /// The rows are nested within a &lt;thead&gt; element.
        /// </remarks>
        /// <seealso cref="Web.UI.Controls.BocListImplementation.Rendering.BocRowRenderer"/>
        protected virtual void RenderTableHead(BocListRenderingContext renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Thead);
            RowRenderer.RenderTitlesRow(renderingContext);
            renderingContext.Writer.RenderEndTag();
        }
示例#13
0
        public void SetUp()
        {
            Initialize();

            List.Stub(mock => mock.IsSelectionEnabled).Return(true);

            _bocListCssClassDefinition = new BocListCssClassDefinition();
            _bocListRenderingContext   = new BocListRenderingContext(HttpContext, Html.Writer, List, new BocColumnRenderer[0]);
        }
示例#14
0
        private void RenderOptionsMenu(BocListRenderingContext renderingContext, string menuBlockItemOffset)
        {
            if (!renderingContext.Control.HasOptionsMenu)
            {
                return;
            }

            renderingContext.Control.OptionsMenu.Style.Add("margin-bottom", menuBlockItemOffset);
            renderingContext.Control.OptionsMenu.RenderControl(renderingContext.Writer);
        }
示例#15
0
 public void SetUp()
 {
     _columnDefinition      = new StubColumnDefinition();
     _columnRenderMock      = MockRepository.GenerateStrictMock <IBocColumnRenderer>();
     _columnRendererAdapter = new BocColumnRenderer(_columnRenderMock, _columnDefinition, 0, 0, true, SortingDirection.None, 0);
     _htmlTextWriterStub    = MockRepository.GenerateStub <HtmlTextWriter>();
     _httpContextStub       = MockRepository.GenerateStub <HttpContextBase>();
     _bocListStub           = MockRepository.GenerateStub <IBocList>();
     _renderingContext      = new BocListRenderingContext(_httpContextStub, _htmlTextWriterStub, _bocListStub, new[] { _columnRendererAdapter });
 }
        private void AddRowSelectorAttributes(BocListRenderingContext renderingContext)
        {
            string alternateText = renderingContext.Control.GetResourceManager().GetString(BocList.ResourceIdentifier.SelectRowAlternateText);

            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Alt, alternateText);

            if (renderingContext.Control.HasClientScript)
            {
                const string script = "BocList_OnSelectionSelectorControlClick();";
                renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Onclick, script);
            }
        }
示例#17
0
        private void RenderValueField(BocListRenderingContext renderingContext)
        {
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Id, renderingContext.Control.GetCurrentPageControlName().Replace('$', '_'));
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Name, renderingContext.Control.GetCurrentPageControlName());
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Type, "hidden");
            renderingContext.Writer.AddAttribute(
                HtmlTextWriterAttribute.Value,
                renderingContext.Control.CurrentPageIndex.ToString(CultureInfo.InvariantCulture));

            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Input);
            renderingContext.Writer.RenderEndTag();
        }
示例#18
0
        /// <summary> Renderes the opening tag of the table. </summary>
        private void RenderTableOpeningTag(BocListRenderingContext renderingContext)
        {
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClasses.Table);
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Id, renderingContext.Control.ClientID + "_Table");
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Div);

            renderingContext.Writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClasses.Table);
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Table);
        }
示例#19
0
        private void RenderListMenu(BocListRenderingContext renderingContext, string menuBlockItemOffset)
        {
            if (!renderingContext.Control.HasListMenu)
            {
                return;
            }

            renderingContext.Writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            renderingContext.Writer.AddStyleAttribute("margin-bottom", menuBlockItemOffset);
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Div);
            renderingContext.Control.ListMenu.RenderControl(renderingContext.Writer);
            renderingContext.Writer.RenderEndTag();
        }
示例#20
0
 private void RenderEmptyTable(BocListRenderingContext renderingContext)
 {
     renderingContext.Writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
     renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
     renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");
     renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Table);
     renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Tr);
     renderingContext.Writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
     renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Td);
     renderingContext.Writer.Write("&nbsp;");
     renderingContext.Writer.RenderEndTag();
     renderingContext.Writer.RenderEndTag();
     renderingContext.Writer.RenderEndTag();
 }
        private string GetCssClassTableRow(BocListRenderingContext renderingContext, bool isChecked)
        {
            string cssClassTableRow;

            if (isChecked && renderingContext.Control.AreDataRowsClickSensitive())
            {
                cssClassTableRow = CssClasses.DataRowSelected;
            }
            else
            {
                cssClassTableRow = CssClasses.DataRow;
            }
            return(cssClassTableRow);
        }
示例#22
0
        protected virtual void RenderContents(BocListRenderingContext renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            //  Render list block / menu block
            renderingContext.Writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0");
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0");
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Table);

            RenderTopLevelColumnGroup = (ctx) => RenderTopLevelColumnGroupForLegacyBrowser(ctx);
            if (!ControlHelper.IsDesignMode(renderingContext.Control))
            {
                bool isXmlRequired = (renderingContext.HttpContext != null) && ControlHelper.IsXmlConformResponseTextRequired(renderingContext.HttpContext);
                if (isXmlRequired)
                {
                    RenderTopLevelColumnGroup = (ctx) => RenderTopLevelColumnGroupForXmlBrowser(ctx);
                }
            }

            RenderTopLevelColumnGroup(renderingContext);

            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Tr);

            //  List Block
            renderingContext.Writer.AddStyleAttribute("vertical-align", "top");
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Td);

            TableBlockRenderer.Render(renderingContext);

            if (renderingContext.Control.HasNavigator)
            {
                NavigationBlockRenderer.Render(renderingContext);
            }

            renderingContext.Writer.RenderEndTag();

            if (renderingContext.Control.HasMenuBlock)
            {
                //  Menu Block
                renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClasses.MenuBlock);
                renderingContext.Writer.AddStyleAttribute("vertical-align", "top");
                renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Td);
                MenuBlockRenderer.Render(renderingContext);
                renderingContext.Writer.RenderEndTag();
            }

            renderingContext.Writer.RenderEndTag(); //  TR
            renderingContext.Writer.RenderEndTag(); //  Table
        }
        private void AddSelectAllSelectorAttributes(BocListRenderingContext renderingContext)
        {
            string alternateText = renderingContext.Control.GetResourceManager().GetString(BocList.ResourceIdentifier.SelectAllRowsAlternateText);

            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Alt, alternateText);

            if (renderingContext.Control.HasClientScript)
            {
                string script = "BocList_OnSelectAllSelectorControlClick ("
                                + "document.getElementById ('" + renderingContext.Control.ClientID + "'), "
                                + "this , '"
                                + renderingContext.Control.GetSelectorControlName().Replace('$', '_') + "');";
                renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Onclick, script);
            }
        }
示例#24
0
        /// <summary>
        /// Renders the <see cref="BocList"/> to the <see cref="HtmlTextWriter"/> in the Writer property.
        /// </summary>
        /// <remarks>
        /// This method provides the outline table of the <see cref="BocList"/>, creating three areas:
        /// <list type="bullet">
        /// <item><description>A table block displaying the title and data rows. See <see cref="IBocListTableBlockRenderer"/>.</description></item>
        /// <item><description>A menu block containing the available commands. See <see cref="IBocListMenuBlockRenderer"/></description></item>
        /// <item><description>A navigation block to browse through pages of data rows. See <see cref="IBocListNavigationBlockRenderer"/>.</description></item>
        /// </list>
        /// </remarks>
        /// <seealso cref="BocListMenuBlockQuirksModeRenderer"/>
        /// <seealso cref="BocListNavigationBlockQuirksModeRenderer"/>
        public void Render(BocListRenderingContext renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            RegisterInitializeGlobalsScript(renderingContext);

            AddAttributesToRender(renderingContext, false);
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Div);

            RenderContents(renderingContext);

            renderingContext.Writer.RenderEndTag();

            RegisterInitializeListScript(renderingContext);
        }
示例#25
0
        /// <summary> Renders the menu block of the control. </summary>
        /// <remarks> Contains the drop down list for selcting a column configuration and the options menu.  </remarks>
        public void Render(BocListRenderingContext renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            string menuBlockItemOffset = c_defaultMenuBlockItemOffset;

            if (!renderingContext.Control.MenuBlockItemOffset.IsEmpty)
            {
                menuBlockItemOffset = renderingContext.Control.MenuBlockItemOffset.ToString();
            }

            RenderAvailableViewsList(renderingContext, menuBlockItemOffset);

            RenderOptionsMenu(renderingContext, menuBlockItemOffset);

            RenderListMenu(renderingContext, menuBlockItemOffset);
        }
示例#26
0
 /// <summary>Renders the col element for the index column</summary>
 private void RenderIndexColumnDeclaration(BocListRenderingContext renderingContext, bool isTextXml)
 {
     if (renderingContext.Control.IsIndexEnabled)
     {
         renderingContext.Writer.WriteBeginTag("col");
         renderingContext.Writer.Write(" style=\"");
         renderingContext.Writer.WriteStyleAttribute("width", "1.6em");
         renderingContext.Writer.Write("\"");
         if (isTextXml)
         {
             renderingContext.Writer.Write(" />");
         }
         else
         {
             renderingContext.Writer.Write(">");
         }
     }
 }
示例#27
0
        private void RegisterInitializeGlobalsScript(BocListRenderingContext renderingContext)
        {
            if (!renderingContext.Control.HasClientScript)
            {
                return;
            }

            string startUpScriptKey = typeof(IBocList).FullName + "_Startup";

            if (!renderingContext.Control.Page.ClientScript.IsStartupScriptRegistered(typeof(BocListQuirksModeRenderer), startUpScriptKey))
            {
                string script = string.Format(
                    "BocList_InitializeGlobals ('{0}', '{1}');",
                    CssClasses.DataRow,
                    CssClasses.DataRowSelected);
                renderingContext.Control.Page.ClientScript.RegisterStartupScriptBlock(renderingContext.Control, typeof(BocListQuirksModeRenderer), startUpScriptKey, script);
            }
        }
示例#28
0
        /// <summary>
        /// Renders the data contained in <see cref="IBocList"/> as a table.
        /// </summary>
        /// <remarks>
        /// The table consists of a title row showing the column titles, and a data row for each <see cref="IBusinessObject"/>
        /// in <see cref="IBocList"/>. If there is no data, the table will be completely hidden (only one cell containing only whitespace)
        /// if <see cref="Remotion.ObjectBinding.Web.UI.Controls.BocList.ShowEmptyListEditMode"/> is <see langword="false"/> and
        /// <see cref="IBocList"/> is editable
        /// or if <see cref="Remotion.ObjectBinding.Web.UI.Controls.BocList.ShowEmptyListReadOnlyMode"/> is <see langword="false"/> and
        /// <see cref="IBocList"/> is read-only.
        /// Exception: at design time, the title row will always be visible.
        /// </remarks>
        /// <seealso cref="RenderTableBlockColumnGroup"/>
        /// <seealso cref="RenderTableBody"/>
        public void Render(BocListRenderingContext renderingContext)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);

            bool isDesignMode     = ControlHelper.IsDesignMode(renderingContext.Control);
            bool isReadOnly       = renderingContext.Control.IsReadOnly;
            bool showForEmptyList = isReadOnly && renderingContext.Control.ShowEmptyListReadOnlyMode ||
                                    !isReadOnly && renderingContext.Control.ShowEmptyListEditMode;

            if (!renderingContext.Control.HasValue && !showForEmptyList)
            {
                RenderTable(renderingContext, isDesignMode, false);
            }
            else
            {
                RenderTable(renderingContext, true, true);
            }
        }
示例#29
0
        private void RenderAvailableViewsList(BocListRenderingContext renderingContext, string menuBlockItemOffset)
        {
            if (!renderingContext.Control.HasAvailableViewsList)
            {
                return;
            }

            renderingContext.Writer.AddStyleAttribute(HtmlTextWriterStyle.Width, "100%");
            renderingContext.Writer.AddStyleAttribute("margin-bottom", menuBlockItemOffset);
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Div);
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, CssClasses.AvailableViewsListLabel);

            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Span);
            string availableViewsListTitle;

            if (string.IsNullOrEmpty(renderingContext.Control.AvailableViewsListTitle))
            {
                availableViewsListTitle = renderingContext.Control.GetResourceManager().GetString(BocList.ResourceIdentifier.AvailableViewsListTitle);
            }
            else
            {
                availableViewsListTitle = renderingContext.Control.AvailableViewsListTitle;
            }
            // Do not HTML encode.
            renderingContext.Writer.Write(availableViewsListTitle);
            renderingContext.Writer.RenderEndTag();

            renderingContext.Writer.Write(c_whiteSpace);

            var availableViewsList = renderingContext.Control.GetAvailableViewsList();

            if (renderingContext.Control.IsDesignMode)
            {
                availableViewsList.Width = Unit.Point(c_designModeAvailableViewsListWidthInPoints);
            }
            availableViewsList.Enabled = !renderingContext.Control.EditModeController.IsRowEditModeActive &&
                                         !renderingContext.Control.EditModeController.IsListEditModeActive;
            availableViewsList.CssClass = CssClasses.AvailableViewsListDropDownList;
            availableViewsList.RenderControl(renderingContext.Writer);

            renderingContext.Writer.RenderEndTag();
        }
        public void RenderDataCell(BocListRenderingContext renderingContext, BocListRowRenderingContext rowRenderingContext, string cssClassTableCell)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
            ArgumentUtility.CheckNotNull("cssClassTableCell", cssClassTableCell);
            ArgumentUtility.CheckNotNullOrEmpty("cssClassTableCell", cssClassTableCell);

            if (!renderingContext.Control.IsSelectionEnabled)
            {
                return;
            }

            string selectorControlID    = renderingContext.Control.GetSelectorControlName().Replace('$', '_') + "_" + rowRenderingContext.SortedIndex;
            var    selectorControlName  = renderingContext.Control.GetSelectorControlName();
            var    selectorControlValue = renderingContext.Control.GetSelectorControlValue(rowRenderingContext.Row);
            var    isChecked            = rowRenderingContext.IsSelected;

            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClassTableCell);
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Td);
            RenderSelectorControl(renderingContext, selectorControlID, selectorControlName, selectorControlValue, isChecked, false);
            renderingContext.Writer.RenderEndTag();
        }