internal SinglePropChangeSet(int propID, int linkTargetID, LinkChangeType linkChangeType, bool displayNameAffected) : base(false) { _propID = propID; _linkTargetID = linkTargetID; _linkChangeType = linkChangeType; _displayNameAffected = displayNameAffected; }
internal void AddChangedLink(int propID, int targetID, LinkChangeType changeType) { ArrayList list = (ArrayList)_oldValues [propID]; if (list == null) { list = new ArrayList(); _oldValues [propID] = list; } list.Add(new LinkChange(targetID, changeType)); }
private void ProcessWorkspaceVisibleLink(IResource workspace, IResource res, LinkChangeType changeType, bool recursive, IResource[] filterResources) { if ((changeType == LinkChangeType.Add && res.HasLink(Props.WorkspaceVisible, workspace) || (changeType == LinkChangeType.Delete && !res.HasLink(Props.WorkspaceVisible, workspace)))) { return; } if (changeType == LinkChangeType.Add) { res.AddLink(Props.WorkspaceVisible, workspace); } else { if (HaveLinksToFilterResources(res, filterResources)) { return; } res.DeleteLink(Props.WorkspaceVisible, workspace); } WorkspaceTypeRec wrType = (WorkspaceTypeRec)_resTypeToWorkspaceRec [res.Type]; if (wrType != null) { foreach (int linkPropId in wrType._linkPropIds) { IResourceList linkList = GetWorkspaceLinks(res, linkPropId); foreach (IResource linkRes in linkList) { ProcessWorkspaceVisibleLink(workspace, linkRes, changeType, false, filterResources); } } } if (recursive) { int parentLinkType = GetRecurseLinkPropId(res.Type); foreach (IResource childRes in res.GetLinksTo(null, parentLinkType)) { if (!childRes.HasLink(Props.ExcludeFromWorkspace, workspace)) { ProcessWorkspaceVisibleLink(workspace, childRes, changeType, true, filterResources); } } } }
private PredicateMatch MatchResourceByLink(IResource res, IPropertyChangeSet cs, int propID) { LinkChangeType chg = LinkChangeType.None; if (cs != null) { chg = cs.GetLinkChange(propID, _baseResource.Id); } switch (chg) { case LinkChangeType.Add: return(PredicateMatch.Add); case LinkChangeType.Delete: return(PredicateMatch.Del); default: return(res.HasLink(propID, _baseResource) ? PredicateMatch.Match : PredicateMatch.None); } }