- Timestamp:
- 12/21/18 17:09:39 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ResourcesView.cs
r16430 r16446 54 54 55 55 56 57 56 private TreeNode ungroupedGroupNode; 58 57 … … 64 63 65 64 private readonly object locker = new object(); 65 private bool refreshingInternal = false; 66 private bool refreshingExternal = false; 66 67 67 68 public new IItemList<Resource> Content { … … 78 79 HiveAdminClient.Instance.Refreshing += HiveAdminClient_Instance_Refreshing; 79 80 HiveAdminClient.Instance.Refreshed += HiveAdminClient_Instance_Refreshed; 80 AccessClient.Instance.Refreshing += AccessClient_Instance_Refreshing;81 AccessClient.Instance.Refreshed += AccessClient_Instance_Refreshed;82 81 } 83 82 84 83 #region Overrides 85 protected override void OnClosing(FormClosingEventArgs e) {86 AccessClient.Instance.Refreshed -= AccessClient_Instance_Refreshed;87 AccessClient.Instance.Refreshing -= AccessClient_Instance_Refreshing;88 HiveAdminClient.Instance.Refreshed -= HiveAdminClient_Instance_Refreshed;89 HiveAdminClient.Instance.Refreshing -= HiveAdminClient_Instance_Refreshing;90 base.OnClosing(e);91 }92 93 84 protected override void RegisterContentEvents() { 94 85 base.RegisterContentEvents(); … … 185 176 if (InvokeRequired) Invoke((Action<object, EventArgs>)HiveAdminClient_Instance_Refreshing, sender, e); 186 177 else { 178 lock (locker) { 179 if (refreshingExternal) return; 180 if (!refreshingInternal) refreshingExternal = true; 181 } 182 187 183 Progress.Show(this, "Refreshing ...", ProgressMode.Indeterminate); 188 184 SetEnabledStateOfControls(); … … 193 189 if (InvokeRequired) Invoke((Action<object, EventArgs>)HiveAdminClient_Instance_Refreshed, sender, e); 194 190 else { 191 if (refreshingExternal) refreshingExternal = false; 192 Content = HiveAdminClient.Instance.Resources; 193 195 194 Progress.Hide(this); 196 195 SetEnabledStateOfControls(); … … 198 197 } 199 198 200 private void AccessClient_Instance_Refreshing(object sender, EventArgs e) {201 if (InvokeRequired) Invoke((Action<object, EventArgs>)AccessClient_Instance_Refreshing, sender, e);202 else {203 Progress.Show(this, "Refreshing ...", ProgressMode.Indeterminate);204 SetEnabledStateOfControls();205 }206 }207 208 private void AccessClient_Instance_Refreshed(object sender, EventArgs e) {209 if (InvokeRequired) Invoke((Action<object, EventArgs>)AccessClient_Instance_Refreshed, sender, e);210 else {211 Progress.Hide(this);212 SetEnabledStateOfControls();213 }214 }215 216 199 private async void ResourcesView_Load(object sender, EventArgs e) { 217 await SecurityExceptionUtil.TryAsyncAndReportSecurityExceptions( 218 action: () => UpdateResources()); 200 await SecurityExceptionUtil.TryAsyncAndReportSecurityExceptions(() => UpdateResources()); 201 } 202 203 private void ResourcesView_Disposed(object sender, EventArgs e) { 204 HiveAdminClient.Instance.Refreshed -= HiveAdminClient_Instance_Refreshed; 205 HiveAdminClient.Instance.Refreshing -= HiveAdminClient_Instance_Refreshing; 219 206 } 220 207 … … 550 537 551 538 private void UpdateResources() { 539 lock (locker) { 540 if (refreshingInternal || refreshingExternal) return; 541 refreshingInternal = true; 542 } 543 552 544 try { 553 545 HiveAdminClient.Instance.Refresh(); 554 Content = HiveAdminClient.Instance.Resources;555 546 } catch (AnonymousUserException) { 556 547 ShowHiveInformationDialog(); 548 } finally { 549 refreshingInternal = false; 557 550 } 558 551 }
Note: See TracChangeset
for help on using the changeset viewer.