protected virtual void GetContextMenu(string where)
        {
            Assert.ArgumentNotNullOrEmpty(where, "where");
            IDataView dataView = this.GetDataView();

            if (dataView != null)
            {
                string source  = Sitecore.Context.ClientPage.ClientRequest.Source;
                string control = Sitecore.Context.ClientPage.ClientRequest.Control;
                int    num     = source.LastIndexOf("_");
                Assert.IsTrue(num >= 0, "Invalid source ID");
                string id   = ShortID.Decode(StringUtil.Mid(source, num + 1));
                Item   item = dataView.GetItem(id);
                if (item != null)
                {
                    SheerResponse.DisableOutput();
                    Sitecore.Shell.Framework.ContextMenu menu = new Sitecore.Shell.Framework.ContextMenu();
                    CommandContext context = new CommandContext(item);
                    Sitecore.Web.UI.HtmlControls.Menu contextMenu = menu.Build(context);
                    contextMenu.AddDivider();
                    contextMenu.Add("__Refresh", "Refresh", "Applications/16x16/refresh.png", string.Empty, string.Concat(new object[] { "javascript:Sitecore.Treeview.refresh(\"", source, "\",\"", control, "\",\"", item.ID.ToShortID(), "\")" }), false, string.Empty, MenuItemType.Normal);
                    SheerResponse.EnableOutput();
                    SheerResponse.ShowContextMenu(control, where, contextMenu);
                }
            }
        }
 protected void Gutter_ContextMenu()
 {
     var contextMenu = new Sitecore.Web.UI.HtmlControls.Menu();
     SheerResponse.DisableOutput();
     Item item = Context.Database.GetItem(Sitecore.ItemBucket.Kernel.Util.Constants.ContentEditorGutterFolder);
     Assert.IsNotNull(item, typeof(Item), "Item \"/sitecore/content/Applications/Content Editor/Gutters\" not found", new object[0]);
     List<ID> activeRendererIDs = GutterManager.GetActiveRendererIDs();
     foreach (Item item2 in item.Children)
     {
         contextMenu.Add("M" + item2.ID.ToShortID(), item2["Header"], item2.Appearance.Icon, string.Empty, "SetGutterRenderer(\"" + item2.ID + "\")", activeRendererIDs.Contains(item2.ID), string.Empty, MenuItemType.Check);
     }
     contextMenu.AddDivider();
     contextMenu.Add("__Refresh", "Refresh", "Applications/16x16/refresh.png", string.Empty, "Gutter_Refresh", false, string.Empty, MenuItemType.Normal);
     SheerResponse.EnableOutput();
     SheerResponse.ShowContextMenu(Context.ClientPage.ClientRequest.Control, string.Empty, contextMenu);
 }
        protected void FieldMenu_DropDown(string id)
        {
            Assert.ArgumentNotNullOrEmpty(id, "id");
            Item fieldMenu = this.GetFieldMenu(id);
            if (fieldMenu != null)
            {

                SheerResponse.DisableOutput();
                var menu2 = new Sitecore.Web.UI.HtmlControls.Menu
                {
                    ID = "M"
                };
                var control = menu2;
                CommandContext commandContext = new CommandContext(this.ContentEditorDataContext.GetFolder());
                control.AddFromDataSource(fieldMenu, id, commandContext);
                SheerResponse.EnableOutput();
                SheerResponse.ShowPopup(id + "_menu", "below", control);
            }
        }
 protected void Validator_ContextMenu(string markerId)
 {
     Assert.ArgumentNotNull(markerId, "markerId");
     Assert.IsTrue(UserOptions.ContentEditor.ShowValidatorBar, "Validator bar is switched off in Content Editor.");
     var byMarkerID = ValidatorManager.GetValidators(ValidatorsMode.ValidatorBar, this.ValidatorsKey).GetByMarkerID(markerId);
     if (byMarkerID != null)
     {
         SheerResponse.DisableOutput();
         var contextMenu = new Sitecore.Web.UI.HtmlControls.Menu();
         if (byMarkerID.HasMenu)
         {
             Assert.IsNotNull(Context.ContentDatabase, "Content database not found.");
             Assert.IsNotNull(byMarkerID.ValidatorID, "Validator ID is null.");
             Item item = Context.ContentDatabase.GetItem(byMarkerID.ValidatorID);
             if (item != null)
             {
                 contextMenu.AddFromDataSource(item, byMarkerID.MarkerID);
                 contextMenu.AddDivider();
             }
         }
         contextMenu.Add("Suppress Validation Rule", string.Empty, string.Format("Validator_SuppressValidator(\"{0}\")", markerId));
         SheerResponse.EnableOutput();
         SheerResponse.ShowContextMenu(Context.ClientPage.ClientRequest.Control, string.Empty, contextMenu);
     }
 }
 protected void TreeSearchOptionName_Click()
 {
     string control = Context.ClientPage.ClientRequest.Control;
     string str2 = StringUtil.Mid(control, 20);
     SheerResponse.DisableOutput();
     var menu = new Sitecore.Web.UI.HtmlControls.Menu();
     Hashtable fieldInfo = this.FieldInfo;
     bool flag = false;
     SortedList list = new SortedList(StringComparer.Ordinal);
     foreach (FieldInfo info in fieldInfo.Values)
     {
         Item item = Client.ContentDatabase.GetItem(info.FieldID);
         if (item != null)
         {
             if (!list.ContainsKey(item.Name))
             {
                 list.Add(item.Name, item.Key);
             }
             flag = true;
         }
     }
     if (flag)
     {
         foreach (string str3 in list.Keys)
         {
             menu.Add("F" + list[str3], str3, string.Empty, string.Empty, "javascript:scContent.changeSearchCriteria(\"" + str2 + "\",\"" + str3 + "\")", false, string.Empty, MenuItemType.Normal);
         }
         menu.AddDivider();
     }
     menu.Add("Remove", "Remove", string.Empty, string.Empty, "javascript:scContent.removeSearchCriteria(\"" + str2 + "\")", false, string.Empty, MenuItemType.Normal);
     SheerResponse.EnableOutput();
     SheerResponse.ShowPopup(control, "below", menu);
 }
 protected void SystemMenu_Click()
 {
     var contextMenu = new Sitecore.Web.UI.HtmlControls.Menu();
     SheerResponse.DisableOutput();
     Item item = Client.CoreDatabase.GetItem(Sitecore.ItemBucket.Kernel.Util.Constants.ContentEditorSystemMenu);
     if (item != null)
     {
         contextMenu.AddFromDataSource(item, string.Empty);
         SheerResponse.EnableOutput();
         SheerResponse.ShowContextMenu("SystemMenu", "below", contextMenu);
     }
 }
 protected void SwitchMenu_Click()
 {
     var parent = new Sitecore.Web.UI.HtmlControls.Menu();
     Item item = Client.CoreDatabase.GetItem(Sitecore.ItemBucket.Kernel.Util.Constants.CoreApplicationsFolder);
     Assert.IsNotNull(item, "Item \"/sitecore/content/Applications/Content Editor/Applications\" not found");
     ChildList children = item.Children;
     for (int i = 0; i < children.Count; i++)
     {
         Item item2 = children[i];
         UrlString url = GetUrl(item2);
         url.Add("pa", i.ToString());
         url.Add("pa0", WebUtil.GetQueryString("pa0"));
         url.Add("pa1", WebUtil.GetQueryString("pa1"));
         var control = new Sitecore.Web.UI.HtmlControls.MenuItem();
         Context.ClientPage.AddControl(parent, control);
         control.Header = item2["Header"];
         control.Icon = item2.Appearance.Icon;
         control.Click = "SwitchTo(\"" + url + "\")";
     }
     SheerResponse.ShowPopup("SwitchMenu", "below-right", parent);
 }
        protected void ShowTabContextMenu()
        {
            var contextMenu = new Sitecore.Web.UI.HtmlControls.Menu();
            Database database = Factory.GetDatabase("master", false);
            Assert.IsNotNull(database, typeof(Database));
            Item item = database.GetItem("{DB14B596-67DD-4C93-BE7C-2BDBADEB64C2}"); //Tab Options
            Assert.IsNotNull(item, typeof(Ribbon));
            ListString str = new ListString(UserOptions.ContentEditor.VisibleStrips);
            SheerResponse.DisableOutput();
            foreach (Item item2 in item.Children)
            {
                Item strip = item2;

                contextMenu.Add("S" + strip.ID.ToShortID(), strip.Name, string.Empty, string.Empty, "CloseTabs(\"" + strip.ID + "\")", false, string.Empty, MenuItemType.Check);

            }
            contextMenu.AddDivider();
            contextMenu.Add("__Refresh", "Refresh", string.Empty, string.Empty, "RefreshItem", false, string.Empty, MenuItemType.Normal);

            SheerResponse.EnableOutput();
            SheerResponse.ShowContextMenu(Context.ClientPage.ClientRequest.Control, "contextmenu", contextMenu);
        }
 protected void ShowRibbonContextMenu()
 {
     var contextMenu = new Sitecore.Web.UI.HtmlControls.Menu();
     Database database = Factory.GetDatabase("core", false);
     Assert.IsNotNull(database, typeof(Database));
     Item item = database.GetItem(ItemIDs.DefaultRibbon);
     Assert.IsNotNull(item, typeof(Ribbon));
     ListString str = new ListString(UserOptions.ContentEditor.VisibleStrips);
     SheerResponse.DisableOutput();
     foreach (Item item2 in item.Children)
     {
         Item strip = item2;
         if (strip.TemplateID == TemplateIDs.Reference)
         {
             strip = strip.Database.Items[strip["Reference"]];
         }
         if (this.CanBeShown(strip))
         {
             bool check = strip["Hidden by default"] != "1";
             if (str.Count > 0)
             {
                 check = str.Contains(strip.ID.ToString());
             }
             contextMenu.Add("S" + strip.ID.ToShortID(), strip["Header"], string.Empty, string.Empty, "ToggleRibbonStrip(\"" + strip.ID + "\")", check, string.Empty, MenuItemType.Check);
         }
     }
     contextMenu.AddDivider();
     contextMenu.Add("__Reset", "Reset", string.Empty, string.Empty, "ResetRibbonStrips", false, string.Empty, MenuItemType.Normal);
     CommandState hidden = CommandState.Hidden;
     Command command = CommandManager.GetCommand("ribbon:customize");
     if (command != null)
     {
         hidden = CommandManager.QueryState(command, CommandContext.Empty);
     }
     if ((hidden == CommandState.Enabled) || (hidden == CommandState.Down))
     {
         contextMenu.Add("__Customize", "Customize", string.Empty, string.Empty, "ribbon:customize", false, string.Empty, MenuItemType.Normal);
     }
     SheerResponse.EnableOutput();
     SheerResponse.ShowContextMenu(Context.ClientPage.ClientRequest.Control, "contextmenu", contextMenu);
 }
        /// <summary>
        /// This Method is used to display recent Publish from Sitecore Taskbar (Earch Icon besides Database Changing button)
        /// </summary>
        protected void ShowPublishDetails()
        {
            Sitecore.Web.UI.HtmlControls.Menu menu = new Sitecore.Web.UI.HtmlControls.Menu();
            string name = Client.ContentDatabase.Name;
            SheerResponse.DisableOutput();
            try
            {
                if (Client.ContentDatabase.ProxiesEnabled)
                {
                    Sitecore.Web.UI.HtmlControls.MenuItem menuItem = new Sitecore.Web.UI.HtmlControls.MenuItem();
                    menu.Controls.Add(menuItem);
                    if (Context.ProxiesActive)
                    {
                        menuItem.Header = Translate.Text("Deactivate Proxies");
                        menuItem.Icon = "Core/16x16/export_d.png";
                        menuItem.Click = "DeactivateProxies()";
                    }
                    else
                    {
                        menuItem.Header = Translate.Text("Activate Proxies");
                        menuItem.Icon = "Core/16x16/export.png";
                        menuItem.Click = "ActivateProxies()";
                    }
                    menu.Controls.Add(new MenuDivider());
                }
                Sitecore.Web.UI.HtmlControls.MenuItem menuItem2 = new Sitecore.Web.UI.HtmlControls.MenuItem();
                menu.Controls.Add(menuItem2);

                menuItem2.Header = Translate.Text("View Publish History Details");
                menuItem2.Click = "ShowDesktopPublishDialog()";
                menuItem2.Icon = "Network/16x16/environment.png";
                menu.Controls.Add(new MenuDivider());

                #region Kept for future Updates
                //Sitecore.Web.UI.HtmlControls.MenuItem menuItem4 = new Sitecore.Web.UI.HtmlControls.MenuItem();
                //menu.Controls.Add(menuItem4);

                //menuItem4.Header = Translate.Text("Publish Dialog");
                //menuItem4.Click = "ShowPublishDialog()";
                //menuItem4.Icon = "Network/16x16/environment.png";
                //menu.Controls.Add(new MenuDivider());
                #endregion

                string logPath = Sitecore.Configuration.Settings.DataFolder + "/logs/PublishHistory.txt";
                int skip = 0;
                int recentPublishEntries = int.Parse(Settings.GetSetting("RecentPublish"));
                for (int publishJobNumber = 0; publishJobNumber < recentPublishEntries; publishJobNumber++)
                {
                    try
                    {
                        string[] lines = File.ReadLines(logPath).Reverse().Skip(skip).Take(4).ToArray();
                        if (!(lines == null || lines.Length == 0))
                        {
                            Sitecore.Web.UI.HtmlControls.MenuItem PublishHandle = new Sitecore.Web.UI.HtmlControls.MenuItem();
                            menu.Controls.Add(PublishHandle);
                            PublishHandle.Header = "Publish Handle : " + lines[3];
                            PublishHandle.Icon = "apps/16x16/earth.png";

                            Sitecore.Web.UI.HtmlControls.MenuItem PublishTarget = new Sitecore.Web.UI.HtmlControls.MenuItem();
                            menu.Controls.Add(PublishTarget);
                            PublishTarget.Header = "Publish Target : " + lines[2];

                            Sitecore.Web.UI.HtmlControls.MenuItem PublishOwner = new Sitecore.Web.UI.HtmlControls.MenuItem();
                            menu.Controls.Add(PublishOwner);
                            PublishOwner.Header = "Owner : " + lines[1];

                            Sitecore.Web.UI.HtmlControls.MenuItem PublishTime = new Sitecore.Web.UI.HtmlControls.MenuItem();
                            menu.Controls.Add(PublishTime);
                            PublishTime.Header = "Date and Time : " + lines[0];

                            menu.Controls.Add(new MenuDivider());
                        }
                    }
                    catch (Exception ex)
                    {

                        Log.Error("Publish History : Sitecore Desktop Error : " + ex.Message, Context.Item);
                        Log.Error("Publish History : Sitecore Desktop Error : " + ex.StackTrace, Context.Item);

                        Sitecore.Web.UI.HtmlControls.MenuItem PublishDetails = new Sitecore.Web.UI.HtmlControls.MenuItem();
                        menu.Controls.Add(PublishDetails);
                        PublishDetails.Header = "Publish log might be empty or has been deleted";
                        PublishDetails.Icon = "Network/16x16/environment_delete.png";
                        break;
                    }
                    finally
                    {
                        skip = skip + 4;
                    }

                }

            }
            catch(Exception ex)
            {
                Log.Error("Publish History : Sitecore Desktop Error : " + ex.Message, Context.Item);
                Log.Error("Publish History : Sitecore Desktop Error : " + ex.StackTrace, Context.Item);
            }
            finally
            {
                SheerResponse.EnableOutput();
            }
            SheerResponse.ShowContextMenu("DatabaseSelector", "above", menu);
        }
 protected void SystemMenu_Click()
 {
     Sitecore.Web.UI.HtmlControls.Menu contextMenu = new Sitecore.Web.UI.HtmlControls.Menu();
     SheerResponse.DisableOutput();
     Item item = Client.CoreDatabase.GetItem("/sitecore/content/Applications/Content Editor/Menues/System");
     if (item != null)
     {
     contextMenu.AddFromDataSource(item, string.Empty);
     SheerResponse.EnableOutput();
     SheerResponse.ShowContextMenu("SystemMenu", "below", contextMenu);
     }
 }