TurnOffPlasticWindow.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. using System.Linq;
  2. using UnityEditor;
  3. using UnityEngine;
  4. using UnityEngine.UIElements;
  5. using UnityEditor.UIElements;
  6. using Codice.CM.Common;
  7. using PlasticGui;
  8. using Unity.PlasticSCM.Editor;
  9. using Unity.PlasticSCM.Editor.UI.UIElements;
  10. using Unity.PlasticSCM.Editor.Inspector;
  11. using Unity.PlasticSCM.Editor.SceneView;
  12. internal class TurnOffPlasticWindow : EditorWindow
  13. {
  14. internal static void ShowWindow()
  15. {
  16. TurnOffPlasticWindow window = GetWindow<TurnOffPlasticWindow>();
  17. window.titleContent = new GUIContent(PlasticLocalization.GetString(
  18. PlasticLocalization.Name.TurnOffPlasticSCM));
  19. window.minSize = new Vector2(500, 350);
  20. window.maxSize = new Vector2(500, 350);
  21. window.Show();
  22. }
  23. void OnEnable()
  24. {
  25. mProgress = 0;
  26. EditorApplication.update += UpdateProgress;
  27. InitializeLayoutAndStyles();
  28. BuildComponents();
  29. }
  30. void OnDestroy()
  31. {
  32. Dispose();
  33. }
  34. void Dispose()
  35. {
  36. mTurnOffButton.clicked -= CreateButton_Clicked;
  37. EditorApplication.update -= UpdateProgress;
  38. }
  39. void InitializeLayoutAndStyles()
  40. {
  41. mRoot = rootVisualElement;
  42. mRoot.LoadLayout(typeof(TurnOffPlasticWindow).Name);
  43. mRoot.LoadStyle(typeof(TurnOffPlasticWindow).Name);
  44. }
  45. void BuildComponents()
  46. {
  47. mRoot = rootVisualElement;
  48. mTurnOffButton = mRoot.Query<Button>("turnoff-button").First();
  49. mTurnOffButton.text = PlasticLocalization.GetString(
  50. PlasticLocalization.Name.TurnOffPlasticSCM);
  51. mTurnOffButton.clicked += CreateButton_Clicked;
  52. mTurnOffLabel = mRoot.Query<Label>("turnoff-label").First();
  53. mTurnOffLabel.text = PlasticLocalization.GetString(
  54. PlasticLocalization.Name.TurnOffPlasticSCMDescrition);
  55. mTurnedOffLabel = mRoot.Query<Label>("progress-label").First();
  56. mTurnedOffLabel.text = string.Empty;
  57. mRoot.Add(mProgressBar = new ProgressBar());
  58. mProgressBar.style.marginLeft = 120f;
  59. mProgressBar.style.marginBottom = 2f;
  60. mProgressBar.title = string.Empty;
  61. mProgressBar.style.width = 300f;
  62. mProgressBar.style.display = DisplayStyle.None;
  63. }
  64. void UpdateProgress()
  65. {
  66. if (mProgress == 0) return;
  67. mProgressBar.style.display = DisplayStyle.Flex;
  68. if (mProgress == 1)
  69. {
  70. mProgressBar.value = 20f;
  71. mProgressBar.title = mProgressBar.value.ToString() + "%";
  72. mTurnedOffLabel.text = PlasticLocalization.GetString(
  73. PlasticLocalization.Name.TurnOffPlasticSCMClosingWindow);
  74. mPlasticWindow = Resources.FindObjectsOfTypeAll<PlasticWindow>().First();
  75. mPlasticWindow.Close();
  76. mProgress = 2;
  77. return;
  78. }
  79. if (mProgress == 2)
  80. {
  81. mProgressBar.value = 50f;
  82. mProgressBar.title = mProgressBar.value.ToString() +"%";
  83. mTurnedOffLabel.text = PlasticLocalization.GetString(
  84. PlasticLocalization.Name.TurnOffPlasticSCMCleaning);
  85. SetupCloudProjectId.SetCloudProjectId("");
  86. mProgress = 3;
  87. return;
  88. }
  89. if (mProgress == 3)
  90. {
  91. mProgressBar.value = 75f;
  92. mProgressBar.title = mProgressBar.value.ToString() +"%";
  93. mTurnedOffLabel.text = PlasticLocalization.GetString(
  94. PlasticLocalization.Name.TurnOffPlasticSCMDeleting);
  95. WorkspaceInfo workspaceInfo =
  96. FindWorkspace.InfoForApplicationPath(
  97. Application.dataPath,
  98. PlasticApp.PlasticAPI);
  99. Plastic.API.RemoveWorkspace(workspaceInfo);
  100. DrawInspectorOperations.Disable();
  101. DrawSceneOperations.Disable();
  102. mProgress = 4;
  103. return;
  104. }
  105. if (mProgress == 4)
  106. {
  107. mProgressBar.value = 100f;
  108. mProgressBar.title = mProgressBar.value.ToString() +"%";
  109. mTurnedOffLabel.text = PlasticLocalization.GetString(
  110. PlasticLocalization.Name.Done);
  111. mProgress = 9999;
  112. return;
  113. }
  114. }
  115. void CreateButton_Clicked()
  116. {
  117. if (mProgress != 0) return;
  118. if (EditorUtility.DisplayDialog(PlasticLocalization.GetString(
  119. PlasticLocalization.Name.TurningOffPlasticSCM),
  120. PlasticLocalization.GetString(PlasticLocalization.Name.TurnOffPlasticSCMAreYouSure),
  121. PlasticLocalization.GetString(PlasticLocalization.Name.YesButton),
  122. PlasticLocalization.GetString(PlasticLocalization.Name.NoButton)))
  123. {
  124. mProgress = 1;
  125. }
  126. }
  127. VisualElement mRoot;
  128. Button mTurnOffButton;
  129. Label mTurnOffLabel;
  130. Label mTurnedOffLabel;
  131. ProgressBar mProgressBar;
  132. int mProgress;
  133. PlasticWindow mPlasticWindow;
  134. }