Index: /trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManager.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManager.cs	(revision 2752)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManager.cs	(revision 2753)
@@ -41,4 +41,9 @@
     internal event EventHandler<PluginInfrastructureEventArgs> PluginInstalled;
 
+
+    public IEnumerable<PluginDescription> Plugins {
+      get { return pluginManager.Plugins; }
+    }
+
     private string pluginDir;
     private string updateLocationUrl;
@@ -66,23 +71,24 @@
       builder.Append("Version: ").AppendLine(desc.Version.ToString());
       builder.AppendLine("Description:").AppendLine(desc.Description);
-      builder.Append("Build date: ").AppendLine(desc.BuildDate.ToString());
+      builder.AppendLine("This plugin is " + desc.PluginState.ToString().ToLowerInvariant() + ".");
+      builder.Append("Build date: ").AppendLine(desc.BuildDate.ToString()).AppendLine();
       builder.AppendLine("Files: ");
-      foreach (string fileName in from file in desc.Files select file.Name) {
-        builder.AppendLine(fileName);
-      }
-      builder.AppendLine("Directly depends on:");
+      foreach (var file in desc.Files) {
+        builder.AppendLine(file.Type + " " + file.Name);
+      }
+      builder.AppendLine().AppendLine("Directly depends on:");
       if (desc.Dependencies.Count() == 0) builder.AppendLine("None");
       foreach (var dependency in desc.Dependencies) {
-        builder.AppendLine(dependency.Name);
-      }
-      builder.AppendFormat("Plugins directly dependent on {0}:\n", desc.Name);
+        builder.AppendLine(dependency.Name + " " + dependency.Version);
+      }
+      builder.AppendLine().AppendFormat("Plugins directly dependent on {0}:\n", desc.Name);
       var dependents = from x in pluginManager.Plugins
                        where x.Dependencies.Contains(desc)
-                       select x.Name;
+                       select x;
       if (dependents.Count() == 0) builder.AppendLine("None");
       foreach (var dependent in dependents) {
-        builder.AppendLine(dependent);
-      }
-      builder.AppendLine("This plugin is " + desc.PluginState.ToString().ToLowerInvariant() + ".");
+        builder.AppendLine(dependent.Name + " " + dependent.Version);
+      }
+      builder.AppendLine();
       if (desc.PluginState == PluginState.Disabled) {
         builder.AppendLine(DetermineProblem(desc));
@@ -95,4 +101,5 @@
       // either any file is missing
       StringBuilder builder = new StringBuilder();
+      builder.AppendLine("Problem report:");
       var missingFiles = from x in desc.Files
                          where !File.Exists(x.Name)
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.Designer.cs	(revision 2752)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.Designer.cs	(revision 2753)
@@ -24,5 +24,56 @@
     /// </summary>
     private void InitializeComponent() {
+      this.statusStrip = new System.Windows.Forms.StatusStrip();
+      this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel();
+      this.detailsTextBox = new System.Windows.Forms.TextBox();
+      this.pluginsListView = new System.Windows.Forms.ListView();
+      this.tableLayoutPanel.SuspendLayout();
       this.SuspendLayout();
+      // 
+      // statusStrip
+      // 
+      this.statusStrip.Location = new System.Drawing.Point(0, 433);
+      this.statusStrip.Name = "statusStrip";
+      this.statusStrip.Size = new System.Drawing.Size(394, 22);
+      this.statusStrip.TabIndex = 0;
+      this.statusStrip.Text = "statusStrip1";
+      // 
+      // tableLayoutPanel
+      // 
+      this.tableLayoutPanel.ColumnCount = 1;
+      this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+      this.tableLayoutPanel.Controls.Add(this.detailsTextBox, 0, 1);
+      this.tableLayoutPanel.Controls.Add(this.pluginsListView, 0, 0);
+      this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.tableLayoutPanel.Location = new System.Drawing.Point(0, 0);
+      this.tableLayoutPanel.Name = "tableLayoutPanel";
+      this.tableLayoutPanel.RowCount = 2;
+      this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 64F));
+      this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 36F));
+      this.tableLayoutPanel.Size = new System.Drawing.Size(394, 433);
+      this.tableLayoutPanel.TabIndex = 1;
+      // 
+      // detailsTextBox
+      // 
+      this.detailsTextBox.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.detailsTextBox.Location = new System.Drawing.Point(3, 280);
+      this.detailsTextBox.Multiline = true;
+      this.detailsTextBox.Name = "detailsTextBox";
+      this.detailsTextBox.ReadOnly = true;
+      this.detailsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
+      this.detailsTextBox.Size = new System.Drawing.Size(388, 150);
+      this.detailsTextBox.TabIndex = 0;
+      // 
+      // pluginsListView
+      // 
+      this.pluginsListView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.pluginsListView.Location = new System.Drawing.Point(3, 3);
+      this.pluginsListView.MultiSelect = false;
+      this.pluginsListView.Name = "pluginsListView";
+      this.pluginsListView.Size = new System.Drawing.Size(388, 271);
+      this.pluginsListView.TabIndex = 1;
+      this.pluginsListView.UseCompatibleStateImageBehavior = false;
+      this.pluginsListView.View = System.Windows.Forms.View.List;
+      this.pluginsListView.SelectedIndexChanged += new System.EventHandler(this.pluginsListView_SelectedIndexChanged);
       // 
       // InstallationManagerForm
@@ -30,12 +81,22 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.ClientSize = new System.Drawing.Size(284, 264);
+      this.ClientSize = new System.Drawing.Size(394, 455);
+      this.Controls.Add(this.tableLayoutPanel);
+      this.Controls.Add(this.statusStrip);
       this.Name = "InstallationManagerForm";
       this.Text = "InstallationManager";
+      this.tableLayoutPanel.ResumeLayout(false);
+      this.tableLayoutPanel.PerformLayout();
       this.ResumeLayout(false);
+      this.PerformLayout();
 
     }
 
     #endregion
+
+    private System.Windows.Forms.StatusStrip statusStrip;
+    private System.Windows.Forms.TableLayoutPanel tableLayoutPanel;
+    private System.Windows.Forms.TextBox detailsTextBox;
+    private System.Windows.Forms.ListView pluginsListView;
   }
 }
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.cs
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.cs	(revision 2752)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.cs	(revision 2753)
@@ -7,9 +7,41 @@
 using System.Text;
 using System.Windows.Forms;
+using System.IO;
+using HeuristicLab.PluginInfrastructure.Manager;
 
 namespace HeuristicLab.PluginInfrastructure.Advanced {
   public partial class InstallationManagerForm : Form {
+    private InstallationManager installationManager;
+
     public InstallationManagerForm() {
       InitializeComponent();
+      this.installationManager = new InstallationManager(Path.GetDirectoryName(Application.ExecutablePath));
+
+      UpdatePluginsList();
+    }
+
+    private void UpdatePluginsList() {
+      foreach (var plugin in installationManager.Plugins) {
+        pluginsListView.Items.Add(CreatePluginItem(plugin));
+      }
+    }
+
+    private static ListViewItem CreatePluginItem(IPluginDescription plugin) {
+      ListViewItem item = new ListViewItem();
+      item.Tag = plugin;
+      item.Text = plugin.Name + "-" + plugin.Version.ToString();
+      return item;
+    }
+
+    private void pluginsListView_SelectedIndexChanged(object sender, EventArgs e) {
+      if (pluginsListView.SelectedItems.Count > 0) {
+        ListViewItem selecteditem = pluginsListView.SelectedItems[0];
+        IPluginDescription desc = (IPluginDescription)selecteditem.Tag;
+        UpdateDetailsBox((PluginDescription)desc);
+      }
+    }
+
+    private void UpdateDetailsBox(PluginDescription desc) {
+      detailsTextBox.Text = installationManager.GetInformation(desc.Name);
     }
   }
Index: /trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.resx
===================================================================
--- /trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.resx	(revision 2752)
+++ /trunk/sources/HeuristicLab.PluginInfrastructure/Advanced/InstallationManagerForm.resx	(revision 2753)
@@ -118,3 +118,6 @@
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <metadata name="statusStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
 </root>
