diff -r e21f3100d465 pom.xml
--- a/pom.xml	Sat Jan 26 20:02:02 2008 +0100
+++ b/pom.xml	Sun Jan 27 15:10:29 2008 +0100
@@ -98,9 +98,9 @@
       <version>2.4</version>
     </dependency>
     <dependency>
-      <groupId>cobertura</groupId>
+      <groupId>net.sourceforge.cobertura</groupId>
       <artifactId>cobertura</artifactId>
-      <version>1.7</version>
+      <version>1.9</version>
     </dependency>
     <dependency>
       <groupId>jfree</groupId>
diff -r e21f3100d465 src/main/java/org/codehaus/mojo/dashboard/report/plugin/DashBoardMultiReportGenerator.java
--- a/src/main/java/org/codehaus/mojo/dashboard/report/plugin/DashBoardMultiReportGenerator.java	Sat Jan 26 20:02:02 2008 +0100
+++ b/src/main/java/org/codehaus/mojo/dashboard/report/plugin/DashBoardMultiReportGenerator.java	Sun Jan 27 15:10:29 2008 +0100
@@ -21,6 +21,7 @@ import java.util.Date;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.ResourceBundle;
 
 import org.apache.maven.reporting.MavenReportException;
@@ -34,6 +35,7 @@ import org.codehaus.mojo.dashboard.repor
 import org.codehaus.mojo.dashboard.report.plugin.beans.JDependReportBean;
 import org.codehaus.mojo.dashboard.report.plugin.beans.PmdReportBean;
 import org.codehaus.mojo.dashboard.report.plugin.beans.SurefireReportBean;
+import org.codehaus.mojo.dashboard.report.plugin.beans.TagListReportBean;
 import org.codehaus.mojo.dashboard.report.plugin.beans.XRefPackageBean;
 import org.codehaus.mojo.dashboard.report.plugin.chart.AbstractChartRenderer;
 import org.codehaus.mojo.dashboard.report.plugin.chart.BarChartRenderer;
@@ -43,10 +45,12 @@ import org.codehaus.mojo.dashboard.repor
 import org.codehaus.mojo.dashboard.report.plugin.chart.PmdBarChartStrategy;
 import org.codehaus.mojo.dashboard.report.plugin.chart.StackedBarChartRenderer;
 import org.codehaus.mojo.dashboard.report.plugin.chart.SurefireBarChartStrategy;
+import org.codehaus.mojo.dashboard.report.plugin.chart.TaglistBarChartStrategy;
 
 /**
  * 
  * @author <a href="dvicente72@gmail.com">David Vicente</a>
+ * @author Henrik Lynggaard
  * 
  */
 public class DashBoardMultiReportGenerator extends AbstractDashBoardGenerator
@@ -63,6 +67,8 @@ public class DashBoardMultiReportGenerat
     private String surefireAnchorLink = "/" + dashboardReportFile + "#surefire";
     
     private String checkstyleAnchorLink = "/" + dashboardReportFile + "#checkstyle";
+    
+    private String taglistAnchorLink = "/" + dashboardReportFile + "#taglist";
     
     private String pmdAnchorLink = "/" + dashboardReportFile + "#pmd";
     
@@ -164,6 +170,13 @@ public class DashBoardMultiReportGenerat
         sink.link_();
         sink.text( "]" );
         sink.lineBreak();
+        
+        sink.text( "[" );
+        sink.link( "#taglist" );
+        sink.text( bundle.getString( "report.taglist.header" ) );
+        sink.link_();
+        sink.text( "]" );
+        sink.lineBreak();        
 
         sink.horizontalRule();
         sink.lineBreak();
@@ -181,6 +194,7 @@ public class DashBoardMultiReportGenerat
         createPmdSection( bundle, sink );
         createCpdSection( bundle, sink );
         createJDependSection( bundle, sink );
+        createTaglistSection(bundle,sink);
     }
 
     public void createSurefireSection( ResourceBundle bundle, Sink sink ) throws MavenReportException
@@ -521,7 +535,7 @@ public class DashBoardMultiReportGenerat
         }
     }
 
-    public void createCheckStyleSection( ResourceBundle bundle, Sink sink ) throws MavenReportException
+       public void createCheckStyleSection( ResourceBundle bundle, Sink sink ) throws MavenReportException
     {
         sink.section1();
         sink.sectionTitle2();
@@ -594,6 +608,104 @@ public class DashBoardMultiReportGenerat
         }
     }
 
+    
+    public void createTaglistSection( ResourceBundle bundle, Sink sink ) throws MavenReportException
+    {
+        sink.section1();
+        sink.sectionTitle2();
+        sink.anchor( "taglist" );
+        sink.text( bundle.getString( "report.taglist.header" ) );
+        sink.anchor_();
+        sink.sectionTitle2_();
+        linkToTopPage( sink );
+        sink.section1_();
+
+        sink.table();
+        sink.tableRow();
+        sinkHeader( sink, bundle.getString( "report.project.name.header" ) );
+  
+        List modules = mDashboardReport.getModules();
+        if (modules.size()>0) {
+          DashBoardReportBean dash= (DashBoardReportBean) modules.get(0);
+          for (Iterator ite = dash.getTaglistReport().getTags().entrySet().iterator();ite.hasNext();) {
+            Map.Entry entry = (Map.Entry) ite.next();
+
+            sink.tableHeaderCell();
+            sink.text( (String) entry.getKey());
+            sink.tableHeaderCell_();
+          }        
+        }
+        
+        sink.tableRow_();
+                
+        createTaglistLineByReport( bundle, sink, mDashboardReport, true, "" );
+
+        sink.table_();
+
+        sink.lineBreak();
+
+        AbstractChartRenderer chart =
+            new StackedBarChartRenderer( mDashboardReport, new TaglistBarChartStrategy( bundle ) );
+        if ( !chart.isEmpty() )
+        {
+        	String filename = replaceForbiddenChar( mDashboardReport.getProjectName() );
+        	filename =  filename + "_Taglist." + chart.getFileExtension();
+            filename = filename.replace( ' ', '_' );
+            String filenamePath = getImagesPath() + "/" + filename;            
+            try
+            {
+                chart.saveToFile( filenamePath );
+                String link = "images/" + filename;
+                link = link.replace( ' ', '_' );
+                sink.figure();
+                sink.figureGraphics( link );
+                sink.figure_();
+            }
+            catch ( IOException e )
+            {
+                System.out.println( "createTaglistStyleGraph exception = " + e.getMessage() );
+            }
+        }
+    }
+
+   public void createTaglistLineByReport( ResourceBundle bundle, Sink sink, IDashBoardReportBean dashboardReport,
+                                              boolean isRoot, String prefix )
+    {        
+        if ( dashboardReport instanceof DashBoardReportBean )
+        {
+            if ( ( (DashBoardReportBean) dashboardReport ).getTaglistReport() != null )
+            {
+                TagListReportBean taglistReport = ( (DashBoardReportBean) dashboardReport ).getTaglistReport();
+                sink.tableRow();
+                writeProjectCell( sink, dashboardReport, prefix, taglistAnchorLink );
+                for (Iterator ite = taglistReport.getTags().entrySet().iterator();ite.hasNext();) {
+                  Map.Entry entry = (Map.Entry) ite.next();
+
+                  sink.tableHeaderCell();
+                  sink.text( "" + entry.getValue());
+                  sink.tableHeaderCell_();
+                }
+                sink.tableRow_();
+            }
+        }
+        else
+        {
+            Iterator iter = ( (DashBoardMultiReportBean) dashboardReport ).getModules().iterator();
+
+            if ( !isRoot )
+            {
+                prefix = writeMultiProjectRow( sink, dashboardReport, prefix, taglistAnchorLink );
+            }
+
+            while ( iter.hasNext() )
+            {
+                IDashBoardReportBean reportBean = (IDashBoardReportBean) iter.next();
+                createTaglistLineByReport( bundle, sink, reportBean, false, prefix );
+            }
+        }
+    }    
+    
+    
     public void createCheckStyleLineByReport( ResourceBundle bundle, Sink sink, IDashBoardReportBean dashboardReport,
                                               boolean isRoot, String prefix )
     {
diff -r e21f3100d465 src/main/java/org/codehaus/mojo/dashboard/report/plugin/DashBoardReportGenerator.java
--- a/src/main/java/org/codehaus/mojo/dashboard/report/plugin/DashBoardReportGenerator.java	Sat Jan 26 20:02:02 2008 +0100
+++ b/src/main/java/org/codehaus/mojo/dashboard/report/plugin/DashBoardReportGenerator.java	Sun Jan 27 15:10:29 2008 +0100
@@ -21,6 +21,7 @@ import java.util.Date;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.ResourceBundle;
 
 import org.apache.maven.reporting.MavenReportException;
@@ -32,6 +33,7 @@ import org.codehaus.mojo.dashboard.repor
 import org.codehaus.mojo.dashboard.report.plugin.beans.JDependReportBean;
 import org.codehaus.mojo.dashboard.report.plugin.beans.PmdReportBean;
 import org.codehaus.mojo.dashboard.report.plugin.beans.SurefireReportBean;
+import org.codehaus.mojo.dashboard.report.plugin.beans.TagListReportBean;
 import org.codehaus.mojo.dashboard.report.plugin.beans.XRefPackageBean;
 import org.codehaus.mojo.dashboard.report.plugin.chart.AbstractChartRenderer;
 import org.codehaus.mojo.dashboard.report.plugin.chart.BarChartRenderer;
@@ -40,10 +42,12 @@ import org.codehaus.mojo.dashboard.repor
 import org.codehaus.mojo.dashboard.report.plugin.chart.CoberturaBarChartStrategy;
 import org.codehaus.mojo.dashboard.report.plugin.chart.PieChartRenderer;
 import org.codehaus.mojo.dashboard.report.plugin.chart.SurefirePieChartStrategy;
+import org.codehaus.mojo.dashboard.report.plugin.chart.TaglistPieChartStrategy;
 
 /**
  * 
  * @author <a href="dvicente72@gmail.com">David Vicente</a>
+ * @author Henrik Lynggaard
  * 
  */
 public class DashBoardReportGenerator extends AbstractDashBoardGenerator
@@ -105,6 +109,10 @@ public class DashBoardReportGenerator ex
             createJDependSection( bundle, sink );
         }
 
+        if ( this.dashBoardReport.getTaglistReport() != null )
+        {
+            createTaglistSection( bundle, sink );
+        }        
         sink.body_();
 
         sink.flush();
@@ -198,6 +206,16 @@ public class DashBoardReportGenerator ex
             sink.text( "]" );
             sink.lineBreak();
         }
+        
+        if ( this.dashBoardReport.getTaglistReport() != null )
+        {
+            sink.text( "[" );
+            sink.link( "#taglist" );
+            sink.text( bundle.getString( "report.taglist.header" ) );
+            sink.link_();
+            sink.text( "]" );
+            sink.lineBreak();
+        }        
 
         sink.horizontalRule();
         sink.lineBreak();
@@ -516,6 +534,93 @@ public class DashBoardReportGenerator ex
         sink.lineBreak();
     }
 
+    public void createTaglistSection(ResourceBundle bundle,Sink sink ) throws MavenReportException {
+             sink.section1();
+        sink.sectionTitle2();
+        sink.anchor( "taglist" );
+        sink.anchor_();
+        if ( this.summary )
+        {
+            sink.link( "dashboard-report-details.html#taglist" );
+            sink.text( bundle.getString( "report.taglist.header" ) );
+            sink.link_();
+        }
+        else
+        {
+            sink.link( "taglist.html" );
+            sink.text( bundle.getString( "report.taglist.header" ) );
+            sink.link_();
+        }
+        sink.sectionTitle2_();
+        linkToTopPage( sink );
+        sink.section1_();
+        TagListReportBean report = this.dashBoardReport.getTaglistReport();
+        if ( report == null )
+        {
+            sink.text( "Error: Unable to read from taglist data file ." );
+        }
+        else
+        {
+            sink.table();
+
+            sink.tableRow();
+            
+            for (Iterator ite = report.getTags().entrySet().iterator();ite.hasNext();) {
+              Map.Entry entry = (Map.Entry) ite.next();
+              
+              sink.tableHeaderCell();
+              sink.text( (String) entry.getKey());
+              sink.tableHeaderCell_();
+            }
+              
+            sink.tableRow_();
+            sink.tableRow();
+
+            for (Iterator ite = report.getTags().entrySet().iterator();ite.hasNext();) {
+              Map.Entry entry = (Map.Entry) ite.next();
+              
+              sink.tableHeaderCell();
+              sink.text( "" + entry.getValue());
+              sink.tableHeaderCell_();
+            }
+            sink.tableRow_();
+
+            sink.table_();
+        }
+        sink.lineBreak();
+        AbstractChartRenderer chart =
+            new PieChartRenderer( report, new TaglistPieChartStrategy( bundle ),
+                                  DashBoardReportGenerator.SPECIFIC_WIDTH, ChartUtils.STANDARD_HEIGHT );
+        if ( !chart.isEmpty() )
+        {
+        	String filename = replaceForbiddenChar( report.getProjectName() );
+            if ( this.summary )
+            {
+                filename += "_Summary_Taglist." + chart.getFileExtension();
+            }
+            else
+            {
+                filename += "_Taglist." + chart.getFileExtension();
+            }
+            filename = filename.replace( ' ', '_' );
+            String filenameWithPath = getImagesPath() + "/" + filename;
+            
+            try
+            {
+                chart.saveToFile( filenameWithPath );
+                String link = "images/" + filename;
+                link = link.replace( ' ', '_' );
+                sink.figure();
+                sink.figureGraphics( link );
+                sink.figure_();
+            }
+            catch ( IOException e )
+            {
+                System.out.println( "createTaglistGraph exception = " + e.getMessage() );
+            }
+        }
+    }
+    
     public void createCheckStyleSection( ResourceBundle bundle, Sink sink ) throws MavenReportException
     {
 
diff -r e21f3100d465 src/main/java/org/codehaus/mojo/dashboard/report/plugin/DashBoardUtils.java
--- a/src/main/java/org/codehaus/mojo/dashboard/report/plugin/DashBoardUtils.java	Sat Jan 26 20:02:02 2008 +0100
+++ b/src/main/java/org/codehaus/mojo/dashboard/report/plugin/DashBoardUtils.java	Sun Jan 27 15:10:29 2008 +0100
@@ -84,10 +84,12 @@ import org.xml.sax.SAXNotSupportedExcept
 
 import com.thoughtworks.xstream.XStream;
 import com.thoughtworks.xstream.io.xml.DomDriver;
+import org.codehaus.mojo.dashboard.report.plugin.beans.TagListReportBean;
 
 /**
  * 
  * @author <a href="dvicente72@gmail.com">David Vicente</a>
+ * @author Henrik Lynggaard
  * 
  */
 public class DashBoardUtils
@@ -257,7 +259,7 @@ public class DashBoardUtils
             {
                 ReportPlugin report = (ReportPlugin) reports.next();
                 String artifactId = report.getArtifactId();
-                // System.out.println( "DashBoardMojo artifactId = " + artifactId );
+
                 if ( "maven-checkstyle-plugin".equals( artifactId ) || "checkstyle-maven-plugin".equals( artifactId ) )
                 {
                     ( (DashBoardReportBean) dashBoardReport ).setCheckStyleReport( getCheckstyleReport( project ) );
@@ -281,6 +283,10 @@ public class DashBoardUtils
                 {
                     ( (DashBoardReportBean) dashBoardReport ).setJDependReport(  getJDependReport( project ) );
                 }
+                else if ( "maven-taglist-plugin".equals( artifactId ) || "taglist-maven-plugin".equals( artifactId ) )
+                {                    
+                    ( (DashBoardReportBean) dashBoardReport ).setTaglistReport(getTagListReport( project ) );
+                }                
             }
         }
         // saveXMLDashBoardReport( project, dashBoardReport, dashboardDataFile );
@@ -380,6 +386,32 @@ public class DashBoardUtils
         return coberturaReport;
     }
 
+    
+    protected TagListReportBean getTagListReport(MavenProject project) {
+      TagListReportBean tagListReportBean = new TagListReportBean( project.getName() );
+      
+      File tagListFolder = new File( project.getBuild().getDirectory(), "taglist" );
+      File tagListFile = new File( tagListFolder, "taglist.xml" );
+      
+      if (!tagListFile.exists() || !tagListFile.isFile()) {
+        return null;
+          
+      }
+      Document doc = getDocument( tagListFile );
+      
+      Element root = doc.getDocumentElement();
+      NodeList tags = root.getElementsByTagName("tag");
+      for (int i=0; i<tags.getLength();i++) {
+        Element tag =  (Element)tags.item(i);
+        String tagName = tag.getAttribute("name");
+        Integer tagCount = Integer.valueOf(tag.getAttribute("count"));        
+        tagListReportBean.setTag(tagName,tagCount);
+      }
+      
+      return tagListReportBean;
+    }
+    
+    
     /**
      * 
      * @param projectName
@@ -827,6 +859,7 @@ public class DashBoardUtils
         for ( Iterator reports = project.getReportPlugins().iterator(); reports.hasNext(); )
         {
             ReportPlugin report = (ReportPlugin) reports.next();
+             
             String artifactId = report.getArtifactId();
             if ( "cobertura-maven-plugin".equals( artifactId ) || "maven-cobertura-plugin".equals( artifactId ) )
             {
@@ -839,6 +872,9 @@ public class DashBoardUtils
         if ( dashboard != null )
         {
             String coberVersion = dashboard.getVersion();
+//            System.err.println("dashboard: "+dashboard.getGroupId()+":"+dashboard.getArtifactId()+":"+dashboard.getVersion());
+            
+  //          System.err.println("coberVersion: " +coberVersion);
             DefaultArtifactVersion artVersion = new DefaultArtifactVersion( coberVersion );
 
             if ( artVersion.getMajorVersion() >= 2 )
diff -r e21f3100d465 src/main/java/org/codehaus/mojo/dashboard/report/plugin/beans/DashBoardReportBean.java
--- a/src/main/java/org/codehaus/mojo/dashboard/report/plugin/beans/DashBoardReportBean.java	Sat Jan 26 20:02:02 2008 +0100
+++ b/src/main/java/org/codehaus/mojo/dashboard/report/plugin/beans/DashBoardReportBean.java	Sun Jan 27 15:10:29 2008 +0100
@@ -22,6 +22,7 @@ import java.util.Date;
 /**
  * 
  * @author <a href="dvicente72@gmail.com">David Vicente</a>
+ * @author Henrik Lynggaard
  * 
  */
 public class DashBoardReportBean extends AbstractReportBean
@@ -51,6 +52,8 @@ public class DashBoardReportBean extends
      */
     private SurefireReportBean surefireReport;
     
+    private TagListReportBean taglistReport;
+    
     /**
      * 
      * @param artefactId
@@ -79,6 +82,18 @@ public class DashBoardReportBean extends
     {
         super( artefactId , projectName );
     }
+
+    public TagListReportBean getTaglistReport() {
+      return taglistReport;
+    }
+
+    public void setTaglistReport(TagListReportBean taglistReport) {
+      this.taglistReport = taglistReport;
+    }
+    
+    
+    
+    
     /**
      * 
      * @param artefactId
@@ -278,6 +293,22 @@ public class DashBoardReportBean extends
                 this.jDependReport.setDateGeneration( this.getDateGeneration() );
             }
         }
+        
+        if ( ( (DashBoardReportBean) dashboardReport ).getTaglistReport() != null )
+        {
+            if ( this.taglistReport != null )
+            {              
+                this.taglistReport.merge( ( (DashBoardReportBean) dashboardReport ).getTaglistReport());
+            }
+            else
+            {              
+                this.taglistReport =
+                    (TagListReportBean) ( (DashBoardReportBean) dashboardReport ).getTaglistReport().clone();
+                this.taglistReport.setArtefactId( this.getArtefactId() );
+                this.taglistReport.setProjectName( this.getProjectName() );
+                this.taglistReport.setDateGeneration( this.getDateGeneration() );
+            }
+        }        
     }
     /**
      * 
@@ -309,7 +340,11 @@ public class DashBoardReportBean extends
         {
             this.jDependReport.setProjectName( projectName );
         }
-
+        if ( this.taglistReport != null )
+        {
+            this.taglistReport.setProjectName( projectName );
+        }
+        
     }
     /**
      * 
@@ -366,6 +401,15 @@ public class DashBoardReportBean extends
         {
             clone.setJDependReport( null );
         }
+        
+        if ( this.getTaglistReport() != null )
+        {
+            clone.setTaglistReport( (TagListReportBean) this.getTaglistReport().clone() );
+        }
+        else
+        {
+            clone.setTaglistReport( null );
+        }        
         return clone;
     }
 
diff -r e21f3100d465 src/main/java/org/codehaus/mojo/dashboard/report/plugin/beans/TagListReportBean.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/org/codehaus/mojo/dashboard/report/plugin/beans/TagListReportBean.java	Sun Jan 27 15:10:29 2008 +0100
@@ -0,0 +1,78 @@
+/*
+ *  Copyright 2008 Henrik Lynggaard
+ * 
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ * 
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *  under the License.
+ */
+
+package org.codehaus.mojo.dashboard.report.plugin.beans;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ *
+ * @author Henrik Lynggaard
+ */
+public class TagListReportBean extends AbstractReportBean {
+
+  
+    private Map tags = new HashMap();
+    private String projectName;
+    /**
+     * 
+     * @param projectName
+     */
+    public TagListReportBean( String projectName )
+    {
+        setProjectName(projectName);
+    }  
+    
+    public Map getTags() {
+      return tags;
+    }
+    
+    public void setTag(String name,Integer count) {
+      tags.put(name, count);
+    }
+    
+  
+    /**
+     * 
+     * @param dashboardReport
+     */
+    public void merge( TagListReportBean dashboardReport )
+    {      
+      Set entries = dashboardReport.getTags().entrySet();
+      
+      for (Iterator ite = entries.iterator();ite.hasNext();) {
+        Map.Entry entry = (Map.Entry) ite.next();
+       
+        if (tags.containsKey(entry.getKey())) {
+          Integer oldCount = (Integer) tags.get(entry.getKey());
+          int oldCountInt = oldCount.intValue();
+          
+          Integer otherCount = (Integer) entry.getValue();
+          int otherCountInt = otherCount.intValue();
+          
+          int newCountInt = oldCountInt + otherCountInt;
+          Integer newCount = Integer.valueOf(newCountInt);
+          tags.put(entry.getKey(), newCount);      
+        } else {     
+          tags.put(entry.getKey(), entry.getValue());                    
+        }                          
+      }      
+    }          
+}
diff -r e21f3100d465 src/main/java/org/codehaus/mojo/dashboard/report/plugin/chart/TaglistBarChartStrategy.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/org/codehaus/mojo/dashboard/report/plugin/chart/TaglistBarChartStrategy.java	Sun Jan 27 15:10:29 2008 +0100
@@ -0,0 +1,76 @@
+package org.codehaus.mojo.dashboard.report.plugin.chart;
+
+/*
+ * Copyright 2008 Henrik Lynggaard
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.ResourceBundle;
+
+
+import org.codehaus.mojo.dashboard.report.plugin.beans.DashBoardMultiReportBean;
+import org.codehaus.mojo.dashboard.report.plugin.beans.DashBoardReportBean;
+import org.codehaus.mojo.dashboard.report.plugin.beans.IDashBoardReportBean;
+import org.codehaus.mojo.dashboard.report.plugin.beans.TagListReportBean;
+import org.jfree.data.category.DefaultCategoryDataset;
+import org.jfree.data.general.Dataset;
+
+/**
+ * 
+ * @author Henrik Lynggaard
+ * 
+ */
+public class TaglistBarChartStrategy extends AbstractCategoryDatasetStrategy
+{
+
+    public TaglistBarChartStrategy( ResourceBundle bundle )
+    {
+        super( bundle );
+
+    }
+
+    public void createDatasetElement( Dataset dataset, IDashBoardReportBean dashboardReport )
+    {
+        if ( dashboardReport instanceof DashBoardReportBean )
+        {
+            if ( ( (DashBoardReportBean) dashboardReport ).getTaglistReport() != null )
+            {
+                TagListReportBean taglistReportBean = ( (DashBoardReportBean) dashboardReport ).getTaglistReport();
+
+                DefaultCategoryDataset defaultCategoryDataset = (DefaultCategoryDataset) dataset;
+                for (Iterator tags = taglistReportBean.getTags().entrySet().iterator(); tags.hasNext();) {
+                  Map.Entry entry = (Map.Entry) tags.next();
+                  String name = (String) entry.getKey();
+                  int value = ((Integer) entry.getValue()).intValue();
+                  defaultCategoryDataset.setValue(value,name,taglistReportBean.getProjectName());
+                  
+                }
+            }
+
+        }
+        else
+        {
+            Iterator iter = ( (DashBoardMultiReportBean) dashboardReport ).getModules().iterator();
+            while ( iter.hasNext() )
+            {
+                IDashBoardReportBean reportBean = (IDashBoardReportBean) iter.next();
+                createDatasetElement( dataset, reportBean );
+            }
+        }
+    }
+
+}
diff -r e21f3100d465 src/main/java/org/codehaus/mojo/dashboard/report/plugin/chart/TaglistPieChartStrategy.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/org/codehaus/mojo/dashboard/report/plugin/chart/TaglistPieChartStrategy.java	Sun Jan 27 15:10:29 2008 +0100
@@ -0,0 +1,65 @@
+package org.codehaus.mojo.dashboard.report.plugin.chart;
+
+/*
+ * Copyright 2008 Henrik Lynggaard
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.ResourceBundle;
+
+import org.codehaus.mojo.dashboard.report.plugin.beans.IDashBoardReportBean;
+import org.codehaus.mojo.dashboard.report.plugin.beans.TagListReportBean;
+import org.jfree.data.general.Dataset;
+import org.jfree.data.general.DefaultPieDataset;
+
+/**
+ * 
+ * @author Henrik Lynggaard
+ * 
+ */
+public class TaglistPieChartStrategy extends AbstractPieDatasetStrategy
+{
+    /**
+     * 
+     * @param bundle
+     */
+    public TaglistPieChartStrategy( ResourceBundle bundle )
+    {
+        super( bundle );
+    }
+    /**
+     * 
+     */
+    public void createDatasetElement( Dataset dataset, IDashBoardReportBean dashboardReport )
+    {
+      
+        if ( dashboardReport instanceof TagListReportBean )
+        {
+            TagListReportBean taglistReportBean = (TagListReportBean) dashboardReport;
+
+            DefaultPieDataset defaultPieDataset = (DefaultPieDataset) dataset;
+            
+                for (Iterator tags = taglistReportBean.getTags().entrySet().iterator(); tags.hasNext();) {
+                  Map.Entry entry = (Map.Entry) tags.next();
+                  String name = (String) entry.getKey();
+                  int value = ((Integer) entry.getValue()).intValue();                  
+                  defaultPieDataset.setValue(name+"="+value,value);
+                  
+                }            
+        }
+    }
+
+}
diff -r e21f3100d465 src/main/resources/dashboard-report-plugin.properties
--- a/src/main/resources/dashboard-report-plugin.properties	Sat Jan 26 20:02:02 2008 +0100
+++ b/src/main/resources/dashboard-report-plugin.properties	Sun Jan 27 15:10:29 2008 +0100
@@ -39,6 +39,8 @@ report.checkstyle.column.warnings=Warnin
 report.checkstyle.column.warnings=Warnings
 report.checkstyle.column.errors=Errors
 
+report.taglist.header=Taglist Report Summary
+
 report.xrefpackage.header=Xref JDepend/Cobertura Report Summary
 report.xrefpackage.label.average=Afferent Coupling Average
 report.xrefpackage.label.package=Package
diff -r e21f3100d465 src/main/resources/dashboard-report-plugin_en.properties
--- a/src/main/resources/dashboard-report-plugin_en.properties	Sat Jan 26 20:02:02 2008 +0100
+++ b/src/main/resources/dashboard-report-plugin_en.properties	Sun Jan 27 15:10:29 2008 +0100
@@ -39,6 +39,8 @@ report.checkstyle.column.warnings=Warnin
 report.checkstyle.column.warnings=Warnings
 report.checkstyle.column.errors=Errors
 
+report.taglist.header=Taglist Report Summary
+
 report.xrefpackage.header=Xref JDepend/Cobertura Report Summary
 report.xrefpackage.label.average=Afferent Coupling Average
 report.xrefpackage.label.package=Package

