Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/28/09 17:33:37 (15 years ago)
Author:
aleitner
Message:

contextmenu is on place where clicked
Add project form
expand add job form
(#626)

Location:
trunk/sources/HeuristicLab.Hive.Server.Console/3.2
Files:
3 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Hive.Server.Console/3.2/AddGroup.Designer.cs

    r1832 r1937  
    7171      // AddGroup
    7272      //
     73      this.AcceptButton = this.btnAdd;
    7374      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    7475      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     76      this.CancelButton = this.btnClose;
    7577      this.ClientSize = new System.Drawing.Size(337, 70);
    7678      this.Controls.Add(this.tbName);
  • trunk/sources/HeuristicLab.Hive.Server.Console/3.2/AddJobForm.Designer.cs

    r1530 r1937  
    4545    /// </summary>
    4646    private void InitializeComponent() {
    47       this.lblParentJob = new System.Windows.Forms.Label();
    48       this.cbParJob = new System.Windows.Forms.ComboBox();
    4947      this.btnAdd = new System.Windows.Forms.Button();
    5048      this.btnClose = new System.Windows.Forms.Button();
     
    5250      this.tbNumJobs = new System.Windows.Forms.TextBox();
    5351      this.lblError = new System.Windows.Forms.Label();
     52      this.lblProject = new System.Windows.Forms.Label();
     53      this.cbProject = new System.Windows.Forms.ComboBox();
     54      this.cbAllGroups = new System.Windows.Forms.CheckBox();
     55      this.gbGroups = new System.Windows.Forms.GroupBox();
     56      this.btnRemoveGroup = new System.Windows.Forms.Button();
     57      this.btnAddGroup = new System.Windows.Forms.Button();
     58      this.lbGroupsIn = new System.Windows.Forms.ListBox();
     59      this.lbGroupsOut = new System.Windows.Forms.ListBox();
     60      this.gbGroups.SuspendLayout();
    5461      this.SuspendLayout();
    5562      //
    56       // lblParentJob
    57       //
    58       this.lblParentJob.AutoSize = true;
    59       this.lblParentJob.Location = new System.Drawing.Point(9, 36);
    60       this.lblParentJob.Name = "lblParentJob";
    61       this.lblParentJob.Size = new System.Drawing.Size(58, 13);
    62       this.lblParentJob.TabIndex = 1;
    63       this.lblParentJob.Text = "Parent Job";
    64       //
    65       // cbParJob
    66       //
    67       this.cbParJob.FormattingEnabled = true;
    68       this.cbParJob.Location = new System.Drawing.Point(117, 33);
    69       this.cbParJob.Name = "cbParJob";
    70       this.cbParJob.Size = new System.Drawing.Size(212, 21);
    71       this.cbParJob.TabIndex = 2;
    72       //
    7363      // btnAdd
    7464      //
    75       this.btnAdd.Location = new System.Drawing.Point(12, 65);
     65      this.btnAdd.Location = new System.Drawing.Point(6, 224);
    7666      this.btnAdd.Name = "btnAdd";
    7767      this.btnAdd.Size = new System.Drawing.Size(75, 23);
     
    8474      //
    8575      this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
    86       this.btnClose.Location = new System.Drawing.Point(254, 65);
     76      this.btnClose.Location = new System.Drawing.Point(291, 224);
    8777      this.btnClose.Name = "btnClose";
    8878      this.btnClose.Size = new System.Drawing.Size(75, 23);
     
    10595      this.tbNumJobs.Location = new System.Drawing.Point(117, 6);
    10696      this.tbNumJobs.Name = "tbNumJobs";
    107       this.tbNumJobs.Size = new System.Drawing.Size(212, 20);
     97      this.tbNumJobs.Size = new System.Drawing.Size(243, 20);
    10898      this.tbNumJobs.TabIndex = 1;
    10999      this.tbNumJobs.Text = "1";
     
    112102      //
    113103      this.lblError.AutoSize = true;
    114       this.lblError.Location = new System.Drawing.Point(94, 74);
     104      this.lblError.Location = new System.Drawing.Point(87, 229);
    115105      this.lblError.Name = "lblError";
    116106      this.lblError.Size = new System.Drawing.Size(0, 13);
    117107      this.lblError.TabIndex = 8;
     108      //
     109      // lblProject
     110      //
     111      this.lblProject.AutoSize = true;
     112      this.lblProject.Location = new System.Drawing.Point(12, 39);
     113      this.lblProject.Name = "lblProject";
     114      this.lblProject.Size = new System.Drawing.Size(59, 13);
     115      this.lblProject.TabIndex = 9;
     116      this.lblProject.Text = "Job project";
     117      //
     118      // cbProject
     119      //
     120      this.cbProject.FormattingEnabled = true;
     121      this.cbProject.Location = new System.Drawing.Point(117, 31);
     122      this.cbProject.Name = "cbProject";
     123      this.cbProject.Size = new System.Drawing.Size(245, 21);
     124      this.cbProject.TabIndex = 10;
     125      //
     126      // cbAllGroups
     127      //
     128      this.cbAllGroups.AutoSize = true;
     129      this.cbAllGroups.Checked = true;
     130      this.cbAllGroups.CheckState = System.Windows.Forms.CheckState.Checked;
     131      this.cbAllGroups.Location = new System.Drawing.Point(15, 65);
     132      this.cbAllGroups.Name = "cbAllGroups";
     133      this.cbAllGroups.Size = new System.Drawing.Size(91, 17);
     134      this.cbAllGroups.TabIndex = 15;
     135      this.cbAllGroups.Text = "use all groups";
     136      this.cbAllGroups.UseVisualStyleBackColor = true;
     137      this.cbAllGroups.CheckedChanged += new System.EventHandler(this.cbAllGroups_CheckedChanged);
     138      //
     139      // gbGroups
     140      //
     141      this.gbGroups.Controls.Add(this.btnRemoveGroup);
     142      this.gbGroups.Controls.Add(this.btnAddGroup);
     143      this.gbGroups.Controls.Add(this.lbGroupsIn);
     144      this.gbGroups.Controls.Add(this.lbGroupsOut);
     145      this.gbGroups.Location = new System.Drawing.Point(10, 90);
     146      this.gbGroups.Name = "gbGroups";
     147      this.gbGroups.Size = new System.Drawing.Size(357, 128);
     148      this.gbGroups.TabIndex = 16;
     149      this.gbGroups.TabStop = false;
     150      this.gbGroups.Text = "choose groups";
     151      //
     152      // btnRemoveGroup
     153      //
     154      this.btnRemoveGroup.Enabled = false;
     155      this.btnRemoveGroup.Location = new System.Drawing.Point(143, 56);
     156      this.btnRemoveGroup.Name = "btnRemoveGroup";
     157      this.btnRemoveGroup.Size = new System.Drawing.Size(75, 23);
     158      this.btnRemoveGroup.TabIndex = 18;
     159      this.btnRemoveGroup.Text = "<< Remove";
     160      this.btnRemoveGroup.UseVisualStyleBackColor = true;
     161      //
     162      // btnAddGroup
     163      //
     164      this.btnAddGroup.Enabled = false;
     165      this.btnAddGroup.Location = new System.Drawing.Point(143, 26);
     166      this.btnAddGroup.Name = "btnAddGroup";
     167      this.btnAddGroup.Size = new System.Drawing.Size(75, 23);
     168      this.btnAddGroup.TabIndex = 17;
     169      this.btnAddGroup.Text = "Add >>";
     170      this.btnAddGroup.UseVisualStyleBackColor = true;
     171      //
     172      // lbGroupsIn
     173      //
     174      this.lbGroupsIn.Enabled = false;
     175      this.lbGroupsIn.FormattingEnabled = true;
     176      this.lbGroupsIn.Location = new System.Drawing.Point(224, 15);
     177      this.lbGroupsIn.Name = "lbGroupsIn";
     178      this.lbGroupsIn.Size = new System.Drawing.Size(128, 108);
     179      this.lbGroupsIn.TabIndex = 16;
     180      //
     181      // lbGroupsOut
     182      //
     183      this.lbGroupsOut.Enabled = false;
     184      this.lbGroupsOut.FormattingEnabled = true;
     185      this.lbGroupsOut.Location = new System.Drawing.Point(6, 15);
     186      this.lbGroupsOut.Name = "lbGroupsOut";
     187      this.lbGroupsOut.Size = new System.Drawing.Size(130, 108);
     188      this.lbGroupsOut.TabIndex = 15;
    118189      //
    119190      // AddJobForm
     
    123194      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    124195      this.CancelButton = this.btnClose;
    125       this.ClientSize = new System.Drawing.Size(344, 100);
     196      this.ClientSize = new System.Drawing.Size(372, 255);
     197      this.Controls.Add(this.gbGroups);
     198      this.Controls.Add(this.cbAllGroups);
     199      this.Controls.Add(this.cbProject);
     200      this.Controls.Add(this.lblProject);
    126201      this.Controls.Add(this.lblError);
    127202      this.Controls.Add(this.tbNumJobs);
     
    129204      this.Controls.Add(this.btnClose);
    130205      this.Controls.Add(this.btnAdd);
    131       this.Controls.Add(this.cbParJob);
    132       this.Controls.Add(this.lblParentJob);
    133206      this.Name = "AddJobForm";
    134207      this.Text = "Add Job";
     208      this.gbGroups.ResumeLayout(false);
    135209      this.ResumeLayout(false);
    136210      this.PerformLayout();
     
    140214    #endregion
    141215
    142     private System.Windows.Forms.Label lblParentJob;
    143     private System.Windows.Forms.ComboBox cbParJob;
    144216    private System.Windows.Forms.Button btnAdd;
    145217    private System.Windows.Forms.Button btnClose;
     
    147219    private System.Windows.Forms.TextBox tbNumJobs;
    148220    private System.Windows.Forms.Label lblError;
     221    private System.Windows.Forms.Label lblProject;
     222    private System.Windows.Forms.ComboBox cbProject;
     223    private System.Windows.Forms.CheckBox cbAllGroups;
     224    private System.Windows.Forms.GroupBox gbGroups;
     225    private System.Windows.Forms.Button btnRemoveGroup;
     226    private System.Windows.Forms.Button btnAddGroup;
     227    private System.Windows.Forms.ListBox lbGroupsIn;
     228    private System.Windows.Forms.ListBox lbGroupsOut;
    149229  }
    150230}
  • trunk/sources/HeuristicLab.Hive.Server.Console/3.2/AddJobForm.cs

    r1753 r1937  
    4242    public event addDelegate addJobEvent;
    4343
    44     ResponseList<Job> jobGroups = null;
     44    ResponseList<Project> projects = null;
    4545    IJobManager jobManager;
     46    IClientManager clientManager;
     47    ResponseList<ClientGroup> clientGroups;
     48
     49    Dictionary<Guid, string> clients = null;
    4650
    4751    public AddJobForm() {
    4852      InitializeComponent();
     53
     54      clients = new Dictionary<Guid, string>();
    4955      AddJob();
     56
    5057    }
    5158
     
    5360      jobManager =
    5461        ServiceLocator.GetJobManager();
    55       jobGroups = jobManager.GetAllJobs();
    56       cbParJob.Items.Add("none");
    57       cbParJob.SelectedIndex = 0;
    58       foreach (Job job in jobGroups.List) {
    59         cbParJob.Items.Add(job.Id);
     62      projects = jobManager.GetAllProjects();
     63      cbProject.Items.Add("none");
     64      cbProject.SelectedIndex = 0;
     65      foreach (Project project in projects.List) {
     66        cbProject.Items.Add(project.Name);
    6067      }
     68
     69
     70    }
     71
     72    private void AddClientGroups() {
     73     foreach (ClientGroup cg in clientGroups.List) {
     74       clients.Add(cg.Id, cg.Name);
     75        AddClientOrGroup(cg);
     76      }
     77    }
     78
     79    private void AddClientOrGroup(ClientGroup clientGroup) {
     80      foreach (Resource resource in clientGroup.Resources) {
     81        if (resource is ClientGroup) {
     82          clients.Add(resource.Id, resource.Name);
     83          AddClientOrGroup(resource as ClientGroup);
     84        }
     85      }
     86   
    6187    }
    6288
     
    6793        if (numJobs > 0) {
    6894          for (int i = 0; i < numJobs; i++) {
    69             if (cbParJob.SelectedIndex != 0) {
    70               foreach (Job pjob in jobGroups.List) {
    71                 if (cbParJob.SelectedItem.ToString().Equals(pjob.Id.ToString())) {
    72                   Job job = new Job { ParentJob = pjob, State = State.offline, CoresNeeded = 1 };
    73                   job.SerializedJob = PersistenceManager.SaveToGZip(new TestJob());
    74                   Response resp = jobManager.AddNewJob(job);
    75                 }
    76               }
    77             } else {
    78               Job job = new Job { State = State.offline, CoresNeeded = 1 };
    79               job.SerializedJob = PersistenceManager.SaveToGZip(new TestJob());
    80               Response resp = jobManager.AddNewJob(job);
     95            if (cbProject.SelectedIndex != 0) {
     96            //  foreach (Job pjob in jobGroups.List) {
     97            //    if (cbParJob.SelectedItem.ToString().Equals(pjob.Id.ToString())) {
     98            //      Job job = new Job { ParentJob = pjob, State = State.offline, CoresNeeded = 1 };
     99            //      job.SerializedJob = PersistenceManager.SaveToGZip(new TestJob());
     100            //      Response resp = jobManager.AddNewJob(job);
     101            //    }
     102            //  }
     103            //} else {
     104            //  Job job = new Job { State = State.offline, CoresNeeded = 1 };
     105            //  job.SerializedJob = PersistenceManager.SaveToGZip(new TestJob());
     106            //  Response resp = jobManager.AddNewJob(job);
    81107            }
    82108          }
     
    99125    }
    100126
     127    private void cbAllGroups_CheckedChanged(object sender, EventArgs e) {
     128      foreach (Control control in gbGroups.Controls) {
     129        control.Enabled = !cbAllGroups.Checked;
     130      }
     131    }
     132
    101133
    102134  }
  • trunk/sources/HeuristicLab.Hive.Server.Console/3.2/HiveServerManagementConsole.Designer.cs

    r1832 r1937  
    3232      this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
    3333      this.jobToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
     34      this.groupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
    3435      this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
    3536      this.largeIconsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
     
    5758      this.chProgress = new System.Windows.Forms.ColumnHeader();
    5859      this.chSnapshotTime = new System.Windows.Forms.ColumnHeader();
    59       this.lblPriorityJob = new System.Windows.Forms.Label();
    60       this.lblParentJob = new System.Windows.Forms.Label();
    61       this.lblClientCalculating = new System.Windows.Forms.Label();
    62       this.lblJobCalculationEnd = new System.Windows.Forms.Label();
    63       this.lblJobCalculationBegin = new System.Windows.Forms.Label();
    64       this.lblJobCreated = new System.Windows.Forms.Label();
    65       this.lblUserCreatedJob = new System.Windows.Forms.Label();
    6660      this.lblProgress = new System.Windows.Forms.Label();
    6761      this.lblStatus = new System.Windows.Forms.Label();
     
    141135      //
    142136      this.refreshToolStripMenuItem.Name = "refreshToolStripMenuItem";
    143       this.refreshToolStripMenuItem.Size = new System.Drawing.Size(123, 22);
     137      this.refreshToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.R)));
     138      this.refreshToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
    144139      this.refreshToolStripMenuItem.Text = "Refresh";
    145140      this.refreshToolStripMenuItem.Click += new System.EventHandler(this.Refresh_Click);
     
    148143      //
    149144      this.closeToolStripMenuItem.Name = "closeToolStripMenuItem";
    150       this.closeToolStripMenuItem.Size = new System.Drawing.Size(123, 22);
     145      this.closeToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
    151146      this.closeToolStripMenuItem.Text = "Close";
    152147      this.closeToolStripMenuItem.Click += new System.EventHandler(this.Close_Click);
     
    155150      //
    156151      this.addToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
    157             this.jobToolStripMenuItem});
     152            this.jobToolStripMenuItem,
     153            this.groupToolStripMenuItem});
    158154      this.addToolStripMenuItem.Name = "addToolStripMenuItem";
    159155      this.addToolStripMenuItem.Size = new System.Drawing.Size(38, 20);
     
    163159      //
    164160      this.jobToolStripMenuItem.Name = "jobToolStripMenuItem";
    165       this.jobToolStripMenuItem.Size = new System.Drawing.Size(102, 22);
     161      this.jobToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.J)));
     162      this.jobToolStripMenuItem.Size = new System.Drawing.Size(153, 22);
    166163      this.jobToolStripMenuItem.Text = "Job";
    167164      this.jobToolStripMenuItem.Click += new System.EventHandler(this.AddJob_Click);
     165      //
     166      // groupToolStripMenuItem
     167      //
     168      this.groupToolStripMenuItem.Name = "groupToolStripMenuItem";
     169      this.groupToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.G)));
     170      this.groupToolStripMenuItem.Size = new System.Drawing.Size(153, 22);
     171      this.groupToolStripMenuItem.Text = "Group";
     172      this.groupToolStripMenuItem.Click += new System.EventHandler(this.groupToolStripMenuItem_Click);
    168173      //
    169174      // viewToolStripMenuItem
     
    182187      this.largeIconsToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
    183188      this.largeIconsToolStripMenuItem.Name = "largeIconsToolStripMenuItem";
    184       this.largeIconsToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
     189      this.largeIconsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D1)));
     190      this.largeIconsToolStripMenuItem.Size = new System.Drawing.Size(179, 22);
    185191      this.largeIconsToolStripMenuItem.Text = "Large Icons";
    186192      this.largeIconsToolStripMenuItem.Click += new System.EventHandler(this.largeIconsToolStripMenuItem_Click);
     
    189195      //
    190196      this.smallIconsToolStripMenuItem.Name = "smallIconsToolStripMenuItem";
    191       this.smallIconsToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
     197      this.smallIconsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D2)));
     198      this.smallIconsToolStripMenuItem.Size = new System.Drawing.Size(179, 22);
    192199      this.smallIconsToolStripMenuItem.Text = "Small Icons";
    193200      this.smallIconsToolStripMenuItem.Click += new System.EventHandler(this.smallIconsToolStripMenuItem_Click);
     
    196203      //
    197204      this.listToolStripMenuItem.Name = "listToolStripMenuItem";
    198       this.listToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
     205      this.listToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D3)));
     206      this.listToolStripMenuItem.Size = new System.Drawing.Size(179, 22);
    199207      this.listToolStripMenuItem.Text = "List";
    200208      this.listToolStripMenuItem.Click += new System.EventHandler(this.listToolStripMenuItem_Click);
     
    332340      this.plJobDetails.Controls.Add(this.lvJobDetails);
    333341      this.plJobDetails.Controls.Add(this.lvSnapshots);
    334       this.plJobDetails.Controls.Add(this.lblPriorityJob);
    335       this.plJobDetails.Controls.Add(this.lblParentJob);
    336       this.plJobDetails.Controls.Add(this.lblClientCalculating);
    337       this.plJobDetails.Controls.Add(this.lblJobCalculationEnd);
    338       this.plJobDetails.Controls.Add(this.lblJobCalculationBegin);
    339       this.plJobDetails.Controls.Add(this.lblJobCreated);
    340       this.plJobDetails.Controls.Add(this.lblUserCreatedJob);
    341342      this.plJobDetails.Controls.Add(this.lblProgress);
    342343      this.plJobDetails.Controls.Add(this.lblStatus);
     
    358359      this.lvJobDetails.FullRowSelect = true;
    359360      this.lvJobDetails.GridLines = true;
    360       this.lvJobDetails.Location = new System.Drawing.Point(17, 129);
     361      this.lvJobDetails.Location = new System.Drawing.Point(17, 124);
    361362      this.lvJobDetails.Name = "lvJobDetails";
    362363      this.lvJobDetails.Size = new System.Drawing.Size(382, 175);
     
    405406      this.chSnapshotTime.Text = "Snapshot request";
    406407      this.chSnapshotTime.Width = 166;
    407       //
    408       // lblPriorityJob
    409       //
    410       this.lblPriorityJob.AutoSize = true;
    411       this.lblPriorityJob.Location = new System.Drawing.Point(17, 193);
    412       this.lblPriorityJob.Name = "lblPriorityJob";
    413       this.lblPriorityJob.Size = new System.Drawing.Size(65, 13);
    414       this.lblPriorityJob.TabIndex = 15;
    415       this.lblPriorityJob.Text = "lblPriorityJob";
    416       //
    417       // lblParentJob
    418       //
    419       this.lblParentJob.AutoSize = true;
    420       this.lblParentJob.Location = new System.Drawing.Point(17, 173);
    421       this.lblParentJob.Name = "lblParentJob";
    422       this.lblParentJob.Size = new System.Drawing.Size(65, 13);
    423       this.lblParentJob.TabIndex = 14;
    424       this.lblParentJob.Text = "lblParentJob";
    425       //
    426       // lblClientCalculating
    427       //
    428       this.lblClientCalculating.AutoSize = true;
    429       this.lblClientCalculating.Location = new System.Drawing.Point(17, 253);
    430       this.lblClientCalculating.Name = "lblClientCalculating";
    431       this.lblClientCalculating.Size = new System.Drawing.Size(95, 13);
    432       this.lblClientCalculating.TabIndex = 13;
    433       this.lblClientCalculating.Text = "lblClientCalculating";
    434       //
    435       // lblJobCalculationEnd
    436       //
    437       this.lblJobCalculationEnd.AutoSize = true;
    438       this.lblJobCalculationEnd.Location = new System.Drawing.Point(17, 233);
    439       this.lblJobCalculationEnd.Name = "lblJobCalculationEnd";
    440       this.lblJobCalculationEnd.Size = new System.Drawing.Size(105, 13);
    441       this.lblJobCalculationEnd.TabIndex = 12;
    442       this.lblJobCalculationEnd.Text = "lblJobCalculationEnd";
    443       //
    444       // lblJobCalculationBegin
    445       //
    446       this.lblJobCalculationBegin.AutoSize = true;
    447       this.lblJobCalculationBegin.Location = new System.Drawing.Point(17, 213);
    448       this.lblJobCalculationBegin.Name = "lblJobCalculationBegin";
    449       this.lblJobCalculationBegin.Size = new System.Drawing.Size(113, 13);
    450       this.lblJobCalculationBegin.TabIndex = 11;
    451       this.lblJobCalculationBegin.Text = "lblJobCalculationBegin";
    452       //
    453       // lblJobCreated
    454       //
    455       this.lblJobCreated.AutoSize = true;
    456       this.lblJobCreated.Location = new System.Drawing.Point(17, 152);
    457       this.lblJobCreated.Name = "lblJobCreated";
    458       this.lblJobCreated.Size = new System.Drawing.Size(71, 13);
    459       this.lblJobCreated.TabIndex = 10;
    460       this.lblJobCreated.Text = "lblJobCreated";
    461       //
    462       // lblUserCreatedJob
    463       //
    464       this.lblUserCreatedJob.AutoSize = true;
    465       this.lblUserCreatedJob.Location = new System.Drawing.Point(17, 132);
    466       this.lblUserCreatedJob.Name = "lblUserCreatedJob";
    467       this.lblUserCreatedJob.Size = new System.Drawing.Size(93, 13);
    468       this.lblUserCreatedJob.TabIndex = 9;
    469       this.lblUserCreatedJob.Text = "lblUserCreatedJob";
    470408      //
    471409      // lblProgress
     
    730668      this.lvClientControl.Name = "lvClientControl";
    731669      this.lvClientControl.Size = new System.Drawing.Size(299, 386);
    732       this.lvClientControl.SmallImageList = this.ilLargeImgClient;
     670      this.lvClientControl.SmallImageList = this.ilSmallImgClient;
    733671      this.lvClientControl.TabIndex = 0;
    734672      this.lvClientControl.UseCompatibleStateImageBehavior = false;
     
    826764    private System.Windows.Forms.Label lblStatus;
    827765    private System.Windows.Forms.Label lblProgress;
    828     private System.Windows.Forms.Label lblJobCalculationBegin;
    829     private System.Windows.Forms.Label lblJobCreated;
    830     private System.Windows.Forms.Label lblUserCreatedJob;
    831     private System.Windows.Forms.Label lblClientCalculating;
    832     private System.Windows.Forms.Label lblJobCalculationEnd;
    833     private System.Windows.Forms.Label lblPriorityJob;
    834     private System.Windows.Forms.Label lblParentJob;
    835766    private System.Windows.Forms.ListView lvSnapshots;
    836767    private System.Windows.Forms.ColumnHeader chClientCalculated;
     
    867798    private System.Windows.Forms.ToolStripMenuItem menuItemAddGroup;
    868799    private System.Windows.Forms.ToolStripMenuItem menuItemDeleteGroup;
     800    private System.Windows.Forms.ToolStripMenuItem groupToolStripMenuItem;
    869801  }
    870802}
  • trunk/sources/HeuristicLab.Hive.Server.Console/3.2/HiveServerManagementConsole.cs

    r1832 r1937  
    4747
    4848    #region private variables
    49     private ResponseList<ClientGroup> clientGroups = null;
    50     private ResponseList<ClientInfo> clients = null;
    5149    private ResponseList<Job> jobs = null;
    5250
    53     //TODO delete
    54     private Dictionary<Guid, ListViewGroup> clientObjects;
    55     private Dictionary<Guid, ListViewItem> clientInfoObjects;
    56     private Dictionary<Guid, ListViewItem> jobObjects;
     51    List<ListViewGroup> jobGroup;
     52    private Dictionary<Guid, List<ListViewItem>> clientList = new Dictionary<Guid, List<ListViewItem>>();
     53    private List<Changes> changes = new List<Changes>();
    5754
    5855    private Job currentJob = null;
    5956    private ClientInfo currentClient = null;
    6057
    61     TreeNode currentNode = null;
    62 
    63     //TODO delete
    64     private string nameCurrentJob = "";
    65     private string nameCurrentClient = "";
    66     private bool flagJob = false;
    67 
    68     private List<Changes> changes = new List<Changes>();
    69 
     58    private TreeNode currentNode = null;
     59    Guid parentgroup = Guid.Empty;
    7060    private ToolTip tt = new ToolTip();
    7161
    7262    private const string NOGROUP = "No group";
    73     //private List<ListViewItem> clientList = new List<ListViewItem>();
    74     private Dictionary<Guid, List<ListViewItem>> clientList = new Dictionary<Guid, List<ListViewItem>>();
    75 
     63
     64    #endregion
     65
     66    #region Properties
    7667    private IClientManager ClientManager {
    7768      get {
    7869        return ServiceLocator.GetClientManager();
    7970      }
    80 
    8171    }
    8272    #endregion
     
    9080    }
    9181
     82    private void Init() {
     83
     84      //adding context menu items for jobs
     85      menuItemAbortJob.Click += (s, e) => {
     86        IJobManager jobManager = ServiceLocator.GetJobManager();
     87        if (lvJobControl.SelectedItems.Count == 1) {
     88          jobManager.AbortJob(((Job)(lvJobControl.SelectedItems[0].Tag)).Id);
     89        }
     90      };
     91
     92      //adding context menu items for jobs
     93      menuItemGetSnapshot.Click += (s, e) => {
     94        IJobManager jobManager = ServiceLocator.GetJobManager();
     95        if (lvJobControl.SelectedItems.Count == 1) {
     96          jobManager.RequestSnapshot(((Job)(lvJobControl.SelectedItems[0].Tag)).Id);
     97        }
     98      };
     99
     100      //adding group
     101      menuItemAddGroup.Click += (s, e) => {
     102        AddGroup addgroup = new AddGroup();
     103        parentgroup = Guid.Empty;
     104        if ((tvClientControl.SelectedNode != null) && (((ClientGroup)tvClientControl.SelectedNode.Tag).Id != Guid.Empty)) {
     105          parentgroup = ((ClientGroup)tvClientControl.SelectedNode.Tag).Id;
     106        }
     107        addgroup.addGroupEvent += new AddGroupDelegate(addgroup_addGroupEvent);
     108        addgroup.Show();
     109      };
     110
     111      //adding group
     112      menuItemDeleteGroup.Click += (s, e) => {
     113        IClientManager clientManager = ServiceLocator.GetClientManager();
     114        if (tvClientControl.SelectedNode != null) {
     115          //  Delete Group
     116        }
     117      };
     118    }
    92119
    93120    #region Backgroundworker
     
    104131
    105132    private void updaterWoker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
    106       Refresh();
    107     }
    108 
     133      RefreshForm();
     134    }
     135
     136    private void updaterWoker_DoWork(object sender, DoWorkEventArgs e) {
     137
     138      changes.Clear();
     139
     140      //#region ClientInfo
     141      //ResponseList<ClientInfo> clientInfoOld = clientInfo;
     142      //clientInfo = ClientManager.GetAllClients();
     143
     144      //IDictionary<int, ClientInfo> clientInfoOldHelp;
     145
     146      //CloneList(clientInfoOld, out clientInfoOldHelp);
     147
     148      //GetDelta(clientInfoOld.List, clientInfoOldHelp);
     149      //#endregion
     150
     151      #region Clients
     152      //ResponseList<ClientGroup> clientsOld = clients;
     153
     154      // newClients = ClientManager.GetAllClientGroups();
     155
     156      //IDictionary<Guid, ClientGroup> clientsOldHelp;
     157
     158      //CloneList(clientsOld, out clientsOldHelp);
     159
     160      //GetDelta(clientsOld.List, clientsOldHelp);
     161      //DetermineDelta();
     162      #endregion
     163
     164      #region Job
     165      ResponseList<Job> jobsOld = jobs;
     166      IJobManager jobManager =
     167          ServiceLocator.GetJobManager();
     168
     169      jobs = jobManager.GetAllJobs();
     170
     171      IDictionary<int, Job> jobsOldHelp;
     172      CloneList(jobsOld, out jobsOldHelp);
     173
     174      GetDelta(jobsOld.List, jobsOldHelp);
     175
     176      #endregion
     177
     178      foreach (Changes change in changes) {
     179        System.Diagnostics.Debug.WriteLine(change.ID + " " + change.ChangeType);
     180      }
     181
     182    }
     183   
    109184    #endregion
    110185
    111     private Guid ConvertStringToGuid(string stringGuid) {
    112       return new Guid(stringGuid);
    113     }
    114 
    115 
    116     private void Init() {
    117 
    118       //adding context menu items for jobs
    119       menuItemAbortJob.Click += (s, e) => {
    120         IJobManager jobManager = ServiceLocator.GetJobManager();
    121         if (lvJobControl.SelectedItems.Count == 1) {
    122           jobManager.AbortJob(((Job)(lvJobControl.SelectedItems[0].Tag)).Id);
    123         }
    124       };
    125 
    126       //adding context menu items for jobs
    127       menuItemGetSnapshot.Click += (s, e) => {
    128         IJobManager jobManager = ServiceLocator.GetJobManager();
    129         if (lvJobControl.SelectedItems.Count == 1) {
    130           jobManager.RequestSnapshot(((Job)(lvJobControl.SelectedItems[0].Tag)).Id);
    131         }
    132       };
    133 
    134       //adding group
    135       menuItemAddGroup.Click += (s, e) => {
    136         AddGroup addgroup = new AddGroup();
    137         parentgroup = Guid.Empty;
    138         if ((tvClientControl.SelectedNode != null) && (((ClientGroup)tvClientControl.SelectedNode.Tag).Id != Guid.Empty)) {
    139           parentgroup = ((ClientGroup)tvClientControl.SelectedNode.Tag).Id;
    140         }
    141         addgroup.addGroupEvent += new AddGroupDelegate(addgroup_addGroupEvent);
    142         addgroup.Show();
    143       };
    144 
    145       //adding group
    146       menuItemDeleteGroup.Click += (s, e) => {
    147         IClientManager clientManager = ServiceLocator.GetClientManager();
    148         if (tvClientControl.SelectedNode != null) {
    149           //  Delete Group
    150         }
    151       };
    152     }
    153 
    154     Guid parentgroup = Guid.Empty;
    155 
    156     void addgroup_addGroupEvent(string name) {
    157       IClientManager clientManager = ServiceLocator.GetClientManager();
    158 
    159       if (parentgroup != Guid.Empty) {
    160         ClientGroup cg = new ClientGroup() { Name = name };
    161         ResponseObject<ClientGroup> respcg = clientManager.AddClientGroup(cg);
    162         Response res = clientManager.AddResourceToGroup(parentgroup, respcg.Obj);
    163         if (res != null && !res.Success) {
    164           MessageBox.Show(res.StatusMessage, "Error adding Group", MessageBoxButtons.OK, MessageBoxIcon.Error);
    165         }
    166       } else {
    167         ClientGroup cg = new ClientGroup() { Name = name };
    168         clientManager.AddClientGroup(cg);
    169       }
    170 
    171     }
    172 
    173     private void lvJobControl_MouseUp(object sender, MouseEventArgs e) {
    174       // If the right mouse button was clicked and released,
    175       // display the shortcut menu assigned to the ListView.
    176       lvJobControl.ContextMenuStrip.Items.Clear();
    177       ListViewHitTestInfo hitTestInfo = lvJobControl.HitTest(e.Location);
    178       if (e.Button == MouseButtons.Right && hitTestInfo.Item != null && lvJobControl.SelectedItems.Count == 1) {
    179         Job selectedJob = (Job)lvJobControl.SelectedItems[0].Tag;
    180 
    181         if (selectedJob != null && selectedJob.State == State.calculating) {
    182           lvJobControl.ContextMenuStrip.Items.Add(menuItemAbortJob);
    183           lvJobControl.ContextMenuStrip.Items.Add(menuItemGetSnapshot);
    184         }
    185       }
    186       lvJobControl.ContextMenuStrip.Show(new Point(e.X, e.Y));
     186
     187    /// <summary>
     188    /// Adds jobs to ListView and TreeView
     189    /// </summary>
     190    private void AddJobs() {
     191      try {
     192        List<ListViewItem> jobObjects = new List<ListViewItem>();
     193        IJobManager jobManager =
     194          ServiceLocator.GetJobManager();
     195        jobs = jobManager.GetAllJobs();
     196
     197        lvJobControl.Items.Clear();
     198
     199        ListViewGroup lvJobCalculating = new ListViewGroup("calculating", HorizontalAlignment.Left);
     200        ListViewGroup lvJobFinished = new ListViewGroup("finished", HorizontalAlignment.Left);
     201        ListViewGroup lvJobPending = new ListViewGroup("pending", HorizontalAlignment.Left);
     202
     203        jobGroup = new List<ListViewGroup>();
     204        jobGroup.Add(lvJobCalculating);
     205        jobGroup.Add(lvJobFinished);
     206        jobGroup.Add(lvJobPending);
     207
     208        foreach (Job job in jobs.List) {
     209          if (job.State == State.calculating) {
     210            ListViewItem lvi = new ListViewItem(job.Id.ToString(), 1, lvJobCalculating);
     211            lvi.Tag = job;
     212            jobObjects.Add(lvi);
     213
     214            lvi.ToolTipText = (job.Percentage * 100) + "% of job calculated";
     215          } else if (job.State == State.finished) {
     216            ListViewItem lvi = new ListViewItem(job.Id.ToString(), 0, lvJobFinished);
     217            lvi.Tag = job;
     218            jobObjects.Add(lvi);
     219            //lvJobControl.Items.Add(lvi);
     220          } else if (job.State == State.offline) {
     221            ListViewItem lvi = new ListViewItem(job.Id.ToString(), 2, lvJobPending);
     222            lvi.Tag = job;
     223            jobObjects.Add(lvi);
     224          }
     225        } // Jobs
     226        lvJobControl.BeginUpdate();
     227        foreach (ListViewItem lvi in jobObjects) {
     228          lvJobControl.Items.Add(lvi);
     229        }
     230        // actualization
     231        lvJobControl.Groups.Add(lvJobCalculating);
     232        lvJobControl.Groups.Add(lvJobFinished);
     233        lvJobControl.Groups.Add(lvJobPending);
     234        lvJobControl.EndUpdate();
     235
     236        if (currentJob != null) {
     237          JobClicked();
     238        }
     239      }
     240      catch (Exception ex) {
     241        closeFormEvent(true, true);
     242        this.Close();
     243      }
    187244    }
    188245
     
    191248      tvClientControl.Nodes.Clear();
    192249
    193       clientGroups = ClientManager.GetAllClientGroups();
     250      ResponseList<ClientGroup> clientGroups = ClientManager.GetAllClientGroups();
    194251
    195252      foreach (ClientGroup cg in clientGroups.List) {
     
    204261      tvClientControl.ExpandAll();
    205262    }
    206 
    207263
    208264    private void AddClientOrGroup(ClientGroup clientGroup, TreeNode currentNode) {
     
    256312    }
    257313
    258 
    259     List<ListViewGroup> jobGroup;
     314    private void AddGroupsToListView(TreeNode node) {
     315      if (node != null) {
     316        ListViewGroup lvg = new ListViewGroup(node.Text, HorizontalAlignment.Left);
     317        lvClientControl.Groups.Add(lvg);
     318        foreach (ListViewItem item in clientList[((ClientGroup)node.Tag).Id]) {
     319          item.Group = lvg;
     320          lvClientControl.Items.Add(item);
     321        }
     322
     323        if (node.Nodes != null) {
     324          foreach (TreeNode curNode in node.Nodes) {
     325            AddGroupsToListView(curNode);
     326          }
     327        }
     328      }
     329    }
     330
    260331    /// <summary>
    261     /// Adds jobs to ListView and TreeView
     332    /// if one job is clicked, the details for the clicked job are shown
     333    /// in the second panel
    262334    /// </summary>
    263     private void AddJobs() {
    264       try {
    265         jobObjects = new Dictionary<Guid, ListViewItem>();
    266         IJobManager jobManager =
    267           ServiceLocator.GetJobManager();
    268         jobs = jobManager.GetAllJobs();
    269 
    270         lvJobControl.Items.Clear();
    271 
    272         ListViewGroup lvJobCalculating = new ListViewGroup("calculating", HorizontalAlignment.Left);
    273         ListViewGroup lvJobFinished = new ListViewGroup("finished", HorizontalAlignment.Left);
    274         ListViewGroup lvJobPending = new ListViewGroup("pending", HorizontalAlignment.Left);
    275 
    276         jobGroup = new List<ListViewGroup>();
    277         jobGroup.Add(lvJobCalculating);
    278         jobGroup.Add(lvJobFinished);
    279         jobGroup.Add(lvJobPending);
    280 
    281         foreach (Job job in jobs.List) {
    282           if (job.State == State.calculating) {
    283             ListViewItem lvi = new ListViewItem(job.Id.ToString(), 1, lvJobCalculating);
    284             lvi.Tag = job;
    285             jobObjects.Add(job.Id, lvi);
    286 
    287             //lvJobControl.Items.Add(lvi);
    288 
    289             lvi.ToolTipText = (job.Percentage * 100) + "% of job calculated";
    290           } else if (job.State == State.finished) {
    291             ListViewItem lvi = new ListViewItem(job.Id.ToString(), 0, lvJobFinished);
    292             lvi.Tag = job;
    293             jobObjects.Add(job.Id, lvi);
    294             //lvJobControl.Items.Add(lvi);
    295           } else if (job.State == State.offline) {
    296             ListViewItem lvi = new ListViewItem(job.Id.ToString(), 2, lvJobPending);
    297             lvi.Tag = job;
    298             jobObjects.Add(job.Id, lvi);
    299             //lvJobControl.Items.Add(lvi);
    300           }
    301         } // Jobs
    302         lvJobControl.BeginUpdate();
    303         foreach (ListViewItem lvi in jobObjects.Values) {
    304           lvJobControl.Items.Add(lvi);
    305         }
    306         lvJobControl.Groups.Add(lvJobCalculating);
    307         lvJobControl.Groups.Add(lvJobFinished);
    308         lvJobControl.Groups.Add(lvJobPending);
    309         lvJobControl.EndUpdate();
    310         if (flagJob) {
    311           JobClicked();
    312         }
    313       }
    314       catch (Exception ex) {
    315         closeFormEvent(true, true);
    316         this.Close();
     335    private void JobClicked() {
     336      plJobDetails.Visible = true;
     337      lvJobDetails.Items.Clear();
     338
     339      lvSnapshots.Enabled = true;
     340
     341      if (currentJob.State == State.offline) {
     342        pbJobControl.Image = ilLargeImgJob.Images[2];
     343      } else if (currentJob.State == State.calculating) {
     344        pbJobControl.Image = ilLargeImgJob.Images[1];
     345      } else if (currentJob.State == State.finished) {
     346        pbJobControl.Image = ilLargeImgJob.Images[0];
     347      }
     348
     349      lblJobName.Text = currentJob.Id.ToString();
     350      progressJob.Value = (int)(currentJob.Percentage * 100);
     351      lblProgress.Text = (int)(currentJob.Percentage * 100) + "% calculated";
     352
     353      ListViewItem lvi = new ListViewItem();
     354      lvi.Text = "User:";
     355      lvi.SubItems.Add(currentJob.UserId.ToString());
     356      lvJobDetails.Items.Add(lvi);
     357
     358      lvi = null;
     359      lvi = new ListViewItem();
     360      lvi.Text = "created at:";
     361      lvi.SubItems.Add(currentJob.DateCreated.ToString());
     362      lvJobDetails.Items.Add(lvi);
     363
     364      if (currentJob.ParentJob != null) {
     365        lvi = null;
     366        lvi = new ListViewItem();
     367        lvi.Text = "Parent job:";
     368        lvi.SubItems.Add(currentJob.ParentJob.ToString());
     369        lvJobDetails.Items.Add(lvi);
     370      }
     371
     372      lvi = null;
     373      lvi = new ListViewItem();
     374      lvi.Text = "Priority:";
     375      lvi.SubItems.Add(currentJob.Priority.ToString());
     376      lvJobDetails.Items.Add(lvi);
     377
     378      if (currentJob.Client != null) {
     379        lvi = null;
     380        lvi = new ListViewItem();
     381        lvi.Text = "Calculation begin:";
     382        lvi.SubItems.Add(currentJob.DateCalculated.ToString());
     383        lvJobDetails.Items.Add(lvi);
     384
     385
     386        lvi = null;
     387        lvi = new ListViewItem();
     388        lvi.Text = "Client calculated:";
     389        lvi.SubItems.Add(currentJob.Client.Name.ToString());
     390        lvJobDetails.Items.Add(lvi);
     391
     392        if (currentJob.State == State.finished) {
     393          IJobManager jobManager =
     394            ServiceLocator.GetJobManager();
     395          ResponseObject<JobResult> jobRes = jobManager.GetLastJobResultOf(currentJob.Id, false);
     396
     397          lvi = null;
     398          lvi = new ListViewItem();
     399          lvi.Text = "Calculation ended:";
     400          lvi.SubItems.Add(jobRes.Obj.DateFinished.ToString());
     401          lvJobDetails.Items.Add(lvi);
     402        }
     403      }
     404      if (currentJob.State != State.offline) {
     405        lvSnapshots.Items.Clear();
     406        GetSnapshotList();
     407      } else {
     408        lvSnapshots.Visible = false;
    317409      }
    318410    }
     
    324416    private void ClientClicked() {
    325417      plClientDetails.Visible = true;
    326       //int i = 0;
    327       //while (clientInfo.List[i].Id.ToString() != nameCurrentClient) {
    328       //  i++;
    329       //}
    330       if (lvClientControl.SelectedItems != null && lvClientControl.SelectedItems.Count > 0) {
    331         currentClient = (ClientInfo)lvClientControl.SelectedItems[0].Tag;
    332       }
     418
    333419      if (currentClient != null) {
    334420        int percentageUsage = CapacityRam(currentClient.NrOfCores, currentClient.NrOfFreeCores);
     
    349435      }
    350436    }
    351 
    352     /// <summary>
    353     /// if one job is clicked, the details for the clicked job are shown
    354     /// in the second panel
    355     /// </summary>
    356     private void JobClicked() {
    357       plJobDetails.Visible = true;
    358       lvJobDetails.Items.Clear();
    359       int i = 0;
    360       while (jobs.List[i].Id.ToString() != nameCurrentJob) {
    361         i++;
    362       }
    363       lvSnapshots.Enabled = true;
    364       currentJob = jobs.List[i];
    365       if (currentJob.State == State.offline) {
    366         pbJobControl.Image = ilLargeImgJob.Images[2];
    367       } else if (currentJob.State == State.calculating) {
    368         pbJobControl.Image = ilLargeImgJob.Images[1];
    369       } else if (currentJob.State == State.finished) {
    370         pbJobControl.Image = ilLargeImgJob.Images[0];
    371       }
    372 
    373 
    374 
    375       lblJobName.Text = currentJob.Id.ToString();
    376       progressJob.Value = (int)(currentJob.Percentage * 100);
    377       lblProgress.Text = (int)(currentJob.Percentage * 100) + "% calculated";
    378       lblUserCreatedJob.Text = currentJob.UserId.ToString() + /* currentJob.User.Name + */ " created Job";
    379       //lblJobCreated.Text = "Created at " + currentJob.DateCreated;
    380       ListViewItem lvi = new ListViewItem();
    381       lvi.Text = "User:";
    382       lvi.SubItems.Add(currentJob.UserId.ToString());
    383       lvJobDetails.Items.Add(lvi);
    384 
    385       lvi = null;
    386       lvi = new ListViewItem();
    387       lvi.Text = "created at:";
    388       lvi.SubItems.Add(currentJob.DateCreated.ToString());
    389       lvJobDetails.Items.Add(lvi);
    390 
    391       if (currentJob.ParentJob != null) {
    392         lvi = null;
    393         lvi = new ListViewItem();
    394         lvi.Text = "Parent job:";
    395         lvi.SubItems.Add(currentJob.ParentJob.ToString());
    396         lvJobDetails.Items.Add(lvi);
    397         // lblParentJob.Text = currentJob.ParentJob.Id + " is parent job";
    398       }// else {
    399       //  lblParentJob.Text = "";
    400       //}
    401 
    402       lvi = null;
    403       lvi = new ListViewItem();
    404       lvi.Text = "Priority:";
    405       lvi.SubItems.Add(currentJob.Priority.ToString());
    406       lvJobDetails.Items.Add(lvi);
    407 
    408       // lblPriorityJob.Text = "Priority of job is " + currentJob.Priority;
    409       if (currentJob.Client != null) {
    410         lvi = null;
    411         lvi = new ListViewItem();
    412         lvi.Text = "Calculation begin:";
    413         lvi.SubItems.Add(currentJob.DateCalculated.ToString());
    414         lvJobDetails.Items.Add(lvi);
    415 
    416 
    417         lvi = null;
    418         lvi = new ListViewItem();
    419         lvi.Text = "Client calculated:";
    420         lvi.SubItems.Add(currentJob.Client.Name.ToString());
    421         lvJobDetails.Items.Add(lvi);
    422 
    423         //lblClientCalculating.Text = currentJob.Client.Name + " calculated Job";
    424         //lblJobCalculationBegin.Text = "Startet calculation at " + currentJob.DateCalculated;
    425 
    426         if (currentJob.State == State.finished) {
    427           IJobManager jobManager =
    428             ServiceLocator.GetJobManager();
    429           ResponseObject<JobResult> jobRes = jobManager.GetLastJobResultOf(currentJob.Id, false);
    430 
    431           lvi = null;
    432           lvi = new ListViewItem();
    433           lvi.Text = "Calculation ended:";
    434           lvi.SubItems.Add(jobRes.Obj.DateFinished.ToString());
    435           lvJobDetails.Items.Add(lvi);
    436           // lblJobCalculationEnd.Text = "Calculation ended at " + jobRes.Obj.DateFinished;
    437         }
    438       } else {
    439         // lblClientCalculating.Text = "";
    440         // lblJobCalculationBegin.Text = "";
    441         // lblJobCalculationEnd.Text = "";
    442       }
    443       if (currentJob.State != State.offline) {
    444         lvSnapshots.Items.Clear();
    445         //if (currentJob.State == State.finished)
    446         GetSnapshotList();
    447         //lvSnapshots.Visible = true;
    448       } else {
    449         lvSnapshots.Visible = false;
    450       }
    451     }
    452 
    453     private void Refresh() {
     437   
     438
     439    private void RefreshForm() {
    454440      foreach (Changes change in changes) {
    455441        if (change.Types == Type.Job) {
    456442          RefreshJob(change);
    457         } else if (change.Types == Type.Client) {
    458           //RefreshClient(change);
    459         } else if (change.Types == Type.ClientGroup) {
    460           //RefreshClientGroup(change);
    461443        }
    462444      }
     
    467449        for (int i = 0; i < lvJobControl.Items.Count; i++) {
    468450          if (lvJobControl.Items[i].Text == change.ID.ToString()) {
    469             if (nameCurrentJob == change.ID.ToString()) {
    470               JobClicked();
    471             }
    472451            foreach (Job job in jobs.List) {
    473452              if (job.Id == change.ID) {
    474453                lvJobControl.Items[i].Tag = job;
     454                if (currentJob.Id == change.ID) {
     455                  currentJob = job;
     456                  JobClicked();
     457                }
    475458                break;
    476459              }
     
    496479        }
    497480      } else if (change.ChangeType == Change.Create) {
     481
    498482        ListViewItem lvi = new ListViewItem(
    499483          change.ID.ToString(), 2, jobGroup[2]);
    500         jobObjects.Add(change.ID, lvi);
     484        foreach (Job job in jobs.List) {
     485          if (job.Id == change.ID) {
     486            lvi.Tag = job;
     487            break;
     488          }
     489        }
    501490        lvJobControl.Items.Add(lvi);
    502491
    503492      } else if (change.ChangeType == Change.Delete) {
    504         jobObjects.Remove(change.ID);
    505493        for (int i = 0; i < lvJobControl.Items.Count; i++) {
    506494          if (change.ID.ToString() == lvJobControl.Items[i].Text.ToString()) {
     
    512500    }
    513501
    514     private void RefreshClient(Changes change) {
    515       if (change.ChangeType == Change.Update) {
    516         for (int i = 0; i < lvClientControl.Items.Count; i++) {
    517           if (lvClientControl.Items[i].Tag.ToString() == change.ID.ToString()) {
    518             if (nameCurrentClient == change.ID.ToString()) {
    519               ClientClicked();
    520             }
    521             State state = clients.List[change.Position].State;
    522             System.Diagnostics.Debug.WriteLine(lvClientControl.Items[i].Text.ToString());
    523 
    524             ClientInfo ci = null;
    525 
    526             foreach (ClientInfo c in clients.List) {
    527               if (c.Id == change.ID) {
    528                 ci = c;
    529               }
    530             }
    531 
    532             int percentageUsage = CapacityRam(ci.NrOfCores, ci.NrOfFreeCores);
    533             if ((state == State.offline) || (state == State.nullState)) {
    534               lvClientControl.Items[i].ImageIndex = 3;
    535             } else {
    536               if ((percentageUsage >= 0) && (percentageUsage <= 25)) {
    537                 lvClientControl.Items[i].ImageIndex = 0;
    538               } else if ((percentageUsage > 25) && (percentageUsage <= 75)) {
    539                 lvClientControl.Items[i].ImageIndex = 1;
    540               } else if ((percentageUsage > 75) && (percentageUsage <= 100)) {
    541                 lvClientControl.Items[i].ImageIndex = 2;
    542               }
    543 
    544             }
    545             lvClientControl.Refresh();
    546           }
    547         }
    548 
    549 
    550       } else if (change.ChangeType == Change.Create) {
    551 
    552       } else if (change.ChangeType == Change.Delete) {
    553         clientInfoObjects.Remove(change.ID);
    554         for (int i = 0; i < lvClientControl.Items.Count; i++) {
    555           if (change.ID.ToString() == lvClientControl.Items[i].Text.ToString()) {
    556             lvClientControl.Items[i].Remove();
    557             break;
    558           }
    559         }
    560 
    561       }
    562     }
    563 
    564     private void RefreshClientGroup(Changes change) {
    565 
    566     }
    567502
    568503    #region Eventhandlers
     
    596531    }
    597532
    598     private void OnLVClientClicked(object sender, EventArgs e) {
    599       nameCurrentClient = lvClientControl.SelectedItems[0].Tag.ToString();
    600       ClientClicked();
    601     }
    602 
    603533    private void OnLVJobControlClicked(object sender, EventArgs e) {
    604       nameCurrentJob = lvJobControl.SelectedItems[0].Text;
    605       flagJob = true;
     534      currentJob = (Job)lvJobControl.SelectedItems[0].Tag;
    606535      JobClicked();
    607536    }
     
    614543    }
    615544
    616     private void updaterWoker_DoWork(object sender, DoWorkEventArgs e) {
    617 
    618       changes.Clear();
    619 
    620       //#region ClientInfo
    621       //ResponseList<ClientInfo> clientInfoOld = clientInfo;
    622       //clientInfo = ClientManager.GetAllClients();
    623 
    624       //IDictionary<int, ClientInfo> clientInfoOldHelp;
    625 
    626       //CloneList(clientInfoOld, out clientInfoOldHelp);
    627 
    628       //GetDelta(clientInfoOld.List, clientInfoOldHelp);
    629       //#endregion
    630 
    631       #region Clients
    632       //ResponseList<ClientGroup> clientsOld = clients;
    633 
    634       // newClients = ClientManager.GetAllClientGroups();
    635 
    636       //IDictionary<Guid, ClientGroup> clientsOldHelp;
    637 
    638       //CloneList(clientsOld, out clientsOldHelp);
    639 
    640       //GetDelta(clientsOld.List, clientsOldHelp);
    641       //DetermineDelta();
    642       #endregion
    643 
    644       #region Job
    645       ResponseList<Job> jobsOld = jobs;
    646       IJobManager jobManager =
    647           ServiceLocator.GetJobManager();
    648 
    649       jobs = jobManager.GetAllJobs();
    650 
    651       IDictionary<int, Job> jobsOldHelp;
    652       CloneList(jobsOld, out jobsOldHelp);
    653 
    654       GetDelta(jobsOld.List, jobsOldHelp);
    655 
    656       #endregion
    657 
    658       foreach (Changes change in changes) {
    659         System.Diagnostics.Debug.WriteLine(change.ID + " " + change.ChangeType);
    660       }
    661 
     545    private void lvJobControl_MouseUp(object sender, MouseEventArgs e) {
     546      // If the right mouse button was clicked and released,
     547      // display the shortcut menu assigned to the ListView.
     548      lvJobControl.ContextMenuStrip.Items.Clear();
     549      ListViewHitTestInfo hitTestInfo = lvJobControl.HitTest(e.Location);
     550      if (e.Button == MouseButtons.Right && hitTestInfo.Item != null && lvJobControl.SelectedItems.Count == 1) {
     551        Job selectedJob = (Job)lvJobControl.SelectedItems[0].Tag;
     552
     553        if (selectedJob != null && selectedJob.State == State.calculating) {
     554          lvJobControl.ContextMenuStrip.Items.Add(menuItemAbortJob);
     555          lvJobControl.ContextMenuStrip.Items.Add(menuItemGetSnapshot);
     556        }
     557      }
     558      lvJobControl.ContextMenuStrip.Show(new Point(e.X, e.Y));
     559    }
     560
     561    private void tvClientControl_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
     562      lvClientControl.Items.Clear();
     563      lvClientControl.Groups.Clear();
     564      currentNode = e.Node;
     565      AddGroupsToListView(e.Node);
     566    }
     567
     568    private void groupToolStripMenuItem_Click(object sender, EventArgs e) {
     569      AddGroup addgroup = new AddGroup();
     570      parentgroup = Guid.Empty;
     571      if ((tvClientControl.SelectedNode != null) && (((ClientGroup)tvClientControl.SelectedNode.Tag).Id != Guid.Empty)) {
     572        parentgroup = ((ClientGroup)tvClientControl.SelectedNode.Tag).Id;
     573      }
     574      addgroup.addGroupEvent += new AddGroupDelegate(addgroup_addGroupEvent);
     575      addgroup.Show();
     576    }
     577
     578    private void OnLVClientClicked(object sender, EventArgs e) {
     579      currentClient = (ClientInfo)lvClientControl.SelectedItems[0].Tag;
     580      ClientClicked();
     581    }
     582
     583    private void tvClientControl_MouseUp(object sender, MouseEventArgs e) {
     584      // If the right mouse button was clicked and released,
     585      // display the shortcut menu assigned to the ListView.
     586      contextMenuGroup.Items.Clear();
     587      TreeViewHitTestInfo hitTestInfo = tvClientControl.HitTest(e.Location);
     588      tvClientControl.SelectedNode = hitTestInfo.Node;
     589      if (e.Button != MouseButtons.Right) return;
     590        if (hitTestInfo.Node != null) {
     591          Resource selectedGroup = (Resource)tvClientControl.SelectedNode.Tag;
     592
     593          if (selectedGroup != null) {
     594            contextMenuGroup.Items.Add(menuItemAddGroup);
     595            contextMenuGroup.Items.Add(menuItemDeleteGroup);
     596          }
     597        } else {
     598          contextMenuGroup.Items.Add(menuItemAddGroup);
     599        }
     600        tvClientControl.ContextMenuStrip.Show(tvClientControl, new Point(e.X, e.Y));
     601    }
     602
     603    private void addgroup_addGroupEvent(string name) {
     604      IClientManager clientManager = ServiceLocator.GetClientManager();
     605
     606      if (parentgroup != Guid.Empty) {
     607        ClientGroup cg = new ClientGroup() { Name = name };
     608        ResponseObject<ClientGroup> respcg = clientManager.AddClientGroup(cg);
     609        Response res = clientManager.AddResourceToGroup(parentgroup, respcg.Obj);
     610        if (res != null && !res.Success) {
     611          MessageBox.Show(res.StatusMessage, "Error adding Group", MessageBoxButtons.OK, MessageBoxIcon.Error);
     612        }
     613      } else {
     614        ClientGroup cg = new ClientGroup() { Name = name };
     615        clientManager.AddClientGroup(cg);
     616        AddClients();
     617      }             
     618    }
     619
     620    private void Refresh_Click(object sender, EventArgs e) {
     621      Form overlayingForm = new Form();
     622
     623      overlayingForm.Show();
     624      overlayingForm.FormBorderStyle = FormBorderStyle.None;
     625      overlayingForm.BackColor = Color.Gray;
     626      overlayingForm.Opacity = 0.4;
     627      overlayingForm.Size = this.Size;
     628      overlayingForm.Location = this.Location;
     629
     630      //Label lbl = new Label();
     631      //overlayingForm.Controls.Add(lbl);
     632      //lbl.AutoSize = true;
     633      //lbl.Text = "Loading";
     634      //lbl.Name = "lblName";
     635      //lbl.Font = new System.Drawing.Font("Microsoft Sans Serif", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
     636      //lbl.ForeColor = Color.Black;
     637      //lbl.BackColor = Color.Transparent;
     638      //lbl.Location = new Point(overlayingForm.Width / 2, overlayingForm.Height / 2);
     639
     640      AddClients();
     641
     642      overlayingForm.Close();
     643    }
     644
     645    private void largeIconsToolStripMenuItem_Click(object sender, EventArgs e) {
     646      lvClientControl.View = View.LargeIcon;
     647      lvJobControl.View = View.LargeIcon;
     648      largeIconsToolStripMenuItem.CheckState = CheckState.Checked;
     649      smallIconsToolStripMenuItem.CheckState = CheckState.Unchecked;
     650      listToolStripMenuItem.CheckState = CheckState.Unchecked;
     651    }
     652
     653    private void smallIconsToolStripMenuItem_Click(object sender, EventArgs e) {
     654      lvClientControl.View = View.SmallIcon;
     655      lvJobControl.View = View.SmallIcon;
     656      largeIconsToolStripMenuItem.CheckState = CheckState.Unchecked;
     657      smallIconsToolStripMenuItem.CheckState = CheckState.Checked;
     658      listToolStripMenuItem.CheckState = CheckState.Unchecked;
     659    }
     660
     661    private void listToolStripMenuItem_Click(object sender, EventArgs e) {
     662      lvClientControl.View = View.List;
     663      lvJobControl.View = View.List;
     664      largeIconsToolStripMenuItem.CheckState = CheckState.Unchecked;
     665      smallIconsToolStripMenuItem.CheckState = CheckState.Unchecked;
     666      listToolStripMenuItem.CheckState = CheckState.Checked;
    662667    }
    663668    #endregion
     
    669674      for (int i = 0; i < oldList.List.Count; i++) {
    670675        newList.Add(i, oldList.List[i]);
    671       }
    672     }
    673 
    674     //private void CloneList(ResponseList<ClientInfo> oldList, out IDictionary<int, ClientInfo> newList) {
    675     //  newList = new Dictionary<int, ClientInfo>();
    676     //  for (int i = 0; i < oldList.List.Count; i++) {
    677     //    newList.Add(i, oldList.List[i]);
    678     //  }
    679     //}
    680 
    681     private void CloneList(ResponseList<ClientGroup> oldList, out IDictionary<Guid, ClientGroup> newList) {
    682       newList = new Dictionary<Guid, ClientGroup>();
    683       foreach (ClientGroup clientGroup in oldList.List) {
    684         newList.Add(clientGroup.Id, clientGroup);
    685676      }
    686677    }
     
    703694      return 100;
    704695    }
    705 
    706     //private void GetDelta(IList<ClientInfo> oldClient, IDictionary<int, ClientInfo> helpClients) {
    707     //  bool found = false;
    708 
    709     //  for (int i = 0; i < clientInfo.List.Count; i++) {
    710     //    ClientInfo ci = clientInfo.List[i];
    711     //    for (int j = 0; j < oldClient.Count; j++) {
    712     //      ClientInfo cio = oldClient[j];
    713     //      if (ci.Id.Equals(cio.Id)) {
    714     //        found = true;
    715     //        if ((ci.State != cio.State) || (ci.NrOfFreeCores != cio.NrOfFreeCores)) {
    716     //          changes.Add(new Changes { Types = Type.Client, ID = ci.Id, ChangeType = Change.Update, Position = i });
    717     //        }
    718     //        int removeAt = -1;
    719     //        foreach (KeyValuePair<int, ClientInfo> kvp in helpClients) {
    720     //          if (cio.Id.Equals(kvp.Value.Id)) {
    721     //            removeAt = kvp.Key;
    722     //            break;
    723     //          }
    724     //        }
    725     //        if (removeAt >= 0) {
    726     //          helpClients.Remove(removeAt);
    727     //        }
    728     //        break;
    729     //      }
    730     //    }
    731     //    if (found == false) {
    732     //      changes.Add(new Changes { Types = Type.Client, ID = ci.Id, ChangeType = Change.Create });
    733     //    }
    734     //    found = false;
    735     //  }
    736     //  foreach (KeyValuePair<int, ClientInfo> kvp in helpClients) {
    737     //    changes.Add(new Changes { Types = Type.Client, ID = kvp.Value.Id, ChangeType = Change.Delete, Position = kvp.Key });
    738     //  }
    739 
    740     //}
    741 
    742     private void DetermineDelta() {
    743 
    744     }
    745 
    746     //private void GetDelta(IList<ClientGroup> oldClient, IDictionary<Guid, ClientGroup> helpClients) {
    747 
    748     //  bool found = false;
    749     //  for (int i = 0; i < clients.List.Count; i++) {
    750     //    ClientGroup cg = clientGroups.List[i];
    751     //    for (int j = 0; j < oldClient.Count; i++) {
    752     //      ClientGroup cgo = oldClient[j];
    753     //      if (cg.Id.Equals(cgo.Id)) {
    754     //        found = true;
    755     //        foreach (Resource resource in cg.Resources) {
    756     //          foreach (Resource resourceold in cgo.Resources) {
    757     //            if (resource.Id.Equals(resourceold.Id)) {
    758     //              if (resourceold.Name != resource.Name) {
    759     //                changes.Add(new Changes { Types = Type.Client, ID = cg.Id, ChangeType = Change.Update, Position = i });
    760     //              }
    761     //            }
    762     //          }
    763     //        }
    764     //        for (int k = 0; k < helpClients.Count; k++) {
    765     //          if (cgo.Id.Equals(helpClients[k].Id)) {
    766     //            helpClients.Remove(k);
    767     //            break;
    768     //          }
    769     //        }
    770     //        break;
    771     //      }
    772     //    }
    773     //    if (found == false) {
    774     //      changes.Add(new Changes { Types = Type.ClientGroup, ID = cg.Id, ChangeType = Change.Create });
    775     //    }
    776     //    found = false;
    777     //  }
    778     //  foreach (KeyValuePair<int, ClientGroup> kvp in helpClients) {
    779     //    changes.Add(new Changes { Types = Type.ClientGroup, ID = kvp.Value.Id, ChangeType = Change.Delete, Position = kvp.Key });
    780     //  }
    781     //}
    782696
    783697    private void GetDelta(IList<Job> oldJobs, IDictionary<int, Job> helpJobs) {
     
    861775    #endregion
    862776
    863     private void largeIconsToolStripMenuItem_Click(object sender, EventArgs e) {
    864       lvClientControl.View = View.LargeIcon;
    865       lvJobControl.View = View.LargeIcon;
    866       largeIconsToolStripMenuItem.CheckState = CheckState.Checked;
    867       smallIconsToolStripMenuItem.CheckState = CheckState.Unchecked;
    868       listToolStripMenuItem.CheckState = CheckState.Unchecked;
    869     }
    870 
    871     private void smallIconsToolStripMenuItem_Click(object sender, EventArgs e) {
    872       lvClientControl.View = View.SmallIcon;
    873       lvJobControl.View = View.SmallIcon;
    874       largeIconsToolStripMenuItem.CheckState = CheckState.Unchecked;
    875       smallIconsToolStripMenuItem.CheckState = CheckState.Checked;
    876       listToolStripMenuItem.CheckState = CheckState.Unchecked;
    877     }
    878 
    879     private void listToolStripMenuItem_Click(object sender, EventArgs e) {
    880       lvClientControl.View = View.List;
    881       lvJobControl.View = View.List;
    882       largeIconsToolStripMenuItem.CheckState = CheckState.Unchecked;
    883       smallIconsToolStripMenuItem.CheckState = CheckState.Unchecked;
    884       listToolStripMenuItem.CheckState = CheckState.Checked;
    885     }
    886 
    887     private void tvClientControl_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
    888       lvClientControl.Items.Clear();
    889       lvClientControl.Groups.Clear();
    890       currentNode = e.Node;
    891       AddGroupsToListView(e.Node);
    892     }
    893 
    894     private void AddGroupsToListView(TreeNode node) {
    895       if (node != null) {
    896         ListViewGroup lvg = new ListViewGroup(node.Text, HorizontalAlignment.Left);
    897         lvClientControl.Groups.Add(lvg);
    898         foreach (ListViewItem item in clientList[((ClientGroup)node.Tag).Id]) {
    899           item.Group = lvg;
    900           lvClientControl.Items.Add(item);
    901         }
    902 
    903         if (node.Nodes != null) {
    904           foreach (TreeNode curNode in node.Nodes) {
    905             AddGroupsToListView(curNode);
    906           }
    907         }
    908       }
    909     }
    910 
    911     private void Refresh_Click(object sender, EventArgs e) {
    912       Form overlayingForm = new Form();
    913 
    914       overlayingForm.Show();
    915       overlayingForm.FormBorderStyle = FormBorderStyle.None;
    916       overlayingForm.BackColor = Color.Gray;
    917       overlayingForm.Opacity = 0.4;
    918       overlayingForm.Size = this.Size;
    919       overlayingForm.Location = this.Location;
    920 
    921       //Label lbl = new Label();
    922       //overlayingForm.Controls.Add(lbl);
    923       //lbl.AutoSize = true;
    924       //lbl.Text = "Loading";
    925       //lbl.Name = "lblName";
    926       //lbl.Font = new System.Drawing.Font("Microsoft Sans Serif", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
    927       //lbl.ForeColor = Color.Black;
    928       //lbl.BackColor = Color.Transparent;
    929       //lbl.Location = new Point(overlayingForm.Width / 2, overlayingForm.Height / 2);
    930 
    931       AddClients();
    932 
    933       overlayingForm.Close();
    934     }
    935 
    936     private void tvClientControl_MouseUp(object sender, MouseEventArgs e) {
    937       // If the right mouse button was clicked and released,
    938       // display the shortcut menu assigned to the ListView.
    939       contextMenuGroup.Items.Clear();
    940       TreeViewHitTestInfo hitTestInfo = tvClientControl.HitTest(e.Location);
    941       tvClientControl.SelectedNode = hitTestInfo.Node;
    942       if (e.Button != MouseButtons.Right) return;
    943         if (hitTestInfo.Node != null) {
    944           Resource selectedGroup = (Resource)tvClientControl.SelectedNode.Tag;
    945 
    946           if (selectedGroup != null) {
    947             contextMenuGroup.Items.Add(menuItemAddGroup);
    948             contextMenuGroup.Items.Add(menuItemDeleteGroup);
    949           }
    950         } else {
    951           contextMenuGroup.Items.Add(menuItemAddGroup);
    952         }
    953         tvClientControl.ContextMenuStrip.Show(new Point(e.X, e.Y));
    954     }
     777
    955778  }
    956779}
  • trunk/sources/HeuristicLab.Hive.Server.Console/3.2/HiveServerManagementConsole.resx

    r1832 r1937  
    308308    <value>462, 9</value>
    309309  </metadata>
    310   <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    311   <data name="btnRefresh.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    312     <value>
    313         iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
    314         YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAABcQwAA
    315         XEMBOS4mtwAAA5dJREFUSEullslPU1EUxtVVSyeGoOgWYWViomGB0YUbE7fGxODGuPEfMHFjgpowaDQy
    316         KlAHlKlMKoNQKQomFUShDEKhtLSlkcgkiAMz9POcR1/7HlBotMmX3td77/m9c86953QvgD3ST2qrMo6e
    317         E0iHSftkk8EfvDQ1Quq8fnrRIVvGAFZKiyKGVEsCK/29AvfMypDEa8V9Phsxol3R+EGamEhtVcDQr4N5
    318         LBqW6QPono4JSbyW9/BetsG2SAeF6Pjevj6NJprdUWj7Fo2m0UjUO8NR51O9MwKvXRFocAdkpLFxdEMm
    319         TyRax6LQPh4NE9lgWwSoFwA0iGf3DANa1I6Eo2hAjef9ahQPaFBi1aB0UIMykmFIiwqbFpXDG6omvbDr
    320         8NKhwytSzYgOtfRCJk8Eyvq1YsjiGZDEbvGGwi9qPCPjDPgfiNEdLoYqiQHJGW1KPOlTC9oNUm7TkQes
    321         gCefxi+h2XNc5klmu5K9SGbAzdxPSjzuVe0IMbnPYHLejDXvPNa9S5hdtKBn6hrsP3Ip1MA7zylZuPQW
    322         FQNuCIAcAuh7VEEhH8auCEZ2+rz1nJTl5FF3WACQ3aFEQbdqW0idIxG/lp3ombyFJtcZ1DqOonPiKrxY
    323         lfGaCSBNvN4iAWQRIN8HeCQJ1VNKeoPzNJ2mKCHpRb6TZf1+f4szDKiSnKwCOUAhAIJBpCerxXMec8tD
    324         +Lk8LOjXigO/V5x4M5ogJF6EyACZHQrkEVGElAzEUkhuo3fyDn2nk9LQO5VGITor84TvCIvvSLnkjjCk
    325         oEsSosyPCjwggAiptp3YEoLphS4K1X7/HeFwVdgOCYDtIPmbAbn0gwjZDOCE1tgTwTnhcNXYj8E2o4f5
    326         62X/bd8MkQEyyAMGiJCqocQtHqx7lzGz2IeF1Qlhzj1XLSRdTPxmT2SA++0K5HRuAFiVPsCPJRsm/nTI
    327         YF6swTqdg2Jr5I4lJY/siRct+a5ZgazPSj+kYjARjtlKunjRQuIN1iMwuS5Qks/BMBgbUknJkJSKpBQq
    328         drmdAUhet07w5KEk8cEu4vbFUQ22yYXUX67zCJBNXkg9+RdIiVUNvcXf4eL9DYdLdml/GAr7+DQFwhUq
    329         pJj6SMWQGuVWlViqNxqOr6P5W+ZjqoI1wxoYXRoqE1q/Gmnc6JLLSM+sJrcGdXYNnlC+tm2ZwZr+XWr6
    330         rN2a/65NX/wH4APFUXIucrPgUh6ieC3viZPa4vFfU36gB1Ssto8AAAAASUVORK5CYII=
    331 </value>
    332   </data>
    333   <metadata name="contextMenuGroup.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    334     <value>504, 38</value>
     310  <metadata name="updaterWoker.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     311    <value>388, 41</value>
    335312  </metadata>
    336313  <metadata name="contextMenuJob.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     
    388365</value>
    389366  </data>
    390   <metadata name="updaterWoker.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    391     <value>388, 41</value>
    392   </metadata>
    393367  <metadata name="ilSmallImgClient.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    394368    <value>17, 50</value>
     
    455429</value>
    456430  </data>
     431  <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
     432  <data name="btnRefresh.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     433    <value>
     434        iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
     435        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAABcQwAA
     436        XEMBOS4mtwAAA5dJREFUSEullslPU1EUxtVVSyeGoOgWYWViomGB0YUbE7fGxODGuPEfMHFjgpowaDQy
     437        KlAHlKlMKoNQKQomFUShDEKhtLSlkcgkiAMz9POcR1/7HlBotMmX3td77/m9c86953QvgD3ST2qrMo6e
     438        E0iHSftkk8EfvDQ1Quq8fnrRIVvGAFZKiyKGVEsCK/29AvfMypDEa8V9Phsxol3R+EGamEhtVcDQr4N5
     439        LBqW6QPono4JSbyW9/BetsG2SAeF6Pjevj6NJprdUWj7Fo2m0UjUO8NR51O9MwKvXRFocAdkpLFxdEMm
     440        TyRax6LQPh4NE9lgWwSoFwA0iGf3DANa1I6Eo2hAjef9ahQPaFBi1aB0UIMykmFIiwqbFpXDG6omvbDr
     441        8NKhwytSzYgOtfRCJk8Eyvq1YsjiGZDEbvGGwi9qPCPjDPgfiNEdLoYqiQHJGW1KPOlTC9oNUm7TkQes
     442        gCefxi+h2XNc5klmu5K9SGbAzdxPSjzuVe0IMbnPYHLejDXvPNa9S5hdtKBn6hrsP3Ip1MA7zylZuPQW
     443        FQNuCIAcAuh7VEEhH8auCEZ2+rz1nJTl5FF3WACQ3aFEQbdqW0idIxG/lp3ombyFJtcZ1DqOonPiKrxY
     444        lfGaCSBNvN4iAWQRIN8HeCQJ1VNKeoPzNJ2mKCHpRb6TZf1+f4szDKiSnKwCOUAhAIJBpCerxXMec8tD
     445        +Lk8LOjXigO/V5x4M5ogJF6EyACZHQrkEVGElAzEUkhuo3fyDn2nk9LQO5VGITor84TvCIvvSLnkjjCk
     446        oEsSosyPCjwggAiptp3YEoLphS4K1X7/HeFwVdgOCYDtIPmbAbn0gwjZDOCE1tgTwTnhcNXYj8E2o4f5
     447        62X/bd8MkQEyyAMGiJCqocQtHqx7lzGz2IeF1Qlhzj1XLSRdTPxmT2SA++0K5HRuAFiVPsCPJRsm/nTI
     448        YF6swTqdg2Jr5I4lJY/siRct+a5ZgazPSj+kYjARjtlKunjRQuIN1iMwuS5Qks/BMBgbUknJkJSKpBQq
     449        drmdAUhet07w5KEk8cEu4vbFUQ22yYXUX67zCJBNXkg9+RdIiVUNvcXf4eL9DYdLdml/GAr7+DQFwhUq
     450        pJj6SMWQGuVWlViqNxqOr6P5W+ZjqoI1wxoYXRoqE1q/Gmnc6JLLSM+sJrcGdXYNnlC+tm2ZwZr+XWr6
     451        rN2a/65NX/wH4APFUXIucrPgUh6ieC3viZPa4vFfU36gB1Ssto8AAAAASUVORK5CYII=
     452</value>
     453  </data>
     454  <metadata name="contextMenuGroup.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     455    <value>504, 38</value>
     456  </metadata>
    457457</root>
Note: See TracChangeset for help on using the changeset viewer.