Ejemplo n.º 1
0
 /// <summary>
 /// Adds the sync menu item.
 /// </summary>
 /// <param name="item">The item.</param>
 public void AddSyncMenuItem(Outlook.OlItemType oItemType)
 {
     SyncMenuItem menuItem = CreateSyncMenuItem(oItemType);
     if (menuItem != null)
     {
         _vistaMenuCtrl.Items.Add(menuItem);
         _vistaMenuCtrl.Invalidate();
     }
 }
Ejemplo n.º 2
0
        protected virtual void DisableEnableSyncItem(bool disableEnable, SyncMenuItem menuItem)
        {
            if (menuItem == null)
                throw new ArgumentNullException("menuItem");

            if (menuItem.Disabled != disableEnable)
            {
                menuItem.Disabled = disableEnable;
            }
        }
Ejemplo n.º 3
0
 protected virtual void vistaMenuCtrl_itemclick(OutlookAddin.OutlookUI.VistaMenuControl.VistaMenuItemClickArgs args)
 {
     Outlook.OlItemType oItemType = (Outlook.OlItemType)args.Item.ItemTag;
     SyncMenuItem menuItem = FindSyncMenuItem(oItemType);
     //Избегаем повторного нажатия
     if (menuItem != null && menuItem.CurrentSyncStatus != eSyncStatus.InProgress)
     {
         SyncItemEventArgs syncItemArgs = new SyncItemEventArgs(oItemType);
         OnProcessSync(syncItemArgs);
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// THRs the update sync item status.
        /// </summary>
        /// <param name="oItemType">Type of the o item.</param>
        /// <param name="args">The <see cref="Microsoft.Synchronization.SyncStagedProgressEventArgs"/> instance containing the event data.</param>
        /// <returns></returns>
        public bool ThrUpdateSyncItemStatus(Outlook.OlItemType oItemType)
        {
            bool retVal = true;

            if (this.InvokeRequired)
            {
                Func <Outlook.OlItemType, bool> func = this.ThrUpdateSyncItemStatus;
                retVal = (bool)this.Invoke(func, oItemType);
            }
            else
            {
                SyncMenuItem item = FindSyncMenuItem(oItemType);
                if (item == null)
                {
                    throw new Exception("Unable to find menuItem");
                }
                int    percent           = 0;
                string syncState         = "unknow";
                string reportingProvider = "unknow";
                uint   totalWork         = 0;
                uint   completedWork     = 0;

                if (CurrentSyncStagedProgress != null)
                {
                    totalWork     = CurrentSyncStagedProgress.TotalWork;
                    completedWork = CurrentSyncStagedProgress.CompletedWork;

                    percent           = totalWork == 0 ? 0 : (int)((double)completedWork / (double)totalWork * 100);
                    reportingProvider = CurrentSyncStagedProgress.ReportingProvider.ToString();
                }

                if (CurrentSyncSessionStage != null)
                {
                    syncState = CurrentSyncSessionStage.NewState.ToString();
                }

                //item.Description = FormatingStatus(Resources.SyncMenuItem_ProcessStatus_Pattern1,
                //                                    new object[] { syncState, reportingProvider, percent });

                item.Description = FormatingStatus(Resources.FormSyncMenuItem_ProcessStatus_Pattern2,
                                                   new object[] { syncState, reportingProvider, completedWork, totalWork });
            }
            return(retVal);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Creates the sync menu item.
        /// </summary>
        /// <param name="oItemType">Type of the o item.</param>
        /// <returns></returns>
        private SyncMenuItem CreateSyncMenuItem(Outlook.OlItemType oItemType)
        {
            SyncMenuItem retVal = new SyncMenuItem(_vistaMenuCtrl, this.imageList1);
            switch (oItemType)
            {
                case Outlook.OlItemType.olAppointmentItem:
                    retVal.RegisterStatusImages(eSyncStatus.InProgress, (int)eSyncMenuItem_Icon.Calendar_sync, (int)eSyncMenuItem_Icon.Calendar_sync_1,
                                                                   (int)eSyncMenuItem_Icon.Calendar_sync_2, (int)eSyncMenuItem_Icon.Calendar_sync_3);
                    retVal.RegisterStatusImages(eSyncStatus.Failed, (int)eSyncMenuItem_Icon.Calendar_failed);
                    retVal.RegisterStatusImages(eSyncStatus.Canceled, (int)eSyncMenuItem_Icon.Calendar_canceled);
                    retVal.RegisterStatusImages(eSyncStatus.ReadyProgress, (int)eSyncMenuItem_Icon.Calendar_sync, (int)eSyncMenuItem_Icon.Calendar_sync_1,
                                                                   (int)eSyncMenuItem_Icon.Calendar_sync_2, (int)eSyncMenuItem_Icon.Calendar_sync_3);
                    retVal.RegisterStatusImages(eSyncStatus.Ready, (int)eSyncMenuItem_Icon.Calendar_ready);
                    retVal.RegisterStatusImages(eSyncStatus.Ok, (int)eSyncMenuItem_Icon.Calendar_ok);
                    retVal.RegisterStatusImages(eSyncStatus.Unknow, (int)eSyncMenuItem_Icon.Calendar_unknow);
                    retVal.RegisterStatusImages(eSyncStatus.SkipedChangesDetected, (int)eSyncMenuItem_Icon.Calendar_canceled);
                    retVal.ItemTag = oItemType;
                    retVal.Text = Resources.FormSyncMenuItem_TextCalendar;
                    break;
                case Outlook.OlItemType.olContactItem:
                    retVal.RegisterStatusImages(eSyncStatus.InProgress, (int)eSyncMenuItem_Icon.Contact_sync, (int)eSyncMenuItem_Icon.Contact_sync_1,
                                                               (int)eSyncMenuItem_Icon.Contact_sync_2, (int)eSyncMenuItem_Icon.Contact_sync_3);
                    retVal.RegisterStatusImages(eSyncStatus.Failed, (int)eSyncMenuItem_Icon.Contact_failed);
                    retVal.RegisterStatusImages(eSyncStatus.Canceled, (int)eSyncMenuItem_Icon.Contact_canceled);
                    retVal.RegisterStatusImages(eSyncStatus.ReadyProgress, (int)eSyncMenuItem_Icon.Contact_sync, (int)eSyncMenuItem_Icon.Contact_sync_1,
                                                                   (int)eSyncMenuItem_Icon.Contact_sync_2, (int)eSyncMenuItem_Icon.Contact_sync_3);
                    retVal.RegisterStatusImages(eSyncStatus.Ready, (int)eSyncMenuItem_Icon.Contact_ok);
                    retVal.RegisterStatusImages(eSyncStatus.Unknow, (int)eSyncMenuItem_Icon.Contact_unknow);
                    retVal.ItemTag = oItemType;
                    retVal.Text = Resources.FormSyncMenuItem_TextContact;
                    break;
                case Outlook.OlItemType.olTaskItem:
                    retVal.RegisterStatusImages(eSyncStatus.InProgress, (int)eSyncMenuItem_Icon.Task_sync, (int)eSyncMenuItem_Icon.Task_sync_1,
                                                               (int)eSyncMenuItem_Icon.Task_sync_2, (int)eSyncMenuItem_Icon.Task_sync_3);
                    retVal.RegisterStatusImages(eSyncStatus.Failed, (int)eSyncMenuItem_Icon.Task_failed);
                    retVal.RegisterStatusImages(eSyncStatus.Canceled, (int)eSyncMenuItem_Icon.Task_canceled);
                    retVal.RegisterStatusImages(eSyncStatus.ReadyProgress, (int)eSyncMenuItem_Icon.Task_sync, (int)eSyncMenuItem_Icon.Task_sync_1,
                                                                   (int)eSyncMenuItem_Icon.Task_sync_2, (int)eSyncMenuItem_Icon.Task_sync_3);
                    retVal.RegisterStatusImages(eSyncStatus.Ready, (int)eSyncMenuItem_Icon.Task_ready);
                    retVal.RegisterStatusImages(eSyncStatus.Unknow, (int)eSyncMenuItem_Icon.Task_unknow);
                    retVal.ItemTag = oItemType;
                    retVal.Text = Resources.FormSyncMenuItem_TextTask;
                    break;
                case Outlook.OlItemType.olNoteItem:
                    retVal.RegisterStatusImages(eSyncStatus.InProgress, (int)eSyncMenuItem_Icon.Note_sync, (int)eSyncMenuItem_Icon.Note_sync_1,
                                                               (int)eSyncMenuItem_Icon.Note_sync_2, (int)eSyncMenuItem_Icon.Note_sync_3);
                    retVal.RegisterStatusImages(eSyncStatus.Failed, (int)eSyncMenuItem_Icon.Note_failed);
                    retVal.RegisterStatusImages(eSyncStatus.Canceled, (int)eSyncMenuItem_Icon.Note_canceled);
                    retVal.RegisterStatusImages(eSyncStatus.ReadyProgress, (int)eSyncMenuItem_Icon.Note_sync, (int)eSyncMenuItem_Icon.Note_sync_1,
                                                                   (int)eSyncMenuItem_Icon.Note_sync_2, (int)eSyncMenuItem_Icon.Note_sync_3);
                    retVal.RegisterStatusImages(eSyncStatus.Ready, (int)eSyncMenuItem_Icon.Note_ok);
                    retVal.RegisterStatusImages(eSyncStatus.Unknow, (int)eSyncMenuItem_Icon.Note_unknow);
                    retVal.ItemTag = oItemType;
                    retVal.Text = Resources.FormSyncMenuItem_TextNote;
                    break;
            }

            if (retVal != null)
            {
                retVal.SelectionStartColor = Color.FromArgb(152, 193, 233);
                retVal.SelectionEndColor = Color.FromArgb(134, 186, 237);
                retVal.SelectionStartColorStart = Color.FromArgb(104, 169, 234);
                retVal.SelectionEndColorEnd = Color.FromArgb(169, 232, 255);
                retVal.InnerBorder = Color.FromArgb(254, 254, 254);
                retVal.OuterBorder = Color.FromArgb(231, 231, 231);
                retVal.CaptionFont = new Font("Tahoma", 10, FontStyle.Bold);
                retVal.ContentFont = new Font("Tahoma", 7);
                retVal.CaptionColor = Color.Black;
                retVal.ContentColor = Color.Black;
            }
            return retVal;
        }
Ejemplo n.º 6
0
        protected virtual void DisableEnableSyncItem(bool disableEnable, SyncMenuItem menuItem)
        {
            if (menuItem == null)
                throw new ArgumentNullException("menuItem");

            if (menuItem.Disabled != disableEnable)
            {
                menuItem.Disabled = disableEnable;
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Creates the sync menu item.
        /// </summary>
        /// <param name="oItemType">Type of the o item.</param>
        /// <returns></returns>
        private SyncMenuItem CreateSyncMenuItem(Outlook.OlItemType oItemType)
        {
            SyncMenuItem retVal = new SyncMenuItem(_vistaMenuCtrl, this.imageList1);

            switch (oItemType)
            {
            case Outlook.OlItemType.olAppointmentItem:
                retVal.RegisterStatusImages(eSyncStatus.InProgress, (int)eSyncMenuItem_Icon.Calendar_sync, (int)eSyncMenuItem_Icon.Calendar_sync_1,
                                            (int)eSyncMenuItem_Icon.Calendar_sync_2, (int)eSyncMenuItem_Icon.Calendar_sync_3);
                retVal.RegisterStatusImages(eSyncStatus.Failed, (int)eSyncMenuItem_Icon.Calendar_failed);
                retVal.RegisterStatusImages(eSyncStatus.Canceled, (int)eSyncMenuItem_Icon.Calendar_canceled);
                retVal.RegisterStatusImages(eSyncStatus.ReadyProgress, (int)eSyncMenuItem_Icon.Calendar_sync, (int)eSyncMenuItem_Icon.Calendar_sync_1,
                                            (int)eSyncMenuItem_Icon.Calendar_sync_2, (int)eSyncMenuItem_Icon.Calendar_sync_3);
                retVal.RegisterStatusImages(eSyncStatus.Ready, (int)eSyncMenuItem_Icon.Calendar_ready);
                retVal.RegisterStatusImages(eSyncStatus.Ok, (int)eSyncMenuItem_Icon.Calendar_ok);
                retVal.RegisterStatusImages(eSyncStatus.Unknow, (int)eSyncMenuItem_Icon.Calendar_unknow);
                retVal.RegisterStatusImages(eSyncStatus.SkipedChangesDetected, (int)eSyncMenuItem_Icon.Calendar_canceled);
                retVal.ItemTag = oItemType;
                retVal.Text    = Resources.FormSyncMenuItem_TextCalendar;
                break;

            case Outlook.OlItemType.olContactItem:
                retVal.RegisterStatusImages(eSyncStatus.InProgress, (int)eSyncMenuItem_Icon.Contact_sync, (int)eSyncMenuItem_Icon.Contact_sync_1,
                                            (int)eSyncMenuItem_Icon.Contact_sync_2, (int)eSyncMenuItem_Icon.Contact_sync_3);
                retVal.RegisterStatusImages(eSyncStatus.Failed, (int)eSyncMenuItem_Icon.Contact_failed);
                retVal.RegisterStatusImages(eSyncStatus.Canceled, (int)eSyncMenuItem_Icon.Contact_canceled);
                retVal.RegisterStatusImages(eSyncStatus.ReadyProgress, (int)eSyncMenuItem_Icon.Contact_sync, (int)eSyncMenuItem_Icon.Contact_sync_1,
                                            (int)eSyncMenuItem_Icon.Contact_sync_2, (int)eSyncMenuItem_Icon.Contact_sync_3);
                retVal.RegisterStatusImages(eSyncStatus.Ready, (int)eSyncMenuItem_Icon.Contact_ok);
                retVal.RegisterStatusImages(eSyncStatus.Unknow, (int)eSyncMenuItem_Icon.Contact_unknow);
                retVal.ItemTag = oItemType;
                retVal.Text    = Resources.FormSyncMenuItem_TextContact;
                break;

            case Outlook.OlItemType.olTaskItem:
                retVal.RegisterStatusImages(eSyncStatus.InProgress, (int)eSyncMenuItem_Icon.Task_sync, (int)eSyncMenuItem_Icon.Task_sync_1,
                                            (int)eSyncMenuItem_Icon.Task_sync_2, (int)eSyncMenuItem_Icon.Task_sync_3);
                retVal.RegisterStatusImages(eSyncStatus.Failed, (int)eSyncMenuItem_Icon.Task_failed);
                retVal.RegisterStatusImages(eSyncStatus.Canceled, (int)eSyncMenuItem_Icon.Task_canceled);
                retVal.RegisterStatusImages(eSyncStatus.ReadyProgress, (int)eSyncMenuItem_Icon.Task_sync, (int)eSyncMenuItem_Icon.Task_sync_1,
                                            (int)eSyncMenuItem_Icon.Task_sync_2, (int)eSyncMenuItem_Icon.Task_sync_3);
                retVal.RegisterStatusImages(eSyncStatus.Ready, (int)eSyncMenuItem_Icon.Task_ready);
                retVal.RegisterStatusImages(eSyncStatus.Unknow, (int)eSyncMenuItem_Icon.Task_unknow);
                retVal.ItemTag = oItemType;
                retVal.Text    = Resources.FormSyncMenuItem_TextTask;
                break;

            case Outlook.OlItemType.olNoteItem:
                retVal.RegisterStatusImages(eSyncStatus.InProgress, (int)eSyncMenuItem_Icon.Note_sync, (int)eSyncMenuItem_Icon.Note_sync_1,
                                            (int)eSyncMenuItem_Icon.Note_sync_2, (int)eSyncMenuItem_Icon.Note_sync_3);
                retVal.RegisterStatusImages(eSyncStatus.Failed, (int)eSyncMenuItem_Icon.Note_failed);
                retVal.RegisterStatusImages(eSyncStatus.Canceled, (int)eSyncMenuItem_Icon.Note_canceled);
                retVal.RegisterStatusImages(eSyncStatus.ReadyProgress, (int)eSyncMenuItem_Icon.Note_sync, (int)eSyncMenuItem_Icon.Note_sync_1,
                                            (int)eSyncMenuItem_Icon.Note_sync_2, (int)eSyncMenuItem_Icon.Note_sync_3);
                retVal.RegisterStatusImages(eSyncStatus.Ready, (int)eSyncMenuItem_Icon.Note_ok);
                retVal.RegisterStatusImages(eSyncStatus.Unknow, (int)eSyncMenuItem_Icon.Note_unknow);
                retVal.ItemTag = oItemType;
                retVal.Text    = Resources.FormSyncMenuItem_TextNote;
                break;
            }

            if (retVal != null)
            {
                retVal.SelectionStartColor      = Color.FromArgb(152, 193, 233);
                retVal.SelectionEndColor        = Color.FromArgb(134, 186, 237);
                retVal.SelectionStartColorStart = Color.FromArgb(104, 169, 234);
                retVal.SelectionEndColorEnd     = Color.FromArgb(169, 232, 255);
                retVal.InnerBorder  = Color.FromArgb(254, 254, 254);
                retVal.OuterBorder  = Color.FromArgb(231, 231, 231);
                retVal.CaptionFont  = new Font("Tahoma", 10, FontStyle.Bold);
                retVal.ContentFont  = new Font("Tahoma", 7);
                retVal.CaptionColor = Color.Black;
                retVal.ContentColor = Color.Black;
            }
            return(retVal);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Sets the sync item status.
        /// </summary>
        /// <param name="oItemType">Type of the o item.</param>
        /// <param name="status">The status.</param>
        public bool ThrSetSyncItemStatus(Outlook.OlItemType oItemType, SyncItemInfo syncInfo)
        {
            if (this.InvokeRequired)
            {
                Func <Outlook.OlItemType, SyncItemInfo, bool> func = this.ThrSetSyncItemStatus;
                this.Invoke(func, oItemType, syncInfo);
            }
            else
            {
                SyncMenuItem item = FindSyncMenuItem(oItemType);
                if (item != null)
                {
                    //Если предыдущий статус был InProgress, снимаем disable c других пунктов
                    if (item.CurrentSyncStatus == eSyncStatus.InProgress && syncInfo.Status != eSyncStatus.InProgress)
                    {
                        EnableAllSyncItems(x => x.CurrentSyncStatus != eSyncStatus.Unknow);
                    }

                    if (syncInfo.Status == eSyncStatus.InProgress)
                    {
                        //Делаем неактивнми остальные пункты меню синхронизации
                        DisableAllSyncItems(x => (Outlook.OlItemType)x.ItemTag != oItemType);
                        item.Description = Resources.FormSyncMenuItem_ProcessStatus;
                    }
                    else if (syncInfo.Status == eSyncStatus.Ready || syncInfo.Status == eSyncStatus.Ok)
                    {
                        if (syncInfo.LastSyncDate != DateTime.MinValue)
                        {
                            item.Description = FormatingStatus(Resources.FormSyncMenuItem_ReadyStatus_Pattern, new object[] { syncInfo.LastSyncDate });
                        }
                        else
                        {
                            item.Description = Resources.FormSyncMenuItem_NotSyncStatus_Pattern;
                        }
                    }
                    else if (syncInfo.Status == eSyncStatus.Failed)
                    {
                        item.Description = FormatingStatus(Resources.FormSyncmenuItem_FailStatus_Pattern, new object[] { syncInfo.ErrorDescr });
                    }
                    else if (syncInfo.Status == eSyncStatus.SkipedChangesDetected)
                    {
                        item.Description = FormatingStatus(Resources.FormSyncMenuItem_SkippedItemPattern, new object[] { syncInfo.SkippedCount });
                    }
                    else if (syncInfo.Status == eSyncStatus.Unknow)
                    {
                        //Disabling unknow status
                        item.Description = Resources.FormSyncMenuItem_NotSyncStatus_Pattern;
                        DisableSyncItem(oItemType);
                    }
                    //Устанавливаем новый статус
                    item.CurrentSyncStatus = syncInfo.Status;
                    item.AnimateStatusImg  = false;
                    switch (item.CurrentSyncStatus)
                    {
                    case eSyncStatus.InProgress:
                        item.AnimateStatusImg = true;
                        item.AnimateDuration  = -1;
                        break;

                    case eSyncStatus.ReadyProgress:
                        item.AnimateDuration  = _onMouseHoverAnimateDuration;
                        item.AnimateStatusImg = true;
                        break;
                    }
                }
            }
            return(true);
        }