No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

NewIncomingChanges.cs 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using System;
  2. using Codice.Client.Common;
  3. using Codice.CM.Common;
  4. using PlasticGui.WorkspaceWindow;
  5. using Unity.PlasticSCM.Editor.UI;
  6. using Unity.PlasticSCM.Editor.UI.StatusBar;
  7. using GluonNewIncomingChangesUpdater = PlasticGui.Gluon.WorkspaceWindow.NewIncomingChangesUpdater;
  8. using GluonCheckIncomingChanges = PlasticGui.Gluon.WorkspaceWindow.CheckIncomingChanges;
  9. namespace Unity.PlasticSCM.Editor
  10. {
  11. internal static class NewIncomingChanges
  12. {
  13. internal static NewIncomingChangesUpdater BuildUpdaterForDeveloper(
  14. WorkspaceInfo wkInfo,
  15. ViewSwitcher viewSwitcher,
  16. IIncomingChangesNotifier incomingChangesNotifier,
  17. CheckIncomingChanges.IAutoRefreshIncomingChangesView autoRefreshIncomingChangesView,
  18. CheckIncomingChanges.IUpdateIncomingChanges updateIncomingChanges)
  19. {
  20. NewIncomingChangesUpdater updater = new NewIncomingChangesUpdater(
  21. new UnityPlasticTimerBuilder(),
  22. new CheckIncomingChanges.CalculateIncomingChanges(),
  23. updateIncomingChanges);
  24. updater.SetAutoRefreshIncomingChangesView(
  25. autoRefreshIncomingChangesView);
  26. viewSwitcher.SetNewIncomingChanges(
  27. updater, null, incomingChangesNotifier);
  28. updater.SetWorkspace(wkInfo);
  29. updater.Start();
  30. return updater;
  31. }
  32. internal static GluonNewIncomingChangesUpdater BuildUpdaterForGluon(
  33. WorkspaceInfo wkInfo,
  34. ViewSwitcher viewSwitcher,
  35. IIncomingChangesNotifier incomingChangesNotifier,
  36. GluonCheckIncomingChanges.IAutoRefreshIncomingChangesView autoRefreshIncomingChangesView,
  37. GluonCheckIncomingChanges.IUpdateIncomingChanges updateIncomingChanges,
  38. GluonCheckIncomingChanges.ICalculateIncomingChanges calculateIncomingChanges)
  39. {
  40. GluonNewIncomingChangesUpdater updater = new GluonNewIncomingChangesUpdater(
  41. wkInfo,
  42. new UnityPlasticTimerBuilder(),
  43. updateIncomingChanges,
  44. autoRefreshIncomingChangesView,
  45. calculateIncomingChanges);
  46. viewSwitcher.SetNewIncomingChanges(
  47. null, updater, incomingChangesNotifier);
  48. updater.Start();
  49. return updater;
  50. }
  51. internal static void LaunchUpdater(
  52. NewIncomingChangesUpdater developerNewIncomingChangesUpdater,
  53. GluonNewIncomingChangesUpdater gluonNewIncomingChangesUpdater)
  54. {
  55. if (developerNewIncomingChangesUpdater != null)
  56. {
  57. developerNewIncomingChangesUpdater.Start();
  58. developerNewIncomingChangesUpdater.Update(DateTime.Now);
  59. }
  60. if (gluonNewIncomingChangesUpdater != null)
  61. {
  62. gluonNewIncomingChangesUpdater.Start();
  63. gluonNewIncomingChangesUpdater.Update(DateTime.Now);
  64. }
  65. }
  66. internal static void StopUpdater(
  67. NewIncomingChangesUpdater developerNewIncomingChangesUpdater,
  68. GluonNewIncomingChangesUpdater gluonNewIncomingChangesUpdater)
  69. {
  70. if (developerNewIncomingChangesUpdater != null)
  71. developerNewIncomingChangesUpdater.Stop();
  72. if (gluonNewIncomingChangesUpdater != null)
  73. gluonNewIncomingChangesUpdater.Stop();
  74. }
  75. internal static void DisposeUpdater(
  76. NewIncomingChangesUpdater developerNewIncomingChangesUpdater,
  77. GluonNewIncomingChangesUpdater gluonNewIncomingChangesUpdater)
  78. {
  79. if (developerNewIncomingChangesUpdater != null)
  80. developerNewIncomingChangesUpdater.Dispose();
  81. if (gluonNewIncomingChangesUpdater != null)
  82. gluonNewIncomingChangesUpdater.Dispose();
  83. }
  84. }
  85. }