示例#1
0
        private void CreateActionLinks(ArrayList itemList, string resType, ILinksPaneFilter filter, IResource filterRes)
        {
            ArrayList actions = (ArrayList)_typeToActions [resType];

            if (actions == null)
            {
                return;
            }

            ActionPresentation presentation = new ActionPresentation();

            foreach (LinksPaneAction action in actions)
            {
                if (filter != null && filterRes != null && !filter.AcceptAction(filterRes, action._action))
                {
                    continue;
                }

                presentation.Reset();
                presentation.Text = action._text;
                UpdateAction(action, ref presentation);
                if (!presentation.Visible)
                {
                    continue;
                }

                itemList.Add(new LinksPaneActionItem(action._action, presentation.Text, presentation.Enabled));
            }
        }
示例#2
0
        /**
         * Sets the list of resources for which the links are displayed.
         */

        protected void SetResourceList(IResourceList resList, ILinksPaneFilter filter)
        {
            _filter = filter;
            if (_store == null)
            {
                _store = Core.ResourceStore;
                _store.ResourceSaved               += OnResourceSaved;
                _customProperties                   = Core.ResourceStore.FindResourcesLive("PropType", "Custom", 1);
                _customProperties.ResourceAdded    += HandleCustomPropertyListChanged;
                _customProperties.ResourceDeleting += HandleCustomPropertyListChanged;
            }
            _resourceList = resList;
        }
示例#3
0
        public LinksPaneActionItem[] CreateActionLinks(IResourceList resList, ILinksPaneFilter filter)
        {
            _lastContext = new ActionContext(ActionContextKind.LinksPane, null, resList);
            IResource res = (resList.Count == 1) ? resList [0] : null;

            ArrayList result = new ArrayList();

            CreateActionLinks(result, "", filter, res);
            if (resList.Count > 0 && resList.AllResourcesOfType(resList [0].Type))
            {
                CreateActionLinks(result, resList [0].Type, filter, res);
            }
            return((LinksPaneActionItem[])result.ToArray(typeof(LinksPaneActionItem)));
        }
示例#4
0
        public void DisplayLinks(IResourceList resList, ILinksPaneFilter filter)
        {
            SetResourceList(resList, filter);

            _scrollY = 0;
            SuspendLayout();
            try
            {
                if (_resourceList == null || _resourceList.Count == 0)
                {
                    RemoveAllControls();
                    DisposePooledControls();
                    _borderPanel.Invalidate();
                }
                else
                {
                    UpdateLinksPane();
                }
            }
            finally
            {
                ResumeLayout();
            }
        }
示例#5
0
 public void AddBaseFilter(ILinksPaneFilter filter)
 {
     _baseFilters.Add(filter);
 }
示例#6
0
        /**
         * Displays the links of the specified resource in the links bar.
         */

        public void DisplayLinks(IResource res, ILinksPaneFilter filter)
        {
            _resource = res;
            SetResourceList(res == null ? null : res.ToResourceList(), filter);
            UpdateLinksPane();
        }