Нет описания
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. if (!ClientConfig.Get().GetClientConfigData().IsIncomingChangesEnabled())
  21. return null;
  22. NewIncomingChangesUpdater updater = new NewIncomingChangesUpdater(
  23. new UnityPlasticTimerBuilder(),
  24. new CheckIncomingChanges.CalculateIncomingChanges(),
  25. updateIncomingChanges);
  26. updater.SetAutoRefreshIncomingChangesView(
  27. autoRefreshIncomingChangesView);
  28. viewSwitcher.SetNewIncomingChanges(
  29. updater, null, incomingChangesNotifier);
  30. updater.SetWorkspace(wkInfo);
  31. updater.Start();
  32. return updater;
  33. }
  34. internal static GluonNewIncomingChangesUpdater BuildUpdaterForGluon(
  35. WorkspaceInfo wkInfo,
  36. ViewSwitcher viewSwitcher,
  37. IIncomingChangesNotifier incomingChangesNotifier,
  38. GluonCheckIncomingChanges.IAutoRefreshIncomingChangesView autoRefreshIncomingChangesView,
  39. GluonCheckIncomingChanges.IUpdateIncomingChanges updateIncomingChanges,
  40. GluonCheckIncomingChanges.ICalculateIncomingChanges calculateIncomingChanges)
  41. {
  42. if (!ClientConfig.Get().GetClientConfigData().IsGluonIncomingChangesEnabled())
  43. return null;
  44. GluonNewIncomingChangesUpdater updater = new GluonNewIncomingChangesUpdater(
  45. wkInfo,
  46. new UnityPlasticTimerBuilder(),
  47. updateIncomingChanges,
  48. autoRefreshIncomingChangesView,
  49. calculateIncomingChanges);
  50. viewSwitcher.SetNewIncomingChanges(
  51. null, updater, incomingChangesNotifier);
  52. updater.Start();
  53. return updater;
  54. }
  55. internal static void LaunchUpdater(
  56. NewIncomingChangesUpdater developerNewIncomingChangesUpdater,
  57. GluonNewIncomingChangesUpdater gluonNewIncomingChangesUpdater)
  58. {
  59. if (developerNewIncomingChangesUpdater != null)
  60. {
  61. developerNewIncomingChangesUpdater.Start();
  62. developerNewIncomingChangesUpdater.Update(DateTime.Now);
  63. }
  64. if (gluonNewIncomingChangesUpdater != null)
  65. {
  66. gluonNewIncomingChangesUpdater.Start();
  67. gluonNewIncomingChangesUpdater.Update(DateTime.Now);
  68. }
  69. }
  70. internal static void StopUpdater(
  71. NewIncomingChangesUpdater developerNewIncomingChangesUpdater,
  72. GluonNewIncomingChangesUpdater gluonNewIncomingChangesUpdater)
  73. {
  74. if (developerNewIncomingChangesUpdater != null)
  75. developerNewIncomingChangesUpdater.Stop();
  76. if (gluonNewIncomingChangesUpdater != null)
  77. gluonNewIncomingChangesUpdater.Stop();
  78. }
  79. internal static void DisposeUpdater(
  80. NewIncomingChangesUpdater developerNewIncomingChangesUpdater,
  81. GluonNewIncomingChangesUpdater gluonNewIncomingChangesUpdater)
  82. {
  83. if (developerNewIncomingChangesUpdater != null)
  84. developerNewIncomingChangesUpdater.Dispose();
  85. if (gluonNewIncomingChangesUpdater != null)
  86. gluonNewIncomingChangesUpdater.Dispose();
  87. }
  88. }
  89. }