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)); } }
/** * 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; }
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))); }
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(); } }
public void AddBaseFilter(ILinksPaneFilter filter) { _baseFilters.Add(filter); }
/** * 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(); }