Index: /trunk/sources/HeuristicLab.Analysis.Views/3.3/GanttDataView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Analysis.Views/3.3/GanttDataView.cs	(revision 14736)
+++ /trunk/sources/HeuristicLab.Analysis.Views/3.3/GanttDataView.cs	(revision 14737)
@@ -50,4 +50,8 @@
       Content.Rows.ItemsReplaced += GanttRowsOnChanged;
       Content.Rows.CollectionReset += GanttRowsOnChanged;
+      Content.CategoryColors.ItemsAdded += GanttCategoryColorsOnChanged;
+      Content.CategoryColors.ItemsRemoved += GanttCategoryColorsOnChanged;
+      Content.CategoryColors.ItemsReplaced += GanttCategoryColorsOnChanged;
+      Content.CategoryColors.CollectionReset += GanttCategoryColorsOnChanged;
       foreach (var row in Content.Rows)
         RegisterGanttRowEvents(row);
@@ -73,4 +77,8 @@
       Content.Rows.ItemsReplaced -= GanttRowsOnChanged;
       Content.Rows.CollectionReset -= GanttRowsOnChanged;
+      Content.CategoryColors.ItemsAdded -= GanttCategoryColorsOnChanged;
+      Content.CategoryColors.ItemsRemoved -= GanttCategoryColorsOnChanged;
+      Content.CategoryColors.ItemsReplaced -= GanttCategoryColorsOnChanged;
+      Content.CategoryColors.CollectionReset -= GanttCategoryColorsOnChanged;
       foreach (var row in Content.Rows)
         DeregisterGanttRowEvents(row);
@@ -121,4 +129,5 @@
       
       ganttChart.Hide();
+      ganttChart.Title = string.IsNullOrWhiteSpace(Content.Name) ? null : Content.Name;
       foreach (var row in Content.Rows) {
         foreach (var item in row.Items) {
@@ -138,9 +147,11 @@
       UpdateVisualization();
     }
-
     private void GanttRowsOnRemoved(object sender, CollectionItemsChangedEventArgs<GanttRow> e) {
       foreach (var row in e.Items)
         DeregisterGanttRowEvents(row);
 
+      UpdateVisualization();
+    }
+    private void GanttCategoryColorsOnChanged(object sender, EventArgs e) {
       UpdateVisualization();
     }
Index: /trunk/sources/HeuristicLab.Analysis/3.3/DataVisualization/GanttData.cs
===================================================================
--- /trunk/sources/HeuristicLab.Analysis/3.3/DataVisualization/GanttData.cs	(revision 14736)
+++ /trunk/sources/HeuristicLab.Analysis/3.3/DataVisualization/GanttData.cs	(revision 14737)
@@ -34,5 +34,5 @@
   [Item("Gantt Data", "Data of a Gantt visualization")]
   [StorableClass]
-  public class GanttData : Item {
+  public class GanttData : NamedItem {
 
     [Storable]
@@ -51,9 +51,13 @@
       categoryColors = new ObservableDictionary<string, Color>(original.categoryColors);
     }
-    public GanttData() {
+    public GanttData() : this("Gantt Data", "Data of a Gantt visualization") { }
+    public GanttData(string name) : this(name, string.Empty) { }
+    public GanttData(string name, string description) : base(name, description) {
       rows = new NamedItemCollection<GanttRow>();
       categoryColors = new ObservableDictionary<string, Color>();
     }
-    public GanttData(IEnumerable<GanttRow> rows) {
+    public GanttData(IEnumerable<GanttRow> rows) : this("Gantt Data", rows) { }
+    public GanttData(string name, IEnumerable<GanttRow> rows) : this(name, string.Empty, rows) { }
+    public GanttData(string name, string description, IEnumerable<GanttRow> rows) : base(name, description) {
       this.rows = new NamedItemCollection<GanttRow>(rows);
       categoryColors = new ObservableDictionary<string, Color>();
@@ -78,8 +82,12 @@
       items = cloner.Clone(original.items);
     }
-    public GanttRow() {
+    public GanttRow() : this("Gantt Row", "Row of a Gantt chart") { }
+    public GanttRow(string name) : this(name, string.Empty) { }
+    public GanttRow(string name, string description) : base(name, description) {
       items = new ItemList<GanttItem>();
     }
-    public GanttRow(IEnumerable<GanttItem> items) {
+    public GanttRow(IEnumerable<GanttItem> items) : this("Gantt Row", items) { }
+    public GanttRow(string name, IEnumerable<GanttItem> items) : this(name, string.Empty, items) { }
+    public GanttRow(string name, string description, IEnumerable<GanttItem> items) : base(name, description) {
       this.items = new ItemList<GanttItem>(items);
     }
Index: /trunk/sources/HeuristicLab.Visualization.ChartControlsExtensions/3.3/GanttChart.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Visualization.ChartControlsExtensions/3.3/GanttChart.Designer.cs	(revision 14736)
+++ /trunk/sources/HeuristicLab.Visualization.ChartControlsExtensions/3.3/GanttChart.Designer.cs	(revision 14737)
@@ -45,7 +45,9 @@
     /// </summary>
     private void InitializeComponent() {
+      this.components = new System.ComponentModel.Container();
       System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
       System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
       System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
+      System.Windows.Forms.DataVisualization.Charting.Title title1 = new System.Windows.Forms.DataVisualization.Charting.Title();
       this.chart = new HeuristicLab.Visualization.ChartControlsExtensions.EnhancedChart();
       ((System.ComponentModel.ISupportInitialize)(this.chart)).BeginInit();
@@ -54,7 +56,7 @@
       // chart
       // 
-      this.chart.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.chart.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)));
       chartArea1.AxisX.ScaleView.SmallScrollMinSizeType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Milliseconds;
       chartArea1.AxisY.ScaleView.SmallScrollMinSizeType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Milliseconds;
@@ -79,8 +81,12 @@
       this.chart.TabIndex = 0;
       this.chart.Text = "chart";
+      title1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      title1.Name = "Gantt Title";
+      title1.Text = "Gantt Title";
+      title1.Visible = false;
+      this.chart.Titles.Add(title1);
       // 
       // GanttChart
       // 
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
       this.Controls.Add(this.chart);
Index: /trunk/sources/HeuristicLab.Visualization.ChartControlsExtensions/3.3/GanttChart.cs
===================================================================
--- /trunk/sources/HeuristicLab.Visualization.ChartControlsExtensions/3.3/GanttChart.cs	(revision 14736)
+++ /trunk/sources/HeuristicLab.Visualization.ChartControlsExtensions/3.3/GanttChart.cs	(revision 14737)
@@ -32,4 +32,12 @@
     private IDictionary<string, Color> categories = new Dictionary<string, Color>();
     private IDictionary<string, int> rowNames = new Dictionary<string, int>();
+
+    public string Title {
+      get { return chart.Titles[0].Text; }
+      set {
+        chart.Titles[0].Text = value ?? string.Empty;
+        chart.Titles[0].Visible = value != null;
+      }
+    }
 
     public GanttChart() {
