Changeset 16219 for trunk


Ignore:
Timestamp:
10/08/18 15:32:53 (11 months ago)
Author:
jzenisek
Message:

#2839: fixed several bugs:

  • made additional slaves checkable
  • changed default collapsing of additional slave group
  • added info in project name text box
Location:
trunk/HeuristicLab.Clients.Hive.JobManager/3.3/Views
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/HeuristicLab.Clients.Hive.JobManager/3.3/Views/HiveResourceSelector.cs

    r16205 r16219  
    2626using System.Windows.Forms;
    2727using HeuristicLab.Collections;
     28using HeuristicLab.Common;
    2829using HeuristicLab.Common.Resources;
    2930using HeuristicLab.Core;
     
    637638        additionalNode = new TreeNode(additionalSlavesGroupName) {
    638639          ForeColor = SystemColors.GrayText,
     640          ImageIndex = slaveGroupImageIndex,
    639641          Tag = new SlaveGroup() {
    640642            Name = additionalSlavesGroupName,
     
    645647        foreach (var slave in singleSlaves.OrderBy(x => x.Name)) {
    646648          var slaveNode = new TreeNode(slave.Name) { Tag = slave };
     649
     650          if (newAssignedResources.Select(x => x.Id).Contains(slave.Id)) {
     651            slaveNode.Checked = true;
     652            if (!addedAssignments.Select(x => x.Id).Contains(slave.Id) &&
     653                !removedAssignments.Select(x => x.Id).Contains(slave.Id)) {
     654              slaveNode.Text += SELECTED_TAG;
     655            }
     656          }
     657
     658          if (addedAssignments.Select(x => x.Id).Contains(slave.Id)) {
     659            slaveNode.BackColor = addedAssignmentColor;
     660            slaveNode.ForeColor = controlTextColor;
     661            slaveNode.Text += ADDED_SELECTION_TAG;
     662          } else if (removedAssignments.Select(x => x.Id).Contains(slave.Id)) {
     663            slaveNode.BackColor = removedAssignmentColor;
     664            slaveNode.ForeColor = controlTextColor;
     665            slaveNode.Text += REMOVED_SELECTION_TAG;
     666          }
     667
    647668          additionalNode.Nodes.Add(slaveNode);
    648669        }
     
    661682        Resource r = (Resource)n.Tag;
    662683        if(n.Nodes.Count > 0) {
    663           if(HiveClient.Instance.GetAvailableResourceDescendants(r.Id).OfType<SlaveGroup>().Any()
    664             || HiveClient.Instance.GetAvailableResourceDescendants(r.Id).OfType<Slave>().Intersect(assignedResources.Union(newAssignedResources)).Any()) {
     684          if(HiveClient.Instance.GetAvailableResourceDescendants(r.Id).OfType<SlaveGroup>().Any()           
     685            || HiveClient.Instance.GetAvailableResourceDescendants(r.Id).OfType<Slave>().Intersect(assignedResources.Union(newAssignedResources)).Any()
     686            || (n == additionalNode && additionalNode.Nodes.Count > 0 && additionalNode.Nodes.Cast<TreeNode>().Any(x => x.Checked))) {
    665687            n.Expand();
    666688            ExpandResourceNodesOfInterest(n.Nodes);
  • trunk/HeuristicLab.Clients.Hive.JobManager/3.3/Views/RefreshableHiveJobView.cs

    r16209 r16219  
    141141          // project look up
    142142          if (Content.Job != null && Content.Job.ProjectId == Guid.Empty) {
     143            projectNameTextBox.Text = string.Empty;
    143144            if (HiveClient.Instance != null && HiveClient.Instance.Projects != null && HiveClient.Instance.Projects.Count == 1) {
    144145              var p = HiveClient.Instance.Projects.FirstOrDefault();
     
    146147                hiveResourceSelectorDialog = new HiveResourceSelectorDialog(Content.Job.Id, Content.Job.ProjectId);
    147148                Content.Job.ProjectId = p.Id;
    148                 Content.Job.ResourceIds = HiveClient.Instance.GetAvailableResourcesForProject(p.Id).Select(x => x.Id).ToList();
     149                var resources = HiveClient.Instance.GetAvailableResourcesForProject(p.Id).ToList();
     150                Content.Job.ResourceIds = resources.Select(x => x.Id).ToList();
    149151                hiveResourceSelectorDialog.SelectedProjectId = Content.Job.ProjectId;
    150152                hiveResourceSelectorDialog.SelectedResourceIds = Content.Job.ResourceIds;
     153
     154                var cores = resources.Union(resources.SelectMany(x => HiveClient.Instance.GetAvailableResourceDescendants(x.Id)))
     155                  .OfType<Slave>()
     156                  .Distinct()
     157                  .Sum(x => x.Cores);
     158
     159                projectNameTextBox.Text = HiveClient.Instance.GetProjectAncestry(Content.Job.ProjectId);
     160                projectNameTextBox.Text += "   (" + (cores.HasValue ? cores.Value.ToString() : "0") + " cores)";
    151161              }               
    152162            }
     
    155165              selectedProject = GetProject(Content.Job.ProjectId);
    156166              hiveResourceSelectorDialog = null;
    157               if (selectedProject != null) {
    158                 projectNameTextBox.Text = selectedProject.Name;
    159               } else {
    160                 projectNameTextBox.Text = string.Empty;
    161               }
    162167            }
    163168
     
    165170              hiveResourceSelectorDialog = new HiveResourceSelectorDialog(Content.Job.Id, Content.Job.ProjectId);
    166171
    167             if (Content.Job.ResourceIds == null) {
    168               Content.Job.ResourceIds = HiveClient.Instance.GetAssignedResourcesForJob(Content.Job.Id)
    169                 .Select(x => x.Id)
    170                 .ToList();
    171               hiveResourceSelectorDialog.SelectedResourceIds = Content.Job.ResourceIds;
     172            if (selectedProject != null) {
     173              projectNameTextBox.Text = HiveClient.Instance.GetProjectAncestry(selectedProject.Id);
     174            } else {
     175              projectNameTextBox.Text = string.Empty;
    172176            }
     177
     178            List<Resource> resources = null;
     179            if (Content.Job.ResourceIds == null)
     180              resources = HiveClient.Instance.GetAssignedResourcesForJob(Content.Job.Id).ToList();
     181            else
     182              resources = HiveClient.Instance.Resources.Where(x => Content.Job.ResourceIds.Contains(x.Id)).ToList();
     183
     184            Content.Job.ResourceIds = resources.Select(x => x.Id).ToList();
     185            hiveResourceSelectorDialog.SelectedResourceIds = Content.Job.ResourceIds;
     186
     187            var cores = resources.Union(resources.SelectMany(x => HiveClient.Instance.GetAvailableResourceDescendants(x.Id)))
     188              .OfType<Slave>()
     189              .Distinct()
     190              .Sum(x => x.Cores);
     191
     192            projectNameTextBox.Text += "   (" + (cores.HasValue ? cores.Value.ToString() : "0") + " cores)";
    173193
    174194          } else {
     
    192212        SuppressEvents = false;
    193213      }
    194       hiveExperimentPermissionListView.Content = null; // has to be filled by refresh button
     214      hiveExperimentPermissionListView.Content = null; // has to be filled by refresh
    195215      Content_JobStatisticsChanged(this, EventArgs.Empty);
    196216      Content_HiveExperimentChanged(this, EventArgs.Empty);
     
    410430      if (hiveResourceSelectorDialog.ShowDialog(this) == DialogResult.OK) {
    411431        selectedProject = hiveResourceSelectorDialog.SelectedProject;
    412         if(selectedProject != null) {
    413           projectNameTextBox.Text = selectedProject.Name;
     432        if(selectedProject != null) {       
    414433          Content.Job.ProjectId = selectedProject.Id;
    415434          Content.Job.ResourceIds = hiveResourceSelectorDialog.SelectedResources.Select(x => x.Id).ToList();
     435
     436          var cores = hiveResourceSelectorDialog.SelectedResources
     437            .Union(hiveResourceSelectorDialog.SelectedResources
     438              .SelectMany(x => HiveClient.Instance.GetAvailableResourceDescendants(x.Id)))
     439            .OfType<Slave>()
     440            .Distinct()
     441            .Sum(x => x.Cores);
     442
     443          projectNameTextBox.Text = HiveClient.Instance.GetProjectAncestry(selectedProject.Id) + "";
     444          projectNameTextBox.Text += "   (" + (cores.HasValue ? cores.Value.ToString() : "0") + " cores)";
     445
    416446        } else {
    417447          selectedProject = null;
Note: See TracChangeset for help on using the changeset viewer.