Example #1
0
 /// <summary>
 /// Populate the Items of the specified BreadcrumbItem with the sub folders if necassary.
 /// </summary>
 /// <param name="item"></param>
 private void PopulateFolders(BreadcrumbItem item)
 {
     try
     {
         string path0      = AddressBar.PathFromBreadcrumbItem(item);
         string trace      = item.TraceValue;
         var    sourcePath = GetSourcePath();
         var    path       = sourcePath;
         if (trace != _vm.CurrWorkspace.DisplayName) //trace != _vm.CurrWorkspace.DisplayName + "\\" &&
         {
             path = Path.Combine(sourcePath, path0);
         }
         string[] paths = Directory.GetDirectories(path);
         foreach (string s in paths)
         {
             string file = Path.GetFileName(s);
             var    fi   = new PathItem();
             fi.Folder = file;
             item.Items.Add(fi);
         }
     }
     catch
     {
     }
 }
Example #2
0
 /// <summary>
 /// Populate the Items of the specified BreadcrumbItem with the sub folders if necassary.
 /// </summary>
 /// <param name="item"></param>
 private void PopulateFolders(BreadcrumbItem item)
 {
     try
     {
         GetViewModel();
         string path0      = AddressBar.PathFromBreadcrumbItem(item);
         string trace      = item.TraceValue;
         var    sourcePath = GetSourcePath();
         var    path       = sourcePath;
         if (trace != _vm.DisplayName) //trace != _vm.DisplayName + "\\" &&
         {
             path = Path.Combine(sourcePath, path0);
         }
         string[] paths = Directory.GetDirectories(path);
         foreach (string s in paths)
         {
             string file = Path.GetFileName(s);
             var    fi   = new PathItem();
             fi.Folder = file;
             item.Items.Add(fi);
         }
         if (_firstLoad)
         {
             _firstLoad = false;
             if (_vm._sourcePath == null)
             {
                 _vm.SourcePath = path;
             }
             Wb.WebBrowser.Navigate(new Uri(path));
         }
     }
     catch
     {
     }
 }
Example #3
0
    /// <summary>
    /// Creates the internal breadcrumb item representation
    /// </summary>
    /// <param name="breadcrumb">Breadcrumb item from which internal breadcrumb will be created</param>
    /// <param name="isLast">Indicates whether the breadcrumb is the last one</param>
    private void CreateBreadCrumbsItem(BreadcrumbItem breadcrumb, bool isLast)
    {
        // Make link if URL specified
        string text = ResHelper.LocalizeString(breadcrumb.Text);

        var li = new HtmlGenericControl("li");

        if (!(string.IsNullOrEmpty(breadcrumb.RedirectUrl) && string.IsNullOrEmpty(breadcrumb.OnClientClick)) && !isLast)
        {
            HyperLink newLink = new HyperLink();
            newLink.Text        = EncodeBreadcrumbs ? HTMLHelper.HTMLEncode(text) : text;
            newLink.NavigateUrl = breadcrumb.RedirectUrl;
            newLink.Target      = breadcrumb.Target;
            // JavaScript is specified add on click
            if (!string.IsNullOrEmpty(breadcrumb.OnClientClick))
            {
                newLink.Attributes.Add("onclick", breadcrumb.OnClientClick);
                newLink.Attributes.Add("href", "javascript:void(0)");
            }
            li.Controls.Add(newLink);
        }
        else // Make label if last item or URL not specified
        {
            li.InnerText = text;
        }

        plcBreadcrumbs.Controls.Add(li);
    }
Example #4
0
        private void NodeClicked(object sender, NodeClickedEventArgs e)
        {
            var nodeControl = sender as NodeControl;

            if (_superGraphController != null && nodeControl != null)
            {
                var node = nodeControl.DataContext as Node;
                if (node != null)
                {
                    if (node.MapObjectType == _mapManager.NodeTypes["CompendiumMapNode"].Id)
                    {
                        var facadeNode = node.Proxy as FacadeNode;
                        if (facadeNode != null)
                        {
                            if (!facadeNode.IsConcrete)
                            {
                                return; //if the node isn't concrete we won't be able to navigate down into the submap (ie it was just added and the transactions are outstanding)
                            }
                        }
                        IoC.GetInstance <ISuperGraphRelationshipFactory>().IsSameDomain = true;
                        SuperGraph.ClearMapObjects();
                        ShowLoading();

                        var breadcrumb = new BreadcrumbItem(node);
                        Breadcrumbs.BreadcrumbTrail.Add(breadcrumb);

                        _superGraphController.ChangeContextAsync(node);

                        //The line below forces the related content panels to reset and hide with each map navigation
                        //it's commented out to experiment what it's like to leave the content in place
                        //RelatedContentPanelUtil.Instance.ResetAndHidePanels();
                    }
                }
            }
        }
Example #5
0
        /// <summary>
        /// Gets a list of FolderItems that are the subfolders of the specified BreadcrumbItem.
        /// </summary>
        private static List <FolderItem> GetFolderItemsFromBreadcrumb(BreadcrumbItem item)
        {
            BreadcrumbBar bar   = item.BreadcrumbBar;
            string        path  = bar.PathFromBreadcrumbItem(item);
            string        trace = item.TraceValue;

            string[] subFolders;
            if (trace.Equals("Computer"))
            {
                subFolders = GetDrives(bar.SeparatorString).ToArray();
            }
            else
            {
                try
                {
                    subFolders = (from dir in System.IO.Directory.GetDirectories(path + "\\") select System.IO.Path.GetFileName(dir)).ToArray();
                }
                catch
                {
                    //maybe we don't have access!
                    subFolders = new string[] { };
                }
            }
            List <FolderItem> folderItems = (from folder in subFolders orderby folder select new FolderItem {
                Folder = folder
            }).ToList();

            return(folderItems);
        }
        private void EditButton_Click(object sender, RoutedEventArgs e)
        {
            BreadcrumbItem selectedItem = bar.SelectedItem as BreadcrumbItem;

            if (selectedItem == null)
            {
                return;
            }

            Folder folder = null;

            selectedItem.Dispatcher.Invoke(DispatcherPriority.Input, new ThreadStart(() =>
            {
                folder = selectedItem.Tag as Folder;
            }));
            if (folder == null || folder.CanUpload() == false)
            {
                MessageBox.Show(Languages.Translate("Please select a folder or a library or a list (attachment enabled)"));
                return;
            }

            SiteSetting siteSetting = ConfigurationManager.GetInstance().GetSiteSetting(folder.SiteSettingID);

            FoldersManager.EditItemPropertyMappings(siteSetting, folder);
        }
Example #7
0
        public BreadcrumbMiddleware(RequestDelegate next, IActionDescriptorCollectionProvider routeProvider,
                                    IRouteDataService routeDataService, IPluginHelperService pluginHelperService,
                                    IPluginTypesService pluginTypesService, ISettingsProvider settingsProvider,
                                    IPluginClassesService pluginClassesService, ILogger logger)
        {
            if (routeProvider == null)
            {
                throw new ArgumentNullException(nameof(routeProvider));
            }

            if (routeDataService == null)
            {
                throw new ArgumentNullException(nameof(routeDataService));
            }

            if (pluginHelperService == null)
            {
                throw new ArgumentNullException(nameof(pluginHelperService));
            }

            if (pluginClassesService == null)
            {
                throw new ArgumentNullException(nameof(pluginClassesService));
            }

            if (pluginTypesService == null)
            {
                throw new ArgumentNullException(nameof(pluginTypesService));
            }

            if (settingsProvider == null)
            {
                throw new ArgumentNullException(nameof(settingsProvider));
            }

            _next   = next;
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));

            if (pluginHelperService.PluginLoaded(Constants.PluginNameLocalization, out int _))
            {
                List <IStringLocalizer> stringLocalizers = pluginClassesService.GetPluginClasses <IStringLocalizer>();

                if (stringLocalizers.Count > 0)
                {
                    _stringLocalizer = stringLocalizers[0];
                }
            }

            BreadcrumbSettings settings = settingsProvider.GetSettings <BreadcrumbSettings>(Constants.PluginSettingBreadcrumb);

            _homeBreadCrumb = new BreadcrumbItem(settings.HomeName,
                                                 $"{Constants.ForwardSlash}{settings.HomeController}{Constants.ForwardSlash}{settings.DefaultAction}", false);

            LoadBreadcrumbData(routeProvider, routeDataService, pluginTypesService, settings);

            if (!String.IsNullOrEmpty(settings.StaticFileExtensions))
            {
                _staticFileExtensions = settings.StaticFileExtensions;
            }
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        int siteId    = QueryHelper.GetInteger("siteid", 0);
        int contactId = QueryHelper.GetInteger("contactid", 0);

        // Init breadcrumbs
        var listBreadCrumb = new BreadcrumbItem
        {
            Text        = GetString("om.activity.list"),
            RedirectUrl = "~/CMSModules/Activities/Pages/Tools/Activities/Activity/List.aspx"
        };
        var newItemBreadCrumb = new BreadcrumbItem
        {
            Text = GetString("om.activity.newcustom")
        };

        if (contactId > 0)
        {
            // New custom activity page was opened from pages of edited contact
            listBreadCrumb.RedirectUrl = "~/CMSModules/ContactManagement/Pages/Tools/Contact/Tab_Activities.aspx?contactId=" + contactId;
        }

        listBreadCrumb.RedirectUrl = AddSiteQuery(listBreadCrumb.RedirectUrl, siteId);
        PageBreadcrumbs.AddBreadcrumb(listBreadCrumb);
        PageBreadcrumbs.AddBreadcrumb(newItemBreadCrumb);
    }
        public ViewResult Breadcrumb()
        {
            var items = new List <BreadcrumbItem>();

            foreach (var item in Context.Item.Axes.GetAncestors())
            {
                var navigationTitle = item.Fields[Templates.NavigationBase.Fields.NavigationTitle].ToString();
                if (!string.IsNullOrEmpty(navigationTitle))
                {
                    var breadcrumbItem = new BreadcrumbItem
                    {
                        Title = item.Fields[Templates.NavigationBase.Fields.NavigationTitle].ToString(),
                        Url   = LinkManager.GetItemUrl(item)
                    };

                    items.Add(breadcrumbItem);
                }
            }

            var currentContextItem    = Context.Item;
            var currentBreadcrumbItem = new BreadcrumbItem
            {
                Title  = currentContextItem.Fields[Templates.NavigationBase.Fields.NavigationTitle].ToString(),
                Active = true
            };

            items.Add(currentBreadcrumbItem);

            return(View("~/Areas/Components/Views/Component/Breadcrumb.cshtml", items));
        }
Example #10
0
        public void LoadParentMaps(List <INode> maps, Guid mapId)
        {
            var viewModelMaps = new List <SuperGraph.ViewModel.Node>();

            foreach (var map in maps)
            {
                if (viewModelMaps.All(q => q.Proxy.Id != map.Id))
                {
                    var viewModelNode = new SuperGraph.ViewModel.Node(MapManager);
                    viewModelNode.LoadNode(null, map);

                    viewModelMaps.Add(viewModelNode);
                }
            }

            if (viewModelMaps.Count > 1)
            {
                var breadcrumb = new MultiBreadcrumbItem(viewModelMaps);
                if (mapId != Guid.Empty)
                {
                    var currentMap = breadcrumb.Items.FirstOrDefault(q => q.Node.Proxy.Id == mapId);
                    if (currentMap != null)
                    {
                        breadcrumb.SelectedBreadcrumb = currentMap;
                    }
                }
                Breadcrumbs.BreadcrumbTrail.Insert(breadcrumb, _parentIndex);
            }
            else if (viewModelMaps.Count == 1)
            {
                var breadcrumb = new BreadcrumbItem(viewModelMaps[0]);
                Breadcrumbs.BreadcrumbTrail.Insert(breadcrumb, _parentIndex);
            }
        }
Example #11
0
        /// <summary>
        /// Populate the Items of the specified BreadcrumbItem with the sub folders if necassary.
        /// </summary>
        /// <param name="item"></param>
        private static void PopulateFolders(BreadcrumbItem item)
        {
            BreadcrumbBar bar   = item.BreadcrumbBar;
            string        path  = bar.PathFromBreadcrumbItem(item);
            string        trace = item.TraceValue;

            if (trace.Equals("Computer"))
            {
                string[] dirs = System.IO.Directory.GetLogicalDrives();
                foreach (string s in dirs)
                {
                    //string dir = s;
                    //if (s.EndsWith(bar.SeparatorString)) dir = s.Remove(s.Length - bar.SeparatorString.Length, bar.SeparatorString.Length);
                    //FolderItem fi = new FolderItem();
                    //fi.Folder = dir;

                    //item.Items.Add(fi);
                }
            }
            else
            {
                try
                {
                    if (item.Data is SessionItemViewModel)
                    {
                        foreach (var row in (item.Data as SessionItemViewModel).Children)
                        {
                            item.Items.Add(row as SessionItemViewModel);
                        }
                    }
                }
                catch { }
            }
        }
Example #12
0
        /// <summary>
        /// Update the list of Subfolders from a BreadcrumbItem.
        /// </summary>
        private void UpdateFolderItems(BreadcrumbItem item)
        {
            List <FolderItem> actualFolders  = GetFolderItemsFromBreadcrumb(item);
            List <FolderItem> currentFolders = item.ItemsSource as List <FolderItem>;

            currentFolders.Clear();
            currentFolders.AddRange(actualFolders);
        }
Example #13
0
    protected void Page_Load(object sender, EventArgs e)
    {
        stringCodeName = QueryHelper.GetString("stringCodeName", String.Empty);
        cultureId      = QueryHelper.GetInteger("cultureId", 0);

        // Validate culture ID
        if (cultureId <= 0)
        {
            ShowError(GetString("general.invalidcultureid"));
            return;
        }

        if (QueryHelper.GetBoolean("saved", false))
        {
            ShowChangesSaved();
        }

        // Init new header action
        HeaderAction action = new HeaderAction
        {
            Text        = GetString("culture.newstring"),
            RedirectUrl = "~/CMSModules/SystemDevelopment/Development/Resources/UICulture_StringsDefault_New.aspx?cultureId=" + cultureId,
        };

        CurrentMaster.HeaderActions.ActionsList.Add(action);

        codeNameBreadcrumbItem = new BreadcrumbItem
        {
            Text = stringCodeName.ToLowerCSafe(),
        };
        PageBreadcrumbs.AddBreadcrumb(codeNameBreadcrumbItem);

        // Ensure breadcrumbs suffix
        UIHelper.SetBreadcrumbsSuffix(GetString("objecttype.cms_resourcestring"));

        // Initialize controls
        rfvKey.ErrorMessage = GetString("culture.enterakey");

        if (!RequestHelper.IsPostBack())
        {
            CultureInfo uic = CultureInfoProvider.GetCultureInfo(cultureId);

            if (uic != null)
            {
                string             cultureCode = uic.CultureCode;
                FileResourceEditor fre         = new FileResourceEditor(Server.MapPath(FileResourceManager.GetResFilename(cultureCode)), cultureCode);
                if (fre != null)
                {
                    txtKey.Text  = stringCodeName;
                    txtText.Text = fre.GetResourceString(stringCodeName, cultureCode);
                }
            }
            else
            {
                ShowError(GetString("general.invalidcultureid"));
            }
        }
    }
        public void PushItem(string label, Action clickedEvent = null)
        {
            BreadcrumbItem breadcrumbItem = new BreadcrumbItem(m_Asset, clickedEvent);

            breadcrumbItem.Label.text = label;
            breadcrumbItem.EnableInClassList("first", m_ItemCount == 0);
            Insert(m_ItemCount, breadcrumbItem);
            m_ItemCount++;
        }
        /// <summary>
        /// Adds an item to the end of the breadcrumbs, which makes that item the deepest item in the hierarchy.
        /// </summary>
        /// <param name="label">The text to display for the item in the breadcrumb toolbar.</param>
        /// <param name="clickedEvent">The action to perform when the a users clicks the item in the toolbar.</param>
        public void PushItem(string label, Action clickedEvent = null)
        {
            BreadcrumbItem breadcrumbItem = new BreadcrumbItem(clickedEvent)
            {
                text = label
            };

            breadcrumbItem.EnableInClassList(firstItemClassName, childCount == 0);
            Add(breadcrumbItem);
        }
Example #16
0
        /// <summary>
        /// A BreadcrumbItem needs to populate it's Items. This can be due to the fact that a new BreadcrumbItem is selected, and thus
        /// it's Items must be populated to determine whether this BreadcrumbItem show a dropdown button,
        /// or when the Path property of the BreadcrumbBar is changed and therefore the Breadcrumbs must be populated from the new path.
        /// </summary>
        private void BreadcrumbBar_PopulateItems(object sender, Odyssey.Controls.BreadcrumbItemEventArgs e)
        {
            BreadcrumbItem item = e.Item;

            if (item.Items.Count == 0)
            {
                PopulateFolders(item);
                e.Handled = true;
            }
        }
Example #17
0
        /// <summary>
        /// A BreadcrumbItem needs to populate it's Items. This can be due to the fact that a new BreadcrumbItem is selected, and thus
        /// it's Items must be populated to determine whether this BreadcrumbItem show a dropdown button,
        /// or when the Path property of the BreadcrumbBar is changed and therefore the Breadcrumbs must be populated from the new path.
        /// </summary>
        private void BreadcrumbBar_PopulateItems(object sender, Sbn.Controls.AdvancedControls.AddressBar.BreadcrumbItemEventArgs e)
        {
            BreadcrumbItem item = e.Item;

            if (item.Items.Count == 0)
            {
                PopulateFolders(item);
                e.Handled = true;
            }
        }
Example #18
0
        /// <summary>
        /// The dropdown menu of a BreadcrumbItem was pressed, so delete the current folders, and repopulate the folders
        /// to ensure actual data.
        /// </summary>
        private void bar_BreadcrumbItemDropDownOpened(object sender, BreadcrumbItemEventArgs e)
        {
            BreadcrumbItem item = e.Item;

            // only repopulate, if the BreadcrumbItem is dynamically generated which means, item.Data is a  pointer to itself:
            if (!(item.Data is BreadcrumbItem))
            {
                UpdateFolderItems(item);
            }
        }
Example #19
0
        private void BreadcrumbBar_PopulateItems(object sender, BreadcrumbItemEventArgs e)
        {
            List <BreadcrumbItem> items = e.Item.Items.OfType <BreadcrumbItem>().ToList();

            if (items.Count == 0)
            {
                var trace = e.Item.Header;
                items.Add(BreadcrumbItem.CreateItem(trace));
                e.Item.Items = items;
            }
        }
Example #20
0
        /// <summary>
        /// A BreadcrumbItem needs to populate it's Items. This can be due to the fact that a new BreadcrumbItem is selected, and thus
        /// it's Items must be populated to determine whether this BreadcrumbItem show a dropdown button,
        /// or when the Path property of the BreadcrumbBar is changed and therefore the Breadcrumbs must be populated from the new path.
        /// </summary>
        private void BreadcrumbBar_PopulateItems(object sender, Odyssey.Controls.BreadcrumbItemEventArgs e)
        {
            BreadcrumbItem item = e.Item;
            BrowsingFile   fse  = item.Data as BrowsingFile;


            if (item.Data == root)
            {
                if (item.Items.Count == 0)
                {
                    foreach (var i in Model.Root)
                    {
                        item.Items.Add(i);
                    }
                }
                return;
            }
            if (item.Items.Contains(fake) || item.Items.Count == 0)
            {
                if (fse == root)
                {
                    if (fse.IsPopulated)
                    {
                        item.Items.Clear();
                        foreach (var i in root.Folders)
                        {
                            item.Items.Add(i);
                        }
                    }
                    else
                    {
                        //Add a fake one so we get the selection image
                        item.Items.Add(fake);
                    }
                }
                else
                {
                    if (fse.IsPopulated)
                    {
                        item.Items.Clear();
                        foreach (var i in fse.Folders)
                        {
                            item.Items.Add(i);
                        }
                    }
                    else
                    {
                        //Add a fake one so we get the selection image
                        item.Items.Add(fake);
                    }
                }
            }
        }
Example #21
0
        /// <summary>
        /// The dropdown menu of a BreadcrumbItem was pressed, so delete the current folders, and repopulate the folders
        /// to ensure actual data.
        /// </summary>
        private void AddressBar_OnBreadcrumbItemDropDownOpened(object sender, BreadcrumbItemEventArgs e)
        {
            BreadcrumbItem item = e.Item;

            // only repopulate, if the BreadcrumbItem is dynamically generated which means, item.Data is a  pointer to itself:
            if (!(item.Data is BreadcrumbItem))
            {
                item.Items.Clear();
                PopulateFolders(item);
                e.Handled = true;
            }
        }
    public void AddBreadCrumbInvariant(string label)
    {
        if (this.breadCrumb == null)
        {
            this.breadCrumb = new Collection <BreadcrumbItem>();
        }

        var newBreadCrumb = new BreadcrumbItem {
            Link = "#", Label = label, Leaf = true, Invariant = true
        };

        this.breadCrumb.Add(newBreadCrumb);
    }
    public void AddBreadCrumb(string label, string link, bool leaf)
    {
        if (this.breadCrumb == null)
        {
            this.breadCrumb = new Collection <BreadcrumbItem>();
        }

        var newBreadCrumb = new BreadcrumbItem {
            Link = link, Label = label, Leaf = leaf
        };

        this.breadCrumb.Add(newBreadCrumb);
    }
        private void SetOverflowItem(BreadcrumbItem item, DataTemplate overflowTemplate, string overflow)
        {
            item.Content         = null;
            item.ContentTemplate = null;

            if (overflowTemplate != null)
            {
                item.ContentTemplate = overflowTemplate;
            }
            else
            {
                item.Content = overflow;
            }
        }
Example #25
0
        private void AddressBar_OnPopulateItems(object sender, BreadcrumbItemEventArgs e)
        {
            if (String.IsNullOrEmpty(_vm.CurrWorkspace.SourcePath))
            {
                return;
            }

            BreadcrumbItem item = e.Item;

            if (item.Items.Count == 0)
            {
                PopulateFolders(item);
                e.Handled = true;
            }
        }
        private void RefreshButton_Click(object sender, RoutedEventArgs e)
        {
            BreadcrumbItem selectedItem = bar.SelectedItem as BreadcrumbItem;

            if (selectedItem == null)
            {
                return;
            }

            RefreshItems(selectedItem);

            DoubleAnimation da = new DoubleAnimation(100, new Duration(new TimeSpan(0, 0, 2)));

            da.FillBehavior = FillBehavior.Stop;
            bar.BeginAnimation(BreadcrumbBar.ProgressValueProperty, da);
        }
        private static string BuildBreadcrumb(BreadcrumbItem bs)
        {
            string link = "<li class='breadcrumb-item'>";

            if (!string.IsNullOrEmpty(bs.URL))
            {
                link += $"<a href='{bs.URL}'>{bs.Label}</a>";
            }
            else
            {
                link += bs.Label;
            }

            link += "</li>";

            return(link);
        }
        private void RefreshItems(BreadcrumbItem item)
        {
            Folder folder = null;

            item.Dispatcher.Invoke(DispatcherPriority.Input, new ThreadStart(() =>
            {
                folder = item.Tag as Folder;
            }));

            if (folder == null)
            {
                return;
            }
            SiteSetting siteSetting = ConfigurationManager.GetInstance().GetSiteSetting(folder.SiteSettingID);

            List <Folder> subFolders;

            if (folder.Folders.Count > 0)
            {
                subFolders = folder.Folders;
            }
            else
            {
                subFolders = ApplicationContext.Current.GetSubFolders(siteSetting, folder, null);
            }

            folder.Folders = subFolders;
            item.Dispatcher.Invoke(DispatcherPriority.Input, new ThreadStart(() =>
            {
                item.BeginInit();
                item.Items.Clear();
                foreach (Folder subFolder in subFolders)
                {
                    BreadcrumbItem subItem = new BreadcrumbItem();
                    subItem.Header         = subFolder.Title;
                    Image img             = new Image();
                    Uri uri               = new Uri("/Sobiens.Connectors.WPF.Controls;component/Images/" + folder.IconName + ".GIF", UriKind.Relative);
                    ImageSource imgSource = new BitmapImage(uri);
                    item.Image            = imgSource;
                    subItem.Tag           = subFolder;
                    item.Items.Add(subItem);
                }
                item.EndInit();
            }));
        }
        private Folder getSelectedFolder()
        {
            BreadcrumbItem selectedItem = bar.SelectedItem as BreadcrumbItem;

            if (selectedItem == null)
            {
                return(null);
            }

            Folder folder = selectedItem.Tag as Folder;

            if (folder == null)
            {
                return(null);
            }

            return(folder);
        }
        public void FillBreadcrumbItem(BreadcrumbItem currentBar, Folder currentFolder, string remainingURL)
        {
            currentBar.Items.Clear();
            string currentFolderName = string.Empty;

            if (remainingURL.IndexOf('/') > -1)
            {
                currentFolderName = remainingURL.Substring(0, remainingURL.IndexOf('/'));
                remainingURL      = remainingURL.Substring(remainingURL.IndexOf(currentFolderName) + currentFolderName.Length + 1);
            }
            else
            {
                currentFolderName = remainingURL;
                remainingURL      = string.Empty;
            }

            foreach (Folder folder in currentFolder.Folders)
            {
                BreadcrumbItem child1 = new BreadcrumbItem();
                child1.Header = folder.Title;
                Image       img       = new Image();
                Uri         uri       = new Uri("/Sobiens.Connectors.WPF.Controls;component/Images/" + folder.IconName + ".gif", UriKind.Relative);
                ImageSource imgSource = new BitmapImage(uri);
                child1.Image = imgSource;
                child1.Tag   = folder;
                currentBar.Items.Add(child1);

                string folderName = folder.GetUrl().TrimEnd(new char[] { '/' });
                if (folderName.LastIndexOf("/") > -1)
                {
                    folderName = folderName.Substring(folderName.LastIndexOf("/") + 1);
                }

                if (string.IsNullOrEmpty(currentFolderName) == false && folderName.Equals(currentFolderName, StringComparison.InvariantCultureIgnoreCase) == true)
                {
                    currentBar.SelectedItem = child1;
                }

                if (string.IsNullOrEmpty(remainingURL) == false)
                {
                    FillBreadcrumbItem(child1, folder, remainingURL);
                }
            }
        }
    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        // Parent category info for level up link
        SettingsCategoryInfo parentCategoryInfo = null;
        var categoryBreadcrumb = new BreadcrumbItem();

        if (mCategoryId <= 0)
        {
            catEdit.ShowParentSelector = false;

            if (catEdit.SettingsCategoryObj == null)
            {
                categoryBreadcrumb.Text = GetString(catEdit.IsGroupEdit ? "settings.group.new" : "settingsedit.category_list.newitemcaption");
            }
            else
            {
                categoryBreadcrumb.Text = catEdit.SettingsCategoryObj.CategoryDisplayName;
            }
        }
        else
        {
            categoryBreadcrumb.Text = GetString(catEdit.IsGroupEdit ? catEdit.SettingsCategoryObj.CategoryDisplayName : "settingsedit.settingscategory.edit.headercaption");
        }

        var parentCategoryBreadcrumb = new BreadcrumbItem();

        parentCategoryInfo = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(catEdit.SelectedParentCategory);

        // Set up title and breadcrumbs
        if (parentCategoryInfo != null)
        {
            parentCategoryBreadcrumb.Text = ResHelper.LocalizeString(parentCategoryInfo.CategoryDisplayName);
            parentCategoryBreadcrumb.RedirectUrl = URLHelper.AppendQuery(UIContextHelper.GetElementUrl(ModuleName.CMS, "Modules.Settings.EditKeys", false), "categoryid=" + parentCategoryInfo.CategoryID + "&moduleid=" + moduleId);
        }

        if (mCategoryId <= 0 || catEdit.IsGroupEdit)
        {
            PageBreadcrumbs.AddBreadcrumb(parentCategoryBreadcrumb);
            PageBreadcrumbs.AddBreadcrumb(categoryBreadcrumb);
        }
    }
    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        var categoryBreadcrumb = new BreadcrumbItem();

        var settingBreadcrumb = new BreadcrumbItem();

        // Set bradcrumbs for editing
        if (skeEditKey.SettingsKeyObj != null)
        {
            var sci = SettingsCategoryInfoProvider.GetSettingsCategoryInfo(skeEditKey.SettingsKeyObj.KeyCategoryID);

            categoryBreadcrumb.Text = sci.CategoryDisplayName;
            categoryBreadcrumb.RedirectUrl = URLHelper.AppendQuery(UIContextHelper.GetElementUrl(ModuleName.CMS, "Modules.Settings.EditKeys", false), "categoryid=" + sci.CategoryParentID + "&moduleid=" + mModuleId);

            settingBreadcrumb.Text = skeEditKey.SettingsKeyObj.KeyDisplayName;
        }
        // Set bradcrumbs for creating new key
        else
        {
            if (mParentGroup != null)
            {
                var parentCat = SettingsCategoryInfoProvider.GetSettingsCategoryInfoByName(mParentGroup);
                if (parentCat != null)
                {
                    categoryBreadcrumb.Text = parentCat.CategoryDisplayName;
                    categoryBreadcrumb.RedirectUrl = URLHelper.AppendQuery(UIContextHelper.GetElementUrl(ModuleName.CMS, "Modules.Settings.EditKeys", false), "categoryid=" + parentCat.CategoryParentID + "&moduleid=" + mModuleId);

                    settingBreadcrumb.Text = GetString("Development.CustomSettings.NewKey");
                }
            }
        }

        PageBreadcrumbs.AddBreadcrumb(categoryBreadcrumb);
        PageBreadcrumbs.AddBreadcrumb(settingBreadcrumb);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        int siteId = QueryHelper.GetInteger("siteid", 0);
        int contactId = QueryHelper.GetInteger("contactid", 0);

        // Init breadcrumbs
        var listBreadCrumb = new BreadcrumbItem {
            Text = GetString("om.activity.list"),
            RedirectUrl = "~/CMSModules/ContactManagement/Pages/Tools/Activities/Activity/List.aspx"
        };
        var newItemBreadCrumb = new BreadcrumbItem {
            Text = GetString("om.activity.newcustom")
        };

        if (contactId > 0)
        {
            // New custom activity page was opened from pages of edited contact
            listBreadCrumb.RedirectUrl = "~/CMSModules/ContactManagement/Pages/Tools/Contact/Tab_Activities.aspx?contactId=" + contactId;
        }

        listBreadCrumb.RedirectUrl = AddSiteQuery(listBreadCrumb.RedirectUrl, siteId);
        PageBreadcrumbs.AddBreadcrumb(listBreadCrumb);
        PageBreadcrumbs.AddBreadcrumb(newItemBreadCrumb);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        imgAvatar.Visible = false;

        avatarId = QueryHelper.GetInteger("avatarid", 0);

        if ((QueryHelper.GetInteger("saved", 0) == 1) && !URLHelper.IsPostback())
        {
            ShowChangesSaved();
        }

        // new avatar
        if (avatarId == 0)
        {
            PageTitle.TitleText = GetString("avat.newavatar");
            drpAvatarType.AutoPostBack = false;
        }
        // Edit avatar
        else
        {
            PageTitle.TitleText = GetString("avat.properties");
            drpAvatarType.AutoPostBack = true;
        }

        // initializes breadcrumbs
        BreadcrumbItem breadCrumb = new BreadcrumbItem()
        {
            Text = GetString("avat.newavatar"),
            RedirectUrl = "",
        };

        lblSharedInfo.Text = String.Format(GetString("avat.convertinfo") + "<br /><br />", "<a href=\"javascript:" + Page.ClientScript.GetPostBackEventReference(this, "shared") + "\">" + GetString("General.clickhere") + "</a>");

        valAvatarName.ErrorMessage = GetString("avat.requiresname");

        if (!RequestHelper.IsPostBack())
        {
            // Fill the drop down list
            ControlsHelper.FillListControlWithEnum<AvatarTypeEnum>(drpAvatarType, "avat.type", useStringRepresentation: true);
        }

        if (avatarId > 0)
        {
            plcImage.Visible = true;

            ai = AvatarInfoProvider.GetAvatarInfoWithoutBinary(avatarId);
            // Set edited object
            EditedObject = ai;

            if (ai != null)
            {
                if (ai.AvatarIsCustom)
                {
                    lblSharedInfo.Visible = true;
                }

               breadCrumb.Text = HTMLHelper.HTMLEncode(!string.IsNullOrEmpty(ai.AvatarName) ? ai.AvatarName : ai.AvatarFileName.Substring(0, ai.AvatarFileName.LastIndexOfCSafe(".")));

                // Load avatars data
                if (!RequestHelper.IsPostBack())
                {
                    txtAvatarName.Text = ai.AvatarName;
                    drpAvatarType.SelectedValue = ai.AvatarType.ToLowerCSafe();
                    chkDefaultUserAvatar.Checked = ai.DefaultUserAvatar;
                    chkDefaultMaleUserAvatar.Checked = ai.DefaultMaleUserAvatar;
                    chkDefaultFemaleUserAvatar.Checked = ai.DefaultFemaleUserAvatar;
                    chkDefaultGroupAvatar.Checked = ai.DefaultGroupAvatar;
                    imgAvatar.AlternateText = HTMLHelper.HTMLEncode(ai.AvatarName);
                }

                imgAvatar.Visible = true;
                imgAvatar.ImageUrl = ResolveUrl("~/CMSModules/Avatars/CMSPages/GetAvatar.aspx?maxsidesize=250&avatarguid=" + ai.AvatarGUID);

                // Display default avatar options, only for global avatars
                if (!ai.AvatarIsCustom)
                {
                    switch (AvatarInfoProvider.GetAvatarTypeEnum(drpAvatarType.SelectedValue))
                    {
                        case AvatarTypeEnum.User:
                            plcDefaultUserAvatar.Visible = true;
                            break;

                        case AvatarTypeEnum.Group:
                            plcDefaultGroupAvatar.Visible = true;
                            break;

                        case AvatarTypeEnum.All:
                            plcDefaultGroupAvatar.Visible = true;
                            plcDefaultUserAvatar.Visible = true;
                            break;
                    }
                }
            }
        }

        PageBreadcrumbs.Items.Add(new BreadcrumbItem()
        {
            Text = GetString("avat.title"),
            RedirectUrl = ResolveUrl("~/CMSModules/Avatars/Avatar_List.aspx"),
        });
        PageBreadcrumbs.Items.Add(breadCrumb);
    }
    /// <summary>
    /// Creates the internal breadcrumb item representation
    /// </summary>
    /// <param name="breadcrumb">Breadcrumb item from which internal breadcrumb will be created</param>
    /// <param name="isLast">Indicates whether the breadcrumb is the last one</param>
    private void CreateBreadCrumbsItem(BreadcrumbItem breadcrumb, bool isLast)
    {
        // Make link if URL specified
        string text = ResHelper.LocalizeString(breadcrumb.Text);

        var li = new HtmlGenericControl("li");
        if (!(string.IsNullOrEmpty(breadcrumb.RedirectUrl) && string.IsNullOrEmpty(breadcrumb.OnClientClick)) && !isLast)
        {
            HyperLink newLink = new HyperLink();
            newLink.Text = EncodeBreadcrumbs ? HTMLHelper.HTMLEncode(text) : text;
            newLink.NavigateUrl = breadcrumb.RedirectUrl;
            newLink.Target = breadcrumb.Target;
            // JavaScript is specified add on click
            if (!string.IsNullOrEmpty(breadcrumb.OnClientClick))
            {
                newLink.Attributes.Add("onclick", breadcrumb.OnClientClick);
                newLink.Attributes.Add("href", "javascript:void(0)");
            }
            li.Controls.Add(newLink);
        }
        else // Make label if last item or URL not specified
        {
            li.InnerText = text;
        }

        plcBreadcrumbs.Controls.Add(li);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Control initializations
        rfvDisplayName.ErrorMessage = GetString("general.requiresdisplayname");
        rfvName.ErrorMessage = GetString("Task_Edit.EmptyName");
        lblFrom.Text = GetString("scheduler.from");
        btnReset.OnClientClick = "if (!confirm(" + ScriptHelper.GetLocalizedString("tasks.reset") + ")) return false;";

        plcDevelopment.Visible = developmentMode;

        // Show 'Allow run in external service' checkbox in development mode
        plcAllowExternalService.Visible = developmentMode;

        string currentTask = GetString("Task_Edit.NewItemCaption");

        if (TaskID > 0)
        {
            // Set edited object
            EditedObject = TaskInfo;

            if (TaskInfo != null)
            {
                // Global task and user is not global administrator and task's site id is different than current site id
                if (!MembershipContext.AuthenticatedUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.GlobalAdmin) && ((TaskInfo.TaskSiteID == 0) || (TaskInfo.TaskSiteID != SiteID)))
                {
                    RedirectToAccessDenied(GetString("general.nopermission"));
                }

                currentTask = TaskInfo.TaskDisplayName;

                if (!RequestHelper.IsPostBack())
                {
                    ReloadData();

                    // Show that the task was created or updated successfully
                    if (Request.QueryString["saved"] == "1")
                    {
                        ShowChangesSaved();
                    }
                }
            }
        }
        else
        {
            // Check "modify" permission
            if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.ScheduledTasks", "Modify"))
            {
                RedirectToAccessDenied("CMS.ScheduledTasks", "Modify");
            }

            if (WebFarmServerInfoProvider.UseWebFarmSynchronization())
            {
                if (!RequestHelper.IsPostBack())
                {
                    chkAllServers.Visible = true;
                }
                chkAllServers.Attributes.Add("onclick", "document.getElementById('" + txtServerName.ClientID + "').disabled = document.getElementById('" + chkAllServers.ClientID + "').checked;");
            }
        }

        plcRunIndividually.Visible = (SiteID <= 0);

        // Initializes page title control
        BreadcrumbItem tasksLink = new BreadcrumbItem();
        tasksLink.Text = GetString("Task_Edit.ItemListLink");

        bool notSystem = (TaskInfo == null) || (TaskInfo.TaskType != ScheduledTaskTypeEnum.System);
        string listUrl = UIContextHelper.GetElementUrl("CMS.ScheduledTasks", GetElementName(notSystem ? "Tasks" : "SystemTasks"), true);
        listUrl = URLHelper.AddParameterToUrl(listUrl, "siteid", SiteID.ToString());
        tasksLink.RedirectUrl = listUrl;

        PageBreadcrumbs.Items.Add(tasksLink);
        PageBreadcrumbs.Items.Add(new BreadcrumbItem
        {
            Text = currentTask
        });
    }