コード例 #1
0
        protected internal override void Render(HtmlTextWriter markupWriter)
        {
            WmlTextWriter writer = (WmlTextWriter)markupWriter;

            string postUrl = Control.PostBackUrl;

            if (!String.IsNullOrEmpty(postUrl))
            {
                postUrl = Control.ResolveClientUrl(Control.PostBackUrl);
            }

            //
            if (Page != null && Page.Request != null && (String)Page.Request.Browser["supportsImageSubmit"] == "false")
            {
                writer.EnterStyle(Control.ControlStyle);

                PageAdapter.RenderPostBackEvent(writer, Control.UniqueID /* target */, "EA" /* argument, placeholder only */, Control.SoftkeyLabel, Control.AlternateText, postUrl, null /* accesskey */);
                writer.ExitStyle(Control.ControlStyle);
                return;
            }
            writer.EnterStyle(Control.ControlStyle);
            ((WmlPageAdapter)PageAdapter).RenderBeginPostBack(writer, Control.SoftkeyLabel /* maps to title attribute, Whidbey 10732 */, Control.AccessKey);
            base.Render(writer);
            ((WmlPageAdapter)PageAdapter).RenderEndPostBack(writer, Control.UniqueID, "EA" /* argument, placeholder only */, postUrl);
            writer.ExitStyle(Control.ControlStyle);
        }
コード例 #2
0
 public BrowserAdapter(T driver, BrowserType type)
 {
     Type        = type;
     Driver      = driver;
     _page       = new PageAdapter <T>(this);
     _javaScript = new JavaScriptAdapter <T>(this);
 }
コード例 #3
0
        // Get List Page Using Database
        public void Get_CommunitiesList_Page()
        {
            try
            {
                if (UserID == UserDetails.User_id)
                {
                    //Get Pages From Database
                    var dbDatabase = new SqLiteDatabase();
                    var localList  = dbDatabase.Get_Pages();
                    if (localList != null)
                    {
                        PageAdapter.mPageList = new ObservableCollection <Get_Community_Object.Page>(localList);
                        PageAdapter.BindEnd();
                    }

                    dbDatabase.Dispose();
                }

                //Get Pages From API
                Get_CommunitiesList_Page_API();
            }
            catch (Exception e)
            {
                Crashes.TrackError(e);
            }
        }
コード例 #4
0
ファイル: V100JavaScript.cs プロジェクト: nikhildas/selenium
 /// <summary>
 /// Initializes a new instance of the <see cref="V100JavaScript"/> class.
 /// </summary>
 /// <param name="runtime">The DevTools Protocol adapter for the Runtime domain.</param>
 /// <param name="page">The DevTools Protocol adapter for the Page domain.</param>
 public V100JavaScript(RuntimeAdapter runtime, PageAdapter page)
 {
     this.runtime = runtime;
     this.page    = page;
     this.runtime.BindingCalled    += OnRuntimeBindingCalled;
     this.runtime.ConsoleAPICalled += OnRuntimeConsoleApiCalled;
     this.runtime.ExceptionThrown  += OnRuntimeExceptionThrown;
 }
コード例 #5
0
        protected override void RenderContents(HtmlTextWriter writer)
        {
            Menu owner    = Control;
            int  position = 0;

            if (_titleItem != null)
            {
                if (_titleItem.Depth + 1 >= owner.MaximumDepth)
                {
                    throw new InvalidOperationException(SR.GetString(SR.Menu_InvalidDepth));
                }
                if (!_titleItem.IsEnabled)
                {
                    throw new InvalidOperationException(SR.GetString(SR.Menu_InvalidNavigation));
                }
                RenderItem(writer, _titleItem, position++);
                foreach (MenuItem child in _titleItem.ChildItems)
                {
                    RenderItem(writer, child, position++);
                }
                if (PageAdapter != null)
                {
                    PageAdapter.RenderPostBackEvent(writer,
                                                    owner.UniqueID,
                                                    "u",
                                                    SR.GetString(SR.MenuAdapter_Up),
                                                    SR.GetString(SR.MenuAdapter_UpOneLevel));
                }
                else
                {
                    HyperLink link = new HyperLink();
                    link.NavigateUrl = Page.ClientScript.GetPostBackClientHyperlink(owner, "u");
                    link.Text        = SR.GetString(SR.MenuAdapter_UpOneLevel);
                    link.Page        = Page;
                    link.RenderControl(writer);
                }
                return;
            }
            else
            {
                position = 1;
            }
            _path = null;
            foreach (MenuItem child in owner.Items)
            {
                RenderItem(writer, child, position++);
                if (owner.StaticDisplayLevels > 1 && child.ChildItems.Count > 0)
                {
                    RenderContentsRecursive(writer, child, 1, owner.StaticDisplayLevels);
                }
            }
        }
コード例 #6
0
 //Event Refresh Data Page
 private void SwipeRefreshLayoutOnRefresh(object sender, EventArgs e)
 {
     try
     {
         PageAdapter.Clear();
         ManagePagesAdapter.Clear();
         Get_CommunitiesList_Page();
     }
     catch (Exception exception)
     {
         Crashes.TrackError(exception);
     }
 }
コード例 #7
0
 protected internal override void Render(HtmlTextWriter writer)
 {
     if (Control.HotSpots.Count > 0)
     {
         HotSpotMode mapMode = Control.HotSpotMode;
         if (mapMode == HotSpotMode.NotSet)
         {
             mapMode = HotSpotMode.Navigate;
         }
         HotSpotMode spotMode;
         int         hotSpotIndex = 0;
         string      targetURL;
         string      text;
         foreach (HotSpot item in Control.HotSpots)
         {
             text = item.AlternateText;
             if (text != null && text.Length == 0)
             {
                 text = item.NavigateUrl;
             }
             spotMode = item.HotSpotMode;
             if (spotMode == HotSpotMode.NotSet)
             {
                 spotMode = mapMode;
             }
             if (spotMode == HotSpotMode.PostBack)
             {
                 PageAdapter.RenderPostBackEvent(writer, Control.ClientID, hotSpotIndex.ToString(CultureInfo.InvariantCulture),
                                                 null, text);
             }
             else if (spotMode == HotSpotMode.Navigate)
             {
                 targetURL = Control.ResolveClientUrl(item.NavigateUrl);
                 targetURL = Control.GetCountClickUrl(targetURL);
                 PageAdapter.RenderBeginHyperlink(writer, targetURL, true /* encode */, null, Control.AccessKey);
                 writer.Write(text);
                 PageAdapter.RenderEndHyperlink(writer);
             }
             else   //HotSpotMode.Inactive
             {
                 writer.Write(LiteralControlAdapterUtility.ProcessWmlLiteralText(text));
             }
             ++hotSpotIndex;
             writer.WriteBreak();
         }
     }
 }
コード例 #8
0
        public override void Render(WmlMobileTextWriter writer)
        {
            String value            = Control.Text;
            bool   requiresRandomID = RequiresRandomID();

            writer.EnterLayout(Style);
            if (Control.Password)
            {
                value = String.Empty;
            }

            if (!PageAdapter.RequiresValueAttributeInInputTag())
            {
                writer.AddFormVariable(Control.ClientID, value, requiresRandomID);
            }
            else
            {
                // This is to make sure an id is determined in the first
                // pass, and this is done in AddFormVariable as well.
                writer.MapClientIDToShortName(Control.ClientID, requiresRandomID);
            }

            String format = ((IAttributeAccessor)Control).GetAttribute("wmlFormat");

            if (format == null || format == String.Empty)
            {
                if (Control.Numeric)
                {
                    format = "*N";
                }
                else
                {
                    format = null;
                }
            }

            writer.RenderTextBox(Control.ClientID,
                                 value,
                                 format,
                                 Control.Title,
                                 Control.Password,
                                 Control.Size,
                                 Control.MaxLength,
                                 requiresRandomID,
                                 Control.BreakAfter);
            writer.ExitLayout(Style);
        }
コード例 #9
0
        // Writes the text of each bullet according to the list's display mode.
        protected virtual void RenderBulletText(ListItemCollection items, int index, HtmlTextWriter writer)
        {
            switch (Control.DisplayMode)
            {
            case BulletedListDisplayMode.Text:
                writer.WriteEncodedText(items[index].Text);
                writer.WriteBreak();
                break;

            case BulletedListDisplayMode.HyperLink:
                // TODO: if index == 0, set accesskey.  Needs a new RenderBeginHyperlink method.
                string targetURL = Control.ResolveClientUrl(items[index].Value);
                if (items[index].Enabled)
                {
                    PageAdapter.RenderBeginHyperlink(writer, targetURL, true /* encode */, items[index].Text);
                    writer.Write(items[index].Text);
                    PageAdapter.RenderEndHyperlink(writer);
                }
                else
                {
                    writer.WriteEncodedText(items[index].Text);
                }
                writer.WriteBreak();
                break;

            case BulletedListDisplayMode.LinkButton:
                if (items[index].Enabled)
                {
                    // TODO: if index == 0, set accesskey.  Needs a new RenderPostBackEvent method.
                    PageAdapter.RenderPostBackEvent(writer, Control.UniqueID, index.ToString(CultureInfo.InvariantCulture),
                                                    items[index].Text, items[index].Text);
                }
                else
                {
                    writer.WriteEncodedText(items[index].Text);
                }
                writer.WriteBreak();
                break;

            default:
                Debug.Assert(false, "Invalid BulletedListDisplayMode");
                break;
            }
        }
コード例 #10
0
 // Event Liked Pages => Using Get_Community_Object.Page => Open Page_ProfileActivity
 private void PageAdapter_OnItemClick(object sender, PageAdapterClickEventArgs adapterClickEvents)
 {
     try
     {
         var position = adapterClickEvents.Position;
         if (position >= 0)
         {
             var item = PageAdapter.GetItem(position);
             if (item != null)
             {
                 var Int = new Intent(this, typeof(Page_ProfileActivity));
                 Int.PutExtra("MyPages", JsonConvert.SerializeObject(item));
                 Int.PutExtra("PagesType", "Liked_MyPages");
                 StartActivity(Int);
             }
         }
     }
     catch (Exception e)
     {
         Crashes.TrackError(e);
     }
 }
コード例 #11
0
        /// <include file='doc\WmlControlAdapter.uex' path='docs/doc[@for="WmlControlAdapter.DeterminePostBack"]/*' />
        protected String DeterminePostBack(String target)
        {
            String postback = null;
            String prefix   = Constants.FormIDPrefix;

            if (target.StartsWith(prefix, StringComparison.Ordinal))     //  link to another form
            {
                String formID   = target.Substring(prefix.Length);
                Form   form     = Control.ResolveFormReference(formID);
                Form   thisForm = Control.Form;

                //  must postback to forms not rendered in deck (not visible) or links to same form,
                // as long as it's safe to do so.
                if (form == thisForm ||
                    !PageAdapter.IsFormRendered(form) ||
                    thisForm.HasDeactivateHandler() ||
                    form.HasActivateHandler())
                {
                    postback = form.UniqueID;
                }
            }
            return(postback);
        }
コード例 #12
0
ファイル: WmlButtonAdapter.cs プロジェクト: dox0/DotNet471RS3
        // renders the button as a postback link
        protected override void RenderAsPostBackLink(HtmlTextWriter writer)
        {
            String text         = Control.Text;
            String softkeyLabel = Control.SoftkeyLabel;

            string postUrl = Control.PostBackUrl;

            if (!String.IsNullOrEmpty(postUrl))
            {
                postUrl = ((WebControl)Control).ResolveClientUrl(Control.PostBackUrl);
            }

            writer.EnterStyle(((WebControl)Control).ControlStyle);
            // Do not encode LinkButton Text for V1 compatibility.
            if (!(Control is LinkButton))
            {
                text         = text.Replace("$", "$$");
                text         = HttpUtility.HtmlEncode(text);
                softkeyLabel = softkeyLabel.Replace("$", "$$");
                softkeyLabel = HttpUtility.HtmlEncode(softkeyLabel);
            }
            PageAdapter.RenderPostBackEvent(writer, ((Control)base.Control).UniqueID, null /* argument */, softkeyLabel, text, postUrl, null /* accesskey */);
            writer.ExitStyle(((WebControl)Control).ControlStyle);
        }
コード例 #13
0
 public override void OnCreate(Bundle savedInstanceState)
 {
     base.OnCreate(savedInstanceState);
     adapter = new PageAdapter(Activity, VideoList);
 }
コード例 #14
0
 internal MyPage(PageAdapter pa) : base()
 {
     page_adapter = pa;
 }
コード例 #15
0
 protected void RenderPostBackEventReference(HtmlMobileTextWriter writer, String argument)
 {
     PageAdapter.RenderPostBackEvent(writer, Control.UniqueID, argument);
 }
コード例 #16
0
        protected void RenderBeginLink(HtmlMobileTextWriter writer, String target)
        {
            bool queryStringWritten = false;
            bool appendCookieless   = (PageAdapter.PersistCookielessData) &&
                                      (!((target.StartsWith("http:")) || (target.StartsWith("https:"))));

            writer.WriteBeginTag("a");
            writer.Write(" href=\"");

            String targetUrl = null;
            String prefix    = Constants.FormIDPrefix;

            if (target.StartsWith(prefix))
            {
                String name = target.Substring(prefix.Length);
                Form   form = Control.ResolveFormReference(name);

                if (writer.SupportsMultiPart)
                {
                    if (form != null && PageAdapter.IsFormRendered(form))
                    {
                        targetUrl = PageAdapter.GetFormUrl(form);
                    }
                }

                if (targetUrl == null)
                {
                    RenderPostBackEventReference(writer, form.UniqueID);
                    appendCookieless = false;
                }
                else
                {
                    writer.Write(targetUrl);
                    queryStringWritten = targetUrl.IndexOf('?') != -1;
                }
            }
            else
            {
                MobileControl control = Control;

                // There is some adapter that Control is not set.  And we
                // don't do any url resolution then.  E.g. a page adapter
                if (control != null)
                {
                    // AUI 3652
                    target = control.ResolveUrl(target);
                }

                writer.Write(target);
                queryStringWritten = target.IndexOf('?') != -1;
            }

            IDictionary dictionary = PageAdapter.CookielessDataDictionary;

            if ((dictionary != null) && (appendCookieless))
            {
                foreach (String name in dictionary.Keys)
                {
                    if (queryStringWritten)
                    {
                        writer.Write('&');
                    }
                    else
                    {
                        writer.Write('?');
                        queryStringWritten = true;
                    }
                    writer.Write(name);
                    writer.Write('=');
                    writer.Write(dictionary[name]);
                }
            }

            writer.Write("\"");
            AddAttributes(writer);
            writer.Write(">");
        }
コード例 #17
0
        //
        protected internal override void Render(HtmlTextWriter markupWriter)
        {
            WmlTextWriter writer = (WmlTextWriter)markupWriter;
            String        text, url, phoneNumber;
            String        controlText = Control.Text;

            // Always strip off optional separators for PhoneNumber before it
            // is added in markup.

            String originalNumber = Control.PhoneNumber;

            char[] plainNumber = new char[originalNumber.Length];  // allocate enough buffer size

            // Loop to strip out optional separators
            int sizeOfPlainNumber = 0;

            for (int i = 0; i < originalNumber.Length; ++i)
            {
                char ch = originalNumber[i];
                if ((ch >= '0' && ch <= '9') || ch == '+')
                {
                    plainNumber[sizeOfPlainNumber] = ch;
                    sizeOfPlainNumber++;
                }
            }

            // Assign the number string with the right size
            phoneNumber = new String(plainNumber, 0, sizeOfPlainNumber);

            // Construct text and url based on device capabilities
            //
            HttpBrowserCapabilities browser = null;

            if (Page != null && Page.Request != null)
            {
                browser = Page.Request.Browser;
            }
            //
            if (browser != null && (String)browser["canInitiateVoiceCall"] != "true")
            {
                text = String.Format(controlText,
                                     originalNumber);
                url = Control.ResolveClientUrl(Control.NavigateUrl);
                url = Control.GetCountClickUrl(url);
            }
            else
            {
                // Some WML browsers require the phone number
                // showing as text so it can be selected.  If it is not
                // formatted in the text yet, append it to the end of the
                // text.
                //
                if (browser != null && browser["requiresPhoneNumbersAsPlainText"] == "true")
                {
                    text = controlText + " " + phoneNumber;
                    url  = String.Empty;
                }
                else
                {
                    text = (!String.IsNullOrEmpty(controlText)) ?
                           controlText : originalNumber;
                    url = "wtai://wp/mc;" + phoneNumber;
                }
            }

            // Write out plain text or corresponding link/softkey command
            // accordingly
            //
            writer.EnterStyle(Control.ControlStyle);
            if (url.Length == 0)
            {
                writer.WriteEncodedText(text);
            }
            else
            {
                String softkeyLabel = Control.SoftkeyLabel;
                if (String.IsNullOrEmpty(softkeyLabel))
                {
                    softkeyLabel = text;
                }
                PageAdapter.RenderBeginHyperlink(writer, url, false /* encode, Whidbey 28731 */, softkeyLabel, Control.AccessKey);
                writer.Write(text);
                PageAdapter.RenderEndHyperlink(writer);
            }
            writer.ExitStyle(Control.ControlStyle);
        }
コード例 #18
0
ファイル: ResourceService.cs プロジェクト: keithb-/CiteSet
 /// <summary>
 /// Create and initialize a new instance.
 /// </summary>
 /// <param name="ctx">Entity context for the service.</param>
 /// <param name="adapter">Adapter for parsing HTML pages.</param>
 public ResourceService(IEntityContext ctx, PageAdapter<Resource> adapter)
 {
     _ctx = ctx;
     _adapter = adapter;
 }
コード例 #19
0
        /// <include file='doc\HtmlFormAdapter.uex' path='docs/doc[@for="HtmlFormAdapter.Render"]/*' />
        public override void Render(HtmlMobileTextWriter writer)
        {
            Color  backColor    = (Color)Style[Style.BackColorKey, true];
            String title        = Control.Title;
            bool   isTitleEmpty = String.IsNullOrEmpty(title);

            bool willWriteHeadElements =
                !isTitleEmpty ||
                RenderExtraHeadElements(null);

            if (willWriteHeadElements)
            {
                writer.Write("\r\n");
                writer.WriteFullBeginTag("head");
            }

            if (!isTitleEmpty)
            {
                writer.Write("\r\n");
                writer.WriteFullBeginTag("title");
                writer.Write(title);
                writer.WriteEndTag("title");
                writer.Write("\r\n");
            }

            _renderPager = true;

            RenderExtraHeadElements(writer);

            if (willWriteHeadElements)
            {
                writer.WriteEndTag("head");
                writer.Write("\r\n");
            }

            IDictionary bodyAttributes = new ListDictionary();

            if ((backColor != Color.Empty) && (writer.RenderBodyColor))
            {
                bodyAttributes.Add("bgcolor", ColorTranslator.ToHtml(backColor));
            }
            RenderBodyTag(writer, bodyAttributes);

            bool formTagRequired = ShouldRenderFormTag();

            if (formTagRequired)
            {
                writer.WriteBeginTag("form");
                writer.WriteAttribute("id", Control.ClientID);
                writer.WriteAttribute("name", Control.ClientID);
                writer.WriteAttribute("method", Control.Method.ToString().ToLower(CultureInfo.InvariantCulture));
                writer.Write(" action=\"");

                if (Control.Action.Length > 0)
                {
                    // AUI 3652
                    String url = Control.ResolveUrl(Control.Action);

                    if (!Device.SupportsQueryStringInFormAction)
                    {
                        // If query string is not supported, we don't write
                        // it here, and the query string will be added as
                        // hidden variables later.
                        int i = url.IndexOf('?');
                        if (i != -1)
                        {
                            url = url.Substring(0, i);
                        }
                    }

                    writer.Write(url);
                }
                else
                {
                    writer.WriteEncodedUrl(Page.RelativeFilePath);

                    if (Device.SupportsQueryStringInFormAction)
                    {
                        writer.Write("?");
                        writer.Write(Page.UniqueFilePathSuffix);
                        if (Control.Method != FormMethod.Get)
                        {
                            String queryStringText = Page.QueryStringText;
                            if (queryStringText != null && queryStringText.Length > 0)
                            {
                                writer.Write('&');
                                writer.Write(queryStringText);
                            }
                        }
                    }
                }

                writer.Write("\"");
                writer.Write(">\r\n");

                PageAdapter.RenderPostBackHeader(writer, Control);

                // Renders hidden variables for IPostBackDataHandlers which are
                // not displayed due to pagination or secondary UI.
                RenderOffPageVariables(writer, Control, Control.CurrentPage);
            }

            writer.EnterStyle(Style);

            writer.BeforeFirstControlWritten = true;

            MobileControl secondaryUIControl = SecondaryUIControl as MobileControl;

            if (secondaryUIControl != null && secondaryUIControl.Form == Control)
            {
                bool secondaryUIInHeaderOrFooter = IsControlInFormHeader(secondaryUIControl) ||
                                                   IsControlInFormFooter(secondaryUIControl);


                SetControlPageRecursive(secondaryUIControl, -1);
                if (Control.Header != null && !secondaryUIInHeaderOrFooter)
                {
                    Control.Header.RenderControl(writer);
                }
                secondaryUIControl.RenderControl(writer);
                if (Control.Footer != null && !secondaryUIInHeaderOrFooter)
                {
                    Control.Footer.RenderControl(writer);
                }
            }
            else
            {
                bool pagerRendered = false;
                if (Control.HasControls())
                {
                    foreach (Control child in Control.Controls)
                    {
                        if (Control.Footer == child)
                        {
                            RenderPager(writer);
                            pagerRendered = true;
                        }
                        child.RenderControl(writer);
                    }
                }
                if (!pagerRendered)
                {
                    RenderPager(writer);
                }
            }

            writer.ExitStyle(Style, false);

            if (formTagRequired)
            {
                if (!Device.SupportsQueryStringInFormAction)
                {
                    // Add query string parameters at the end of the form if
                    // there are any
                    RenderQueryParametersAsHiddenFields(writer);
                }
                writer.WriteEndTag("form");
            }
            writer.WriteEndTag("body");
        }
コード例 #20
0
        protected internal override void Render(HtmlTextWriter markupWriter)
        {
            WmlTextWriter writer    = (WmlTextWriter)markupWriter;
            String        targetUrl = Control.NavigateUrl;

            String text = Control.Text;

            if (text.Length == 0)
            {
                // Whidbey 18195

                foreach (Control child in Control.Controls)
                {
                    if (child is IStaticTextControl)
                    {
                        text = ((IStaticTextControl)child).Text;
                        break;
                    }
                    else if (child is DataBoundLiteralControl)
                    {
                        text = ((DataBoundLiteralControl)child).Text;
                        break;
                    }
                }
            }

            String softkeyLabel = Control.SoftkeyLabel;

            if (softkeyLabel.Length == 0)
            {
                softkeyLabel = Control.Text;
            }
            writer.EnterStyle(Control.ControlStyle);
            // AUI 3652
            targetUrl = Control.ResolveClientUrl(targetUrl);

            targetUrl = Control.GetCountClickUrl(targetUrl);

            // If cookieless mode is on, we need to apply the app path modifier for if the request is authenticated
            HttpContext context = HttpContext.Current;

            Debug.Assert(context != null);
            bool cookieless = CookielessHelperClass.UseCookieless(context, false, FormsAuthentication.CookieMode);

            if (cookieless && context.Request != null && context.Request.IsAuthenticated && context.Response != null)
            {
                targetUrl = context.Response.ApplyAppPathModifier(targetUrl);
            }

            PageAdapter.RenderBeginHyperlink(writer, targetUrl, false /* encode, Whidbey 111129 */, softkeyLabel, Control.AccessKey);
            String source = Control.ImageUrl;

            if (Control.ImageUrl != null && Control.ImageUrl.Length > 0)
            {
                writer.RenderImage(source, null /* localsource */, text /* alternateText */);
            }
            else
            {
                writer.Write(text);
            }
            PageAdapter.RenderEndHyperlink(writer);
            writer.ExitStyle(Control.ControlStyle);
        }
コード例 #21
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            try
            {
                // Check if we're running on Android 5.0 or higher
                if ((int)Build.VERSION.SdkInt < 23)
                {
                }
                else
                {
                    Window.AddFlags(WindowManagerFlags.TranslucentNavigation);
                }

                base.OnCreate(savedInstanceState);


                IMethods.IApp.FullScreenApp(this);

                var view = MyContextWrapper.GetContentView(this, Settings.Lang, Resource.Layout.Pages_Layout);
                if (view != null)
                {
                    SetContentView(view);
                }
                else
                {
                    SetContentView(Resource.Layout.Pages_Layout);
                }

                var groupsType = Intent.GetStringExtra("PagesType") ?? "Data not available";
                if (groupsType != "Data not available" && !string.IsNullOrEmpty(groupsType))
                {
                    PagesManage_Type = groupsType;
                }

                var dataUser = Intent.GetStringExtra("UserID") ?? "Data not available";
                if (dataUser != "Data not available" && !string.IsNullOrEmpty(groupsType))
                {
                    UserID = dataUser;
                }

                var ToolBar = FindViewById <Toolbar>(Resource.Id.toolbar);
                if (ToolBar != null)
                {
                    ToolBar.Title = GetText(Resource.String.Lbl_ExplorePage);

                    SetSupportActionBar(ToolBar);
                    SupportActionBar.SetDisplayShowCustomEnabled(true);
                    SupportActionBar.SetDisplayHomeAsUpEnabled(true);
                    SupportActionBar.SetHomeButtonEnabled(true);
                    SupportActionBar.SetDisplayShowHomeEnabled(true);
                }

                PagesSection       = FindViewById <LinearLayout>(Resource.Id.pageLiner);
                ManagePagesSection = FindViewById <LinearLayout>(Resource.Id.ManagepageLiner);

                ManagePagesRecylerView = (RecyclerView)FindViewById(Resource.Id.pagesRecyler);
                LikedPagesRecylerView  = (RecyclerView)FindViewById(Resource.Id.Recyler);

                Page_Empty = FindViewById <LinearLayout>(Resource.Id.Page_LinerEmpty);

                IconPage_Empty = (TextView)FindViewById(Resource.Id.Page_icon);

                swipeRefreshLayout = FindViewById <SwipeRefreshLayout>(Resource.Id.swipeRefreshLayout);
                swipeRefreshLayout.SetColorSchemeResources(Android.Resource.Color.HoloBlueLight,
                                                           Android.Resource.Color.HoloGreenLight, Android.Resource.Color.HoloOrangeLight,
                                                           Android.Resource.Color.HoloRedLight);
                swipeRefreshLayout.Refreshing = true;

                Txt_Count_ManagePages            = (TextView)FindViewById(Resource.Id.tv_pagescount);
                IconMore_ManagePages             = (TextView)FindViewById(Resource.Id.iv_more_pages);
                Txt_Count_ManagePages.Visibility = ViewStates.Gone;
                IconMore_ManagePages.Visibility  = ViewStates.Gone;

                Btn_SearchRandom = FindViewById <Button>(Resource.Id.SearchRandom_Button);

                Txt_Create = FindViewById <TextView>(Resource.Id.toolbar_title);

                IMethods.Set_TextViewIcon("1", IconMore_ManagePages, IonIcons_Fonts.ChevronRight);
                IMethods.Set_TextViewIcon("1", IconPage_Empty, IonIcons_Fonts.Flag);

                Page_Empty.Visibility = ViewStates.Gone;
                //####################################

                LikedPagesRecylerView.SetLayoutManager(new LinearLayoutManager(this));
                PageAdapter           = new PageAdapter(this);
                PageAdapter.mPageList = new ObservableCollection <Get_Community_Object.Page>();
                LikedPagesRecylerView.SetAdapter(PageAdapter);
                LikedPagesRecylerView.NestedScrollingEnabled = false;

                //####################################

                ManagePagesRecylerView.SetLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.Horizontal,
                                                                                false));
                ManagePagesAdapter = new UserPagesAdapter(this);
                ManagePagesRecylerView.SetAdapter(ManagePagesAdapter);
                ManagePagesRecylerView.NestedScrollingEnabled = false;

                //Get Manage my or user pages
                //When you have finished fetching the Manage pages, the second connection is initiated by fetching Get_CommunitiesList_Page()
                Get_ManagePages();

                //#################################

                //Show Ads
                AdsGoogle.Ad_RewardedVideo(this);
            }
            catch (Exception e)
            {
                Crashes.TrackError(e);
            }
        }
コード例 #22
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container,
                                          Bundle savedInstanceState)
        {
            base.OnCreateView(inflater, container, savedInstanceState);
            View view = inflater.Inflate(Resource.Layout.fragment_home, container, false);

            imageView   = view.FindViewById <ImageView>(Resource.Id.imageslider);
            footerImage = view.FindViewById <ImageView>(Resource.Id.imagefooterslider);
            headerIndex = 0;


            sharedPreferences = this.Activity.GetSharedPreferences(BaseURL.MyPrefreance, FileCreationMode.Private);

            rv_items = (RecyclerView)view.FindViewById(Resource.Id.rv_home);

            GridLayoutManager gridLayoutManager = new GridLayoutManager(this.Activity, 3);

            rv_items.SetLayoutManager(gridLayoutManager);
            rv_items.SetItemAnimator(new DefaultItemAnimator());
            rv_items.NestedScrollingEnabled = false;

            Search_layout = (LinearLayout)view.FindViewById(Resource.Id.search_layout);
            scrollView    = (ScrollView)view.FindViewById(Resource.Id.scroll_view);
            scrollView.SmoothScrollingEnabled = true;
            if (isOnline())
            {
                HeaderLoadImages();
                FooterLoadImages();
                setHeaderSlideShow();
                makeGetCategoryRequest();
            }

            Search_layout.Click += delegate
            {
                SearchFragment      trending_fragment = new SearchFragment();
                FragmentManager     m = FragmentManager;
                FragmentTransaction fragmentTransaction = m.BeginTransaction();
                fragmentTransaction.Replace(Resource.Id.contentPanel, trending_fragment);
                fragmentTransaction.Commit();
            };

            fabMain  = (FloatingActionButton)view.FindViewById(Resource.Id.fabMain);
            fabOne   = (FloatingActionButton)view.FindViewById(Resource.Id.fabOne);
            fabTwo   = (FloatingActionButton)view.FindViewById(Resource.Id.fabTwo);
            fabThree = (FloatingActionButton)view.FindViewById(Resource.Id.fabThree);
            fabfour  = (FloatingActionButton)view.FindViewById(Resource.Id.fabfour);



            fabOne.SetAlpha(0);
            fabTwo.SetAlpha(0);
            fabThree.SetAlpha(0);
            fabfour.SetAlpha(0);

            fabOne.TranslationY   = translationY;
            fabTwo.TranslationY   = translationY;
            fabThree.TranslationY = translationY;
            fabfour.TranslationY  = translationY;

            fabMain.Click  += FabMain_Click;
            fabOne.Click   += FabOne_Click;
            fabTwo.Click   += FabTwo_Click;
            fabThree.Click += FabThree_Click;
            fabfour.Click  += Fabfour_Click;

            tab1 = (TabItem)view.FindViewById(Resource.Id.top_selling_item);
            tab2 = (TabItem)view.FindViewById(Resource.Id.recent_item);
            tab3 = (TabItem)view.FindViewById(Resource.Id.deals_item);
            tab4 = (TabItem)view.FindViewById(Resource.Id.whtsnewitem);

            tabLayout = (TabLayout)view.FindViewById(Resource.Id.tablayout);
            viewPager = (ViewPager)view.FindViewById(Resource.Id.pager_product);

            pageAdapter            = new PageAdapter(ChildFragmentManager, 1);
            viewPager.Adapter      = pageAdapter;
            tabLayout.TabSelected += TabLayout_TabSelected;

            viewPager.AddOnPageChangeListener(new TabLayoutOnPageChangeListener(tabLayout));
            return(view);
        }
コード例 #23
0
        // Get List Page Using API
        public async void Get_CommunitiesList_Page_API()
        {
            try
            {
                if (!IMethods.CheckConnectivity())
                {
                    swipeRefreshLayout.Refreshing = false;
                    Toast.MakeText(this, GetString(Resource.String.Lbl_CheckYourInternetConnection), ToastLength.Short)
                    .Show();
                }
                else
                {
                    Settings st = new Settings();
                    var(Api_status, Respond) = await Client.Global.Get_Community(st, UserID);

                    if (Api_status == 200)
                    {
                        if (Respond is Get_Community_Object result)
                        {
                            if (result.Groups.Count <= 0 && result.likedPages.Count <= 0 && result.Pages.Count <= 0)
                            {
                                swipeRefreshLayout.Refreshing = false;
                            }

                            var dbDatabase = new SqLiteDatabase();

                            //Add Data
                            //=======================================
                            if (PagesManage_Type == "Manage_UserPages")
                            {
                                // pages
                                if (result.Pages.Count > 0)
                                {
                                    PageAdapter.mPageList =
                                        new ObservableCollection <Get_Community_Object.Page>(result.Pages);
                                }


                                if (result.likedPages.Count > 0)
                                {
                                    var likedPagesList =
                                        new ObservableCollection <Get_Community_Object.LikedPages>(result.likedPages);
                                    var list = likedPagesList.Select(page => new Get_Community_Object.Page
                                    {
                                        PageId          = page.PageId,
                                        UserId          = page.UserId,
                                        PageName        = page.PageName,
                                        PageTitle       = page.PageTitle,
                                        PageDescription = page.PageDescription,
                                        Avatar          = page.Avatar,
                                        Cover           = page.Cover,
                                        PageCategory    = page.PageCategory,
                                        Website         = page.Website,
                                        Facebook        = page.Facebook,
                                        Google          = page.Google,
                                        Vk                    = page.Vk,
                                        Twitter               = page.Twitter,
                                        Linkedin              = page.Linkedin,
                                        Company               = page.Company,
                                        Phone                 = page.Phone,
                                        Address               = page.Address,
                                        CallActionType        = page.CallActionType,
                                        CallActionTypeUrl     = page.CallActionTypeUrl,
                                        BackgroundImage       = page.BackgroundImage,
                                        BackgroundImageStatus = page.BackgroundImageStatus,
                                        Instgram              = page.Instgram,
                                        Youtube               = page.Youtube,
                                        Verified              = page.Verified,
                                        Registered            = page.Registered,
                                        Boosted               = page.Boosted,
                                        About                 = page.About,
                                        Id                    = page.Id,
                                        Type                  = page.Type,
                                        Url                   = page.Url,
                                        Name                  = page.Name,
                                        //Rating = page.Rating,
                                        Category    = page.Category,
                                        IsPageOnwer = page.IsPageOnwer,
                                        Username    = page.Username
                                    }).ToList();

                                    //Bring new item
                                    var listnew = list?.Where(c =>
                                                              !PageAdapter.mPageList.Select(fc => fc.PageId).Contains(c.PageId)).ToList();
                                    if (listnew.Count > 0)
                                    {
                                        var lastCountItem = PageAdapter.ItemCount;
                                        //Results differ
                                        Classes.AddRange(PageAdapter.mPageList, listnew);
                                    }
                                }

                                PageAdapter.BindEnd();
                            }
                            else if (PagesManage_Type == "Manage_MyPages")
                            {
                                // likedPages
                                if (result.likedPages.Count > 0)
                                {
                                    var likedPagesList =
                                        new ObservableCollection <Get_Community_Object.LikedPages>(result.likedPages);

                                    //Update All Data To Database
                                    if (UserID == UserDetails.User_id)
                                    {
                                        var list = likedPagesList.Select(page => new Get_Community_Object.Page
                                        {
                                            PageId          = page.PageId,
                                            UserId          = page.UserId,
                                            PageName        = page.PageName,
                                            PageTitle       = page.PageTitle,
                                            PageDescription = page.PageDescription,
                                            Avatar          = page.Avatar,
                                            Cover           = page.Cover,
                                            PageCategory    = page.PageCategory,
                                            Website         = page.Website,
                                            Facebook        = page.Facebook,
                                            Google          = page.Google,
                                            Vk                    = page.Vk,
                                            Twitter               = page.Twitter,
                                            Linkedin              = page.Linkedin,
                                            Company               = page.Company,
                                            Phone                 = page.Phone,
                                            Address               = page.Address,
                                            CallActionType        = page.CallActionType,
                                            CallActionTypeUrl     = page.CallActionTypeUrl,
                                            BackgroundImage       = page.BackgroundImage,
                                            BackgroundImageStatus = page.BackgroundImageStatus,
                                            Instgram              = page.Instgram,
                                            Youtube               = page.Youtube,
                                            Verified              = page.Verified,
                                            Registered            = page.Registered,
                                            Boosted               = page.Boosted,
                                            About                 = page.About,
                                            Id                    = page.Id,
                                            Type                  = page.Type,
                                            Url                   = page.Url,
                                            Name                  = page.Name,
                                            //Rating = page.Rating,
                                            Category    = page.Category,
                                            IsPageOnwer = page.IsPageOnwer,
                                            Username    = page.Username
                                        }).ToList();

                                        // pages
                                        if (PageAdapter.mPageList.Count > 0)
                                        {
                                            //Bring new pages
                                            var listNew = list.Where(c =>
                                                                     !PageAdapter.mPageList.Select(fc => fc.PageId).Contains(c.PageId))
                                                          .ToList();
                                            if (listNew.Count > 0)
                                            {
                                                var chkList = listNew.Where(a => a.UserId != UserDetails.User_id)
                                                              .ToList();
                                                if (chkList.Count > 0)
                                                {
                                                    //Results differ
                                                    Classes.AddRange(PageAdapter.mPageList, chkList);
                                                    PageAdapter.BindEnd();

                                                    //Insert Or Replace Just New Data To Database
                                                    if (UserID == UserDetails.User_id)
                                                    {
                                                        dbDatabase.Insert_Or_Replace_PagesTable(
                                                            new ObservableCollection <Get_Community_Object.Page>(
                                                                chkList));
                                                    }
                                                }
                                            }
                                        }
                                        else
                                        {
                                            var chkList = list.Where(a => a.UserId != UserDetails.User_id).ToList();
                                            if (chkList.Count > 0)
                                            {
                                                PageAdapter.mPageList =
                                                    new ObservableCollection <Get_Community_Object.Page>(chkList);
                                                PageAdapter.BindEnd();

                                                //Insert Or Replace Data To Database
                                                if (UserID == UserDetails.User_id)
                                                {
                                                    dbDatabase.Insert_Or_Replace_PagesTable(PageAdapter.mPageList);
                                                }
                                            }
                                        }

                                        dbDatabase.Insert_Or_Replace_PagesTable(
                                            new ObservableCollection <Get_Community_Object.Page>(list));
                                    }
                                }

                                //====================================

                                if (result.Pages.Count > 0)
                                {
                                    // pages
                                    if (PageAdapter.mPageList.Count > 0)
                                    {
                                        //Bring new pages
                                        var listNew = result.Pages.Where(c =>
                                                                         !PageAdapter.mPageList.Select(fc => fc.PageId).Contains(c.PageId)).ToList();
                                        if (listNew.Count > 0)
                                        {
                                            var chkList = listNew.Where(a => a.UserId != UserDetails.User_id).ToList();
                                            if (chkList.Count > 0)
                                            {
                                                //Results differ
                                                Classes.AddRange(PageAdapter.mPageList, chkList);
                                                PageAdapter.BindEnd();

                                                //Insert Or Replace Just New Data To Database
                                                if (UserID == UserDetails.User_id)
                                                {
                                                    dbDatabase.Insert_Or_Replace_PagesTable(
                                                        new ObservableCollection <Get_Community_Object.Page>(chkList));
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        var chkList = result.Pages?.Where(a => a.UserId != UserDetails.User_id)
                                                      .ToList();
                                        if (chkList.Count > 0)
                                        {
                                            PageAdapter.mPageList =
                                                new ObservableCollection <Get_Community_Object.Page>(chkList);
                                            PageAdapter.BindEnd();

                                            //Insert Or Replace Data To Database
                                            if (UserID == UserDetails.User_id)
                                            {
                                                dbDatabase.Insert_Or_Replace_PagesTable(PageAdapter.mPageList);
                                            }
                                        }
                                    }

                                    //Manage
                                    if (ManagePagesAdapter.mAllUserPagesList.Count > 0)
                                    {
                                        var chkListManage = result.Pages.Where(a => a.UserId == UserDetails.User_id)
                                                            .ToList();
                                        if (chkListManage.Count > 0)
                                        {
                                            //Bring new page
                                            var listNew = chkListManage.Where(c =>
                                                                              !ManagePagesAdapter.mAllUserPagesList.Select(fc => fc.page_id)
                                                                              .Contains(c.PageId)).ToList();
                                            if (listNew.Count > 0)
                                            {
                                                var list = listNew.Select(page => new Get_User_Data_Object.Liked_Pages
                                                {
                                                    page_id          = page.PageId,
                                                    user_id          = page.UserId,
                                                    page_name        = page.PageName,
                                                    page_title       = page.PageTitle,
                                                    page_description = page.PageDescription,
                                                    avatar           = page.Avatar,
                                                    cover            = page.Cover,
                                                    page_category    = page.PageCategory,
                                                    website          = page.Website,
                                                    facebook         = page.Facebook,
                                                    google           = page.Google,
                                                    vk                      = page.Vk,
                                                    twitter                 = page.Twitter,
                                                    linkedin                = page.Linkedin,
                                                    company                 = page.Company,
                                                    phone                   = page.Phone,
                                                    address                 = page.Address,
                                                    call_action_type        = page.CallActionType,
                                                    call_action_type_url    = page.CallActionTypeUrl,
                                                    background_image        = page.BackgroundImage,
                                                    background_image_status = page.BackgroundImageStatus,
                                                    instgram                = page.Instgram,
                                                    youtube                 = page.Youtube,
                                                    verified                = page.Verified,
                                                    registered              = page.Registered,
                                                    boosted                 = page.Boosted,
                                                    about                   = page.About,
                                                    id                      = page.Id,
                                                    type                    = page.Type,
                                                    url                     = page.Url,
                                                    name                    = page.Name,
                                                    //rating = page.Rating,
                                                    category      = page.Category,
                                                    is_page_onwer = page.IsPageOnwer,
                                                    username      = page.Username
                                                }).ToList();

                                                //Results differ
                                                Classes.AddRange(ManagePagesAdapter.mAllUserPagesList, list);
                                                ManagePagesAdapter.BindEnd();

                                                //Insert Or Replace Just New Data To Database
                                                if (UserID == UserDetails.User_id)
                                                {
                                                    dbDatabase.InsertOrReplace_ManagePagesTable(
                                                        new ObservableCollection <Get_User_Data_Object.Liked_Pages>(
                                                            list));
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        var chkListManage = result.Pages.Where(a => a.UserId == UserDetails.User_id)
                                                            .ToList();
                                        if (chkListManage.Count > 0)
                                        {
                                            var list = chkListManage.Select(page => new Get_User_Data_Object.Liked_Pages
                                            {
                                                page_id          = page.PageId,
                                                user_id          = page.UserId,
                                                page_name        = page.PageName,
                                                page_title       = page.PageTitle,
                                                page_description = page.PageDescription,
                                                avatar           = page.Avatar,
                                                cover            = page.Cover,
                                                page_category    = page.PageCategory,
                                                website          = page.Website,
                                                facebook         = page.Facebook,
                                                google           = page.Google,
                                                vk                      = page.Vk,
                                                twitter                 = page.Twitter,
                                                linkedin                = page.Linkedin,
                                                company                 = page.Company,
                                                phone                   = page.Phone,
                                                address                 = page.Address,
                                                call_action_type        = page.CallActionType,
                                                call_action_type_url    = page.CallActionTypeUrl,
                                                background_image        = page.BackgroundImage,
                                                background_image_status = page.BackgroundImageStatus,
                                                instgram                = page.Instgram,
                                                youtube                 = page.Youtube,
                                                verified                = page.Verified,
                                                registered              = page.Registered,
                                                boosted                 = page.Boosted,
                                                about                   = page.About,
                                                id                      = page.Id,
                                                type                    = page.Type,
                                                url                     = page.Url,
                                                name                    = page.Name,
                                                //rating = page.Rating,
                                                category      = page.Category,
                                                is_page_onwer = page.IsPageOnwer,
                                                username      = page.Username
                                            }).ToList();

                                            ManagePagesAdapter.mAllUserPagesList =
                                                new ObservableCollection <Get_User_Data_Object.Liked_Pages>(list);
                                            ManagePagesAdapter.BindEnd();

                                            //Insert Or Replace Just New Data To Database
                                            if (UserID == UserDetails.User_id)
                                            {
                                                dbDatabase.InsertOrReplace_ManagePagesTable(
                                                    new ObservableCollection <Get_User_Data_Object.Liked_Pages>(list));
                                            }
                                        }
                                    }
                                }

                                //====================================

                                // groups
                                if (result.Groups.Count > 0)
                                {
                                    var groupsList =
                                        new ObservableCollection <Get_Community_Object.Group>(result.Groups);

                                    //Update All Data To Database
                                    if (UserID == UserDetails.User_id)
                                    {
                                        dbDatabase.Insert_Or_Replace_GroupsTable(groupsList);
                                    }
                                }
                            }

                            dbDatabase.Dispose();
                        }
                    }
                    else if (Api_status == 400)
                    {
                        if (Respond is Error_Object error)
                        {
                            var errorText = error._errors.Error_text;
                            //Toast.MakeText(this, errortext, ToastLength.Short).Show();

                            if (errorText.Contains("Invalid or expired access_token"))
                            {
                                API_Request.Logout(this);
                            }
                        }
                    }
                    else if (Api_status == 404)
                    {
                        var error = Respond.ToString();
                        //Toast.MakeText(this, error, ToastLength.Short).Show();
                    }
                }

                //Show Empty Page >>
                //===============================================================

                if (PagesManage_Type == "Manage_UserPages")
                {
                    if (PageAdapter.mPageList.Count > 0)
                    {
                        PagesSection.Visibility          = ViewStates.Visible;
                        LikedPagesRecylerView.Visibility = ViewStates.Visible;
                        Page_Empty.Visibility            = ViewStates.Gone;
                    }
                    else
                    {
                        PagesSection.Visibility          = ViewStates.Gone;
                        LikedPagesRecylerView.Visibility = ViewStates.Gone;
                        Page_Empty.Visibility            = ViewStates.Visible;
                    }
                }
                else if (PagesManage_Type == "Manage_MyPages")
                {
                    //if Manage_MyPages list count == 0 >> show empty page
                    if (ManagePagesAdapter.mAllUserPagesList.Count > 0)
                    {
                        Txt_Count_ManagePages.Text = ManagePagesAdapter.mAllUserPagesList.Count.ToString();

                        ManagePagesSection.Visibility     = ViewStates.Visible;
                        ManagePagesRecylerView.Visibility = ViewStates.Visible;
                    }
                    else
                    {
                        Txt_Count_ManagePages.Text = "0";

                        ManagePagesSection.Visibility     = ViewStates.Gone;
                        ManagePagesRecylerView.Visibility = ViewStates.Gone;
                    }

                    if (PageAdapter.mPageList.Count > 0)
                    {
                        PagesSection.Visibility          = ViewStates.Visible;
                        LikedPagesRecylerView.Visibility = ViewStates.Visible;
                        Page_Empty.Visibility            = ViewStates.Gone;
                    }
                    else
                    {
                        PagesSection.Visibility          = ViewStates.Gone;
                        LikedPagesRecylerView.Visibility = ViewStates.Gone;
                        Page_Empty.Visibility            = ViewStates.Visible;
                    }

                    if (PageAdapter.mPageList.Count == 0 && ManagePagesAdapter.mAllUserPagesList.Count == 0)
                    {
                        Page_Empty.Visibility = ViewStates.Visible;

                        ManagePagesSection.Visibility     = ViewStates.Gone;
                        ManagePagesRecylerView.Visibility = ViewStates.Gone;

                        PagesSection.Visibility          = ViewStates.Gone;
                        LikedPagesRecylerView.Visibility = ViewStates.Gone;
                    }
                    else
                    {
                        Page_Empty.Visibility = ViewStates.Gone;
                    }
                }

                swipeRefreshLayout.Refreshing = false;
            }
            catch (Exception e)
            {
                Crashes.TrackError(e);
                Get_CommunitiesList_Page_API();
            }
        }
コード例 #24
0
ファイル: ViewPageFragment.cs プロジェクト: takajimy/Noter
 protected void setupAdapter()
 {
     adapter = new PageAdapter();
     recyclerView.SetAdapter(adapter);
 }
コード例 #25
0
        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);
            }
        }