コード例 #1
0
ファイル: BCTreeviewEx.cs プロジェクト: cryptoRebel/sukiyoshi
        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);
                }
            }
        }
コード例 #2
0
        private void InitMediaLinkDataContext()
        {
            this.MediaLinkDataContext.GetFromQueryString();
            string str = string.IsNullOrEmpty(this.AnalyticsLinkAttributes[Attributes.url]) ? this.AnalyticsLinkAttributes[Attributes.id] : this.AnalyticsLinkAttributes[Attributes.url];

            if (this.CurrentMode != "media")
            {
                str = string.Empty;
            }
            if (str.Length == 0)
            {
                str = "/sitecore/media library";
            }
            else
            {
                if (!ID.IsID(str) && !str.StartsWith("/sitecore", StringComparison.InvariantCulture) && !str.StartsWith("/{11111111-1111-1111-1111-111111111111}", StringComparison.InvariantCulture))
                {
                    str = "/sitecore/media library" + str;
                }
                IDataView dataView = this.MediaLinkTreeview.GetDataView();
                if (dataView == null)
                {
                    return;
                }
                Item obj = dataView.GetItem(str);
                if (obj != null && obj.Parent != null)
                {
                    this.MediaLinkDataContext.SetFolder(obj.Uri);
                }
            }
            this.MediaLinkDataContext.AddSelected(new DataUri(str));
            this.MediaLinkDataContext.Root = "/sitecore/media library";
        }
コード例 #3
0
 public override void HandleMessage(Message message)
 {
     Assert.ArgumentNotNull((object)message, nameof(message));
     if (this.CurrentMode != "media")
     {
         base.HandleMessage(message);
     }
     else
     {
         Item obj = (Item)null;
         if (message.Arguments.Count > 0 && ID.IsID(message.Arguments["id"]))
         {
             IDataView dataView = this.MediaLinkTreeview.GetDataView();
             if (dataView != null)
             {
                 obj = dataView.GetItem(message.Arguments["id"]);
             }
         }
         if (obj == null)
         {
             obj = this.MediaLinkTreeview.GetSelectionItem();
         }
         Dispatcher.Dispatch(message, obj);
     }
 }
コード例 #4
0
        /// <summary>
        /// The init media link data context.
        /// </summary>
        private void InitMediaLinkDataContext()
        {
            MediaLinkDataContext.GetFromQueryString();
            string text = this.LinkAttributes["url"].IsNullOrEmpty() ? this.LinkAttributes["id"] : this.LinkAttributes["url"];

            if (CurrentMode != "media")
            {
                text = string.Empty;
            }
            if (text.Length == 0)
            {
                text = "/sitecore/media library";
            }
            else
            {
                if (!ID.IsID(text) && !text.StartsWith("/sitecore", StringComparison.InvariantCulture) && !text.StartsWith("/{11111111-1111-1111-1111-111111111111}", StringComparison.InvariantCulture))
                {
                    text = "/sitecore/media library" + text;
                }
                IDataView dataView = MediaLinkTreeview.GetDataView();
                if (dataView == null)
                {
                    return;
                }
                Item item = dataView.GetItem(text);
                if (item != null && item.Parent != null)
                {
                    MediaLinkDataContext.SetFolder(item.Uri);
                }
            }
            MediaLinkDataContext.AddSelected(new DataUri(text));
            MediaLinkDataContext.Root = "/sitecore/media library";
        }
コード例 #5
0
ファイル: BCTreeviewEx.cs プロジェクト: cryptoRebel/sukiyoshi
        public Item[] GetSelectedItems(Language language, Sitecore.Data.Version version)
        {
            List <Item> list     = new List <Item>();
            IDataView   dataView = this.GetDataView();

            if (dataView != null)
            {
                foreach (string str in this.GetSelectedIDs())
                {
                    if (!string.IsNullOrEmpty(str) && !(str == this.ID))
                    {
                        string id   = ShortID.Decode(str);
                        Item   item = dataView.GetItem(id, language, version);
                        if (item != null)
                        {
                            list.Add(item);
                        }
                    }
                }
            }
            return(list.ToArray());
        }
コード例 #6
0
        /// <summary>
        /// Handles the message.
        /// </summary>
        /// <param name="message">
        /// The message.
        /// </param>
        public override void HandleMessage(Message message)
        {
            Assert.ArgumentNotNull(message, "message");
            if (CurrentMode != "media")
            {
                base.HandleMessage(message);
                return;
            }
            Item item = null;

            if (message.Arguments.Count > 0 && ID.IsID(message.Arguments["id"]))
            {
                IDataView dataView = MediaLinkTreeview.GetDataView();
                if (dataView != null)
                {
                    item = dataView.GetItem(message.Arguments["id"]);
                }
            }
            if (item == null)
            {
                item = MediaLinkTreeview.GetSelectionItem();
            }
            Dispatcher.Dispatch(message, item);
        }