protected virtual void HandleResourceChanged(object sender, ResourcePropIndexEventArgs e) { if (!_disposed) { _listView.UpdateItemSafe(e.Resource); } }
/// <summary> /// A workspace has changed. /// If it's a change in its name, update the button. /// </summary> private void OnWorkspaceChanged(object sender, ResourcePropIndexEventArgs e) { if (e.ChangeSet.IsDisplayNameAffected) // Relayout the button to update its widthхотя тут наверно жд ту { Core.UserInterfaceAP.QueueJob("Update Workspace Button", new MethodInvoker(UpdateButtonWidth)); } }
private void _unreadArticles_ResourceChanged(object sender, ResourcePropIndexEventArgs e) { if (e.ChangeSet.IsPropertyChanged(Core.Props.IsDeleted)) { _updatedResources.Add(e.Resource); } }
private void HandleResourceChanged(object sender, ResourcePropIndexEventArgs e) { if (e.ChangeSet.IsPropertyChanged(_parentProp)) { LinkChange[] changes = e.ChangeSet.GetLinkChanges(_parentProp); for (int i = 0; i < changes.Length; i++) { IResource target = Core.ResourceStore.TryLoadResource(changes [i].TargetId); if (target != null) { if (changes [i].ChangeType == LinkChangeType.Add) { NotifyListeners(target, Operation.Added, e.Resource, null); } else { NotifyListeners(target, Operation.Deleting, e.Resource, null); } } } } else { IResource parent = e.Resource.GetLinkProp(_parentProp); NotifyListeners(parent, Operation.Changed, e.Resource, e.ChangeSet); } }
private void _ABList_ResourceChanged(object sender, ResourcePropIndexEventArgs e) { string entryID = e.Resource.GetStringProp(PROP.EntryID); IResource resFolder = Folder.Find(entryID); PairIDs pairIDs = PairIDs.Get(resFolder); if (pairIDs == null) { return; } IEFolder folder = OutlookSession.OpenFolder(pairIDs.EntryId, pairIDs.StoreId); if (folder != null) { using ( folder ) { if (!e.Resource.GetPropText(Core.Props.Name).EndsWith("(Outlook)")) { folder.SetStringProp(MAPIConst.PR_DISPLAY_NAME, e.Resource.GetStringProp(Core.Props.Name)); folder.SaveChanges(); } } } }
private void OnTaskChanged(object sender, ResourcePropIndexEventArgs e) { if (Settings.ExportTasks) { new ExportTaskDescriptor(e.Resource).QueueJob(JobPriority.AboveNormal); } }
/// <summary> /// The holder has changed, if the change affects the order-property, /// </summary> protected void OnOrderPropertyHolderChanged(object sender, ResourcePropIndexEventArgs e) { if (e.ChangeSet.IsPropertyChanged(Core.Props.UserResourceOrder)) { OnUserResourceOrderChanged(this, EventArgs.Empty); } }
private void ConversationChangedHandler(object sender, ResourcePropIndexEventArgs e) { if (_displayedResource == sender) { Core.ResourceBrowser.RedisplaySelectedResource(); } }
private void OnRootResourceChanged(object sender, ResourcePropIndexEventArgs e) { // If the sorting-order has changed, reapply the sorting if (e.ChangeSet.IsPropertyChanged(Core.Props.UserResourceOrder)) { Core.UserInterfaceAP.QueueJob("Rearrange Children", new RearrangeChildrenDelegate(RearrangeChildren), e.Resource); } }
private void _feedGroups_ResourceChanged(object sender, ResourcePropIndexEventArgs e) { if (e.ChangeSet.IsPropertyChanged(Core.Props.Parent) || (_activeWs != null && e.ChangeSet.GetLinkChange(_propWorkspaceVisible, _activeWs.Id) != LinkChangeType.None)) { UpdateGroupUnreadCount(true); } }
private void OnPhoneChanged(object sender, ResourcePropIndexEventArgs e) { IResource phone = e.Resource; IResource contact = phone.GetLinkProp(ContactManager._propPhone); if (contact != null && contact.HasProp(PROP.Imported) && contact.HasProp(PROP.EntryID)) { OutlookSession.OutlookProcessor.QueueJob(new ExportContactDescriptor(contact)); } }
private void OnCategory(object sender, ResourcePropIndexEventArgs args) { DecorateResource(args.Resource); IResourceList parents = args.Resource.GetLinksFrom("Category", Core.Props.Parent); if (parents.Count > 0) { DecorateResource(parents[0]); } }
private void CategoryChanged(object sender, ResourcePropIndexEventArgs e) { if (!Settings.SyncTaskCategory && !Settings.SyncMailCategory && !Settings.SyncContactCategory) { return; } if (e.ChangeSet.IsPropertyChanged(Core.Props.Parent) || e.ChangeSet.IsPropertyChanged(Core.Props.Name)) { ProcessCategoriesRecursive(e.Resource); } }
/// <summary> /// When the active workspace is changed, updates the filter list. /// </summary> private void OnActiveWorkspaceChanged(object sender, ResourcePropIndexEventArgs e) { if (Core.UserInterfaceAP.IsOwnerThread) { ProcessActiveWorkspaceChange(); } else { Core.UIManager.QueueUIJob(new MethodInvoker(ProcessActiveWorkspaceChange)); } }
protected virtual void HandleResourceChanged(object sender, ResourcePropIndexEventArgs e) { if (!_disposed) { // UpdateItemSafe() is necessary because in some cases (OM-8629) some plugin performs // a resource change from the ResourceAdded event handler, which causes // JetListView to receive ResourceChanged notification for a resource before it // has received a ResourceAdded notification for the same resource. _listView.UpdateItemSafe(e.Resource); } }
private void HandleResourceChanged(object sender, ResourcePropIndexEventArgs e) { if (e.ChangeSet.IsDisplayNameAffected || _showIcon) { Core.UIManager.QueueUIJob(new MethodInvoker(RefreshResource)); } if (ResourceChanged != null) { ResourceChanged(this, new ResourcePropEventArgs(e.Resource, e.ChangeSet)); } }
[SetUp] public void SetUp() { _core = new TestCore(); _storage = _core.ResourceStore; _propSize = _storage.PropTypes.Register("Size", PropDataType.Int); _propSubject = _storage.PropTypes.Register("Subject", PropDataType.String); _storage.ResourceTypes.Register("Email", "Subject"); _storage.ResourceTypes.Register("Person", "Name"); _provider = new SimplePropertyProvider(); _lastChangeArgs = null; }
private void OnContainerChanged(object sender, ResourcePropIndexEventArgs args) { IPropertyChangeSet set = args.ChangeSet; if (set.IsPropertyChanged(_itemLink) || (_folderLink >= 0 && set.IsPropertyChanged(_folderLink))) { if (DecorationChanged != null) { DecorationChanged(this, new ResourceEventArgs(args.Resource)); } } }
/// <summary> /// Handle adding or removal of the resource to/from a workspace. It is indicated by /// the link with property Core.WorkspaceManager.Props.WorkspaceVisible /// </summary> private void HandleViewUnreadChanged(object sender, ResourcePropIndexEventArgs e) { LinkChange[] changes = e.ChangeSet.GetLinkChanges(((WorkspaceManager)Core.WorkspaceManager).Props.WorkspaceVisible); if (changes != null) { IResource viewResource = _unreadResourcesToView [(IResourceList)sender]; for (int i = 0; i < changes.Length; i++) { _unreadManager.AdjustViewWorkspaceCounter(e.Resource, viewResource, changes[i].TargetId, (changes[i].ChangeType == LinkChangeType.Add) ? 1 : -1); } } }
private void HandleFileChangeChanged(object sender, ResourcePropIndexEventArgs e) { if (!Core.UserInterfaceAP.IsOwnerThread) { Core.UIManager.QueueUIJob(() => HandleFileChangeChanged(sender, e)); return; } FileChange fileChange = (FileChange)_changedFilesList.SelectedItem; if (fileChange != null && fileChange.Resource == e.Resource) { UpdateSelectedChange(); } }
private void _resourceList_ResourceChanged(object sender, ResourcePropIndexEventArgs e) { _refresh.Enabled = true; AddStringToTraceBox(DateTime.Now.ToLongTimeString() + " resource was changed."); foreach (int propID in e.ChangeSet.GetChangedProperties()) { string message = "\t" + Core.ResourceStore.PropTypes.GetPropDisplayName(propID); if (Core.ResourceStore.PropTypes[propID].DataType != PropDataType.Link) { message += "\t\t" + e.ChangeSet.GetOldValue(propID); message += " --> " + e.Resource.GetProp(propID); } AddStringToTraceBox(message); } }
private void WeblinkOrFolderChanged(object sender, ResourcePropIndexEventArgs e) { IResource webLink = e.Resource; IPropertyChangeSet set = e.ChangeSet; int propLastModified = Core.ResourceStore.PropTypes["LastModified"].Id; if (BookmarkService.DownloadMethod != 2 && webLink == _lastDisplayedWeblink && ((set.IsPropertyChanged(propLastModified) && webLink.HasProp("Source")) || (set.IsPropertyChanged(Core.Props.LastError) && webLink.HasProp(Core.Props.LastError)))) { // if the displayed web link has changed, redisplay it IResourceBrowser browser = Core.ResourceBrowser; if ((webLink == _favoritesTreePane.SelectedNode && Core.TabManager.CurrentTabId == "Web") || (browser.SelectedResources.Count == 1 && webLink == browser.SelectedResources[0])) { Core.UserInterfaceAP.QueueJobAt(DateTime.Now.AddSeconds(1), "RedisplaySelectedResource", browser.RedisplaySelectedResource); } } string URL = webLink.GetPropText(_propURL); if (URL.Length > 0) { if (set.IsPropertyChanged(_propLastUpdated) || set.IsPropertyChanged(_propUpdateFreq)) { BookmarkService.QueueWeblink(webLink, URL, BookmarkService.BookmarkSynchronizationTime(webLink)); } if (set.IsPropertyChanged(_propURL)) { BookmarkService.ImmediateQueueWeblink(webLink, URL); } } if (set.IsPropertyChanged(Core.PropIds.Name) || set.IsPropertyChanged(_propURL)) { IBookmarkProfile profile = _bookmarkService.GetOwnerProfile(webLink); string error; if (profile != null && profile.CanCreate(webLink, out error)) { profile.Create(webLink); } } }
private void _feeds_ResourceChanged(object sender, ResourcePropIndexEventArgs e) { if (e.ChangeSet == null) { return; } if (e.ChangeSet.IsPropertyChanged(Core.Props.Parent) || (_activeWs != null && e.ChangeSet.GetLinkChange(_propWorkspaceVisible, _activeWs.Id) != LinkChangeType.None)) { UpdateGroupUnreadCount(true); } else if (e.ChangeSet.IsPropertyChanged(_propUnreadCount)) { object oldValue = e.ChangeSet.GetOldValue(_propUnreadCount); int oldCount = (oldValue == null) ? 0 : (int)oldValue; int newCount = e.Resource.GetIntProp(_propUnreadCount); AdjustGroupUnreadCount(e.Resource, newCount - oldCount); } }
//--------------------------------------------------------------------- // Trace the event when a link between a resource (e.g. folder) and // an expiration rule is removed. When there is no link between a rule // and other resources, the rule must be deleted automatically. //--------------------------------------------------------------------- private void RuleLinkageChanged(object sender, ResourcePropIndexEventArgs e) { bool checkRes = false; LinkChange[] changes = e.ChangeSet.GetLinkChanges(-ExpRuleLinkId); foreach (LinkChange change in changes) { if (change.ChangeType == LinkChangeType.Delete) { checkRes = true; } } int linksCount = e.Resource.GetLinksOfType(null, ExpRuleLinkId).Count; if (checkRes && linksCount == 0) { e.Resource.Delete(); } }
private void HandleChangesetChanged(object sender, ResourcePropIndexEventArgs e) { // redisplay resource only if interesting changes occur if (!e.ChangeSet.IsPropertyChanged(Props.Change) && !e.ChangeSet.IsPropertyChanged(Core.PropIds.LongBody)) { return; } if (!Core.UserInterfaceAP.IsOwnerThread) { Core.UIManager.QueueUIJob(() => HandleChangesetChanged(sender, e)); return; } if (e.Resource == _changeSet) { EndDisplayResource(e.Resource); if (!e.Resource.IsDeleting) { DisplayResource(e.Resource); } } }
protected override void HandleResourceChanged(object sender, ResourcePropIndexEventArgs e) { if (_disposed) { return; } lock ( _resourceList ) { ConversationNode node = FindConversationNode(e.Resource.Id); if (_threadingHandler.IsThreadChanged(e.Resource, e.ChangeSet)) { if (node != null && node.LvNode != null) { UpdateItemThread(e.Resource, node); } } else if (node != null) // if we use a live snapshot list, it's possible to get // ResourceChanged notifications for nodes which weren't included // in predicate GetMatchingResources() output (OM-8711) { _listView.UpdateItemSafe(e.Resource); IResource lastCollapsedParent = null; node = node.Parent; while (node != null) { if (node.LvNode != null && !node.LvNode.Expanded) { lastCollapsedParent = (IResource)node.LvNode.Data; } node = node.Parent; } if (lastCollapsedParent != null) { _listView.UpdateItemSafe(lastCollapsedParent); } } } }
private void OnContactChanged(object sender, ResourcePropIndexEventArgs e) { if (IsDisposed) { return; } // Some desynchronization is possible during visual context // switching, thus check that handler is actually called for // the appropriate resource. if (_contact.Id == e.Resource.Id) { if (InvokeRequired) { Core.UIManager.QueueUIJob(new ResourcePropIndexEventHandler(OnContactChanged), new object[] { sender, e }); } else { ShowResourceContent(); } } }
private void BaseResourceChanged(object sender, ResourcePropIndexEventArgs e) { foreach (int linkId in TracedLinks.Keys) { LinkChange[] changes; // For undirected links take always a positive value. if (Core.ResourceStore.PropTypes[linkId].HasFlag(PropTypeFlags.DirectedLink)) { changes = e.ChangeSet.GetLinkChanges(-linkId); } else { changes = e.ChangeSet.GetLinkChanges(linkId); } foreach (LinkChange change in changes) { ProcessLinkChange(linkId, e.Resource, change); } } }
private void _views_ResourceChanged(object sender, ResourcePropIndexEventArgs e) { string type = e.Resource.GetStringProp(Core.Props.ContentType); bool isStillContact = (type != null && type.IndexOf("Contact") != -1); for (int i = 0; i < _cmbCategory.Items.Count; i++) { object o = _cmbCategory.Items[i]; if (o is IResource) { IResource item = (IResource)o; if (item != null && item.Id == e.Resource.Id) { if (!isStillContact) { Core.UIManager.QueueUIJob(new TypedResDelegate(DeleteResource), e.Resource, FilterManagerProps.ViewResName); } return; } } } }
private void OnResourceChanged(object sender, ResourcePropIndexEventArgs e) { IResourceList resList = _resList; if (resList == null || e.Index < 0) { return; } lock ( resList ) { lock ( _events ) { if (_resList == null) { return; } ResourceListEvent ev = new ResourceListEvent(_resList, EventType.Change, e.Resource.Id, e.Index, e.ChangeSet); _events.Add(ev); _needMerge = true; } } }