Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.Designer.cs	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.Designer.cs	(revision 3624)
@@ -116,4 +116,5 @@
       this.tabControl.Size = new System.Drawing.Size(598, 392);
       this.tabControl.TabIndex = 16;
+      this.tabControl.SelectedIndexChanged += new System.EventHandler(this.tabControl_SelectedIndexChanged);
       // 
       // updateAllPluginsTabPage
@@ -213,4 +214,5 @@
       this.pluginEditor.PluginManager = null;
       this.pluginEditor.Size = new System.Drawing.Size(578, 354);
+      this.pluginEditor.StatusView = null;
       this.pluginEditor.TabIndex = 0;
       // 
@@ -235,4 +237,5 @@
       this.productEditor.Name = "productEditor";
       this.productEditor.Size = new System.Drawing.Size(578, 354);
+      this.productEditor.StatusView = null;
       this.productEditor.TabIndex = 0;
       // 
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.cs	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.cs	(revision 3624)
@@ -145,4 +145,7 @@
       new ConnectionSetupView().ShowDialog();
     }
+    private void tabControl_SelectedIndexChanged(object sender, EventArgs e) {
+      toolStripStatusLabel.Text = string.Empty;
+    }
     #endregion
 
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginsView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginsView.Designer.cs	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginsView.Designer.cs	(revision 3624)
@@ -46,45 +46,16 @@
     private void InitializeComponent() {
       this.components = new System.ComponentModel.Container();
-      System.Windows.Forms.ListViewGroup listViewGroup1 = new System.Windows.Forms.ListViewGroup("Active Plugins", System.Windows.Forms.HorizontalAlignment.Left);
-      System.Windows.Forms.ListViewGroup listViewGroup2 = new System.Windows.Forms.ListViewGroup("Disabled Plugins", System.Windows.Forms.HorizontalAlignment.Left);
-      this.updateSelectedButton = new System.Windows.Forms.Button();
-      this.removeButton = new System.Windows.Forms.Button();
+      System.Windows.Forms.ListViewGroup listViewGroup3 = new System.Windows.Forms.ListViewGroup("Active Plugins", System.Windows.Forms.HorizontalAlignment.Left);
+      System.Windows.Forms.ListViewGroup listViewGroup4 = new System.Windows.Forms.ListViewGroup("Disabled Plugins", System.Windows.Forms.HorizontalAlignment.Left);
       this.localPluginsListView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView();
       this.nameHeader = new System.Windows.Forms.ColumnHeader();
       this.versionHeader = new System.Windows.Forms.ColumnHeader();
       this.descriptionHeader = new System.Windows.Forms.ColumnHeader();
+      this.pluginImageList = new System.Windows.Forms.ImageList(this.components);
       this.toolTip = new System.Windows.Forms.ToolTip(this.components);
-      this.pluginImageList = new System.Windows.Forms.ImageList(this.components);
+      this.refreshButton = new System.Windows.Forms.Button();
+      this.removeButton = new System.Windows.Forms.Button();
+      this.updateSelectedButton = new System.Windows.Forms.Button();
       this.SuspendLayout();
-      // 
-      // updateSelectedButton
-      // 
-      this.updateSelectedButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.updateSelectedButton.Enabled = false;
-      this.updateSelectedButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_Objects_Internet;
-      this.updateSelectedButton.Location = new System.Drawing.Point(3, 483);
-      this.updateSelectedButton.Name = "updateSelectedButton";
-      this.updateSelectedButton.Size = new System.Drawing.Size(114, 25);
-      this.updateSelectedButton.TabIndex = 6;
-      this.updateSelectedButton.Text = "Update Selected";
-      this.updateSelectedButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
-      this.toolTip.SetToolTip(this.updateSelectedButton, "Update all selected plugins");
-      this.updateSelectedButton.UseVisualStyleBackColor = true;
-      this.updateSelectedButton.Click += new System.EventHandler(this.updateSelectedButton_Click);
-      // 
-      // removeButton
-      // 
-      this.removeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.removeButton.Enabled = false;
-      this.removeButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_CommonElements_Actions_Remove;
-      this.removeButton.Location = new System.Drawing.Point(123, 483);
-      this.removeButton.Name = "removeButton";
-      this.removeButton.Size = new System.Drawing.Size(110, 25);
-      this.removeButton.TabIndex = 12;
-      this.removeButton.Text = "Delete Selected";
-      this.removeButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
-      this.toolTip.SetToolTip(this.removeButton, "Delete all selected plugins from disk");
-      this.removeButton.UseVisualStyleBackColor = true;
-      this.removeButton.Click += new System.EventHandler(this.removeButton_Click);
       // 
       // localPluginsListView
@@ -98,15 +69,16 @@
             this.versionHeader,
             this.descriptionHeader});
-      listViewGroup1.Header = "Active Plugins";
-      listViewGroup1.Name = "activePluginsGroup";
-      listViewGroup2.Header = "Disabled Plugins";
-      listViewGroup2.Name = "disabledPluginsGroup";
+      listViewGroup3.Header = "Active Plugins";
+      listViewGroup3.Name = "activePluginsGroup";
+      listViewGroup4.Header = "Disabled Plugins";
+      listViewGroup4.Name = "disabledPluginsGroup";
       this.localPluginsListView.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
-            listViewGroup1,
-            listViewGroup2});
+            listViewGroup3,
+            listViewGroup4});
       this.localPluginsListView.Location = new System.Drawing.Point(0, 0);
       this.localPluginsListView.Name = "localPluginsListView";
       this.localPluginsListView.Size = new System.Drawing.Size(539, 477);
       this.localPluginsListView.SmallImageList = this.pluginImageList;
+      this.localPluginsListView.Sorting = System.Windows.Forms.SortOrder.Ascending;
       this.localPluginsListView.SuppressItemCheckedEvents = false;
       this.localPluginsListView.TabIndex = 13;
@@ -137,8 +109,53 @@
       this.pluginImageList.TransparentColor = System.Drawing.Color.Transparent;
       // 
+      // refreshButton
+      // 
+      this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.refreshButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.RepeatHS1;
+      this.refreshButton.Location = new System.Drawing.Point(0, 483);
+      this.refreshButton.Name = "refreshButton";
+      this.refreshButton.Size = new System.Drawing.Size(96, 25);
+      this.refreshButton.TabIndex = 14;
+      this.refreshButton.Text = "Refresh List";
+      this.refreshButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
+      this.toolTip.SetToolTip(this.refreshButton, "Refresh List of Installed Plugins");
+      this.refreshButton.UseVisualStyleBackColor = true;
+      this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
+      // 
+      // removeButton
+      // 
+      this.removeButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.removeButton.Enabled = false;
+      this.removeButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_CommonElements_Actions_Remove;
+      this.removeButton.Location = new System.Drawing.Point(222, 483);
+      this.removeButton.Name = "removeButton";
+      this.removeButton.Size = new System.Drawing.Size(110, 25);
+      this.removeButton.TabIndex = 12;
+      this.removeButton.Text = "Delete Selected";
+      this.removeButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
+      this.toolTip.SetToolTip(this.removeButton, "Delete all selected plugins from disk");
+      this.removeButton.UseVisualStyleBackColor = true;
+      this.removeButton.Click += new System.EventHandler(this.removeButton_Click);
+      // 
+      // updateSelectedButton
+      // 
+      this.updateSelectedButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.updateSelectedButton.Enabled = false;
+      this.updateSelectedButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_Objects_Internet;
+      this.updateSelectedButton.Location = new System.Drawing.Point(102, 483);
+      this.updateSelectedButton.Name = "updateSelectedButton";
+      this.updateSelectedButton.Size = new System.Drawing.Size(114, 25);
+      this.updateSelectedButton.TabIndex = 6;
+      this.updateSelectedButton.Text = "Update Selected";
+      this.updateSelectedButton.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
+      this.toolTip.SetToolTip(this.updateSelectedButton, "Update all selected plugins");
+      this.updateSelectedButton.UseVisualStyleBackColor = true;
+      this.updateSelectedButton.Click += new System.EventHandler(this.updateSelectedButton_Click);
+      // 
       // LocalPluginsView
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.refreshButton);
       this.Controls.Add(this.localPluginsListView);
       this.Controls.Add(this.removeButton);
@@ -160,4 +177,5 @@
     private System.Windows.Forms.ToolTip toolTip;
     private System.Windows.Forms.ImageList pluginImageList;
+    private System.Windows.Forms.Button refreshButton;
     // private LocalPluginManagerView localPluginManagerView;
   }
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginsView.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginsView.cs	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginsView.cs	(revision 3624)
@@ -101,6 +101,4 @@
           "There was an error while connecting to the server." + Environment.NewLine +
            "Please check your connection settings and user credentials.");
-      } else if (e.Cancelled) {
-        StatusView.ShowMessage(NoUpdatesAvailableMessage);
       }
       StatusView.RemoveMessage(CheckingPluginsMessage);
@@ -124,9 +122,6 @@
       if (pluginsToUpdate.Count() > 0) {
         installationManager.Update(pluginsToUpdate);
-        pluginManager.DiscoverAndCheckPlugins();
-        e.Cancel = false;
-      } else {
-        e.Cancel = true;
-      }
+      }
+      pluginManager.DiscoverAndCheckPlugins();
     }
 
@@ -156,9 +151,5 @@
       removeButton.Enabled = localPluginsListView.CheckedItems.Count > 0;
       updateSelectedButton.Enabled = localPluginsListView.CheckedItems.Count > 0;
-      foreach (ColumnHeader column in localPluginsListView.Columns) {
-        if (localPluginsListView.Items.Count > 0)
-          column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-        else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
-      }
+      Util.ResizeColumns(localPluginsListView.Columns.OfType<ColumnHeader>());
     }
 
@@ -239,4 +230,11 @@
       removePluginsBackgroundWorker.RunWorkerAsync(checkedPlugins);
     }
+
+    private void refreshButton_Click(object sender, EventArgs e) {
+      StatusView.LockUI();
+      StatusView.ShowProgressIndicator();
+      // refresh = update empty list of plugins (plugins are reloaded)
+      updatePluginsBackgroundWorker.RunWorkerAsync(new IPluginDescription[0]);
+    }
   }
 }
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginsView.resx
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginsView.resx	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/LocalPluginsView.resx	(revision 3624)
@@ -118,9 +118,9 @@
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <metadata name="pluginImageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>107, 17</value>
+  </metadata>
   <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>17, 17</value>
   </metadata>
-  <metadata name="pluginImageList.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>107, 17</value>
-  </metadata>
 </root>
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginEditor.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginEditor.Designer.cs	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginEditor.Designer.cs	(revision 3624)
@@ -61,5 +61,5 @@
       this.uploadButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
       this.uploadButton.Enabled = false;
-      this.uploadButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_CommonElements_Objects_Arrow_Up;
+      this.uploadButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.PublishToWebHS;
       this.uploadButton.Location = new System.Drawing.Point(78, 482);
       this.uploadButton.Name = "uploadButton";
@@ -101,4 +101,5 @@
       this.listView.Size = new System.Drawing.Size(539, 476);
       this.listView.SmallImageList = this.pluginImageList;
+      this.listView.Sorting = System.Windows.Forms.SortOrder.Ascending;
       this.listView.SuppressItemCheckedEvents = false;
       this.listView.TabIndex = 8;
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginEditor.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginEditor.cs	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginEditor.cs	(revision 3624)
@@ -240,8 +240,5 @@
         listView.Items.Add(item);
       }
-      foreach (ColumnHeader column in listView.Columns)
-        if (listView.Items.Count > 0)
-          column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-        else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
+      Util.ResizeColumns(listView.Columns.OfType<ColumnHeader>());
       ignoreItemCheckedEvents = false;
     }
@@ -300,4 +297,6 @@
         item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), 
           localAndServerPlugins[plugin].Version.ToString(), localAndServerPlugins[plugin].Description });
+        if (plugin.Version <= localAndServerPlugins[plugin].Version)
+          item.ForeColor = Color.Gray;
       } else {
         item = new ListViewItem(new string[] { plugin.Name, plugin.Version.ToString(), 
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginView.Designer.cs	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginView.Designer.cs	(revision 3624)
@@ -57,4 +57,5 @@
       this.pluginNameHeader = new System.Windows.Forms.ColumnHeader();
       this.pluginVersionHeader = new System.Windows.Forms.ColumnHeader();
+      this.pluginDescriptionHeader = new System.Windows.Forms.ColumnHeader();
       this.pluginsImageList = new System.Windows.Forms.ImageList(this.components);
       this.filesListView = new System.Windows.Forms.ListView();
@@ -69,5 +70,4 @@
       this.descriptionTextBox = new System.Windows.Forms.TextBox();
       this.errorTextBox = new System.Windows.Forms.TextBox();
-      this.pluginDescriptionHeader = new System.Windows.Forms.ColumnHeader();
       this.dependenciesGroupBox.SuspendLayout();
       this.filesGroupBox.SuspendLayout();
@@ -166,4 +166,5 @@
       this.dependenciesListView.Size = new System.Drawing.Size(657, 210);
       this.dependenciesListView.SmallImageList = this.pluginsImageList;
+      this.dependenciesListView.Sorting = System.Windows.Forms.SortOrder.Ascending;
       this.dependenciesListView.TabIndex = 0;
       this.dependenciesListView.UseCompatibleStateImageBehavior = false;
@@ -180,4 +181,9 @@
       this.pluginVersionHeader.Text = "Version";
       this.pluginVersionHeader.Width = 120;
+      // 
+      // pluginDescriptionHeader
+      // 
+      this.pluginDescriptionHeader.Text = "Description";
+      this.pluginDescriptionHeader.Width = 325;
       // 
       // pluginsImageList
@@ -271,4 +277,5 @@
                   | System.Windows.Forms.AnchorStyles.Right)));
       this.descriptionTextBox.Location = new System.Drawing.Point(78, 90);
+      this.descriptionTextBox.Multiline = true;
       this.descriptionTextBox.Name = "descriptionTextBox";
       this.descriptionTextBox.ReadOnly = true;
@@ -281,13 +288,9 @@
                   | System.Windows.Forms.AnchorStyles.Right)));
       this.errorTextBox.Location = new System.Drawing.Point(78, 142);
+      this.errorTextBox.Multiline = true;
       this.errorTextBox.Name = "errorTextBox";
       this.errorTextBox.ReadOnly = true;
       this.errorTextBox.Size = new System.Drawing.Size(594, 20);
       this.errorTextBox.TabIndex = 21;
-      // 
-      // pluginDescriptionHeader
-      // 
-      this.pluginDescriptionHeader.Text = "Description";
-      this.pluginDescriptionHeader.Width = 325;
       // 
       // PluginView
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginView.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginView.cs	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/PluginView.cs	(revision 3624)
@@ -89,15 +89,7 @@
         filesListView.Items.Add(fileItem);
       }
-      foreach (ColumnHeader column in dependenciesListView.Columns) {
-        if (dependenciesListView.Items.Count > 0)
-          column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-        else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
-      }
-      foreach (ColumnHeader column in filesListView.Columns) {
-        if (filesListView.Items.Count > 0)
-          column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-        else
-          column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
-      }
+      Util.ResizeColumns(dependenciesListView.Columns.OfType<ColumnHeader>());
+      Util.ResizeColumns(filesListView.Columns.OfType<ColumnHeader>());
+
       licenseButton.Enabled = !string.IsNullOrEmpty(plugin.LicenseText);
     }
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/ProductEditor.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/ProductEditor.Designer.cs	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/ProductEditor.Designer.cs	(revision 3624)
@@ -59,4 +59,7 @@
       this.pluginsGroupBox = new System.Windows.Forms.GroupBox();
       this.pluginListView = new HeuristicLab.PluginInfrastructure.Advanced.MultiSelectListView();
+      this.pluginNameHeader = new System.Windows.Forms.ColumnHeader();
+      this.pluginVersionHeader = new System.Windows.Forms.ColumnHeader();
+      this.pluginDescriptionHeader = new System.Windows.Forms.ColumnHeader();
       this.pluginImageList = new System.Windows.Forms.ImageList(this.components);
       this.versionTextBox = new System.Windows.Forms.TextBox();
@@ -66,7 +69,4 @@
       this.errorProvider = new System.Windows.Forms.ErrorProvider(this.components);
       this.toolTip = new System.Windows.Forms.ToolTip(this.components);
-      this.pluginNameHeader = new System.Windows.Forms.ColumnHeader();
-      this.pluginVersionHeader = new System.Windows.Forms.ColumnHeader();
-      this.pluginDescriptionHeader = new System.Windows.Forms.ColumnHeader();
       this.splitContainer.Panel1.SuspendLayout();
       this.splitContainer.Panel2.SuspendLayout();
@@ -96,5 +96,5 @@
       this.uploadButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
       this.uploadButton.Enabled = false;
-      this.uploadButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.VS2008ImageLibrary_CommonElements_Objects_Arrow_Up;
+      this.uploadButton.Image = global::HeuristicLab.PluginInfrastructure.Properties.Resources.PublishToWebHS;
       this.uploadButton.Location = new System.Drawing.Point(85, 394);
       this.uploadButton.Name = "uploadButton";
@@ -185,4 +185,5 @@
       this.productsListView.Size = new System.Drawing.Size(309, 337);
       this.productsListView.SmallImageList = this.productImageList;
+      this.productsListView.Sorting = System.Windows.Forms.SortOrder.Ascending;
       this.productsListView.TabIndex = 4;
       this.productsListView.UseCompatibleStateImageBehavior = false;
@@ -251,9 +252,22 @@
       this.pluginListView.Size = new System.Drawing.Size(322, 330);
       this.pluginListView.SmallImageList = this.pluginImageList;
+      this.pluginListView.Sorting = System.Windows.Forms.SortOrder.Ascending;
       this.pluginListView.SuppressItemCheckedEvents = false;
       this.pluginListView.TabIndex = 7;
       this.pluginListView.UseCompatibleStateImageBehavior = false;
       this.pluginListView.View = System.Windows.Forms.View.Details;
-      this.pluginListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.pluginListView_ItemChecked);
+      this.pluginListView.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listView_ItemChecked);
+      // 
+      // pluginNameHeader
+      // 
+      this.pluginNameHeader.Text = "Name";
+      // 
+      // pluginVersionHeader
+      // 
+      this.pluginVersionHeader.Text = "Version";
+      // 
+      // pluginDescriptionHeader
+      // 
+      this.pluginDescriptionHeader.Text = "Description";
       // 
       // pluginImageList
@@ -304,16 +318,4 @@
       // 
       this.errorProvider.ContainerControl = this;
-      // 
-      // pluginNameHeader
-      // 
-      this.pluginNameHeader.Text = "Name";
-      // 
-      // pluginVersionHeader
-      // 
-      this.pluginVersionHeader.Text = "Version";
-      // 
-      // pluginDescriptionHeader
-      // 
-      this.pluginDescriptionHeader.Text = "Description";
       // 
       // ProductEditor
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/ProductEditor.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/ProductEditor.cs	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/ProductEditor.cs	(revision 3624)
@@ -114,5 +114,6 @@
         "There was an error while connecting to the server." + Environment.NewLine +
            "Please check your connection settings and user credentials.");
-        DisableControls();
+        this.products.Clear();
+        this.plugins.Clear();
       } else {
         this.products = new List<DeploymentService.ProductDescription>(
@@ -121,8 +122,8 @@
           (DeploymentService.PluginDescription[])((object[])e.Result)[1]);
 
-        UpdateProductsList();
-        dirtyProducts.Clear();
         EnableControls();
       }
+      UpdateProductsList();
+      dirtyProducts.Clear();
       StatusView.HideProgressIndicator();
       StatusView.RemoveMessage(DeleteProductMessage);
@@ -179,5 +180,6 @@
         "There was an error while connecting to the server." + Environment.NewLine +
            "Please check your connection settings and user credentials.");
-        DisableControls();
+        this.products.Clear();
+        this.plugins.Clear();
       } else {
         this.products = new List<DeploymentService.ProductDescription>(
@@ -186,8 +188,8 @@
           (DeploymentService.PluginDescription[])((object[])e.Result)[1]);
 
-        UpdateProductsList();
-        dirtyProducts.Clear();
-        EnableControls();
-      }
+      }
+      UpdateProductsList();
+      dirtyProducts.Clear();
+      EnableControls();
       StatusView.HideProgressIndicator();
       StatusView.RemoveMessage(UploadMessage);
@@ -222,5 +224,7 @@
           "There was an error while connecting to the server." + Environment.NewLine +
                    "Please check your connection settings and user credentials.");
-        DisableControls();
+        this.products.Clear();
+        this.plugins.Clear();
+
       } else {
         this.products = new List<DeploymentService.ProductDescription>(
@@ -228,10 +232,8 @@
         this.plugins = new List<DeploymentService.PluginDescription>(
           (DeploymentService.PluginDescription[])((object[])e.Result)[1]);
-
-
-        UpdateProductsList();
-        dirtyProducts.Clear();
-        EnableControls();
-      }
+      }
+      UpdateProductsList();
+      dirtyProducts.Clear();
+      EnableControls();
       StatusView.HideProgressIndicator();
       StatusView.RemoveMessage(RefreshMessage);
@@ -241,12 +243,10 @@
 
     private void UpdateProductsList() {
+      productsListView.SelectedItems.Clear();
       productsListView.Items.Clear();
       foreach (var prodDesc in products) {
         productsListView.Items.Add(CreateListViewItem(prodDesc));
       }
-      foreach (ColumnHeader column in productsListView.Columns)
-        if (productsListView.Items.Count > 0)
-          column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-        else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
+      Util.ResizeColumns(productsListView.Columns.OfType<ColumnHeader>());
     }
 
@@ -254,6 +254,5 @@
       bool productSelected = productsListView.SelectedItems.Count > 0;
       detailsGroupBox.Enabled = productSelected;
-      deleteProductButton.Enabled = productSelected;
-      uploadButton.Enabled = dirtyProducts.Count > 0;
+      UpdateProductButtons();
       if (productSelected) {
         DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)((ListViewItem)productsListView.SelectedItems[0]).Tag;
@@ -263,13 +262,12 @@
         // populate plugins list view
         ListViewItem activeItem = (ListViewItem)productsListView.SelectedItems[0];
+        pluginListView.SuppressItemCheckedEvents = true;
         foreach (var plugin in plugins.OfType<IPluginDescription>()) {
           pluginListView.Items.Add(CreateListViewItem(plugin));
         }
-
-        pluginListView.CheckItems(from plugin in activeProduct.Plugins
-                                  let item = FindItemForPlugin(plugin)
-                                  where item != null
-                                  select item);
-
+        pluginListView.SuppressItemCheckedEvents = false;
+        foreach (var plugin in activeProduct.Plugins) {
+          pluginListView.CheckItems(FindItemsForPlugin(plugin));
+        }
       } else {
         nameTextBox.Text = string.Empty;
@@ -277,4 +275,15 @@
         pluginListView.Items.Clear();
       }
+      Util.ResizeColumns(pluginListView.Columns.OfType<ColumnHeader>());
+    }
+
+    private void UpdateProductButtons() {
+      uploadButton.Enabled = dirtyProducts.Count > 0;
+      if (productsListView.SelectedItems.Count > 0) {
+        var selectedProduct = (DeploymentService.ProductDescription)productsListView.SelectedItems[0].Tag;
+        deleteProductButton.Enabled = !dirtyProducts.Contains(selectedProduct);
+      } else {
+        deleteProductButton.Enabled = false;
+      }
     }
 
@@ -283,6 +292,6 @@
     private void newProductButton_Click(object sender, EventArgs e) {
       var newProduct = new DeploymentService.ProductDescription("New product", new Version("0.0.0.0"));
-      ListViewItem item = CreateListViewItem(newProduct);
-      productsListView.Items.Add(item);
+      products.Add(newProduct);
+      UpdateProductsList();
       MarkProductDirty(newProduct);
     }
@@ -359,5 +368,5 @@
 
     #region plugin list view
-    private void pluginListView_ItemChecked(object sender, ItemCheckedEventArgs e) {
+    private void OnItemChecked(ItemCheckedEventArgs e) {
       ListViewItem activeItem = (ListViewItem)productsListView.SelectedItems[0];
       DeploymentService.ProductDescription activeProduct = (DeploymentService.ProductDescription)activeItem.Tag;
@@ -366,7 +375,66 @@
       MarkProductDirty(activeProduct);
     }
+
+    private void listView_ItemChecked(object sender, ItemCheckedEventArgs e) {
+      List<IPluginDescription> modifiedPlugins = new List<IPluginDescription>();
+      if (e.Item.Checked) {
+        foreach (ListViewItem item in pluginListView.SelectedItems) {
+          var plugin = (IPluginDescription)item.Tag;
+          // also check all dependencies
+          if (!modifiedPlugins.Contains(plugin))
+            modifiedPlugins.Add(plugin);
+          foreach (var dep in GetAllDependencies(plugin)) {
+            if (!modifiedPlugins.Contains(dep))
+              modifiedPlugins.Add(dep);
+          }
+        }
+        pluginListView.CheckItems(modifiedPlugins.Select(x => FindItemsForPlugin(x).Single()));
+        OnItemChecked(e);
+      } else {
+        foreach (ListViewItem item in pluginListView.SelectedItems) {
+          var plugin = (IPluginDescription)item.Tag;
+          // also uncheck all dependent plugins
+          if (!modifiedPlugins.Contains(plugin))
+            modifiedPlugins.Add(plugin);
+          foreach (var dep in GetAllDependents(plugin)) {
+            if (!modifiedPlugins.Contains(dep))
+              modifiedPlugins.Add(dep);
+          }
+
+        }
+        pluginListView.UncheckItems(modifiedPlugins.Select(x => FindItemsForPlugin(x).Single()));
+        OnItemChecked(e);
+      }
+    }
+
+
     #endregion
 
     #region helper
+    private IEnumerable<IPluginDescription> GetAllDependents(IPluginDescription plugin) {
+      return from p in plugins
+             let matchingEntries = from dep in GetAllDependencies(p)
+                                   where dep.Name == plugin.Name
+                                   where dep.Version == plugin.Version
+                                   select dep
+             where matchingEntries.Any()
+             select p as IPluginDescription;
+    }
+
+    private IEnumerable<IPluginDescription> GetAllDependencies(IPluginDescription plugin) {
+      HashSet<IPluginDescription> yieldedPlugins = new HashSet<IPluginDescription>();
+      foreach (var dep in plugin.Dependencies) {
+        foreach (var recDep in GetAllDependencies(dep)) {
+          if (!yieldedPlugins.Contains(recDep)) {
+            yieldedPlugins.Add(recDep);
+            yield return recDep;
+          }
+        }
+        if (!yieldedPlugins.Contains(dep)) {
+          yieldedPlugins.Add(dep);
+          yield return dep;
+        }
+      }
+    }
     private void MarkProductDirty(HeuristicLab.PluginInfrastructure.Advanced.DeploymentService.ProductDescription activeProduct) {
       if (!dirtyProducts.Contains(activeProduct)) {
@@ -374,4 +442,5 @@
         var item = FindItemForProduct(activeProduct);
         item.ImageIndex = 1;
+        UpdateProductButtons();
       }
     }
@@ -399,23 +468,12 @@
               select item).Single();
     }
-
-    private ListViewItem FindItemForPlugin(IPluginDescription plugin) {
-      return (from i in pluginListView.Items.Cast<ListViewItem>()
-              let p = i.Tag as IPluginDescription
-              where p != null
-              where p.Name == plugin.Name
-              where p.Version == plugin.Version
-              select i).SingleOrDefault();
-    }
-
-    private void DisableControls() {
-      newProductButton.Enabled = false;
-      productsListView.Enabled = false;
-      detailsGroupBox.Enabled = false;
-      deleteProductButton.Enabled = false;
-      nameTextBox.Text = string.Empty;
-      versionTextBox.Text = string.Empty;
-      pluginListView.Items.Clear();
-    }
+    private IEnumerable<ListViewItem> FindItemsForPlugin(IPluginDescription plugin) {
+      return from item in pluginListView.Items.OfType<ListViewItem>()
+             let p = item.Tag as IPluginDescription
+             where p.Name == plugin.Name
+             where p.Version == plugin.Version
+             select item;
+    }
+
     private void EnableControls() {
       newProductButton.Enabled = true;
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/RemotePluginInstaller.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/RemotePluginInstaller.Designer.cs	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/RemotePluginInstaller.Designer.cs	(revision 3624)
@@ -56,12 +56,12 @@
       this.productImageList = new System.Windows.Forms.ImageList(this.components);
       this.productsGroupBox = new System.Windows.Forms.GroupBox();
-      this.pluginsGroupBox = new System.Windows.Forms.GroupBox();
-      this.splitContainer = new System.Windows.Forms.SplitContainer();
-      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
       this.showDetailsButton = new System.Windows.Forms.RadioButton();
       this.showLargeIconsButton = new System.Windows.Forms.RadioButton();
       this.installProductsButton = new System.Windows.Forms.Button();
       this.refreshButton = new System.Windows.Forms.Button();
+      this.pluginsGroupBox = new System.Windows.Forms.GroupBox();
       this.installPluginsButton = new System.Windows.Forms.Button();
+      this.splitContainer = new System.Windows.Forms.SplitContainer();
+      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
       this.productsGroupBox.SuspendLayout();
       this.pluginsGroupBox.SuspendLayout();
@@ -86,4 +86,5 @@
       this.pluginsListView.Size = new System.Drawing.Size(266, 502);
       this.pluginsListView.SmallImageList = this.pluginsImageList;
+      this.pluginsListView.Sorting = System.Windows.Forms.SortOrder.Ascending;
       this.pluginsListView.SuppressItemCheckedEvents = false;
       this.pluginsListView.TabIndex = 0;
@@ -129,4 +130,5 @@
       this.productsListView.Size = new System.Drawing.Size(240, 471);
       this.productsListView.SmallImageList = this.productImageList;
+      this.productsListView.Sorting = System.Windows.Forms.SortOrder.Ascending;
       this.productsListView.TabIndex = 18;
       this.productsListView.UseCompatibleStateImageBehavior = false;
@@ -170,37 +172,4 @@
       this.productsGroupBox.TabStop = false;
       this.productsGroupBox.Text = "Products";
-      // 
-      // pluginsGroupBox
-      // 
-      this.pluginsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.pluginsGroupBox.Controls.Add(this.pluginsListView);
-      this.pluginsGroupBox.Controls.Add(this.installPluginsButton);
-      this.pluginsGroupBox.Location = new System.Drawing.Point(-1, 0);
-      this.pluginsGroupBox.Name = "pluginsGroupBox";
-      this.pluginsGroupBox.Size = new System.Drawing.Size(278, 558);
-      this.pluginsGroupBox.TabIndex = 20;
-      this.pluginsGroupBox.TabStop = false;
-      this.pluginsGroupBox.Text = "Plugins";
-      // 
-      // splitContainer
-      // 
-      this.splitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.splitContainer.Location = new System.Drawing.Point(0, 0);
-      this.splitContainer.Name = "splitContainer";
-      // 
-      // splitContainer.Panel1
-      // 
-      this.splitContainer.Panel1.Controls.Add(this.productsGroupBox);
-      // 
-      // splitContainer.Panel2
-      // 
-      this.splitContainer.Panel2.Controls.Add(this.pluginsGroupBox);
-      this.splitContainer.Size = new System.Drawing.Size(533, 558);
-      this.splitContainer.SplitterDistance = 252;
-      this.splitContainer.TabIndex = 21;
       // 
       // showDetailsButton
@@ -260,4 +229,18 @@
       this.refreshButton.Click += new System.EventHandler(this.refreshRemoteButton_Click);
       // 
+      // pluginsGroupBox
+      // 
+      this.pluginsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.pluginsGroupBox.Controls.Add(this.pluginsListView);
+      this.pluginsGroupBox.Controls.Add(this.installPluginsButton);
+      this.pluginsGroupBox.Location = new System.Drawing.Point(-1, 0);
+      this.pluginsGroupBox.Name = "pluginsGroupBox";
+      this.pluginsGroupBox.Size = new System.Drawing.Size(278, 558);
+      this.pluginsGroupBox.TabIndex = 20;
+      this.pluginsGroupBox.TabStop = false;
+      this.pluginsGroupBox.Text = "Plugins";
+      // 
       // installPluginsButton
       // 
@@ -274,4 +257,23 @@
       this.installPluginsButton.UseVisualStyleBackColor = true;
       this.installPluginsButton.Click += new System.EventHandler(this.installPluginsButton_Click);
+      // 
+      // splitContainer
+      // 
+      this.splitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.splitContainer.Location = new System.Drawing.Point(0, 0);
+      this.splitContainer.Name = "splitContainer";
+      // 
+      // splitContainer.Panel1
+      // 
+      this.splitContainer.Panel1.Controls.Add(this.productsGroupBox);
+      // 
+      // splitContainer.Panel2
+      // 
+      this.splitContainer.Panel2.Controls.Add(this.pluginsGroupBox);
+      this.splitContainer.Size = new System.Drawing.Size(533, 558);
+      this.splitContainer.SplitterDistance = 252;
+      this.splitContainer.TabIndex = 21;
       // 
       // RemotePluginInstallerView
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/RemotePluginInstaller.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/RemotePluginInstaller.cs	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/RemotePluginInstaller.cs	(revision 3624)
@@ -208,8 +208,5 @@
       allPluginsListViewItem.ImageIndex = 0;
       productsListView.Items.Add(allPluginsListViewItem);
-      foreach (ColumnHeader column in productsListView.Columns)
-        if (productsListView.Items.Count > 0)
-          column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-        else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
+      Util.ResizeColumns(productsListView.Columns.OfType<ColumnHeader>());
     }
 
@@ -237,9 +234,5 @@
         }
 
-        foreach (ColumnHeader column in pluginsListView.Columns)
-          if (pluginsListView.Items.Count > 0)
-            column.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
-          else column.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
-
+        Util.ResizeColumns(pluginsListView.Columns.OfType<ColumnHeader>());
         pluginsListView.SuppressItemCheckedEvents = false;
       }
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/Util.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/Util.cs	(revision 3624)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/Util.cs	(revision 3624)
@@ -0,0 +1,49 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.PluginInfrastructure.Manager;
+using System.IO;
+using System.ComponentModel;
+using System.Reflection;
+using ICSharpCode.SharpZipLib.Zip;
+using System.ServiceModel;
+using System.Windows.Forms;
+
+namespace HeuristicLab.PluginInfrastructure.Advanced {
+  internal static class Util {
+    internal static void ResizeColumn(ColumnHeader columnHeader) {
+      columnHeader.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
+      int headerSize = columnHeader.Width;
+      columnHeader.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
+      int contentSize = columnHeader.Width;
+      columnHeader.Width = Math.Max(headerSize, contentSize);      
+    }
+
+    internal static void ResizeColumns(IEnumerable<ColumnHeader> columnHeaders) {
+      foreach (var columnHeader in columnHeaders)
+        ResizeColumn(columnHeader);
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.PluginInfrastructure/HeuristicLab.PluginInfrastructure.csproj
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/HeuristicLab.PluginInfrastructure.csproj	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/HeuristicLab.PluginInfrastructure.csproj	(revision 3624)
@@ -111,4 +111,5 @@
       <DependentUpon>ConnectionSetupView.cs</DependentUpon>
     </Compile>
+    <Compile Include="Advanced\Util.cs" />
     <Compile Include="Advanced\InstallationManagerControl.cs">
       <SubType>UserControl</SubType>
@@ -329,4 +330,8 @@
     <None Include="Resources\plugin_16.png" />
     <None Include="Resources\Setup_Install.ico" />
+    <None Include="Resources\RepeatHS.bmp" />
+    <None Include="Resources\Repeat.bmp" />
+    <None Include="Resources\RepeatHS.png" />
+    <None Include="Resources\PublishToWebHS.png" />
     <Content Include="Resources\VS2008ImageLibrary_CommonElements_Objects_Arrow_Down.png" />
     <None Include="Resources\VS2008ImageLibrary_Objects_NetworkConnections.png" />
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Properties/Resources.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Properties/Resources.Designer.cs	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Properties/Resources.Designer.cs	(revision 3624)
@@ -96,4 +96,32 @@
         }
         
+        internal static System.Drawing.Bitmap PublishToWebHS {
+            get {
+                object obj = ResourceManager.GetObject("PublishToWebHS", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap Repeat {
+            get {
+                object obj = ResourceManager.GetObject("Repeat", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap RepeatHS {
+            get {
+                object obj = ResourceManager.GetObject("RepeatHS", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap RepeatHS1 {
+            get {
+                object obj = ResourceManager.GetObject("RepeatHS1", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         internal static System.Drawing.Bitmap show_details {
             get {
Index: trunk/sources/HeuristicLab.PluginInfrastructure/Properties/Resources.resx
===================================================================
--- trunk/sources/HeuristicLab.PluginInfrastructure/Properties/Resources.resx	(revision 3612)
+++ trunk/sources/HeuristicLab.PluginInfrastructure/Properties/Resources.resx	(revision 3624)
@@ -119,6 +119,6 @@
   </resheader>
   <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
-  <data name="VS2008ImageLibrary_CommonElements_Actions_Remove" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\VS2008ImageLibrary_CommonElements_Actions_Remove1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="VS2008ImageLibrary_Objects_NetworkConnections" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\VS2008ImageLibrary_Objects_NetworkConnections.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="VS2008ImageLibrary_CommonElements_Objects_Arrow_Up" type="System.Resources.ResXFileRef, System.Windows.Forms">
@@ -128,15 +128,24 @@
     <value>..\Resources\show_icons.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="VS2008ImageLibrary_Objects_NetworkConnections" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\VS2008ImageLibrary_Objects_NetworkConnections.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="Repeat" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Repeat.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="List" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\List.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Details" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Details.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="VS2008ImageLibrary_Objects_Install" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\VS2008ImageLibrary_Objects_Install1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="VS2008ImageLibrary_CommonElements_Actions_Remove" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\VS2008ImageLibrary_CommonElements_Actions_Remove1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="RepeatHS" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\RepeatHS.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="HeuristicLab" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\HeuristicLab.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="VS2008ImageLibrary_CommonElements_Actions_Add" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\VS2008ImageLibrary_CommonElements_Actions_Add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="LargeIcons" type="System.Resources.ResXFileRef, System.Windows.Forms">
@@ -146,15 +155,18 @@
     <value>..\Resources\Logo_white.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="VS2008ImageLibrary_Objects_Install" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\VS2008ImageLibrary_Objects_Install1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="show_details" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\show_details.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="RepeatHS1" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\RepeatHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Details" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Details.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="VS2008ImageLibrary_Objects_Internet" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\VS2008ImageLibrary_Objects_Internet1.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="VS2008ImageLibrary_CommonElements_Actions_Add" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\VS2008ImageLibrary_CommonElements_Actions_Add.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
-  <data name="show_details" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\show_details.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="PublishToWebHS" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\PublishToWebHS.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
 </root>
