Changeset 15792 for branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectsView.cs
- Timestamp:
- 02/20/18 14:32:16 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2839_HiveProjectManagement/HeuristicLab.Clients.Hive.Administrator/3.3/Views/ProjectsView.cs
r15777 r15792 250 250 if (result == DialogResult.Yes) { 251 251 await SecurityExceptionUtil.TryAsyncAndReportSecurityExceptions( 252 action: () => RemoveProject(selectedProject), 252 action: () => { 253 RemoveProject(selectedProject); 254 }, 253 255 finallyCallback: () => { 254 256 removeButton.Enabled = true; … … 358 360 359 361 #region Helpers 360 private void ResetTreeNodes(TreeNodeCollection nodes, Color c1, Color c2, bool resetText) {361 foreach (TreeNode n in nodes) {362 var pro = ((Project)n.Tag);363 if (n.BackColor.Equals(c1)) {364 n.BackColor = c2;365 }366 if (resetText) {367 n.Text = pro.Name;368 369 if (pro.Id == Guid.Empty) {370 n.Text += " [not stored]";371 } else if (pro.Modified) {372 n.Text += " [changes not stored]";373 }374 }375 if (n.Nodes.Count > 0) {376 ResetTreeNodes(n.Nodes, c1, c2, resetText);377 }378 }379 }380 381 private void ChangeSelectedProject(Project project) {382 projectView.Content = project;383 projectPermissionsView.Content = project;384 projectResourcesView.Content = project;385 386 bool locked = project == null || (project != null && project.Id == Guid.Empty);387 addButton.Enabled = !locked;388 projectPermissionsView.Locked = locked;389 projectResourcesView.Locked = locked;390 selectedProject = project;391 }392 393 private void ChangeSelectedProjectNode(TreeNode projectNode) {394 if (projectNode == null) return;395 SelectedProject = (Project)projectNode.Tag;396 ResetTreeNodes(projectsTreeView.Nodes, selectedColor, Color.Transparent, true);397 projectNode.BackColor = selectedColor;398 projectNode.Text += " [selected]";399 }400 401 362 private void BuildProjectTree(IEnumerable<Project> projects) { 402 363 projectsTreeView.Nodes.Clear(); … … 407 368 .Where(x => x.ParentProjectId.HasValue 408 369 && !projects.Select(y => y.Id).Contains(x.ParentProjectId.Value))); 409 370 mainProjects.UnionWith(parentedMainProjects); 410 371 var subProbjects = new HashSet<Project>(projects.Except(mainProjects)); 411 372 … … 416 377 TreeNode currentNode = null; 417 378 Project currentProject = null; 418 379 419 380 while (stack.Any()) { 420 381 var newProject = stack.Pop(); 421 382 var newNode = new TreeNode(newProject.Name) { Tag = newProject }; 422 423 if (newProject.Id == Guid.Empty) { 424 newNode.Text += " [not stored]"; 425 } else if(newProject.Modified) { 426 newNode.Text += " [changes not stored]"; 427 } 383 StyleTreeNode(newNode, newProject); 384 428 385 if (selectedProject == null) { 429 386 SelectedProject = newProject; … … 467 424 } 468 425 426 private void StyleTreeNode(TreeNode n, Project p) { 427 n.Text = p.Name; 428 n.BackColor = Color.Transparent; 429 n.ForeColor = Color.Black; 430 431 if (p.Id == Guid.Empty) { 432 n.Text += " [not stored]"; 433 } else if (p.Modified) { 434 n.Text += " [changes not stored]"; 435 } 436 } 437 438 private void ResetTreeNodes(TreeNodeCollection nodes) { 439 foreach (TreeNode n in nodes) { 440 StyleTreeNode(n, (Project)n.Tag); 441 if (n.Nodes.Count > 0) { 442 ResetTreeNodes(n.Nodes); 443 } 444 } 445 } 446 447 private void ChangeSelectedProject(Project project) { 448 projectView.Content = project; 449 projectPermissionsView.Content = project; 450 projectResourcesView.Content = project; 451 452 bool locked = project == null || (project != null && project.Id == Guid.Empty); 453 addButton.Enabled = !locked; 454 projectPermissionsView.Locked = locked; 455 projectResourcesView.Locked = locked; 456 selectedProject = project; 457 } 458 459 private void ChangeSelectedProjectNode(TreeNode projectNode) { 460 if (projectNode == null) return; 461 SelectedProject = (Project)projectNode.Tag; 462 ResetTreeNodes(projectsTreeView.Nodes); 463 projectNode.BackColor = selectedColor; 464 projectNode.Text += " [selected]"; 465 } 466 469 467 private void UpdateProjects() { 470 468 try { … … 480 478 481 479 try { 482 if(project.Id != Guid.Empty) HiveAdminClient.Delete(project); 483 Content.Remove(selectedProject); 480 if (project.Id != Guid.Empty) { 481 var projectsToSave = Content.Where(x => x.Id == Guid.Empty || x.Modified); 482 foreach (var p in projectsToSave) 483 p.Store(); 484 HiveAdminClient.Delete(project); 485 UpdateProjects(); 486 } else { 487 Content.Remove(project); 488 } 484 489 } catch (AnonymousUserException) { 485 490 ShowHiveInformationDialog();
Note: See TracChangeset
for help on using the changeset viewer.