コード例 #1
0
ファイル: SyncMenuItem.cs プロジェクト: 0anion0/IBN
        public SyncMenuItem(VistaMenuControl owner, ImageList imgList)
            : base(owner)
        {
            PrevState = eSyncStatus.Unknow;

            _imgList = imgList;

            State <eSyncStatus> unknowState             = new State <eSyncStatus>(eSyncStatus.Unknow, ChangeStateHandler);
            State <eSyncStatus> readyState              = new State <eSyncStatus>(eSyncStatus.Ready, ChangeStateHandler);
            State <eSyncStatus> canceledState           = new State <eSyncStatus>(eSyncStatus.Canceled, ChangeStateHandler);
            State <eSyncStatus> conflicState            = new State <eSyncStatus>(eSyncStatus.UnresolvedConflict, ChangeStateHandler);
            State <eSyncStatus> inProgressState         = new State <eSyncStatus>(eSyncStatus.InProgress, ChangeStateHandler);
            State <eSyncStatus> failState               = new State <eSyncStatus>(eSyncStatus.Failed, ChangeStateHandler);
            State <eSyncStatus> readyProgressState      = new State <eSyncStatus>(eSyncStatus.ReadyProgress, ChangeStateHandler);
            State <eSyncStatus> okState                 = new State <eSyncStatus>(eSyncStatus.Ok, ChangeStateHandler);
            State <eSyncStatus> skippedChangeItemsState = new State <eSyncStatus>(eSyncStatus.SkipedChangesDetected, ChangeStateHandler);

            var allStates = new State <eSyncStatus>[] { okState, readyState, canceledState, conflicState, inProgressState,
                                                        failState, readyState, unknowState, readyProgressState, skippedChangeItemsState };

            //Пока позаоляем переход из любого состояни в любое
            foreach (State <eSyncStatus> state in allStates)
            {
                state.AvailTransitions.AddRange(allStates);
            }

            _syncStatusSM = new StateMachine <eSyncStatus>(unknowState);
            _syncStatusSM.RegisteredStates.AddRange(allStates);

            _animatedTimer          = new Timer();
            _animatedTimer.Interval = 150;
            _animatedTimer.Tick    += animatedTimer_Tick;
            _animatedTimer.Enabled  = false;
        }
コード例 #2
0
ファイル: SyncRequest.cs プロジェクト: liaodong/ActiveSync
 private ResponseCollection ErrorResponseCollection(string collectionId, eSyncStatus errorStatus)
 {
     return(new ResponseCollection()
     {
         CollectionId = collectionId,
         Status = errorStatus
     });
 }
コード例 #3
0
ファイル: SyncMenuItem.cs プロジェクト: 0anion0/IBN
        private void SetCurrentImage(eSyncStatus status)
        {
            CycleCollection <int> activeStateImgColl;

            if (_statusImageMaping.TryGetValue(status, out activeStateImgColl))
            {
                activeStateImgColl.EnableCycling = _animatedTimer.Enabled;
                IEnumerator <int> cycleIterator = activeStateImgColl.GetEnumerator();
                cycleIterator.MoveNext();

                int index = cycleIterator.Current;
                if (_imgList.Images.Count > index)
                {
                    Mediachase.Sync.Core.DebugAssistant.Log("Show animated image " + ((eSyncMenuItem_Icon)index).ToString());
                    this.Image = _imgList.Images[index];
                }
            }
        }
コード例 #4
0
ファイル: SyncMenuItem.cs プロジェクト: 0anion0/IBN
        public void RegisterStatusImages(eSyncStatus status, params int[] imgIndexes)
        {
            CycleCollection <int> imgIndexColl = CycleCollection <int> .CreateInstance(0, imgIndexes);

            _statusImageMaping[status] = imgIndexColl;
        }
コード例 #5
0
ファイル: SyncMenuItem.cs プロジェクト: alex765022/IBN
        private void SetCurrentImage(eSyncStatus status)
        {
            CycleCollection<int> activeStateImgColl;

            if (_statusImageMaping.TryGetValue(status, out activeStateImgColl))
            {
                activeStateImgColl.EnableCycling = _animatedTimer.Enabled;
                IEnumerator<int> cycleIterator = activeStateImgColl.GetEnumerator();
                cycleIterator.MoveNext();

                int index = cycleIterator.Current;
                if (_imgList.Images.Count > index)
                {
                    Mediachase.Sync.Core.DebugAssistant.Log("Show animated image " + ((eSyncMenuItem_Icon)index).ToString());
                    this.Image = _imgList.Images[index];
                }
            }
        }
コード例 #6
0
ファイル: SyncMenuItem.cs プロジェクト: alex765022/IBN
 public void RegisterStatusImages(eSyncStatus status, params int[] imgIndexes)
 {
     CycleCollection<int> imgIndexColl = CycleCollection<int>.CreateInstance(0, imgIndexes);
     _statusImageMaping[status] = imgIndexColl;
 }