Example #1
0
 public void FinishDecompilation()
 {
     try
     {
         IPhasePageInteractor prev = CurrentPhase;
         workerDlgSvc.StartBackgroundWork("Finishing decompilation.", delegate()
         {
             for (;;)
             {
                 var next = NextPage(prev);
                 if (next == null)
                 {
                     break;
                 }
                 next.PerformWork(workerDlgSvc);
                 prev = next;
             }
         });
         prev.EnterPage();
         CurrentPhase = prev;
         projectBrowserSvc.Reload();
         procedureListSvc.Load(decompilerSvc.Decompiler.Project);
     }
     catch (Exception ex)
     {
         uiSvc.ShowError(ex, "An error occurred while finishing decompilation.");
     }
     workerDlgSvc.FinishBackgroundWork();
 }
Example #2
0
        public void NextPhase()
        {
            try
            {
                IPhasePageInteractor next = NextPage(CurrentPhase);

                if (next != null)
                {
                    SwitchInteractor(next);
                }
            }
            catch (Exception ex)
            {
                uiSvc.ShowError(ex, "Unable to proceed.");
            }
            workerDlgSvc.FinishBackgroundWork();
        }
Example #3
0
        private IPhasePageInteractor NextPage(IPhasePageInteractor phase)
        {
            IPhasePageInteractor next = null;

            if (phase == pageInitial)
            {
                next = pageScanned;
            }
            else if (phase == pageScanned)
            {
                next = pageAnalyzed;
            }
            else if (phase == pageAnalyzed)
            {
                next = pageFinal;
            }
            return(next);
        }
Example #4
0
        public void SwitchInteractor(IPhasePageInteractor interactor)
        {
            if (interactor == CurrentPhase)
            {
                return;
            }

            if (CurrentPhase != null)
            {
                if (!CurrentPhase.LeavePage())
                {
                    return;
                }
            }
            CurrentPhase = interactor;
            workerDlgSvc.StartBackgroundWork("Entering next phase...", delegate()
            {
                interactor.PerformWork(workerDlgSvc);
            });
            interactor.EnterPage();
        }
Example #5
0
 public void FinishDecompilation()
 {
     try
     {
         IPhasePageInteractor prev = CurrentPhase;
         workerDlgSvc.StartBackgroundWork("Finishing decompilation.", delegate()
         {
             IPhasePageInteractor next;
             while (nextPage.TryGetValue(prev, out next))
             {
                 next.PerformWork(workerDlgSvc);
                 prev = next;
             }
         });
         prev.EnterPage();
     }
     catch (Exception ex)
     {
         uiSvc.ShowError(ex, "An error occurred while finishing decompilation.");
     }
     workerDlgSvc.FinishBackgroundWork();
 }
Example #6
0
        public void SwitchInteractor(IPhasePageInteractor interactor)
        {
            if (interactor == CurrentPhase)
                return;

            if (CurrentPhase != null)
            {
                if (!CurrentPhase.LeavePage())
                    return;
            }
            CurrentPhase = interactor;
            workerDlgSvc.StartBackgroundWork("Entering next phase...", delegate()
            {
                interactor.PerformWork(workerDlgSvc);
            });
            interactor.EnterPage();
            UpdateToolbarState();
        }