public override string GetDesignTimeHtml()
 {
     AdRotator viewControl = (AdRotator) base.ViewControl;
     StringWriter writer = new StringWriter(CultureInfo.CurrentCulture);
     DesignTimeHtmlTextWriter writer2 = new DesignTimeHtmlTextWriter(writer);
     HyperLink link = new HyperLink {
         ID = viewControl.ID,
         NavigateUrl = "",
         Target = viewControl.Target,
         AccessKey = viewControl.AccessKey,
         Enabled = viewControl.Enabled,
         TabIndex = viewControl.TabIndex
     };
     link.Style.Value = viewControl.Style.Value;
     link.RenderBeginTag(writer2);
     Image image = new Image();
     image.ApplyStyle(viewControl.ControlStyle);
     image.SetDesignMode();
     image.ImageUrl = "";
     image.AlternateText = viewControl.ID;
     image.ToolTip = viewControl.ToolTip;
     image.RenderControl(writer2);
     link.RenderEndTag(writer2);
     return writer.ToString();
 }
Example #2
0
        /// <include file='doc\AdRotator.uex' path='docs/doc[@for="AdRotator.Render"]/*' />
        /// <internalonly/>
        /// <devdoc>
        /// <para>Displays the <see cref='System.Web.UI.WebControls.AdRotator'/> on the client.</para>
        /// </devdoc>
        protected override void Render(HtmlTextWriter writer)
        {
            HyperLink bannerLink = new HyperLink();

            foreach (string key in Attributes.Keys)
            {
                bannerLink.Attributes[key] = Attributes[key];
            }

            if (this.ID != null && this.ID.Length > 0)
            {
                bannerLink.ID = this.ClientID;
            }
            if (this.navigateUrl != null && this.navigateUrl.Length > 0)
            {
                bannerLink.NavigateUrl = ResolveAdRotatorUrl(this.navigateUrl);
            }
            bannerLink.Target    = this.Target;
            bannerLink.AccessKey = this.AccessKey;
            bannerLink.Enabled   = this.Enabled;
            bannerLink.TabIndex  = this.TabIndex;
            bannerLink.RenderBeginTag(writer);

            // create inner Image
            Image bannerImage = new Image();

            // apply styles to image
            if (ControlStyleCreated)
            {
                bannerImage.ApplyStyle(this.ControlStyle);
            }
            bannerImage.AlternateText = this.alternateText;
            if (imageUrl != null && imageUrl.Length > 0)
            {
                bannerImage.ImageUrl = ResolveAdRotatorUrl(this.imageUrl);
            }
            bannerImage.ToolTip = this.ToolTip;
            bannerImage.RenderControl(writer);
            bannerLink.RenderEndTag(writer);;
        }
Example #3
0
        private void RenderLink(HtmlTextWriter writer, AdCreatedEventArgs adArgs)
        {
            HyperLink link = new HyperLink {
                NavigateUrl = adArgs.NavigateUrl,
                Target      = this.Target
            };

            if (base.HasAttributes)
            {
                foreach (string str in base.Attributes.Keys)
                {
                    link.Attributes[str] = base.Attributes[str];
                }
            }
            if (!string.IsNullOrEmpty(this.ID))
            {
                link.ID = this.ClientID;
            }
            if (!this.Enabled)
            {
                link.Enabled = false;
            }
            string str3 = (string)this.ViewState["AccessKey"];

            if (!string.IsNullOrEmpty(str3))
            {
                link.AccessKey = str3;
            }
            object obj2 = this.ViewState["TabIndex"];

            if (obj2 != null)
            {
                short num = (short)obj2;
                if (num != 0)
                {
                    link.TabIndex = num;
                }
            }
            link.RenderBeginTag(writer);
            Image image = new Image();

            if (base.ControlStyleCreated)
            {
                image.ApplyStyle(base.ControlStyle);
            }
            string alternateText = adArgs.AlternateText;

            if (!string.IsNullOrEmpty(alternateText))
            {
                image.AlternateText = alternateText;
            }
            else
            {
                IDictionary adProperties = adArgs.AdProperties;
                string      str5         = (this.AlternateTextField.Length != 0) ? this.AlternateTextField : "AlternateText";
                string      str6         = (adProperties == null) ? null : ((string)adProperties[str5]);
                if ((str6 != null) && (str6.Length == 0))
                {
                    image.GenerateEmptyAlternateText = true;
                }
            }
            image.UrlResolved = true;
            string imageUrl = adArgs.ImageUrl;

            if (!string.IsNullOrEmpty(imageUrl))
            {
                image.ImageUrl = imageUrl;
            }
            if (adArgs.HasWidth)
            {
                image.ControlStyle.Width = adArgs.Width;
            }
            if (adArgs.HasHeight)
            {
                image.ControlStyle.Height = adArgs.Height;
            }
            string str8 = (string)this.ViewState["ToolTip"];

            if (!string.IsNullOrEmpty(str8))
            {
                image.ToolTip = str8;
            }
            image.RenderControl(writer);
            link.RenderEndTag(writer);
        }
        private void RenderLink(HtmlTextWriter writer, AdCreatedEventArgs adArgs)
        {
            Debug.Assert(writer != null);
            Debug.Assert(adArgs != null);

            HyperLink bannerLink = new HyperLink();

            bannerLink.NavigateUrl = adArgs.NavigateUrl;
            bannerLink.Target      = Target;

            if (HasAttributes)
            {
                foreach (string key in Attributes.Keys)
                {
                    bannerLink.Attributes[key] = Attributes[key];
                }
            }

            string id = ID;

            if (!String.IsNullOrEmpty(id))
            {
                bannerLink.ID = ClientID;
            }

            if (!Enabled)
            {
                bannerLink.Enabled = false;
            }

            // WebControl's properties use a private flag to determine if a
            // property is set and does not return the value unless the flag is
            // marked.  So here we access those properites (inherited from WebControl)
            // directly from the ViewState bag because if ViewState bag reference
            // was copied to the helper class in the optimized case during the
            // Initialize() method, the flags of the properties wouldn't be set
            // in the helper class.
            string accessKey = (string)ViewState["AccessKey"];

            if (!String.IsNullOrEmpty(accessKey))
            {
                bannerLink.AccessKey = accessKey;
            }

            object o = ViewState["TabIndex"];

            if (o != null)
            {
                short tabIndex = (short)o;
                if (tabIndex != (short)0)
                {
                    bannerLink.TabIndex = tabIndex;
                }
            }

            bannerLink.RenderBeginTag(writer);

            // create inner Image
            Image bannerImage = new Image();

            // apply styles to image
            if (ControlStyleCreated)
            {
                bannerImage.ApplyStyle(ControlStyle);
            }

            string alternateText = adArgs.AlternateText;

            if (!String.IsNullOrEmpty(alternateText))
            {
                bannerImage.AlternateText = alternateText;
            }
            else
            {
                // 25914 Do not render empty 'alt' attribute if <AlternateText> tag is never specified
                IDictionary adProps    = adArgs.AdProperties;
                string      altTextKey = (AlternateTextField.Length != 0)
                                        ? AlternateTextField : AdCreatedEventArgs.AlternateTextElement;
                string altText = (adProps == null) ? null : (string)adProps[altTextKey];
                if (altText != null && altText.Length == 0)
                {
                    bannerImage.GenerateEmptyAlternateText = true;
                }
            }

            // Perf work: AdRotator should have resolved the NavigateUrl and
            // ImageUrl when assigning them and have UrlResolved set properly.
            bannerImage.UrlResolved = true;
            string imageUrl = adArgs.ImageUrl;

            if (!String.IsNullOrEmpty(imageUrl))
            {
                bannerImage.ImageUrl = imageUrl;
            }

            if (adArgs.HasWidth)
            {
                bannerImage.ControlStyle.Width = adArgs.Width;
            }

            if (adArgs.HasHeight)
            {
                bannerImage.ControlStyle.Height = adArgs.Height;
            }

            string toolTip = (string)ViewState["ToolTip"];

            if (!String.IsNullOrEmpty(toolTip))
            {
                bannerImage.ToolTip = toolTip;
            }

            bannerImage.RenderControl(writer);
            bannerLink.RenderEndTag(writer);
        }
		protected override void Render (HtmlTextWriter writer)
		{
			HyperLink hLink = new HyperLink ();
			Image adImage = new Image();
			foreach (string current in Attributes.Keys)
				hLink.Attributes [current] = Attributes [current];

			if (ID != null && ID.Length > 0)
				hLink.ID = ID;

			hLink.Target = Target;
			hLink.AccessKey = AccessKey;
			hLink.Enabled  = Enabled;
			hLink.TabIndex = TabIndex;
			if (navigateUrl != null && navigateUrl.Length != 0)
				hLink.NavigateUrl = ResolveAdUrl (navigateUrl);

			hLink.RenderBeginTag (writer);
			if (ControlStyleCreated)
				adImage.ApplyStyle(ControlStyle);

			if(imageUrl!=null && imageUrl.Length > 0)
				adImage.ImageUrl = ResolveAdUrl (imageUrl);

			adImage.AlternateText = alternateText;
			adImage.ToolTip = ToolTip;
			adImage.RenderControl (writer);
			hLink.RenderEndTag (writer);
		}
		/// <summary>
		/// 
		/// </summary>
		/// <param name="writer"></param>
		/// <author>
		/// Created by Iulian Iuga; 30 December, 2002
		/// </author>		
		protected void RenderContents( HtmlTextWriter writer )
		{
			TableRow _tr = new TableRow();
			TableCell _td = new TableCell();

			_tr.RenderBeginTag( writer );
			
			// apply CssClass for current element
			if( _element.TreeWeb.DefaultElementCssClass.Length > 0 )
				_td.CssClass = _element.TreeWeb.DefaultElementCssClass;
			if( _element.CssClass.Length > 0 )
				_td.CssClass = _element.CssClass;

			//_td.Style.Add( "display", "none" );
			_td.Attributes.Add( "nowrap", "yes" );
			_td.RenderBeginTag( writer );

			// render a &nbsp; at the begining of each element
			writer.Write( "&nbsp;" );

			// render element indentation based on element level
			string _indentation = "";
      int nIndentationPerStep = _element.TreeWeb.Indentation;
			for( int index = 0; index < (_element.Level * nIndentationPerStep); index++ )
				_indentation += _indentationStep;
			writer.Write( _indentation );

			// render the expand/collapse link if the element has child elements and is expandable.
			if( _element.HasElements )
			{
				HyperLink _link = new HyperLink();
				Image _image = new Image();

        if( _element.TreeWeb.Expandable && _element.Expandable )
        {
          if( _element.IsExpanded )
          {
            _link.Text = _expcol[1];
            if( _element.TreeWeb.ExpandedElementImage.Length > 0 )
              _image.ImageUrl = _element.TreeWeb.ExpandedElementImage;
          }
          else
          {
            _link.Text = _expcol[0];
            if( _element.TreeWeb.CollapsedElementImage.Length > 0 )
              _image.ImageUrl = _element.TreeWeb.CollapsedElementImage;
          }
        }

				string scriptCode = "javascript:";
				scriptCode += _element.TreeWeb.Page.GetPostBackEventReference( _element.TreeWeb, _element.ID );
				_link.NavigateUrl = scriptCode;

				if( _image.ImageUrl.Length > 0 )
				{
					_link.RenderBeginTag( writer );
					_image.RenderControl( writer );
					_link.RenderEndTag( writer );
				}
				else
					_link.RenderControl( writer );

				_image = null;
				_link = null;
				writer.Write( "&nbsp;" );
			}

			// render checkbox
			if( _element.TreeWeb.CheckBoxes || _element.CheckBox )
			{
				CheckBox _checkbox = new CheckBox();
				
				_checkbox.ID = _element.ID + TreeElement._separator + TreeElement._checkboxIDSufix;
				_checkbox.RenderControl( writer );

				_checkbox = null;
				
				// write a non-breaking space before the element text
				writer.Write( "&nbsp;" );
			}

			// render element's image if it has one
			if( _element.ImageIndex > -1 )
			{
				ElementImage _elementImage = _element.TreeWeb.ImageList[_element.ImageIndex];
				if( _elementImage != null )
				{
					Image _image = new Image();

					_image.ImageUrl = _elementImage.ImageUrl;
					_image.RenderControl( writer );

					_image = null;

					// write a non-breaking space before the element text
					writer.Write( "&nbsp;" );
				}
			}
			
			// render element text as a link if NavigateUrl is present or otherwise as normal text
			if( _element.NavigateUrl.Length > 0 )
			{
				HyperLink _linkNavigateUrl = new HyperLink();
				
				_linkNavigateUrl.Text = _element.Text;
				_linkNavigateUrl.NavigateUrl = _element.NavigateUrl;
				if( _element.TreeWeb.Target.Length > 0 )
					_linkNavigateUrl.Target = _element.TreeWeb.Target;
				if( _element.Target.Length > 0 )
					_linkNavigateUrl.Target = _element.Target;
				if( _element.ToolTip.Length > 0 )
					_linkNavigateUrl.ToolTip = _element.ToolTip;
				_linkNavigateUrl.RenderControl( writer );
				
				_linkNavigateUrl = null;
			}
			else
			{
				Label _label = new Label();

				_label.Text = _element.Text;
				if( _element.ToolTip.Length > 0 )
					_label.ToolTip = _element.ToolTip;
				_label.RenderControl( writer );

				_label = null;
			}

			_td.RenderEndTag( writer );
			_tr.RenderEndTag( writer );
		}
 protected internal virtual void RenderItem(HtmlTextWriter writer, MenuItem item, int position)
 {
     bool flag4;
     string str6;
     Menu control = this.Control;
     MenuItemStyle menuItemStyle = control.GetMenuItemStyle(item);
     string imageUrl = item.ImageUrl;
     int depth = item.Depth;
     int num2 = depth + 1;
     string toolTip = item.ToolTip;
     string navigateUrl = item.NavigateUrl;
     string text = item.Text;
     bool isEnabled = item.IsEnabled;
     bool selectable = item.Selectable;
     MenuItemCollection childItems = item.ChildItems;
     string staticTopSeparatorImageUrl = null;
     if ((depth < control.StaticDisplayLevels) && (control.StaticTopSeparatorImageUrl.Length != 0))
     {
         staticTopSeparatorImageUrl = control.StaticTopSeparatorImageUrl;
     }
     else if ((depth >= control.StaticDisplayLevels) && (control.DynamicTopSeparatorImageUrl.Length != 0))
     {
         staticTopSeparatorImageUrl = control.DynamicTopSeparatorImageUrl;
     }
     if (staticTopSeparatorImageUrl != null)
     {
         new Image { ImageUrl = staticTopSeparatorImageUrl, GenerateEmptyAlternateText = true, Page = base.Page }.RenderControl(writer);
         this.RenderBreak(writer);
     }
     if (((menuItemStyle != null) && !menuItemStyle.ItemSpacing.IsEmpty) && ((this._titleItem != null) || (position != 0)))
     {
         this.RenderSpace(writer, menuItemStyle.ItemSpacing, control.Orientation);
     }
     Panel panel = new SpanPanel {
         Enabled = isEnabled,
         Page = base.Page
     };
     if ((base.Page != null) && base.Page.SupportsStyleSheets)
     {
         string cssClassName = control.GetCssClassName(item, false);
         if (cssClassName.Trim().Length > 0)
         {
             panel.CssClass = cssClassName;
         }
     }
     else if (menuItemStyle != null)
     {
         panel.ApplyStyle(menuItemStyle);
     }
     if (item.ToolTip.Length != 0)
     {
         panel.ToolTip = item.ToolTip;
     }
     panel.RenderBeginTag(writer);
     bool flag3 = (((position != 0) && (childItems.Count != 0)) && (num2 >= control.StaticDisplayLevels)) && (num2 < control.MaximumDepth);
     if (((position != 0) && (depth > 0)) && ((control.StaticSubMenuIndent != Unit.Pixel(0)) && (depth < control.StaticDisplayLevels)))
     {
         Image image2 = new Image {
             ImageUrl = control.SpacerImageUrl,
             GenerateEmptyAlternateText = true
         };
         double num3 = control.StaticSubMenuIndent.Value * depth;
         if (num3 < 32767.0)
         {
             image2.Width = new Unit(num3, control.StaticSubMenuIndent.Type);
         }
         else
         {
             image2.Width = new Unit(32767.0, control.StaticSubMenuIndent.Type);
         }
         image2.Height = Unit.Pixel(1);
         image2.Page = base.Page;
         image2.RenderControl(writer);
     }
     if ((imageUrl.Length > 0) && item.NotTemplated())
     {
         Image image3 = new Image {
             ImageUrl = imageUrl
         };
         if (toolTip.Length != 0)
         {
             image3.AlternateText = toolTip;
         }
         else
         {
             image3.GenerateEmptyAlternateText = true;
         }
         image3.Page = base.Page;
         image3.RenderControl(writer);
         writer.Write(' ');
     }
     if ((base.Page != null) && base.Page.SupportsStyleSheets)
     {
         str6 = control.GetCssClassName(item, true, out flag4);
     }
     else
     {
         str6 = string.Empty;
         flag4 = false;
     }
     if (isEnabled && (flag3 || selectable))
     {
         string accessKey = control.AccessKey;
         string str8 = (((position == 0) || ((position == 1) && (depth == 0))) && (accessKey.Length != 0)) ? accessKey : null;
         if ((navigateUrl.Length > 0) && !flag3)
         {
             if (base.PageAdapter != null)
             {
                 base.PageAdapter.RenderBeginHyperlink(writer, control.ResolveClientUrl(navigateUrl), true, System.Web.SR.GetString("Adapter_GoLabel"), (str8 != null) ? str8 : ((this._currentAccessKey < 10) ? this._currentAccessKey++.ToString(CultureInfo.InvariantCulture) : null));
                 writer.Write(HttpUtility.HtmlEncode(item.FormattedText));
                 base.PageAdapter.RenderEndHyperlink(writer);
             }
             else
             {
                 HyperLink link = new HyperLink {
                     NavigateUrl = control.ResolveClientUrl(navigateUrl)
                 };
                 string target = item.Target;
                 if (string.IsNullOrEmpty(target))
                 {
                     target = control.Target;
                 }
                 if (!string.IsNullOrEmpty(target))
                 {
                     link.Target = target;
                 }
                 link.AccessKey = str8;
                 link.Page = base.Page;
                 if (writer is Html32TextWriter)
                 {
                     link.RenderBeginTag(writer);
                     SpanPanel panel2 = new SpanPanel {
                         Page = base.Page
                     };
                     this.RenderStyle(writer, panel2, str6, menuItemStyle, flag4);
                     panel2.RenderBeginTag(writer);
                     item.RenderText(writer);
                     panel2.RenderEndTag(writer);
                     link.RenderEndTag(writer);
                 }
                 else
                 {
                     this.RenderStyle(writer, link, str6, menuItemStyle, flag4);
                     link.RenderBeginTag(writer);
                     item.RenderText(writer);
                     link.RenderEndTag(writer);
                 }
             }
         }
         else if (base.PageAdapter != null)
         {
             base.PageAdapter.RenderPostBackEvent(writer, control.UniqueID, (flag3 ? 'o' : 'b') + this.Escape(item.InternalValuePath), System.Web.SR.GetString("Adapter_OKLabel"), item.FormattedText, null, (str8 != null) ? str8 : ((this._currentAccessKey < 10) ? this._currentAccessKey++.ToString(CultureInfo.InvariantCulture) : null));
             if (flag3)
             {
                 this.RenderExpand(writer, item, control);
             }
         }
         else
         {
             HyperLink link2 = new HyperLink {
                 NavigateUrl = base.Page.ClientScript.GetPostBackClientHyperlink(control, (flag3 ? 'o' : 'b') + this.Escape(item.InternalValuePath), true),
                 AccessKey = str8,
                 Page = base.Page
             };
             if (writer is Html32TextWriter)
             {
                 link2.RenderBeginTag(writer);
                 SpanPanel panel3 = new SpanPanel {
                     Page = base.Page
                 };
                 this.RenderStyle(writer, panel3, str6, menuItemStyle, flag4);
                 panel3.RenderBeginTag(writer);
                 item.RenderText(writer);
                 if (flag3)
                 {
                     this.RenderExpand(writer, item, control);
                 }
                 panel3.RenderEndTag(writer);
                 link2.RenderEndTag(writer);
             }
             else
             {
                 this.RenderStyle(writer, link2, str6, menuItemStyle, flag4);
                 link2.RenderBeginTag(writer);
                 item.RenderText(writer);
                 if (flag3)
                 {
                     this.RenderExpand(writer, item, control);
                 }
                 link2.RenderEndTag(writer);
             }
         }
     }
     else
     {
         item.RenderText(writer);
     }
     panel.RenderEndTag(writer);
     this.RenderBreak(writer);
     if ((menuItemStyle != null) && !menuItemStyle.ItemSpacing.IsEmpty)
     {
         this.RenderSpace(writer, menuItemStyle.ItemSpacing, control.Orientation);
     }
     string separatorImageUrl = null;
     if (item.SeparatorImageUrl.Length != 0)
     {
         separatorImageUrl = item.SeparatorImageUrl;
     }
     else if ((depth < control.StaticDisplayLevels) && (control.StaticBottomSeparatorImageUrl.Length != 0))
     {
         separatorImageUrl = control.StaticBottomSeparatorImageUrl;
     }
     else if ((depth >= control.StaticDisplayLevels) && (control.DynamicBottomSeparatorImageUrl.Length != 0))
     {
         separatorImageUrl = control.DynamicBottomSeparatorImageUrl;
     }
     if (separatorImageUrl != null)
     {
         new Image { ImageUrl = separatorImageUrl, GenerateEmptyAlternateText = true, Page = base.Page }.RenderControl(writer);
         this.RenderBreak(writer);
     }
 }
        protected virtual internal void RenderItem(HtmlTextWriter writer, MenuItem item, int position) {
            Menu owner = Control;
            MenuItemStyle mergedStyle = owner.GetMenuItemStyle(item);

            string imageUrl = item.ImageUrl;
            int depth = item.Depth;
            int depthPlusOne = depth + 1;
            string toolTip = item.ToolTip;
            string navigateUrl = item.NavigateUrl;
            string text = item.Text;
            bool enabled = item.IsEnabled;
            bool selectable = item.Selectable;
            MenuItemCollection childItems = item.ChildItems;

            // Top separator
            string topSeparatorUrl = null;
            if (depth < owner.StaticDisplayLevels && owner.StaticTopSeparatorImageUrl.Length != 0) {
                topSeparatorUrl = owner.StaticTopSeparatorImageUrl;
            }
            else if (depth >= owner.StaticDisplayLevels && owner.DynamicTopSeparatorImageUrl.Length != 0) {
                topSeparatorUrl = owner.DynamicTopSeparatorImageUrl;
            }
            if (topSeparatorUrl != null) {
                Image separatorImage = new Image();
                separatorImage.ImageUrl = topSeparatorUrl;
                separatorImage.GenerateEmptyAlternateText = true; // XHtml compliance
                separatorImage.Page = Page;
                separatorImage.RenderControl(writer);
                RenderBreak(writer);
            }

            // Don't render the top spacing if this is the first root item
            if ((mergedStyle != null) && !mergedStyle.ItemSpacing.IsEmpty &&
                ((_titleItem != null) || (position != 0))) {
                RenderSpace(writer, mergedStyle.ItemSpacing, owner.Orientation);
            }

            // Item span
            Panel itemPanel = new SpanPanel();
            itemPanel.Enabled = enabled;
            itemPanel.Page = Page;

            // Apply styles
            if (Page != null && Page.SupportsStyleSheets) {
                string styleClass = owner.GetCssClassName(item, false);
                if (styleClass.Trim().Length > 0) {
                    itemPanel.CssClass = styleClass;
                }
            }
            else if (mergedStyle != null) {
                itemPanel.ApplyStyle(mergedStyle);
            }

            // Tooltip
            if (item.ToolTip.Length != 0) {
                itemPanel.ToolTip = item.ToolTip;
            }

            // Render item begin tag
            itemPanel.RenderBeginTag(writer);

            // If there is a navigation url on this item, set up the navigation stuff if:
            // - the item is the current title item for this level
            // - the item has no children
            // - the item is a static item of depth + 1 < StaticDisplayLevels
            bool clickOpensThisNode = !((position == 0) || 
                                        (childItems.Count == 0) ||
                                        (depthPlusOne < owner.StaticDisplayLevels) || 
                                        (depthPlusOne >= owner.MaximumDepth));
           
            // Indent
            if (position != 0 &&
                depth > 0 &&
                owner.StaticSubMenuIndent != Unit.Pixel(0) &&
                depth < owner.StaticDisplayLevels) {
                Image spacerImage = new Image();
                spacerImage.ImageUrl = owner.SpacerImageUrl;
                spacerImage.GenerateEmptyAlternateText = true; // XHtml compliance
                double indent = owner.StaticSubMenuIndent.Value * depth;
                if (indent < Unit.MaxValue) {
                    spacerImage.Width = new Unit(indent, owner.StaticSubMenuIndent.Type);
                }
                else {
                    spacerImage.Width = new Unit(Unit.MaxValue, owner.StaticSubMenuIndent.Type);;
                }
                spacerImage.Height = Unit.Pixel(1);
                spacerImage.Page = Page;
                spacerImage.RenderControl(writer);
            }

            // Render out the item icon, if it is set and if the item is not templated (VSWhidbey 501618)
            if (imageUrl.Length > 0 && item.NotTemplated()) {
                Image newImage = new Image();
                newImage.ImageUrl = imageUrl;
                if (toolTip.Length != 0) {
                    newImage.AlternateText = toolTip;
                }
                else {
                    newImage.GenerateEmptyAlternateText = true; // XHtml compliance
                }
                newImage.Page = Page;
                newImage.RenderControl(writer);
                writer.Write(' ');
            }

            bool applyInlineBorder;
            string linkClass;
            if (Page != null && Page.SupportsStyleSheets) {
                linkClass = owner.GetCssClassName(item, true, out applyInlineBorder);
            }
            else {
                linkClass = String.Empty;
                applyInlineBorder = false;
            }
            if (enabled && (clickOpensThisNode || selectable)) {
                string accessKey = owner.AccessKey;
                string itemAccessKey = ((position == 0 || (position == 1 && depth == 0)) && accessKey.Length != 0) ?
                    accessKey :
                    null;
                if (navigateUrl.Length > 0 && !clickOpensThisNode) {
                    if (PageAdapter != null) {
                        PageAdapter.RenderBeginHyperlink(writer,
                                                         owner.ResolveClientUrl(navigateUrl),
                                                         true,
                                                         SR.GetString(SR.Adapter_GoLabel),
                                                         itemAccessKey != null ?
                                                          itemAccessKey :
                                                          (_currentAccessKey < 10 ?
                                                            (_currentAccessKey++).ToString(CultureInfo.InvariantCulture) :
                                                            null));
                        writer.Write(HttpUtility.HtmlEncode(item.FormattedText));
                        PageAdapter.RenderEndHyperlink(writer);
                    }
                    else {
                        HyperLink link = new HyperLink();
                        link.NavigateUrl = owner.ResolveClientUrl(navigateUrl);
                        string target = item.Target;
                        if (String.IsNullOrEmpty(target)) {
                            target = owner.Target;
                        }
                        if (!String.IsNullOrEmpty(target)) {
                            link.Target = target;
                        }
                        link.AccessKey = itemAccessKey;
                        link.Page = Page;
                        if (writer is Html32TextWriter) {
                            link.RenderBeginTag(writer);
                            SpanPanel lbl = new SpanPanel();
                            lbl.Page = Page;
                            RenderStyle(writer, lbl, linkClass, mergedStyle, applyInlineBorder);
                            lbl.RenderBeginTag(writer);
                            item.RenderText(writer);
                            lbl.RenderEndTag(writer);
                            link.RenderEndTag(writer);
                        }
                        else {
                            RenderStyle(writer, link, linkClass, mergedStyle, applyInlineBorder);
                            link.RenderBeginTag(writer);
                            item.RenderText(writer);
                            link.RenderEndTag(writer);
                        }
                    }
                }
                // Otherwise, write out a postback that will open or select the item
                else {
                    if (PageAdapter != null) {
                        PageAdapter.RenderPostBackEvent(writer,
                                                        owner.UniqueID,
                                                        (clickOpensThisNode ? 'o' : 'b') +
                                                            Escape(item.InternalValuePath),
                                                        SR.GetString(SR.Adapter_OKLabel),
                                                        item.FormattedText,
                                                        null,
                                                        itemAccessKey != null ?
                                                          itemAccessKey :
                                                          (_currentAccessKey < 10 ?
                                                         (_currentAccessKey++).ToString(CultureInfo.InvariantCulture) :
                                                         null));

                        // Expand image
                        if (clickOpensThisNode) {
                            RenderExpand(writer, item, owner);
                        }
                    }
                    else {
                        HyperLink link = new HyperLink();
                        link.NavigateUrl = Page.ClientScript.GetPostBackClientHyperlink(owner,
                            (clickOpensThisNode ? 'o' : 'b') + Escape(item.InternalValuePath), true);
                        link.AccessKey = itemAccessKey;
                        link.Page = Page;
                        if (writer is Html32TextWriter) {
                            link.RenderBeginTag(writer);
                            SpanPanel lbl = new SpanPanel();
                            lbl.Page = Page;
                            RenderStyle(writer, lbl, linkClass, mergedStyle, applyInlineBorder);
                            lbl.RenderBeginTag(writer);
                            item.RenderText(writer);
                            if (clickOpensThisNode) {
                                RenderExpand(writer, item, owner);
                            }
                            lbl.RenderEndTag(writer);
                            link.RenderEndTag(writer);
                        }
                        else {
                            RenderStyle(writer, link, linkClass, mergedStyle, applyInlineBorder);
                            link.RenderBeginTag(writer);
                            item.RenderText(writer);
                            if (clickOpensThisNode) {
                                RenderExpand(writer, item, owner);
                            }
                            link.RenderEndTag(writer);
                        }
                    }
                }
            }
            else {
                item.RenderText(writer);
            }
            itemPanel.RenderEndTag(writer);

            // Bottom (or right) item spacing
            RenderBreak(writer);
            if ((mergedStyle != null) && !mergedStyle.ItemSpacing.IsEmpty) {
                RenderSpace(writer, mergedStyle.ItemSpacing, owner.Orientation);
            }

            // Bottom separator
            string bottomSeparatorUrl = null;
            if (item.SeparatorImageUrl.Length != 0) {
                bottomSeparatorUrl = item.SeparatorImageUrl;
            }
            else if ((depth < owner.StaticDisplayLevels) && (owner.StaticBottomSeparatorImageUrl.Length != 0)) {
                bottomSeparatorUrl = owner.StaticBottomSeparatorImageUrl;
            }
            else if ((depth >= owner.StaticDisplayLevels) && (owner.DynamicBottomSeparatorImageUrl.Length != 0)) {
                bottomSeparatorUrl = owner.DynamicBottomSeparatorImageUrl;
            }
            if (bottomSeparatorUrl != null) {
                Image separatorImage = new Image();
                separatorImage.ImageUrl = bottomSeparatorUrl;
                separatorImage.GenerateEmptyAlternateText = true; // XHtml compliance
                separatorImage.Page = Page;
                separatorImage.RenderControl(writer);
                RenderBreak(writer);
            }
        }
 private void RenderLink(HtmlTextWriter writer, AdCreatedEventArgs adArgs)
 {
     HyperLink link = new HyperLink {
         NavigateUrl = adArgs.NavigateUrl,
         Target = this.Target
     };
     if (base.HasAttributes)
     {
         foreach (string str in base.Attributes.Keys)
         {
             link.Attributes[str] = base.Attributes[str];
         }
     }
     if (!string.IsNullOrEmpty(this.ID))
     {
         link.ID = this.ClientID;
     }
     if (!this.Enabled)
     {
         link.Enabled = false;
     }
     string str3 = (string) this.ViewState["AccessKey"];
     if (!string.IsNullOrEmpty(str3))
     {
         link.AccessKey = str3;
     }
     object obj2 = this.ViewState["TabIndex"];
     if (obj2 != null)
     {
         short num = (short) obj2;
         if (num != 0)
         {
             link.TabIndex = num;
         }
     }
     link.RenderBeginTag(writer);
     Image image = new Image();
     if (base.ControlStyleCreated)
     {
         image.ApplyStyle(base.ControlStyle);
     }
     string alternateText = adArgs.AlternateText;
     if (!string.IsNullOrEmpty(alternateText))
     {
         image.AlternateText = alternateText;
     }
     else
     {
         IDictionary adProperties = adArgs.AdProperties;
         string str5 = (this.AlternateTextField.Length != 0) ? this.AlternateTextField : "AlternateText";
         string str6 = (adProperties == null) ? null : ((string) adProperties[str5]);
         if ((str6 != null) && (str6.Length == 0))
         {
             image.GenerateEmptyAlternateText = true;
         }
     }
     image.UrlResolved = true;
     string imageUrl = adArgs.ImageUrl;
     if (!string.IsNullOrEmpty(imageUrl))
     {
         image.ImageUrl = imageUrl;
     }
     if (adArgs.HasWidth)
     {
         image.ControlStyle.Width = adArgs.Width;
     }
     if (adArgs.HasHeight)
     {
         image.ControlStyle.Height = adArgs.Height;
     }
     string str8 = (string) this.ViewState["ToolTip"];
     if (!string.IsNullOrEmpty(str8))
     {
         image.ToolTip = str8;
     }
     image.RenderControl(writer);
     link.RenderEndTag(writer);
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="writer"></param>
 /// <remarks>
 /// </remarks>
 /// <history>
 /// 	[jbrinkman]	5/6/2004	Created
 ///		[Jon Henning] 11/28/2005 Added iscrawler logic
 /// </history>
 protected void RenderExpandNodeIcon( HtmlTextWriter writer )
 {
     if( _Node.HasNodes )
     {
         HyperLink _link = new HyperLink();
         Image _image = new Image();
         if( _Node.IsExpanded || _Node.DNNTree.IsCrawler )
         {
             _link.Text = _expcol[1];
             if( _Node.DNNTree.ExpandedNodeImage.Length > 0 )
             {
                 _image.ImageUrl = _Node.DNNTree.ExpandedNodeImage;
             }
         }
         else
         {
             _link.Text = _expcol[0];
             if( _Node.DNNTree.CollapsedNodeImage.Length > 0 )
             {
                 _image.ImageUrl = _Node.DNNTree.CollapsedNodeImage;
             }
         }
         //If _Node.PopulateOnDemand Then	'handled in postback handler
         //	_link.NavigateUrl = ClientAPI.GetPostBackClientHyperlink(_Node.DNNTree, _Node.ID & ",OnDemand")
         //Else
         _link.NavigateUrl = ClientAPI.GetPostBackClientHyperlink( _Node.DNNTree, _Node.ID );
         //End If
         if( _image.ImageUrl.Length > 0 )
         {
             _link.RenderBeginTag( writer );
             _image.RenderControl( writer );
             _link.RenderEndTag( writer );
         }
         else
         {
             _link.RenderControl( writer );
         }
         _image = null;
         _link = null;
     }
     else
     {
         RenderSpacer( writer, _Node.DNNTree.ExpandCollapseImageWidth );
     }
     writer.Write( "&nbsp;", null );
 }
Example #11
0
        private void RenderLink(HtmlTextWriter writer, AdCreatedEventArgs adArgs) {
            Debug.Assert(writer != null);
            Debug.Assert(adArgs != null);

            HyperLink bannerLink = new HyperLink();

            bannerLink.NavigateUrl = adArgs.NavigateUrl;
            bannerLink.Target = Target;

            if (HasAttributes) {
                foreach(string key in Attributes.Keys) {
                    bannerLink.Attributes[key] = Attributes[key];
                }
            }

            string id = ID;
            if (!String.IsNullOrEmpty(id)) {
                bannerLink.ID = ClientID;
            }

            if (!Enabled) {
                bannerLink.Enabled = false;
            }

            // WebControl's properties use a private flag to determine if a
            // property is set and does not return the value unless the flag is
            // marked.  So here we access those properites (inherited from WebControl)
            // directly from the ViewState bag because if ViewState bag reference
            // was copied to the helper class in the optimized case during the
            // Initialize() method, the flags of the properties wouldn't be set
            // in the helper class.
            string accessKey = (string) ViewState["AccessKey"];
            if (!String.IsNullOrEmpty(accessKey)) {
                bannerLink.AccessKey = accessKey;
            }

            object o = ViewState["TabIndex"];
            if (o != null) {
                short tabIndex = (short) o;
                if (tabIndex != (short) 0) {
                    bannerLink.TabIndex = tabIndex;
                }
            }

            bannerLink.RenderBeginTag(writer);

            // create inner Image
            Image bannerImage = new Image();
            // apply styles to image
            if (ControlStyleCreated) {
                bannerImage.ApplyStyle(ControlStyle);
            }

            string alternateText = adArgs.AlternateText;
            if (!String.IsNullOrEmpty(alternateText)) {
                bannerImage.AlternateText = alternateText;
            }
            else {
                // 25914 Do not render empty 'alt' attribute if <AlternateText> tag is never specified
                IDictionary adProps = adArgs.AdProperties;
                string altTextKey = (AlternateTextField.Length != 0)
                                        ? AlternateTextField : AdCreatedEventArgs.AlternateTextElement;
                string altText = (adProps == null) ? null : (string) adProps[altTextKey];
                if (altText != null && altText.Length == 0) {
                    bannerImage.GenerateEmptyAlternateText = true;
                }
            }

            // Perf work: AdRotator should have resolved the NavigateUrl and
            // ImageUrl when assigning them and have UrlResolved set properly.
            bannerImage.UrlResolved = true;
            string imageUrl = adArgs.ImageUrl;
            if (!String.IsNullOrEmpty(imageUrl)) {
                bannerImage.ImageUrl = imageUrl;
            }

            if (adArgs.HasWidth) {
                bannerImage.ControlStyle.Width = adArgs.Width;
            }

            if (adArgs.HasHeight) {
                bannerImage.ControlStyle.Height = adArgs.Height;
            }

            string toolTip = (string) ViewState["ToolTip"];
            if (!String.IsNullOrEmpty(toolTip)) {
                bannerImage.ToolTip = toolTip;
            }

            bannerImage.RenderControl(writer);
            bannerLink.RenderEndTag(writer);
        }