Changeset 3547


Ignore:
Timestamp:
04/27/10 21:30:24 (12 years ago)
Author:
gkronber
Message:

Implemented review comments in plugin manager. #989 (Implement review comments in plugin infrastructure)

Location:
trunk/sources/HeuristicLab.PluginInfrastructure
Files:
9 added
20 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerControl.cs

    r3090 r3547  
    3030namespace HeuristicLab.PluginInfrastructure.Advanced {
    3131  internal partial class InstallationManagerControl : UserControl {
    32     public InstallationManagerControl() {
    33       InitializeComponent();
     32    private IStatusView statusView;
     33    public IStatusView StatusView {
     34      get { return statusView; }
     35      set { statusView = value; }
    3436    }
    3537
    36     internal virtual void ShowInForm() {
    37       Form form = new Form();
    38       form.ClientSize = this.Size;
    39       form.Text = this.Name;
    40       this.Dock = DockStyle.Fill;
    41       form.Controls.Add(this);
    42       form.Show();
     38    public InstallationManagerControl()
     39      : base() {
     40      InitializeComponent();
    4341    }
    4442  }
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.Designer.cs

    r3509 r3547  
    4848      this.toolStripProgressBar = new System.Windows.Forms.ToolStripProgressBar();
    4949      this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
    50       this.removeButton = new System.Windows.Forms.Button();
    51       this.installButton = new System.Windows.Forms.Button();
    5250      this.tabControl = new System.Windows.Forms.TabControl();
     51      this.updateAllPluginsTabPage = new System.Windows.Forms.TabPage();
     52      this.basicUpdateView = new HeuristicLab.PluginInfrastructure.Advanced.BasicUpdateView();
    5353      this.localPluginsTabPage = new System.Windows.Forms.TabPage();
    54       this.updateButton = new System.Windows.Forms.Button();
     54      this.localPluginsView = new HeuristicLab.PluginInfrastructure.Advanced.LocalPluginsView();
    5555      this.availablePluginsTabPage = new System.Windows.Forms.TabPage();
    56       this.refreshButton = new System.Windows.Forms.Button();
     56      this.remotePluginInstaller = new HeuristicLab.PluginInfrastructure.Advanced.RemotePluginInstallerView();
    5757      this.uploadPluginsTabPage = new System.Windows.Forms.TabPage();
     58      this.pluginEditor = new HeuristicLab.PluginInfrastructure.Advanced.PluginEditor();
    5859      this.manageProductsTabPage = new System.Windows.Forms.TabPage();
     60      this.productEditor = new HeuristicLab.PluginInfrastructure.Advanced.ProductEditor();
    5961      this.logTabPage = new System.Windows.Forms.TabPage();
    6062      this.logTextBox = new System.Windows.Forms.TextBox();
     
    6567      this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
    6668      this.connectionSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
    67       this.localPluginManagerView = new HeuristicLab.PluginInfrastructure.Advanced.LocalPluginManagerView();
    68       this.remotePluginInstaller = new HeuristicLab.PluginInfrastructure.Advanced.RemotePluginInstallerView();
    69       this.pluginEditor = new HeuristicLab.PluginInfrastructure.Advanced.PluginEditor();
    70       this.productEditor = new HeuristicLab.PluginInfrastructure.Advanced.ProductEditor();
    7169      this.statusStrip.SuspendLayout();
    7270      this.tabControl.SuspendLayout();
     71      this.updateAllPluginsTabPage.SuspendLayout();
    7372      this.localPluginsTabPage.SuspendLayout();
    7473      this.availablePluginsTabPage.SuspendLayout();
     
    8483            this.toolStripProgressBar,
    8584            this.toolStripStatusLabel});
    86       this.statusStrip.Location = new System.Drawing.Point(0, 398);
     85      this.statusStrip.Location = new System.Drawing.Point(0, 422);
    8786      this.statusStrip.Name = "statusStrip";
    88       this.statusStrip.Size = new System.Drawing.Size(615, 22);
     87      this.statusStrip.Size = new System.Drawing.Size(622, 22);
    8988      this.statusStrip.TabIndex = 0;
    9089      //
     
    102101      this.toolStripStatusLabel.Size = new System.Drawing.Size(0, 17);
    103102      //
    104       // removeButton
    105       //
    106       this.removeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
    107       this.removeButton.Enabled = false;
    108       this.removeButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_CommonElements_Actions_Remove;
    109       this.removeButton.Location = new System.Drawing.Point(103, 305);
    110       this.removeButton.Name = "removeButton";
    111       this.removeButton.Size = new System.Drawing.Size(110, 31);
    112       this.removeButton.TabIndex = 11;
    113       this.removeButton.Text = "Delete Selected";
    114       this.removeButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
    115       this.removeButton.UseVisualStyleBackColor = true;
    116       this.removeButton.Click += new System.EventHandler(this.removeLocalButton_Click);
    117       //
    118       // installButton
    119       //
    120       this.installButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
    121       this.installButton.Enabled = false;
    122       this.installButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_Objects_Install;
    123       this.installButton.Location = new System.Drawing.Point(84, 305);
    124       this.installButton.Name = "installButton";
    125       this.installButton.Size = new System.Drawing.Size(140, 31);
    126       this.installButton.TabIndex = 15;
    127       this.installButton.Text = "Install Selected Items";
    128       this.installButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
    129       this.installButton.UseVisualStyleBackColor = true;
    130       this.installButton.Click += new System.EventHandler(this.updateOrInstallButton_Click);
    131       //
    132103      // tabControl
    133104      //
     
    135106                  | System.Windows.Forms.AnchorStyles.Left)
    136107                  | System.Windows.Forms.AnchorStyles.Right)));
     108      this.tabControl.Controls.Add(this.updateAllPluginsTabPage);
    137109      this.tabControl.Controls.Add(this.localPluginsTabPage);
    138110      this.tabControl.Controls.Add(this.availablePluginsTabPage);
     
    143115      this.tabControl.Name = "tabControl";
    144116      this.tabControl.SelectedIndex = 0;
    145       this.tabControl.Size = new System.Drawing.Size(591, 368);
     117      this.tabControl.Size = new System.Drawing.Size(598, 392);
    146118      this.tabControl.TabIndex = 16;
    147119      this.tabControl.Selected += new System.Windows.Forms.TabControlEventHandler(this.tabControl_Selected);
    148120      //
     121      // updateAllPluginsTabPage
     122      //
     123      this.updateAllPluginsTabPage.Controls.Add(this.basicUpdateView);
     124      this.updateAllPluginsTabPage.Location = new System.Drawing.Point(4, 22);
     125      this.updateAllPluginsTabPage.Name = "updateAllPluginsTabPage";
     126      this.updateAllPluginsTabPage.Padding = new System.Windows.Forms.Padding(3);
     127      this.updateAllPluginsTabPage.Size = new System.Drawing.Size(590, 366);
     128      this.updateAllPluginsTabPage.TabIndex = 5;
     129      this.updateAllPluginsTabPage.Text = "Update Plugins";
     130      this.updateAllPluginsTabPage.UseVisualStyleBackColor = true;
     131      //
     132      // basicUpdateView
     133      //
     134      this.basicUpdateView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     135                  | System.Windows.Forms.AnchorStyles.Left)
     136                  | System.Windows.Forms.AnchorStyles.Right)));
     137      this.basicUpdateView.InstallationManager = null;
     138      this.basicUpdateView.Location = new System.Drawing.Point(6, 6);
     139      this.basicUpdateView.Name = "basicUpdateView";
     140      this.basicUpdateView.PluginManager = null;
     141      this.basicUpdateView.Size = new System.Drawing.Size(578, 354);
     142      this.basicUpdateView.StatusView = null;
     143      this.basicUpdateView.TabIndex = 0;
     144      //
    149145      // localPluginsTabPage
    150146      //
    151       this.localPluginsTabPage.Controls.Add(this.updateButton);
    152       this.localPluginsTabPage.Controls.Add(this.removeButton);
    153       this.localPluginsTabPage.Controls.Add(this.localPluginManagerView);
     147      this.localPluginsTabPage.Controls.Add(this.localPluginsView);
    154148      this.localPluginsTabPage.Location = new System.Drawing.Point(4, 22);
    155149      this.localPluginsTabPage.Name = "localPluginsTabPage";
    156150      this.localPluginsTabPage.Padding = new System.Windows.Forms.Padding(3);
    157       this.localPluginsTabPage.Size = new System.Drawing.Size(583, 342);
     151      this.localPluginsTabPage.Size = new System.Drawing.Size(590, 366);
    158152      this.localPluginsTabPage.TabIndex = 0;
    159153      this.localPluginsTabPage.Text = "Installed Plugins";
    160154      this.localPluginsTabPage.UseVisualStyleBackColor = true;
    161155      //
    162       // updateButton
    163       //
    164       this.updateButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
    165       this.updateButton.Enabled = false;
    166       this.updateButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_Objects_Internet;
    167       this.updateButton.Location = new System.Drawing.Point(6, 305);
    168       this.updateButton.Name = "updateButton";
    169       this.updateButton.Size = new System.Drawing.Size(91, 31);
    170       this.updateButton.TabIndex = 12;
    171       this.updateButton.Text = "Update All";
    172       this.updateButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
    173       this.updateButton.UseVisualStyleBackColor = true;
    174       this.updateButton.Click += new System.EventHandler(this.updateAllButton_Click);
     156      // localPluginsView
     157      //
     158      this.localPluginsView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     159                  | System.Windows.Forms.AnchorStyles.Left)
     160                  | System.Windows.Forms.AnchorStyles.Right)));
     161      this.localPluginsView.InstallationManager = null;
     162      this.localPluginsView.Location = new System.Drawing.Point(6, 6);
     163      this.localPluginsView.Name = "localPluginsView";
     164      this.localPluginsView.PluginManager = null;
     165      this.localPluginsView.Size = new System.Drawing.Size(578, 354);
     166      this.localPluginsView.StatusView = null;
     167      this.localPluginsView.TabIndex = 0;
    175168      //
    176169      // availablePluginsTabPage
    177170      //
    178171      this.availablePluginsTabPage.Controls.Add(this.remotePluginInstaller);
    179       this.availablePluginsTabPage.Controls.Add(this.refreshButton);
    180       this.availablePluginsTabPage.Controls.Add(this.installButton);
    181172      this.availablePluginsTabPage.Location = new System.Drawing.Point(4, 22);
    182173      this.availablePluginsTabPage.Name = "availablePluginsTabPage";
    183174      this.availablePluginsTabPage.Padding = new System.Windows.Forms.Padding(3);
    184       this.availablePluginsTabPage.Size = new System.Drawing.Size(583, 342);
     175      this.availablePluginsTabPage.Size = new System.Drawing.Size(590, 366);
    185176      this.availablePluginsTabPage.TabIndex = 1;
    186177      this.availablePluginsTabPage.Text = "Available Plugins";
    187178      this.availablePluginsTabPage.UseVisualStyleBackColor = true;
    188179      //
    189       // refreshButton
    190       //
    191       this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
    192       this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_Objects_Internet;
    193       this.refreshButton.Location = new System.Drawing.Point(6, 305);
    194       this.refreshButton.Name = "refreshButton";
    195       this.refreshButton.Size = new System.Drawing.Size(72, 31);
    196       this.refreshButton.TabIndex = 11;
    197       this.refreshButton.Text = "Refresh";
    198       this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
    199       this.refreshButton.UseVisualStyleBackColor = true;
    200       this.refreshButton.Click += new System.EventHandler(this.refreshRemoteButton_Click);
     180      // remotePluginInstaller
     181      //
     182      this.remotePluginInstaller.AllPlugins = new HeuristicLab.PluginInfrastructure.IPluginDescription[0];
     183      this.remotePluginInstaller.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     184                  | System.Windows.Forms.AnchorStyles.Left)
     185                  | System.Windows.Forms.AnchorStyles.Right)));
     186      this.remotePluginInstaller.Location = new System.Drawing.Point(6, 6);
     187      this.remotePluginInstaller.Name = "remotePluginInstaller";
     188      this.remotePluginInstaller.NewPlugins = new HeuristicLab.PluginInfrastructure.IPluginDescription[0];
     189      this.remotePluginInstaller.Products = new HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription[0];
     190      this.remotePluginInstaller.ShowAllPlugins = false;
     191      this.remotePluginInstaller.Size = new System.Drawing.Size(578, 354);
     192      this.remotePluginInstaller.TabIndex = 14;
    201193      //
    202194      // uploadPluginsTabPage
     
    206198      this.uploadPluginsTabPage.Name = "uploadPluginsTabPage";
    207199      this.uploadPluginsTabPage.Padding = new System.Windows.Forms.Padding(3);
    208       this.uploadPluginsTabPage.Size = new System.Drawing.Size(583, 342);
     200      this.uploadPluginsTabPage.Size = new System.Drawing.Size(590, 366);
    209201      this.uploadPluginsTabPage.TabIndex = 3;
    210202      this.uploadPluginsTabPage.Text = "Upload Plugins";
    211203      this.uploadPluginsTabPage.UseVisualStyleBackColor = true;
     204      //
     205      // pluginEditor
     206      //
     207      this.pluginEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     208                  | System.Windows.Forms.AnchorStyles.Left)
     209                  | System.Windows.Forms.AnchorStyles.Right)));
     210      this.pluginEditor.Location = new System.Drawing.Point(6, 6);
     211      this.pluginEditor.Name = "pluginEditor";
     212      this.pluginEditor.PluginManager = null;
     213      this.pluginEditor.Size = new System.Drawing.Size(578, 354);
     214      this.pluginEditor.TabIndex = 0;
    212215      //
    213216      // manageProductsTabPage
     
    217220      this.manageProductsTabPage.Name = "manageProductsTabPage";
    218221      this.manageProductsTabPage.Padding = new System.Windows.Forms.Padding(3);
    219       this.manageProductsTabPage.Size = new System.Drawing.Size(583, 342);
     222      this.manageProductsTabPage.Size = new System.Drawing.Size(590, 366);
    220223      this.manageProductsTabPage.TabIndex = 4;
    221224      this.manageProductsTabPage.Text = "Manage Products";
    222225      this.manageProductsTabPage.UseVisualStyleBackColor = true;
    223226      //
     227      // productEditor
     228      //
     229      this.productEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     230                  | System.Windows.Forms.AnchorStyles.Left)
     231                  | System.Windows.Forms.AnchorStyles.Right)));
     232      this.productEditor.Location = new System.Drawing.Point(6, 6);
     233      this.productEditor.Name = "productEditor";
     234      this.productEditor.Size = new System.Drawing.Size(578, 354);
     235      this.productEditor.TabIndex = 0;
     236      //
    224237      // logTabPage
    225238      //
     
    227240      this.logTabPage.Location = new System.Drawing.Point(4, 22);
    228241      this.logTabPage.Name = "logTabPage";
    229       this.logTabPage.Size = new System.Drawing.Size(583, 342);
     242      this.logTabPage.Size = new System.Drawing.Size(590, 366);
    230243      this.logTabPage.TabIndex = 2;
    231244      this.logTabPage.Text = "Log";
     
    242255      this.logTextBox.ReadOnly = true;
    243256      this.logTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
    244       this.logTextBox.Size = new System.Drawing.Size(577, 336);
     257      this.logTextBox.Size = new System.Drawing.Size(584, 360);
    245258      this.logTextBox.TabIndex = 0;
    246259      //
     
    252265      this.menuStrip.Location = new System.Drawing.Point(0, 0);
    253266      this.menuStrip.Name = "menuStrip";
    254       this.menuStrip.Size = new System.Drawing.Size(615, 24);
     267      this.menuStrip.Size = new System.Drawing.Size(622, 24);
    255268      this.menuStrip.TabIndex = 17;
    256269      this.menuStrip.Text = "menuStrip1";
     
    300313      this.connectionSettingsToolStripMenuItem.Click += new System.EventHandler(this.connectionSettingsToolStripMenuItem_Click);
    301314      //
    302       // localPluginManagerView
    303       //
    304       this.localPluginManagerView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    305                   | System.Windows.Forms.AnchorStyles.Left)
    306                   | System.Windows.Forms.AnchorStyles.Right)));
    307       this.localPluginManagerView.Location = new System.Drawing.Point(6, 6);
    308       this.localPluginManagerView.Name = "localPluginManagerView";
    309       this.localPluginManagerView.Plugins = null;
    310       this.localPluginManagerView.Size = new System.Drawing.Size(569, 293);
    311       this.localPluginManagerView.TabIndex = 0;
    312       this.localPluginManagerView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.localPluginManager_ItemChecked);
    313       //
    314       // remotePluginInstaller
    315       //
    316       this.remotePluginInstaller.AllPlugins = new HeuristicLab.PluginInfrastructure.IPluginDescription[0];
    317       this.remotePluginInstaller.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    318                   | System.Windows.Forms.AnchorStyles.Left)
    319                   | System.Windows.Forms.AnchorStyles.Right)));
    320       this.remotePluginInstaller.Location = new System.Drawing.Point(6, 6);
    321       this.remotePluginInstaller.Name = "remotePluginInstaller";
    322       this.remotePluginInstaller.NewPlugins = new HeuristicLab.PluginInfrastructure.IPluginDescription[0];
    323       this.remotePluginInstaller.Products = new HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription[0];
    324       this.remotePluginInstaller.ShowAllPlugins = false;
    325       this.remotePluginInstaller.Size = new System.Drawing.Size(571, 293);
    326       this.remotePluginInstaller.TabIndex = 14;
    327       this.remotePluginInstaller.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.remotePluginInstaller_ItemChecked);
    328       //
    329       // pluginEditor
    330       //
    331       this.pluginEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    332                   | System.Windows.Forms.AnchorStyles.Left)
    333                   | System.Windows.Forms.AnchorStyles.Right)));
    334       this.pluginEditor.Location = new System.Drawing.Point(6, 6);
    335       this.pluginEditor.Name = "pluginEditor";
    336       this.pluginEditor.Size = new System.Drawing.Size(571, 330);
    337       this.pluginEditor.TabIndex = 0;
    338       //
    339       // productEditor
    340       //
    341       this.productEditor.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    342                   | System.Windows.Forms.AnchorStyles.Left)
    343                   | System.Windows.Forms.AnchorStyles.Right)));
    344       this.productEditor.Location = new System.Drawing.Point(6, 6);
    345       this.productEditor.Name = "productEditor";
    346       this.productEditor.Size = new System.Drawing.Size(571, 330);
    347       this.productEditor.TabIndex = 0;
    348       //
    349315      // InstallationManagerForm
    350316      //
    351317      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    352318      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    353       this.ClientSize = new System.Drawing.Size(615, 420);
     319      this.ClientSize = new System.Drawing.Size(622, 444);
    354320      this.Controls.Add(this.tabControl);
    355321      this.Controls.Add(this.statusStrip);
     
    362328      this.statusStrip.PerformLayout();
    363329      this.tabControl.ResumeLayout(false);
     330      this.updateAllPluginsTabPage.ResumeLayout(false);
    364331      this.localPluginsTabPage.ResumeLayout(false);
    365332      this.availablePluginsTabPage.ResumeLayout(false);
     
    380347    private System.Windows.Forms.ToolStripProgressBar toolStripProgressBar;
    381348    private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel;
    382     private LocalPluginManagerView localPluginManagerView;
    383349    private RemotePluginInstallerView remotePluginInstaller;
    384     private System.Windows.Forms.Button removeButton;
    385     private System.Windows.Forms.Button installButton;
    386350    private System.Windows.Forms.TabControl tabControl;
    387351    private System.Windows.Forms.TabPage localPluginsTabPage;
     
    389353    private System.Windows.Forms.TabPage logTabPage;
    390354    private System.Windows.Forms.TextBox logTextBox;
    391     private System.Windows.Forms.Button refreshButton;
    392355    private System.Windows.Forms.MenuStrip menuStrip;
    393356    private System.Windows.Forms.ToolStripMenuItem viewToolStripMenuItem;
     
    396359    private System.Windows.Forms.ToolStripMenuItem optionsToolStripMenuItem;
    397360    private System.Windows.Forms.ToolStripMenuItem connectionSettingsToolStripMenuItem;
    398     private System.Windows.Forms.Button updateButton;
    399361    private System.Windows.Forms.TabPage uploadPluginsTabPage;
    400362    private System.Windows.Forms.TabPage manageProductsTabPage;
    401363    private PluginEditor pluginEditor;
    402364    private ProductEditor productEditor;
     365    private LocalPluginsView localPluginsView;
     366    private System.Windows.Forms.TabPage updateAllPluginsTabPage;
     367    private BasicUpdateView basicUpdateView;
    403368  }
    404369}
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.cs

    r3508 r3547  
    3131
    3232namespace HeuristicLab.PluginInfrastructure.Advanced {
    33   internal partial class InstallationManagerForm : Form {
    34     private class UpdateOrInstallPluginsBackgroundWorkerArgument {
    35       public IEnumerable<IPluginDescription> PluginsToUpdate { get; set; }
    36       public IEnumerable<IPluginDescription> PluginsToInstall { get; set; }
    37     }
    38 
    39     private class RemovePluginsBackgroundWorkerArgument {
    40       public IEnumerable<IPluginDescription> PluginsToRemove { get; set; }
    41     }
    42 
    43     private class RefreshBackgroundWorkerResult {
    44       public IEnumerable<IPluginDescription> RemotePlugins { get; set; }
    45       public IEnumerable<DeploymentService.ProductDescription> RemoteProducts { get; set; }
    46     }
    47 
     33  internal partial class InstallationManagerForm : Form, IStatusView {
    4834    private InstallationManager installationManager;
    49     private BackgroundWorker refreshServerPluginsBackgroundWorker;
    50     private BackgroundWorker updateOrInstallPluginsBackgroundWorker;
    51     private BackgroundWorker removePluginsBackgroundWorker;
    52     private BackgroundWorker refreshLocalPluginsBackgroundWorker;
    53     private BackgroundWorker updateAllPluginsBackgroundWorker;
    5435    private PluginManager pluginManager;
    5536    private string pluginDir;
     
    5839      InitializeComponent();
    5940      this.pluginManager = pluginManager;
     41
    6042      pluginManager.PluginLoaded += pluginManager_PluginLoaded;
    6143      pluginManager.PluginUnloaded += pluginManager_PluginUnloaded;
     
    6446
    6547      pluginDir = Application.StartupPath;
    66 
    67       #region initialize background workers
    68       refreshServerPluginsBackgroundWorker = new BackgroundWorker();
    69       refreshServerPluginsBackgroundWorker.DoWork += new DoWorkEventHandler(refreshServerPluginsBackgroundWorker_DoWork);
    70       refreshServerPluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(refreshServerPluginsBackgroundWorker_RunWorkerCompleted);
    71 
    72       updateOrInstallPluginsBackgroundWorker = new BackgroundWorker();
    73       updateOrInstallPluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updateOrInstallPluginsBackgroundWorker_DoWork);
    74       updateOrInstallPluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updateOrInstallPluginsBackgroundWorker_RunWorkerCompleted);
    75 
    76       removePluginsBackgroundWorker = new BackgroundWorker();
    77       removePluginsBackgroundWorker.DoWork += new DoWorkEventHandler(removePluginsBackgroundWorker_DoWork);
    78       removePluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(removePluginsBackgroundWorker_RunWorkerCompleted);
    79 
    80       refreshLocalPluginsBackgroundWorker = new BackgroundWorker();
    81       refreshLocalPluginsBackgroundWorker.DoWork += new DoWorkEventHandler(refreshLocalPluginsBackgroundWorker_DoWork);
    82       refreshLocalPluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(refreshLocalPluginsBackgroundWorker_RunWorkerCompleted);
    83 
    84       updateAllPluginsBackgroundWorker = new BackgroundWorker();
    85       updateAllPluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updateAllPluginsBackgroundWorker_DoWork);
    86       updateAllPluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updateAllPluginsBackgroundWorker_RunWorkerCompleted);
    87       #endregion
    8848
    8949      installationManager = new InstallationManager(pluginDir);
     
    9959        tabControl.Controls.Remove(uploadPluginsTabPage);
    10060        tabControl.Controls.Remove(manageProductsTabPage);
    101       }
    102 
    103       UpdateLocalPluginList(pluginManager.Plugins);
    104       UpdateControlsConnected();
    105     }
    106 
    107     #region event handlers for update all plugins backgroundworker
    108     void updateAllPluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
    109       if (e.Error != null) {
    110         MessageBox.Show("There was an error while connecting to the server." + Environment.NewLine +
    111            "Please check your connection settings and user credentials.");
    112         UpdateControlsDisconnected();
    11361      } else {
    114         RefreshLocalPluginListAsync();
    115         UpdateControlsConnected();
    116       }
    117     }
    118 
    119     void updateAllPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) {
    120       IEnumerable<IPluginDescription> installedPlugins = (IEnumerable<IPluginDescription>)e.Argument;
    121       var remotePlugins = installationManager.GetRemotePluginList();
    122       // if there is a local plugin with same name and same major and minor version then it's an update
    123       var pluginsToUpdate = from remotePlugin in remotePlugins
    124                             let matchingLocalPlugins = from installedPlugin in installedPlugins
    125                                                        where installedPlugin.Name == remotePlugin.Name
    126                                                        where installedPlugin.Version.Major == remotePlugin.Version.Major
    127                                                        where installedPlugin.Version.Minor == remotePlugin.Version.Minor
    128                                                        where installedPlugin.Version.Build <= remotePlugin.Version.Build ||
    129                                                          installedPlugin.Version.Revision < remotePlugin.Version.Revision
    130                                                        select installedPlugin
    131                             where matchingLocalPlugins.Count() > 0
    132                             select remotePlugin;
    133       installationManager.Update(pluginsToUpdate);
    134     }
    135     #endregion
    136 
    137     #region event handlers for refresh local plugin list backgroundworker
    138     void refreshLocalPluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
    139       if (!e.Cancelled && e.Error == null) {
    140         UpdateLocalPluginList((IEnumerable<PluginDescription>)e.Result);
    141         UpdateControlsConnected();
    142       }
    143     }
    144 
    145     void refreshLocalPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) {
    146       pluginManager.DiscoverAndCheckPlugins();
    147       e.Result = new List<PluginDescription>(pluginManager.Plugins);
    148     }
    149     #endregion
    150 
    151     #region event handlers for plugin removal background worker
    152     void removePluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
    153       if (e.Error != null) {
    154         MessageBox.Show("There was problem while deleting files." + Environment.NewLine +
    155               e.Error.Message);
    156         UpdateControlsDisconnected();
    157       } else {
    158         RefreshLocalPluginListAsync();
    159         UpdateControlsConnected();
    160       }
    161     }
    162 
    163     void removePluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) {
    164       IEnumerable<IPluginDescription> pluginsToRemove = (IEnumerable<IPluginDescription>)e.Argument;
    165       installationManager.Remove(pluginsToRemove);
    166     }
    167     #endregion
    168 
    169     #region event handlers for plugin update background worker
    170     void updateOrInstallPluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
    171       if (e.Error != null) {
    172         MessageBox.Show("There was an error while connecting to the server." + Environment.NewLine +
    173           "Please check your connection settings and user credentials.");
    174         UpdateControlsDisconnected();
    175       } else {
    176         RefreshLocalPluginListAsync();
    177         RefreshRemotePluginListAsync();
    178         UpdateControlsConnected();
    179       }
    180     }
    181 
    182     void updateOrInstallPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) {
    183       UpdateOrInstallPluginsBackgroundWorkerArgument info = (UpdateOrInstallPluginsBackgroundWorkerArgument)e.Argument;
    184       installationManager.Install(info.PluginsToInstall);
    185       installationManager.Update(info.PluginsToUpdate);
    186     }
    187     #endregion
    188 
    189     #region event handlers for refresh server plugins background worker
    190     void refreshServerPluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
    191       if (e.Error != null) {
    192         MessageBox.Show("There was an error while connecting to the server." + Environment.NewLine +
    193           "Please check your connection settings and user credentials.");
    194         UpdateControlsDisconnected();
    195       } else {
    196         RefreshBackgroundWorkerResult refreshResult = (RefreshBackgroundWorkerResult)e.Result;
    197         UpdateRemotePluginList(refreshResult.RemoteProducts, refreshResult.RemotePlugins);
    198         UpdateControlsConnected();
    199       }
    200     }
    201 
    202     void refreshServerPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) {
    203       RefreshBackgroundWorkerResult result = new RefreshBackgroundWorkerResult();
    204       result.RemotePlugins = installationManager.GetRemotePluginList();
    205       result.RemoteProducts = installationManager.GetRemoteProductList();
    206       e.Cancel = false;
    207       e.Result = result;
    208     }
    209 
    210 
    211 
    212     #endregion
     62        pluginEditor.PluginManager = pluginManager;
     63      }
     64
     65      localPluginsView.StatusView = this;
     66      localPluginsView.PluginManager = pluginManager;
     67      localPluginsView.InstallationManager = installationManager;
     68
     69      basicUpdateView.StatusView = this;
     70      basicUpdateView.PluginManager = pluginManager;
     71      basicUpdateView.InstallationManager = installationManager;
     72
     73      remotePluginInstaller.StatusView = this;
     74      remotePluginInstaller.InstallationManager = installationManager;
     75      remotePluginInstaller.PluginManager = pluginManager;
     76    }
     77
    21378
    21479    #region plugin manager event handlers
     
    267132    #endregion
    268133
    269 
    270 
    271134    #region button events
    272 
    273     private void refreshRemoteButton_Click(object sender, EventArgs e) {
    274       Cursor = Cursors.AppStarting;
    275       RefreshRemotePluginListAsync();
    276       toolStripProgressBar.Visible = true;
    277       DisableControls();
    278     }
    279 
    280     private void updateOrInstallButton_Click(object sender, EventArgs e) {
    281       Cursor = Cursors.AppStarting;
    282       toolStripProgressBar.Visible = true;
    283       DisableControls();
    284       var updateOrInstallInfo = new UpdateOrInstallPluginsBackgroundWorkerArgument();
    285       // if there is a local plugin with same name and same major and minor version then it's an update
    286       var pluginsToUpdate = from remotePlugin in remotePluginInstaller.CheckedPlugins
    287                             let matchingLocalPlugins = from localPlugin in localPluginManagerView.Plugins
    288                                                        where localPlugin.Name == remotePlugin.Name
    289                                                        where localPlugin.Version.Major == remotePlugin.Version.Major
    290                                                        where localPlugin.Version.Minor == remotePlugin.Version.Minor
    291                                                        select localPlugin
    292                             where matchingLocalPlugins.Count() > 0
    293                             select remotePlugin;
    294 
    295       // otherwise install a new plugin
    296       var pluginsToInstall = remotePluginInstaller.CheckedPlugins.Except(pluginsToUpdate);
    297 
    298       updateOrInstallInfo.PluginsToInstall = pluginsToInstall;
    299       updateOrInstallInfo.PluginsToUpdate = pluginsToUpdate;
    300       updateOrInstallPluginsBackgroundWorker.RunWorkerAsync(updateOrInstallInfo);
    301     }
    302 
    303     private void removeLocalButton_Click(object sender, EventArgs e) {
    304       Cursor = Cursors.AppStarting;
    305       toolStripProgressBar.Visible = true;
    306       DisableControls();
    307       removePluginsBackgroundWorker.RunWorkerAsync(localPluginManagerView.CheckedPlugins);
    308     }
    309 
    310     private void updateAllButton_Click(object sender, EventArgs e) {
    311       Cursor = Cursors.AppStarting;
    312       toolStripProgressBar.Visible = true;
    313       updateButton.Enabled = false;
    314       var installedPlugins = pluginManager.Plugins.OfType<IPluginDescription>();
    315       updateAllPluginsBackgroundWorker.RunWorkerAsync(installedPlugins);
    316     }
    317 
    318135    private void connectionSettingsToolStripMenuItem_Click(object sender, EventArgs e) {
    319136      new ConnectionSetupView().ShowDialog();
     
    321138
    322139    private void tabControl_Selected(object sender, TabControlEventArgs e) {
    323       viewToolStripMenuItem.Enabled = e.TabPage == availablePluginsTabPage;
     140      viewToolStripMenuItem.Enabled = e.TabPage == availablePluginsTabPage;     
     141      toolStripStatusLabel.Text = string.Empty;
     142      toolStripProgressBar.Visible = false;
    324143    }
    325144
     
    377196    }
    378197
    379     private void UpdateLocalPluginList(IEnumerable<PluginDescription> plugins) {
    380       localPluginManagerView.Plugins = plugins;
    381     }
    382 
    383     private void UpdateRemotePluginList(
    384       IEnumerable<DeploymentService.ProductDescription> remoteProducts,
    385       IEnumerable<IPluginDescription> remotePlugins) {
    386 
    387       var mostRecentRemotePlugins = from remote in remotePlugins
    388                                     where !remotePlugins.Any(x => x.Name == remote.Name && x.Version > remote.Version) // same name and higher version
    389                                     select remote;
    390 
    391       var newPlugins = from remote in mostRecentRemotePlugins
    392                        let matchingLocal = (from local in localPluginManagerView.Plugins
    393                                             where local.Name == remote.Name
    394                                             where local.Version < remote.Version
    395                                             select local).FirstOrDefault()
    396                        where matchingLocal != null
    397                        select remote;
    398 
    399       remotePluginInstaller.NewPlugins = newPlugins;
    400       remotePluginInstaller.Products = remoteProducts;
    401       remotePluginInstaller.AllPlugins = remotePlugins;
    402     }
    403 
    404     private void RefreshRemotePluginListAsync() {
    405       Cursor = Cursors.AppStarting;
    406       toolStripProgressBar.Visible = true;
    407       refreshButton.Enabled = false;
    408       refreshServerPluginsBackgroundWorker.RunWorkerAsync();
    409     }
    410 
    411     private void RefreshLocalPluginListAsync() {
    412       Cursor = Cursors.AppStarting;
    413       toolStripProgressBar.Visible = true;
    414       DisableControls();
    415       refreshLocalPluginsBackgroundWorker.RunWorkerAsync();
    416     }
    417 
    418     private void UpdateControlsDisconnected() {
    419       //localPluginsListView.Enabled = false;
    420       //ClearPluginsList(remotePluginsListView);
    421       refreshButton.Enabled = true;
    422       toolStripProgressBar.Visible = false;
    423       Cursor = Cursors.Default;
    424     }
    425 
    426     private void UpdateControlsConnected() {
    427       refreshButton.Enabled = true;
    428       updateButton.Enabled = true;
    429       toolStripProgressBar.Visible = false;
    430       Cursor = Cursors.Default;
    431     }
    432 
    433     private void DisableControls() {
    434       refreshButton.Enabled = false;
    435       Cursor = Cursors.Default;
    436     }
    437     #endregion
    438 
    439     private void localPluginManager_ItemChecked(object sender, ItemCheckedEventArgs e) {
    440       removeButton.Enabled = localPluginManagerView.CheckedPlugins.Count() > 0;
    441     }
    442 
    443     private void remotePluginInstaller_ItemChecked(object sender, ItemCheckedEventArgs e) {
    444       installButton.Enabled = remotePluginInstaller.CheckedPlugins.Count() > 0;
    445     }
     198    #endregion
     199
    446200
    447201    protected override void OnClosing(CancelEventArgs e) {
     
    455209    }
    456210
    457 
    458 
    459 
     211    #region IStatusView Members
     212
     213    public void ShowProgressIndicator(double percentProgress) {
     214      if (percentProgress < 0.0 || percentProgress > 1.0) throw new ArgumentException();
     215      toolStripProgressBar.Visible = true;
     216      toolStripProgressBar.Style = ProgressBarStyle.Continuous;
     217      int range = toolStripProgressBar.Maximum - toolStripProgressBar.Minimum;
     218      toolStripProgressBar.Value = (int)(percentProgress * range + toolStripProgressBar.Minimum);
     219    }
     220
     221    public void ShowProgressIndicator() {
     222      toolStripProgressBar.Visible = true;
     223      toolStripProgressBar.Style = ProgressBarStyle.Marquee;
     224    }
     225
     226    public void HideProgressIndicator() {
     227      toolStripProgressBar.Visible = false;
     228    }
     229
     230    public void ShowMessage(string message) {
     231      if (toolStripStatusLabel.Text == string.Empty)
     232        toolStripStatusLabel.Text = message;
     233      else
     234        toolStripStatusLabel.Text += "; " + message;
     235    }
     236
     237    public void RemoveMessage(string message) {
     238      if (toolStripStatusLabel.Text.IndexOf("; " + message) > 0) {
     239        toolStripStatusLabel.Text = toolStripStatusLabel.Text.Replace("; " + message, "");
     240      }
     241      toolStripStatusLabel.Text = toolStripStatusLabel.Text.Replace(message, "");
     242      toolStripStatusLabel.Text = toolStripStatusLabel.Text.TrimStart(' ', ';');
     243    }
     244    public void LockUI() {
     245      Cursor = Cursors.AppStarting;
     246      tabControl.Enabled = false;
     247    }
     248    public void UnlockUI() {
     249      tabControl.Enabled = true;
     250      Cursor = Cursors.Default;
     251    }
     252    public void ShowError(string shortMessage, string description) {
     253      logTextBox.Text += DateTime.Now + ": " + shortMessage + Environment.NewLine + description + Environment.NewLine;
     254      MessageBox.Show(description, shortMessage);
     255    }
     256    #endregion
    460257  }
    461258}
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginManager.Designer.cs

    r3474 r3547  
    7474      this.localPluginsListView.UseCompatibleStateImageBehavior = false;
    7575      this.localPluginsListView.View = System.Windows.Forms.View.Details;
    76       this.localPluginsListView.ItemActivate += new System.EventHandler(this.localPluginsListView_ItemActivate);
    77       this.localPluginsListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.pluginsListView_ItemChecked);
     76      //this.localPluginsListView.ItemActivate += new System.EventHandler(this.localPluginsListView_ItemActivate);
     77      //this.localPluginsListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.pluginsListView_ItemChecked);
    7878      //
    7979      // nameHeader
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginManager.cs

    r3474 r3547  
    3434    public event ItemCheckedEventHandler ItemChecked;
    3535
    36     private BackgroundWorker refreshPluginListBackgroundWorker = new BackgroundWorker();
    37 
    38     private ListViewGroup enabledPluginsGroup;
    39     private ListViewGroup disabledPluginsGroup;
    4036
    4137    public LocalPluginManagerView() {
    4238      InitializeComponent();
    4339
    44       enabledPluginsGroup = localPluginsListView.Groups["activePluginsGroup"];
    45       disabledPluginsGroup = localPluginsListView.Groups["disabledPluginsGroup"];
     40     
    4641    }
    47 
    48     private IEnumerable<PluginDescription> plugins;
    49     public IEnumerable<PluginDescription> Plugins {
    50       get { return plugins; }
    51       set {
    52         if (value != plugins) {
    53           this.plugins = value;
    54           UpdateControl();
    55         }
    56       }
    57     }
    58 
    59     public IEnumerable<IPluginDescription> CheckedPlugins {
    60       get {
    61         return (from item in localPluginsListView.Items.OfType<ListViewItem>()
    62                 where item.Checked
    63                 let plugin = item.Tag as IPluginDescription
    64                 where plugin != null
    65                 select plugin).ToList();
    66       }
    67     }
    68 
    69     private void UpdateControl() {
    70       ClearPluginList();
    71       localPluginsListView.SuppressItemCheckedEvents = true;
    72       foreach (var plugin in plugins) {
    73         var item = CreateListViewItem(plugin);
    74         if (plugin.PluginState == PluginState.Enabled) {
    75           item.Group = enabledPluginsGroup;
    76         } else if (plugin.PluginState == PluginState.Disabled) {
    77           item.Group = disabledPluginsGroup;
    78         }
    79         localPluginsListView.Items.Add(item);
    80       }
    81       localPluginsListView.SuppressItemCheckedEvents = false;
    82     }
    83 
    84     private void ClearPluginList() {
    85       List<ListViewItem> itemsToRemove = new List<ListViewItem>(from item in localPluginsListView.Items.OfType<ListViewItem>()
    86                                                                 select item);
    87       itemsToRemove.ForEach(item => localPluginsListView.Items.Remove(item));
    88     }
    89 
    90     private ListViewItem CreateListViewItem(PluginDescription plugin) {
    91       ListViewItem item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), plugin.Description });
    92       item.Tag = plugin;
    93       return item;
    94     }
    95 
    96     private void pluginsListView_ItemChecked(object sender, ItemCheckedEventArgs e) {
    97       // checked items are marked for removal
    98       if (e.Item.Checked) {
    99         List<ListViewItem> modifiedItems = new List<ListViewItem>();
    100         foreach (ListViewItem item in localPluginsListView.SelectedItems) {
    101           var plugin = (IPluginDescription)item.Tag;
    102           modifiedItems.Add(item);
    103           // also uncheck all dependent plugins
    104           foreach (ListViewItem dependentItem in localPluginsListView.Items) {
    105             var dependent = (IPluginDescription)dependentItem.Tag;
    106             if (!dependentItem.Checked && (from dep in dependent.Dependencies
    107                                            where dep.Name == plugin.Name
    108                                            where dep.Version == plugin.Version
    109                                            select dep).Any()) {
    110               modifiedItems.Add(dependentItem);
    111             }
    112           }
    113         }
    114         localPluginsListView.CheckItems(modifiedItems);
    115       } else {
    116         List<ListViewItem> modifiedItems = new List<ListViewItem>();
    117         foreach (ListViewItem item in localPluginsListView.SelectedItems) {
    118           var plugin = (IPluginDescription)item.Tag;
    119           modifiedItems.Add(item);
    120         }
    121         localPluginsListView.UncheckItems(modifiedItems);
    122       }
    123       OnItemChecked(e);
    124     }
    125 
    126     private void OnItemChecked(ItemCheckedEventArgs e) {
    127       if (ItemChecked != null) ItemChecked(this, e);
    128     }
    129 
    130     private void localPluginsListView_ItemActivate(object sender, EventArgs e) {
    131       if (localPluginsListView.SelectedItems.Count > 0) {
    132         var plugin = (PluginDescription)localPluginsListView.SelectedItems[0].Tag;
    133         PluginView pluginView = new PluginView(plugin);
    134         pluginView.Show();
    135       }
    136     }
     42   
    13743  }
    13844}
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginEditor.Designer.cs

    r3474 r3547  
    4545    /// </summary>
    4646    private void InitializeComponent() {
     47      this.uploadButton = new System.Windows.Forms.Button();
    4748      this.refreshButton = new System.Windows.Forms.Button();
    48       this.uploadButton = new System.Windows.Forms.Button();
    4949      this.listView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView();
    5050      this.pluginNameHeader = new System.Windows.Forms.ColumnHeader();
     
    5454      this.SuspendLayout();
    5555      //
    56       // refreshButton
    57       //
    58       this.refreshButton.Location = new System.Drawing.Point(3, 3);
    59       this.refreshButton.Name = "refreshButton";
    60       this.refreshButton.Size = new System.Drawing.Size(75, 23);
    61       this.refreshButton.TabIndex = 6;
    62       this.refreshButton.Text = "Refresh";
    63       this.refreshButton.UseVisualStyleBackColor = true;
    64       this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
    65       //
    6656      // uploadButton
    6757      //
    6858      this.uploadButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
    69       this.uploadButton.Location = new System.Drawing.Point(3, 482);
     59      this.uploadButton.Enabled = false;
     60      this.uploadButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_CommonElements_Objects_Arrow_Up;
     61      this.uploadButton.Location = new System.Drawing.Point(78, 477);
    7062      this.uploadButton.Name = "uploadButton";
    71       this.uploadButton.Size = new System.Drawing.Size(75, 23);
     63      this.uploadButton.Size = new System.Drawing.Size(114, 31);
    7264      this.uploadButton.TabIndex = 7;
    73       this.uploadButton.Text = "Upload";
     65      this.uploadButton.Text = "Upload Selected";
     66      this.uploadButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
    7467      this.uploadButton.UseVisualStyleBackColor = true;
    7568      this.uploadButton.Click += new System.EventHandler(this.uploadButton_Click);
     69      //
     70      // refreshButton
     71      //
     72      this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
     73      this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_Objects_Internet;
     74      this.refreshButton.Location = new System.Drawing.Point(0, 477);
     75      this.refreshButton.Name = "refreshButton";
     76      this.refreshButton.Size = new System.Drawing.Size(72, 31);
     77      this.refreshButton.TabIndex = 6;
     78      this.refreshButton.Text = "Refresh";
     79      this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
     80      this.refreshButton.UseVisualStyleBackColor = true;
     81      this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
    7682      //
    7783      // listView
     
    8692            this.serverVersionHeader,
    8793            this.descriptionHeader});
    88       this.listView.Location = new System.Drawing.Point(3, 32);
     94      this.listView.Location = new System.Drawing.Point(0, 0);
    8995      this.listView.Name = "listView";
    90       this.listView.Size = new System.Drawing.Size(536, 444);
     96      this.listView.Size = new System.Drawing.Size(539, 471);
    9197      this.listView.SuppressItemCheckedEvents = false;
    9298      this.listView.TabIndex = 8;
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginEditor.cs

    r3509 r3547  
    3939    private BackgroundWorker updateServerPluginsWorker;
    4040
     41    private PluginManager pluginManager;
     42    public PluginManager PluginManager {
     43      get { return pluginManager; }
     44      set {
     45        // if (value == null) throw new ArgumentNullException();
     46        pluginManager = value;
     47      }
     48    }
     49
    4150    public PluginEditor() {
    4251      InitializeComponent();
     
    5867    #region refresh plugins from server backgroundworker
    5968    void updateServerPluginsWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
    60       if (!e.Cancelled && e.Result != null) {
     69      if (e.Error != null) {
     70        MessageBox.Show("There was an error while connecting to the server." + Environment.NewLine +
     71                   "Please check your connection settings and user credentials.");
     72        UpdateControlsDisconnectedState();
     73      } else {
    6174        // refresh local plugins
    6275        localAndServerPlugins.Clear();
    63         foreach (var plugin in ApplicationManager.Manager.Plugins) {
     76        foreach (var plugin in pluginManager.Plugins) {
    6477          localAndServerPlugins.Add(plugin, null);
    6578        }
     
    88101        listView.CheckBoxes = true;
    89102        UpdateControlsConnectedState();
    90       } else {
    91         UpdateControlsDisconnectedState();
    92103      }
    93104      // make sure cursor is set correctly
     
    96107
    97108    void updateServerPluginsWorker_DoWork(object sender, DoWorkEventArgs e) {
    98       try {
    99         var client = DeploymentService.UpdateClientFactory.CreateClient();
    100         e.Result = client.GetPlugins();
    101         e.Cancel = false;
    102       }
    103       catch (EndpointNotFoundException) {
    104         e.Result = null;
    105         e.Cancel = true;
    106       }
    107       catch (FaultException) {
    108         e.Result = null;
    109         e.Cancel = true;
    110       }
     109      var client = DeploymentService.UpdateClientFactory.CreateClient();
     110      e.Result = client.GetPlugins();
    111111    }
    112112    #endregion
     
    115115    void pluginUploadWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
    116116      Cursor = Cursors.Default;
    117       if (e.Cancelled) {
     117      if (e.Error != null) {
     118        MessageBox.Show("There was an error while connecting to the server." + Environment.NewLine +
     119                   "Please check your connection settings and user credentials.");
    118120        UpdateControlsDisconnectedState();
    119121      } else {
     
    125127
    126128    void pluginUploadWorker_DoWork(object sender, DoWorkEventArgs e) {
    127       try {
    128         var selectedPlugins = (IEnumerable<IPluginDescription>)e.Argument;
    129         DeploymentService.AdminClient adminClient = DeploymentService.AdminClientFactory.CreateClient();
    130 
    131         foreach (var plugin in IteratePlugins(selectedPlugins)) {
    132           SetMainFormStatusBar("Uploading", plugin);
    133           adminClient.DeployPlugin(MakePluginDescription(plugin), CreateZipPackage(plugin));
    134         }
    135         e.Cancel = false;
    136       }
    137       catch (EndpointNotFoundException) {
    138         e.Cancel = true;
    139       }
    140       catch (FaultException) {
    141         e.Cancel = true;
     129      var selectedPlugins = (IEnumerable<IPluginDescription>)e.Argument;
     130      DeploymentService.AdminClient adminClient = DeploymentService.AdminClientFactory.CreateClient();
     131
     132      foreach (var plugin in IteratePlugins(selectedPlugins)) {
     133        SetMainFormStatusBar("Uploading", plugin);
     134        adminClient.DeployPlugin(MakePluginDescription(plugin), CreateZipPackage(plugin));
    142135      }
    143136    }
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginView.Designer.cs

    r3474 r3547  
    7474      //
    7575      this.nameLabel.AutoSize = true;
    76       this.nameLabel.Location = new System.Drawing.Point(3, 6);
     76      this.nameLabel.Location = new System.Drawing.Point(12, 6);
    7777      this.nameLabel.Name = "nameLabel";
    7878      this.nameLabel.Size = new System.Drawing.Size(38, 13);
     
    8484      this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    8585                  | System.Windows.Forms.AnchorStyles.Right)));
    86       this.nameTextBox.Location = new System.Drawing.Point(74, 3);
     86      this.nameTextBox.Location = new System.Drawing.Point(81, 3);
    8787      this.nameTextBox.Name = "nameTextBox";
    8888      this.nameTextBox.ReadOnly = true;
    89       this.nameTextBox.Size = new System.Drawing.Size(284, 20);
     89      this.nameTextBox.Size = new System.Drawing.Size(268, 20);
    9090      this.nameTextBox.TabIndex = 1;
    9191      //
     
    9494      this.versionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    9595                  | System.Windows.Forms.AnchorStyles.Right)));
    96       this.versionTextBox.Location = new System.Drawing.Point(74, 29);
     96      this.versionTextBox.Location = new System.Drawing.Point(81, 29);
    9797      this.versionTextBox.Name = "versionTextBox";
    9898      this.versionTextBox.ReadOnly = true;
    99       this.versionTextBox.Size = new System.Drawing.Size(284, 20);
     99      this.versionTextBox.Size = new System.Drawing.Size(268, 20);
    100100      this.versionTextBox.TabIndex = 3;
    101101      //
     
    103103      //
    104104      this.versionLabel.AutoSize = true;
    105       this.versionLabel.Location = new System.Drawing.Point(3, 32);
     105      this.versionLabel.Location = new System.Drawing.Point(12, 32);
    106106      this.versionLabel.Name = "versionLabel";
    107107      this.versionLabel.Size = new System.Drawing.Size(45, 13);
     
    113113      this.contactTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    114114                  | System.Windows.Forms.AnchorStyles.Right)));
    115       this.contactTextBox.Location = new System.Drawing.Point(74, 55);
     115      this.contactTextBox.Location = new System.Drawing.Point(81, 55);
    116116      this.contactTextBox.Name = "contactTextBox";
    117117      this.contactTextBox.ReadOnly = true;
    118       this.contactTextBox.Size = new System.Drawing.Size(284, 20);
     118      this.contactTextBox.Size = new System.Drawing.Size(268, 20);
    119119      this.contactTextBox.TabIndex = 5;
    120120      //
     
    122122      //
    123123      this.contactInfoLabel.AutoSize = true;
    124       this.contactInfoLabel.Location = new System.Drawing.Point(3, 58);
     124      this.contactInfoLabel.Location = new System.Drawing.Point(12, 58);
    125125      this.contactInfoLabel.Name = "contactInfoLabel";
    126126      this.contactInfoLabel.Size = new System.Drawing.Size(47, 13);
     
    131131      //
    132132      this.licenseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
    133       this.licenseButton.Location = new System.Drawing.Point(3, 586);
     133      this.licenseButton.Location = new System.Drawing.Point(3, 575);
    134134      this.licenseButton.Name = "licenseButton";
    135135      this.licenseButton.Size = new System.Drawing.Size(103, 23);
     
    145145                  | System.Windows.Forms.AnchorStyles.Right)));
    146146      this.dependenciesGroupBox.Controls.Add(this.dependenciesListView);
    147       this.dependenciesGroupBox.Location = new System.Drawing.Point(6, 408);
     147      this.dependenciesGroupBox.Location = new System.Drawing.Point(12, 408);
    148148      this.dependenciesGroupBox.Name = "dependenciesGroupBox";
    149       this.dependenciesGroupBox.Size = new System.Drawing.Size(355, 172);
     149      this.dependenciesGroupBox.Size = new System.Drawing.Size(337, 145);
    150150      this.dependenciesGroupBox.TabIndex = 1;
    151151      this.dependenciesGroupBox.TabStop = false;
     
    160160      this.dependenciesListView.Location = new System.Drawing.Point(3, 16);
    161161      this.dependenciesListView.Name = "dependenciesListView";
    162       this.dependenciesListView.Size = new System.Drawing.Size(349, 153);
     162      this.dependenciesListView.Size = new System.Drawing.Size(331, 126);
    163163      this.dependenciesListView.SmallImageList = this.imageList;
    164164      this.dependenciesListView.TabIndex = 0;
     
    191191      this.filesListView.Location = new System.Drawing.Point(3, 16);
    192192      this.filesListView.Name = "filesListView";
    193       this.filesListView.Size = new System.Drawing.Size(346, 140);
     193      this.filesListView.Size = new System.Drawing.Size(331, 140);
    194194      this.filesListView.SmallImageList = this.imageList;
    195195      this.filesListView.TabIndex = 0;
     
    212212                  | System.Windows.Forms.AnchorStyles.Right)));
    213213      this.filesGroupBox.Controls.Add(this.filesListView);
    214       this.filesGroupBox.Location = new System.Drawing.Point(9, 243);
     214      this.filesGroupBox.Location = new System.Drawing.Point(12, 243);
    215215      this.filesGroupBox.Name = "filesGroupBox";
    216       this.filesGroupBox.Size = new System.Drawing.Size(352, 159);
     216      this.filesGroupBox.Size = new System.Drawing.Size(337, 159);
    217217      this.filesGroupBox.TabIndex = 11;
    218218      this.filesGroupBox.TabStop = false;
     
    223223      this.stateTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    224224                  | System.Windows.Forms.AnchorStyles.Right)));
    225       this.stateTextBox.Location = new System.Drawing.Point(74, 145);
     225      this.stateTextBox.Location = new System.Drawing.Point(81, 145);
    226226      this.stateTextBox.Name = "stateTextBox";
    227227      this.stateTextBox.ReadOnly = true;
    228       this.stateTextBox.Size = new System.Drawing.Size(284, 20);
     228      this.stateTextBox.Size = new System.Drawing.Size(268, 20);
    229229      this.stateTextBox.TabIndex = 13;
    230230      //
     
    232232      //
    233233      this.stateLabel.AutoSize = true;
    234       this.stateLabel.Location = new System.Drawing.Point(3, 148);
     234      this.stateLabel.Location = new System.Drawing.Point(12, 148);
    235235      this.stateLabel.Name = "stateLabel";
    236236      this.stateLabel.Size = new System.Drawing.Size(35, 13);
     
    241241      //
    242242      this.errorLabel.AutoSize = true;
    243       this.errorLabel.Location = new System.Drawing.Point(3, 174);
     243      this.errorLabel.Location = new System.Drawing.Point(12, 174);
    244244      this.errorLabel.Name = "errorLabel";
    245245      this.errorLabel.Size = new System.Drawing.Size(32, 13);
     
    250250      //
    251251      this.descriptionLabel.AutoSize = true;
    252       this.descriptionLabel.Location = new System.Drawing.Point(3, 84);
     252      this.descriptionLabel.Location = new System.Drawing.Point(12, 84);
    253253      this.descriptionLabel.Name = "descriptionLabel";
    254254      this.descriptionLabel.Size = new System.Drawing.Size(63, 13);
     
    260260      this.errorTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    261261                  | System.Windows.Forms.AnchorStyles.Right)));
    262       this.errorTextBox.Location = new System.Drawing.Point(74, 171);
     262      this.errorTextBox.Location = new System.Drawing.Point(81, 171);
    263263      this.errorTextBox.Name = "errorTextBox";
    264264      this.errorTextBox.ReadOnly = true;
    265       this.errorTextBox.Size = new System.Drawing.Size(284, 66);
     265      this.errorTextBox.Size = new System.Drawing.Size(268, 66);
    266266      this.errorTextBox.TabIndex = 18;
    267267      this.errorTextBox.Text = "";
     
    271271      this.descriptionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    272272                  | System.Windows.Forms.AnchorStyles.Right)));
    273       this.descriptionTextBox.Location = new System.Drawing.Point(74, 81);
     273      this.descriptionTextBox.Location = new System.Drawing.Point(81, 81);
    274274      this.descriptionTextBox.Name = "descriptionTextBox";
    275275      this.descriptionTextBox.ReadOnly = true;
    276       this.descriptionTextBox.Size = new System.Drawing.Size(284, 58);
     276      this.descriptionTextBox.Size = new System.Drawing.Size(268, 58);
    277277      this.descriptionTextBox.TabIndex = 19;
    278278      this.descriptionTextBox.Text = "";
     
    282282      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    283283      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    284       this.ClientSize = new System.Drawing.Size(345, 576);
     284      this.ClientSize = new System.Drawing.Size(361, 565);
    285285      this.Controls.Add(this.descriptionTextBox);
    286286      this.Controls.Add(this.errorTextBox);
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginView.cs

    r3509 r3547  
    3232
    3333namespace HeuristicLab.PluginInfrastructure.Advanced {
    34   internal partial class PluginView : UserControl {
     34  internal partial class PluginView : Form {
    3535    private const string IMAGE_KEY_ASSEMBLY = "Assembly";
    3636    private const string IMAGE_KEY_FILE = "File";
     
    4949
    5050      this.plugin = plugin;
    51       this.Name = "Plugin Details: " + plugin.ToString();
     51      this.Text = "Plugin Details: " + plugin.ToString();
    5252      UpdateControls();
    5353    }
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/ProductEditor.Designer.cs

    r3474 r3547  
    4848      this.refreshButton = new System.Windows.Forms.Button();
    4949      this.uploadButton = new System.Windows.Forms.Button();
    50       this.newProductButton = new System.Windows.Forms.Button();
    5150      this.splitContainer = new System.Windows.Forms.SplitContainer();
    5251      this.productsGroupBox = new System.Windows.Forms.GroupBox();
     
    5756      this.detailsGroupBox = new System.Windows.Forms.GroupBox();
    5857      this.pluginsGroupBox = new System.Windows.Forms.GroupBox();
    59       this.pluginListView = new HeuristicLab.PluginInfrastructure.Advanced.PluginListView();
    6058      this.versionTextBox = new System.Windows.Forms.TextBox();
    6159      this.nameLabel = new System.Windows.Forms.Label();
     
    6361      this.versionLabel = new System.Windows.Forms.Label();
    6462      this.pluginImageList = new System.Windows.Forms.ImageList(this.components);
     63      this.newProductButton = new System.Windows.Forms.Button();
    6564      this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
     65      this.pluginListView = new HeuristicLab.PluginInfrastructure.Advanced.PluginListView();
    6666      this.splitContainer.Panel1.SuspendLayout();
    6767      this.splitContainer.Panel2.SuspendLayout();
     
    7575      // refreshButton
    7676      //
    77       this.refreshButton.Location = new System.Drawing.Point(6, 19);
     77      this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
     78      this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_Objects_Internet;
     79      this.refreshButton.Location = new System.Drawing.Point(6, 389);
    7880      this.refreshButton.Name = "refreshButton";
    79       this.refreshButton.Size = new System.Drawing.Size(75, 23);
     81      this.refreshButton.Size = new System.Drawing.Size(73, 31);
    8082      this.refreshButton.TabIndex = 1;
    8183      this.refreshButton.Text = "Refresh";
     84      this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
    8285      this.refreshButton.UseVisualStyleBackColor = true;
    8386      this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
     
    8790      this.uploadButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
    8891      this.uploadButton.Enabled = false;
    89       this.uploadButton.Location = new System.Drawing.Point(6, 397);
     92      this.uploadButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_CommonElements_Objects_Arrow_Up;
     93      this.uploadButton.Location = new System.Drawing.Point(85, 389);
    9094      this.uploadButton.Name = "uploadButton";
    91       this.uploadButton.Size = new System.Drawing.Size(96, 23);
     95      this.uploadButton.Size = new System.Drawing.Size(120, 31);
    9296      this.uploadButton.TabIndex = 2;
    9397      this.uploadButton.Text = "Upload Products";
     98      this.uploadButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
    9499      this.uploadButton.UseVisualStyleBackColor = true;
    95100      this.uploadButton.Click += new System.EventHandler(this.saveButton_Click);
    96       //
    97       // newProductButton
    98       //
    99       this.newProductButton.Enabled = false;
    100       this.newProductButton.Location = new System.Drawing.Point(87, 19);
    101       this.newProductButton.Name = "newProductButton";
    102       this.newProductButton.Size = new System.Drawing.Size(91, 23);
    103       this.newProductButton.TabIndex = 3;
    104       this.newProductButton.Text = "New product";
    105       this.newProductButton.UseVisualStyleBackColor = true;
    106       this.newProductButton.Click += new System.EventHandler(this.newProductButton_Click);
    107101      //
    108102      // splitContainer
     
    125119      // productsGroupBox
    126120      //
     121      this.productsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     122                  | System.Windows.Forms.AnchorStyles.Left)
     123                  | System.Windows.Forms.AnchorStyles.Right)));
    127124      this.productsGroupBox.Controls.Add(this.uploadButton);
    128125      this.productsGroupBox.Controls.Add(this.newProductButton);
    129126      this.productsGroupBox.Controls.Add(this.productsListView);
    130127      this.productsGroupBox.Controls.Add(this.refreshButton);
    131       this.productsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
    132128      this.productsGroupBox.Location = new System.Drawing.Point(0, 0);
    133129      this.productsGroupBox.Name = "productsGroupBox";
     
    147143      this.productsListView.Enabled = false;
    148144      this.productsListView.FullRowSelect = true;
    149       this.productsListView.Location = new System.Drawing.Point(6, 48);
     145      this.productsListView.Location = new System.Drawing.Point(6, 56);
    150146      this.productsListView.MultiSelect = false;
    151147      this.productsListView.Name = "productsListView";
    152       this.productsListView.Size = new System.Drawing.Size(309, 343);
     148      this.productsListView.Size = new System.Drawing.Size(309, 327);
    153149      this.productsListView.SmallImageList = this.productImageList;
    154150      this.productsListView.TabIndex = 4;
     
    175171      // detailsGroupBox
    176172      //
     173      this.detailsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     174                  | System.Windows.Forms.AnchorStyles.Left)
     175                  | System.Windows.Forms.AnchorStyles.Right)));
    177176      this.detailsGroupBox.Controls.Add(this.pluginsGroupBox);
    178177      this.detailsGroupBox.Controls.Add(this.versionTextBox);
     
    180179      this.detailsGroupBox.Controls.Add(this.nameTextBox);
    181180      this.detailsGroupBox.Controls.Add(this.versionLabel);
    182       this.detailsGroupBox.Dock = System.Windows.Forms.DockStyle.Fill;
    183181      this.detailsGroupBox.Location = new System.Drawing.Point(0, 0);
    184182      this.detailsGroupBox.Name = "detailsGroupBox";
     
    201199      this.pluginsGroupBox.Text = "Plugins";
    202200      //
     201      // versionTextBox
     202      //
     203      this.versionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
     204                  | System.Windows.Forms.AnchorStyles.Right)));
     205      this.versionTextBox.Enabled = false;
     206      this.versionTextBox.Location = new System.Drawing.Point(57, 45);
     207      this.versionTextBox.Name = "versionTextBox";
     208      this.versionTextBox.Size = new System.Drawing.Size(277, 20);
     209      this.versionTextBox.TabIndex = 5;
     210      this.versionTextBox.TextChanged += new System.EventHandler(this.versionTextBox_TextChanged);
     211      //
     212      // nameLabel
     213      //
     214      this.nameLabel.AutoSize = true;
     215      this.nameLabel.Enabled = false;
     216      this.nameLabel.Location = new System.Drawing.Point(13, 22);
     217      this.nameLabel.Name = "nameLabel";
     218      this.nameLabel.Size = new System.Drawing.Size(38, 13);
     219      this.nameLabel.TabIndex = 2;
     220      this.nameLabel.Text = "Name:";
     221      //
     222      // nameTextBox
     223      //
     224      this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
     225                  | System.Windows.Forms.AnchorStyles.Right)));
     226      this.nameTextBox.Enabled = false;
     227      this.nameTextBox.Location = new System.Drawing.Point(57, 19);
     228      this.nameTextBox.Name = "nameTextBox";
     229      this.nameTextBox.Size = new System.Drawing.Size(277, 20);
     230      this.nameTextBox.TabIndex = 3;
     231      this.nameTextBox.TextChanged += new System.EventHandler(this.nameTextBox_TextChanged);
     232      //
     233      // versionLabel
     234      //
     235      this.versionLabel.AutoSize = true;
     236      this.versionLabel.Enabled = false;
     237      this.versionLabel.Location = new System.Drawing.Point(6, 48);
     238      this.versionLabel.Name = "versionLabel";
     239      this.versionLabel.Size = new System.Drawing.Size(45, 13);
     240      this.versionLabel.TabIndex = 4;
     241      this.versionLabel.Text = "Version:";
     242      //
     243      // pluginImageList
     244      //
     245      this.pluginImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
     246      this.pluginImageList.ImageSize = new System.Drawing.Size(16, 16);
     247      this.pluginImageList.TransparentColor = System.Drawing.Color.Transparent;
     248      //
     249      // newProductButton
     250      //
     251      this.newProductButton.Enabled = false;
     252      this.newProductButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_CommonElements_Actions_Add;
     253      this.newProductButton.Location = new System.Drawing.Point(6, 19);
     254      this.newProductButton.Name = "newProductButton";
     255      this.newProductButton.Size = new System.Drawing.Size(104, 31);
     256      this.newProductButton.TabIndex = 3;
     257      this.newProductButton.Text = "Create Product";
     258      this.newProductButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
     259      this.newProductButton.UseVisualStyleBackColor = true;
     260      this.newProductButton.Click += new System.EventHandler(this.newProductButton_Click);
     261      //
     262      // errorProvider
     263      //
     264      this.errorProvider.ContainerControl = this;
     265      //
    203266      // pluginListView
    204267      //
    205       this.pluginListView.Dock = System.Windows.Forms.DockStyle.Fill;
     268      this.pluginListView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     269                  | System.Windows.Forms.AnchorStyles.Left)
     270                  | System.Windows.Forms.AnchorStyles.Right)));
    206271      this.pluginListView.Enabled = false;
    207272      this.pluginListView.Location = new System.Drawing.Point(3, 16);
     
    211276      this.pluginListView.TabIndex = 7;
    212277      this.pluginListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.pluginListView_ItemChecked);
    213       //
    214       // versionTextBox
    215       //
    216       this.versionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    217                   | System.Windows.Forms.AnchorStyles.Right)));
    218       this.versionTextBox.Enabled = false;
    219       this.versionTextBox.Location = new System.Drawing.Point(57, 45);
    220       this.versionTextBox.Name = "versionTextBox";
    221       this.versionTextBox.Size = new System.Drawing.Size(277, 20);
    222       this.versionTextBox.TabIndex = 5;
    223       this.versionTextBox.TextChanged += new System.EventHandler(this.versionTextBox_TextChanged);
    224       //
    225       // nameLabel
    226       //
    227       this.nameLabel.AutoSize = true;
    228       this.nameLabel.Enabled = false;
    229       this.nameLabel.Location = new System.Drawing.Point(13, 22);
    230       this.nameLabel.Name = "nameLabel";
    231       this.nameLabel.Size = new System.Drawing.Size(38, 13);
    232       this.nameLabel.TabIndex = 2;
    233       this.nameLabel.Text = "Name:";
    234       //
    235       // nameTextBox
    236       //
    237       this.nameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
    238                   | System.Windows.Forms.AnchorStyles.Right)));
    239       this.nameTextBox.Enabled = false;
    240       this.nameTextBox.Location = new System.Drawing.Point(57, 19);
    241       this.nameTextBox.Name = "nameTextBox";
    242       this.nameTextBox.Size = new System.Drawing.Size(277, 20);
    243       this.nameTextBox.TabIndex = 3;
    244       this.nameTextBox.TextChanged += new System.EventHandler(this.nameTextBox_TextChanged);
    245       //
    246       // versionLabel
    247       //
    248       this.versionLabel.AutoSize = true;
    249       this.versionLabel.Enabled = false;
    250       this.versionLabel.Location = new System.Drawing.Point(6, 48);
    251       this.versionLabel.Name = "versionLabel";
    252       this.versionLabel.Size = new System.Drawing.Size(45, 13);
    253       this.versionLabel.TabIndex = 4;
    254       this.versionLabel.Text = "Version:";
    255       //
    256       // pluginImageList
    257       //
    258       this.pluginImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
    259       this.pluginImageList.ImageSize = new System.Drawing.Size(16, 16);
    260       this.pluginImageList.TransparentColor = System.Drawing.Color.Transparent;
    261       //
    262       // errorProvider
    263       //
    264       this.errorProvider.ContainerControl = this;
    265278      //
    266279      // ProductEditor
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/ProductEditor.cs

    r3474 r3547  
    6060      var products = (IEnumerable<DeploymentService.ProductDescription>)e.Argument;
    6161      var adminClient = DeploymentService.AdminClientFactory.CreateClient();
    62       try {
    63         foreach (var product in products) {
    64           adminClient.DeployProduct(product);
    65         }
    66         e.Cancel = false;
    67       }
    68       catch (FaultException) {
     62      foreach (var product in products) {
     63        adminClient.DeployProduct(product);
    6964      }
    7065    }
    7166
    7267    private void uploadChangedProductsWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
    73       this.Enabled = true;
    74       refreshProductsWorker.RunWorkerAsync();
     68      if (e.Error != null) {
     69        MessageBox.Show("There was an error while connecting to the server." + Environment.NewLine +
     70           "Please check your connection settings and user credentials.");
     71      } else {
     72        this.Enabled = true;
     73        refreshProductsWorker.RunWorkerAsync();
     74      }
    7575    }
    7676    #endregion
     
    7979    private void refreshProductsWorker_DoWork(object sender, DoWorkEventArgs e) {
    8080      var updateClient = DeploymentService.UpdateClientFactory.CreateClient();
    81       try {
    82         e.Result = new object[] { updateClient.GetProducts(), updateClient.GetPlugins() };
    83       }
    84       catch (FaultException) {
    85         e.Cancel = true;
    86       }
     81      e.Result = new object[] { updateClient.GetProducts(), updateClient.GetPlugins() };
    8782    }
    8883
    8984    private void refreshProductsWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
    90       if (!e.Cancelled && e.Result != null) {
     85      if (e.Error != null) {
     86        MessageBox.Show("There was an error while connecting to the server." + Environment.NewLine +
     87                   "Please check your connection settings and user credentials.");
     88      } else {
    9189        this.products = new List<DeploymentService.ProductDescription>(
    9290          (DeploymentService.ProductDescription[])((object[])e.Result)[0]);
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/RemotePluginInstaller.Designer.cs

    r3474 r3547  
    5151      this.versionHeader = new System.Windows.Forms.ColumnHeader();
    5252      this.descriptionHeader = new System.Windows.Forms.ColumnHeader();
     53      this.refreshButton = new System.Windows.Forms.Button();
     54      this.installButton = new System.Windows.Forms.Button();
    5355      this.SuspendLayout();
    5456      //
     
    7577      this.remotePluginsListView.Location = new System.Drawing.Point(0, 0);
    7678      this.remotePluginsListView.Name = "remotePluginsListView";
    77       this.remotePluginsListView.Size = new System.Drawing.Size(533, 558);
     79      this.remotePluginsListView.Size = new System.Drawing.Size(533, 527);
    7880      this.remotePluginsListView.SuppressItemCheckedEvents = false;
    7981      this.remotePluginsListView.TabIndex = 0;
     
    9799      this.descriptionHeader.Width = 250;
    98100      //
     101      // refreshButton
     102      //
     103      this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
     104      this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_Objects_Internet;
     105      this.refreshButton.Location = new System.Drawing.Point(0, 533);
     106      this.refreshButton.Name = "refreshButton";
     107      this.refreshButton.Size = new System.Drawing.Size(72, 25);
     108      this.refreshButton.TabIndex = 16;
     109      this.refreshButton.Text = "Refresh";
     110      this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
     111      this.refreshButton.UseVisualStyleBackColor = true;
     112      this.refreshButton.Click += new System.EventHandler(this.refreshRemoteButton_Click);
     113      //
     114      // installButton
     115      //
     116      this.installButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
     117      this.installButton.Enabled = false;
     118      this.installButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_Objects_Install;
     119      this.installButton.Location = new System.Drawing.Point(78, 533);
     120      this.installButton.Name = "installButton";
     121      this.installButton.Size = new System.Drawing.Size(140, 25);
     122      this.installButton.TabIndex = 17;
     123      this.installButton.Text = "Install Selected Items";
     124      this.installButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
     125      this.installButton.UseVisualStyleBackColor = true;
     126      this.installButton.Click += new System.EventHandler(this.installButton_Click);
     127      //
    99128      // RemotePluginInstallerView
    100129      //
    101130      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    102131      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     132      this.Controls.Add(this.refreshButton);
     133      this.Controls.Add(this.installButton);
    103134      this.Controls.Add(this.remotePluginsListView);
    104135      this.Name = "RemotePluginInstallerView";
     
    114145    private System.Windows.Forms.ColumnHeader versionHeader;
    115146    private System.Windows.Forms.ColumnHeader descriptionHeader;
     147    private System.Windows.Forms.Button refreshButton;
     148    private System.Windows.Forms.Button installButton;
    116149  }
    117150}
  • trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/RemotePluginInstaller.cs

    r3474 r3547  
    2727using System.Text;
    2828using System.Windows.Forms;
     29using HeuristicLab.PluginInfrastructure.Manager;
    2930
    3031namespace HeuristicLab.PluginInfrastructure.Advanced {
    31   internal partial class RemotePluginInstallerView : UserControl {
    32     public event ItemCheckedEventHandler ItemChecked;
     32  internal partial class RemotePluginInstallerView : InstallationManagerControl {
     33    private class RefreshBackgroundWorkerResult {
     34      public IEnumerable<IPluginDescription> RemotePlugins { get; set; }
     35      public IEnumerable<DeploymentService.ProductDescription> RemoteProducts { get; set; }
     36    }
     37    private class UpdateOrInstallPluginsBackgroundWorkerArgument {
     38      public IEnumerable<IPluginDescription> PluginsToUpdate { get; set; }
     39      public IEnumerable<IPluginDescription> PluginsToInstall { get; set; }
     40    }
     41    private const string PluginDiscoveryMessage = "Looking for new plugins...";
     42    private BackgroundWorker refreshServerPluginsBackgroundWorker;
     43    private BackgroundWorker updateOrInstallPluginsBackgroundWorker;
    3344
    3445    private ListViewGroup newPluginsGroup;
     
    4758    }
    4859
    49     public RemotePluginInstallerView() {
    50       InitializeComponent();
    51 
    52       newPluginsGroup = remotePluginsListView.Groups["newPluginsGroup"];
    53       productsGroup = remotePluginsListView.Groups["productsGroup"];
    54       allPluginsGroup = remotePluginsListView.Groups["allPluginsGroup"];
    55     }
    56 
    5760    private IEnumerable<DeploymentService.ProductDescription> products;
    5861    public IEnumerable<DeploymentService.ProductDescription> Products {
     
    97100      }
    98101    }
     102
     103    private InstallationManager installationManager;
     104    public InstallationManager InstallationManager {
     105      get { return installationManager; }
     106      set { installationManager = value; }
     107    }
     108    private PluginManager pluginManager;
     109    public PluginManager PluginManager {
     110      get { return pluginManager; }
     111      set { pluginManager = value; }
     112    }
     113    public RemotePluginInstallerView() {
     114      InitializeComponent();
     115
     116      refreshServerPluginsBackgroundWorker = new BackgroundWorker();
     117      refreshServerPluginsBackgroundWorker.DoWork += new DoWorkEventHandler(refreshServerPluginsBackgroundWorker_DoWork);
     118      refreshServerPluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(refreshServerPluginsBackgroundWorker_RunWorkerCompleted);
     119
     120      updateOrInstallPluginsBackgroundWorker = new BackgroundWorker();
     121      updateOrInstallPluginsBackgroundWorker.DoWork += new DoWorkEventHandler(updateOrInstallPluginsBackgroundWorker_DoWork);
     122      updateOrInstallPluginsBackgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(updateOrInstallPluginsBackgroundWorker_RunWorkerCompleted);
     123
     124      newPluginsGroup = remotePluginsListView.Groups["newPluginsGroup"];
     125      productsGroup = remotePluginsListView.Groups["productsGroup"];
     126      allPluginsGroup = remotePluginsListView.Groups["allPluginsGroup"];
     127    }
     128
     129
     130    #region event handlers for refresh server plugins background worker
     131    void refreshServerPluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
     132      if (e.Error != null) {
     133        StatusView.ShowError("Connection Error",
     134          "There was an error while connecting to the server." + Environment.NewLine +
     135          "Please check your connection settings and user credentials.");
     136      } else {
     137        RefreshBackgroundWorkerResult refreshResult = (RefreshBackgroundWorkerResult)e.Result;
     138        UpdateRemotePluginList(refreshResult.RemoteProducts, refreshResult.RemotePlugins);
     139      }
     140      StatusView.UnlockUI();
     141      StatusView.RemoveMessage(PluginDiscoveryMessage);
     142      StatusView.HideProgressIndicator();
     143    }
     144
     145    void refreshServerPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) {
     146      RefreshBackgroundWorkerResult result = new RefreshBackgroundWorkerResult();
     147      result.RemotePlugins = installationManager.GetRemotePluginList();
     148      result.RemoteProducts = installationManager.GetRemoteProductList();
     149      e.Result = result;
     150    }
     151    #endregion
     152    #region event handlers for plugin update background worker
     153    void updateOrInstallPluginsBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
     154      if (e.Error != null) {
     155        StatusView.ShowError("Connection Error",
     156          "There was an error while connecting to the server." + Environment.NewLine +
     157          "Please check your connection settings and user credentials.");
     158      } else {
     159        UpdateControl();
     160      }
     161      StatusView.UnlockUI();
     162      StatusView.HideProgressIndicator();
     163    }
     164
     165    void updateOrInstallPluginsBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) {
     166      UpdateOrInstallPluginsBackgroundWorkerArgument info = (UpdateOrInstallPluginsBackgroundWorkerArgument)e.Argument;
     167      if (info.PluginsToInstall.Count() > 0)
     168        installationManager.Install(info.PluginsToInstall);
     169      if (info.PluginsToUpdate.Count() > 0)
     170        installationManager.Update(info.PluginsToUpdate);
     171
     172      if (info.PluginsToInstall.Count() > 0 || info.PluginsToUpdate.Count() > 0)
     173        pluginManager.DiscoverAndCheckPlugins();
     174    }
     175    #endregion
     176
     177
     178    #region button events
     179    private void refreshRemoteButton_Click(object sender, EventArgs e) {
     180      StatusView.LockUI();
     181      StatusView.ShowProgressIndicator();
     182      StatusView.ShowMessage(PluginDiscoveryMessage);
     183      refreshServerPluginsBackgroundWorker.RunWorkerAsync();
     184    }
     185    private void installButton_Click(object sender, EventArgs e) {
     186      StatusView.LockUI();
     187      StatusView.ShowProgressIndicator();
     188      var updateOrInstallInfo = new UpdateOrInstallPluginsBackgroundWorkerArgument();
     189      // if there is a local plugin with same name and same major and minor version then it's an update
     190      var pluginsToUpdate = from remotePlugin in CheckedPlugins
     191                            let matchingLocalPlugins = from localPlugin in pluginManager.Plugins
     192                                                       where localPlugin.Name == remotePlugin.Name
     193                                                       where localPlugin.Version.Major == remotePlugin.Version.Major
     194                                                       where localPlugin.Version.Minor == remotePlugin.Version.Minor
     195                                                       where IsNewerThan(remotePlugin, localPlugin)
     196                                                       select localPlugin
     197                            where matchingLocalPlugins.Count() > 0
     198                            select remotePlugin;
     199
     200      // otherwise install a new plugin
     201      var pluginsToInstall = CheckedPlugins.Except(pluginsToUpdate);
     202
     203      updateOrInstallInfo.PluginsToInstall = pluginsToInstall;
     204      updateOrInstallInfo.PluginsToUpdate = pluginsToUpdate;
     205      updateOrInstallPluginsBackgroundWorker.RunWorkerAsync(updateOrInstallInfo);
     206    }
     207    #endregion
    99208
    100209    private void UpdateControl() {
     
    159268        }
    160269      }
    161       OnItemChecked(e);
     270      installButton.Enabled = remotePluginsListView.CheckedItems.Count > 0;
    162271    }
    163272
     
    238347    }
    239348
    240     private void OnItemChecked(ItemCheckedEventArgs e) {
    241       if (ItemChecked != null) ItemChecked(this, e);
    242     }
    243349    #endregion
    244350
     
    258364    }
    259365
    260     #endregion
     366    private void UpdateRemotePluginList(
     367      IEnumerable<DeploymentService.ProductDescription> remoteProducts,
     368      IEnumerable<IPluginDescription> remotePlugins) {
     369
     370      var mostRecentRemotePlugins = from remote in remotePlugins
     371                                    where !remotePlugins.Any(x => x.Name == remote.Name && x.Version > remote.Version) // same name and higher version
     372                                    select remote;
     373
     374      var newPlugins = from remote in mostRecentRemotePlugins
     375                       let matchingLocal = (from local in pluginManager.Plugins
     376                                            where local.Name == remote.Name
     377                                            where local.Version < remote.Version
     378                                            select local).FirstOrDefault()
     379                       where matchingLocal != null
     380                       select remote;
     381
     382      NewPlugins = newPlugins;
     383      Products = remoteProducts;
     384      AllPlugins = remotePlugins;
     385    }
     386    private bool IsNewerThan(IPluginDescription plugin1, IPluginDescription plugin2) {
     387      // newer: build version is higher, or if build version is the same revision is higher
     388      if (plugin1.Version.Build < plugin2.Version.Build) return false;
     389      else if (plugin1.Version.Build > plugin2.Version.Build) return true;
     390      else return plugin1.Version.Revision > plugin2.Version.Revision;
     391    }
     392    #endregion
     393
    261394
    262395  }
  • trunk/sources/HeuristicLab.PluginInfrastructure/HeuristicLab.PluginInfrastructure.csproj

    r3509 r3547  
    9393  </ItemGroup>
    9494  <ItemGroup>
     95    <Compile Include="Advanced\BasicUpdateView.cs">
     96      <SubType>UserControl</SubType>
     97    </Compile>
     98    <Compile Include="Advanced\BasicUpdateView.Designer.cs">
     99      <DependentUpon>BasicUpdateView.cs</DependentUpon>
     100    </Compile>
    95101    <Compile Include="Advanced\ConfirmationDialog.cs">
    96102      <SubType>Form</SubType>
     
    105111      <DependentUpon>ConnectionSetupView.cs</DependentUpon>
    106112    </Compile>
     113    <Compile Include="Advanced\InstallationManagerControl.cs">
     114      <SubType>UserControl</SubType>
     115    </Compile>
     116    <Compile Include="Advanced\InstallationManagerControl.Designer.cs">
     117      <DependentUpon>InstallationManagerControl.cs</DependentUpon>
     118    </Compile>
     119    <Compile Include="Advanced\LocalPluginsView.cs">
     120      <SubType>UserControl</SubType>
     121    </Compile>
     122    <Compile Include="Advanced\LocalPluginsView.Designer.cs">
     123      <DependentUpon>LocalPluginsView.cs</DependentUpon>
     124    </Compile>
     125    <Compile Include="Advanced\IStatusDisplay.cs" />
    107126    <Compile Include="Advanced\InstallationManagerException.cs" />
    108127    <Compile Include="Advanced\DeploymentService\AdminClientFactory.cs" />
     
    135154      <DependentUpon>LicenseView.cs</DependentUpon>
    136155    </Compile>
    137     <Compile Include="Advanced\LocalPluginManager.cs">
    138       <SubType>UserControl</SubType>
    139     </Compile>
    140     <Compile Include="Advanced\LocalPluginManager.Designer.cs">
    141       <DependentUpon>LocalPluginManager.cs</DependentUpon>
    142     </Compile>
    143156    <Compile Include="Advanced\MultiSelectListView.cs">
    144157      <SubType>Component</SubType>
     
    166179    </Compile>
    167180    <Compile Include="Advanced\PluginView.cs">
    168       <SubType>UserControl</SubType>
     181      <SubType>Form</SubType>
    169182    </Compile>
    170183    <Compile Include="Advanced\PluginView.Designer.cs">
     
    217230      <DependentUpon>InstallationManagerForm.cs</DependentUpon>
    218231    </EmbeddedResource>
    219     <EmbeddedResource Include="Advanced\LocalPluginManager.resx">
    220       <DependentUpon>LocalPluginManager.cs</DependentUpon>
    221     </EmbeddedResource>
    222232    <EmbeddedResource Include="Advanced\RemotePluginInstaller.resx">
    223233      <DependentUpon>RemotePluginInstaller.cs</DependentUpon>
     
    286296    <Content Include="Resources\List.gif" />
    287297    <Content Include="Resources\Logo_white.gif" />
     298    <EmbeddedResource Include="Advanced\BasicUpdateView.resx">
     299      <DependentUpon>BasicUpdateView.cs</DependentUpon>
     300    </EmbeddedResource>
    288301    <EmbeddedResource Include="Advanced\ConfirmationDialog.resx">
    289302      <DependentUpon>ConfirmationDialog.cs</DependentUpon>
     
    291304    <EmbeddedResource Include="Advanced\ConnectionSetupView.resx">
    292305      <DependentUpon>ConnectionSetupView.cs</DependentUpon>
     306    </EmbeddedResource>
     307    <EmbeddedResource Include="Advanced\LocalPluginsView.resx">
     308      <DependentUpon>LocalPluginsView.cs</DependentUpon>
    293309    </EmbeddedResource>
    294310    <EmbeddedResource Include="Advanced\DeploymentService\servdev.cer" />
     
    317333    <None Include="Resources\VS2008ImageLibrary_CommonElements_Actions_Remove.png" />
    318334    <None Include="Resources\VS2008ImageLibrary_CommonElements_Actions_Remove1.png" />
     335    <None Include="Resources\VS2008ImageLibrary_CommonElements_Actions_Add.png" />
    319336    <Content Include="Resources\VS2008ImageLibrary_CommonElements_Objects_Arrow_Down.png" />
     337    <None Include="Resources\VS2008ImageLibrary_CommonElements_Objects_Arrow_Up1.png" />
    320338    <None Include="Resources\VS2008ImageLibrary_Objects_NetworkConnections.png" />
    321339    <None Include="Resources\VS2008ImageLibrary_Objects_Install1.png" />
  • trunk/sources/HeuristicLab.PluginInfrastructure/Manager/PluginValidator.cs

    r3508 r3547  
    260260        catch (TypeLoadException) {
    261261        }
     262        catch (MissingMemberException) {
     263        }
    262264      }
    263265      return pluginDescriptions;
  • trunk/sources/HeuristicLab.PluginInfrastructure/Properties/Resources.Designer.cs

    r3508 r3547  
    9696        }
    9797       
     98        internal static System.Drawing.Bitmap VS2008ImageLibrary_CommonElements_Actions_Add {
     99            get {
     100                object obj = ResourceManager.GetObject("VS2008ImageLibrary_CommonElements_Actions_Add", resourceCulture);
     101                return ((System.Drawing.Bitmap)(obj));
     102            }
     103        }
     104       
    98105        internal static System.Drawing.Bitmap VS2008ImageLibrary_CommonElements_Actions_Remove {
    99106            get {
    100107                object obj = ResourceManager.GetObject("VS2008ImageLibrary_CommonElements_Actions_Remove", resourceCulture);
     108                return ((System.Drawing.Bitmap)(obj));
     109            }
     110        }
     111       
     112        internal static System.Drawing.Bitmap VS2008ImageLibrary_CommonElements_Objects_Arrow_Up {
     113            get {
     114                object obj = ResourceManager.GetObject("VS2008ImageLibrary_CommonElements_Objects_Arrow_Up", resourceCulture);
    101115                return ((System.Drawing.Bitmap)(obj));
    102116            }
  • trunk/sources/HeuristicLab.PluginInfrastructure/Properties/Resources.resx

    r3508 r3547  
    122122    <value>..\Resources\VS2008ImageLibrary_CommonElements_Actions_Remove1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
    123123  </data>
    124   <data name="Logo_white" type="System.Resources.ResXFileRef, System.Windows.Forms">
    125     <value>..\Resources\Logo_white.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
     124  <data name="VS2008ImageLibrary_CommonElements_Objects_Arrow_Up" type="System.Resources.ResXFileRef, System.Windows.Forms">
     125    <value>..\Resources\VS2008ImageLibrary_CommonElements_Objects_Arrow_Up1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
     126  </data>
     127  <data name="VS2008ImageLibrary_Objects_NetworkConnections" type="System.Resources.ResXFileRef, System.Windows.Forms">
     128    <value>..\Resources\VS2008ImageLibrary_Objects_NetworkConnections.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
    126129  </data>
    127130  <data name="List" type="System.Resources.ResXFileRef, System.Windows.Forms">
     
    137140    <value>..\Resources\LargeIcons.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
    138141  </data>
     142  <data name="Logo_white" type="System.Resources.ResXFileRef, System.Windows.Forms">
     143    <value>..\Resources\Logo_white.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
     144  </data>
    139145  <data name="VS2008ImageLibrary_Objects_Install" type="System.Resources.ResXFileRef, System.Windows.Forms">
    140146    <value>..\Resources\VS2008ImageLibrary_Objects_Install1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
     
    143149    <value>..\Resources\VS2008ImageLibrary_Objects_Internet1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
    144150  </data>
    145   <data name="VS2008ImageLibrary_Objects_NetworkConnections" type="System.Resources.ResXFileRef, System.Windows.Forms">
    146     <value>..\Resources\VS2008ImageLibrary_Objects_NetworkConnections.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
     151  <data name="VS2008ImageLibrary_CommonElements_Actions_Add" type="System.Resources.ResXFileRef, System.Windows.Forms">
     152    <value>..\Resources\VS2008ImageLibrary_CommonElements_Actions_Add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
    147153  </data>
    148154</root>
  • trunk/sources/HeuristicLab.PluginInfrastructure/Properties/Settings.Designer.cs

    r3508 r3547  
    9292        [global::System.Configuration.UserScopedSettingAttribute()]
    9393        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    94         [global::System.Configuration.DefaultSettingValueAttribute("True")]
     94        [global::System.Configuration.DefaultSettingValueAttribute("False")]
    9595        public bool ShowPluginUploadControls {
    9696            get {
  • trunk/sources/HeuristicLab.PluginInfrastructure/Properties/Settings.settings

    r3508 r3547  
    2222    </Setting>
    2323    <Setting Name="ShowPluginUploadControls" Type="System.Boolean" Scope="User">
    24       <Value Profile="(Default)">True</Value>
     24      <Value Profile="(Default)">False</Value>
    2525    </Setting>
    2626  </Settings>
  • trunk/sources/HeuristicLab.PluginInfrastructure/app.config

    r3508 r3547  
    9999            </setting>
    100100            <setting name="ShowPluginUploadControls" serializeAs="String">
    101                 <value>True</value>
     101                <value>False</value>
    102102            </setting>
    103103        </HeuristicLab.PluginInfrastructure.Properties.Settings>
Note: See TracChangeset for help on using the changeset viewer.