diff options
4 files changed, 86 insertions, 0 deletions
diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java index 84d6b162235..ce3a0fb254f 100644 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java @@ -369,6 +369,7 @@ public final class CorePlugin extends SonarPlugin { MeasureFilterListWidget.class, MeasureFilterTreemapWidget.class, WelcomeWidget.class, + DocumentationCommentsWidget.class, // dashboards ProjectDefaultDashboard.class, diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/widgets/DocumentationCommentsWidget.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/widgets/DocumentationCommentsWidget.java new file mode 100644 index 00000000000..3b0ae1f90f7 --- /dev/null +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/widgets/DocumentationCommentsWidget.java @@ -0,0 +1,29 @@ +/* + * SonarQube, open source software quality management tool. + * Copyright (C) 2008-2013 SonarSource + * mailto:contact AT sonarsource DOT com + * + * SonarQube is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * SonarQube 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +package org.sonar.plugins.core.widgets; + + +public class DocumentationCommentsWidget extends CoreWidget { + + public DocumentationCommentsWidget() { + super("documentation_comments", "Documentation Metrics", "/org/sonar/plugins/core/widgets/documentation_comments_widget.html.erb"); + } + +} diff --git a/plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties b/plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties index ca77fe4f6ca..3c94a4082fa 100644 --- a/plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties +++ b/plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties @@ -901,6 +901,15 @@ widget.comments_duplications.duplications=Duplications widget.comments_duplications.blocks.suffix=\ blocks widget.comments_duplications.files.suffix=\ files +widget.documentation_comments.name=Documentation & Comments +widget.documentation_comments.description=Reports on comments and documentation +widget.documentation_comments.comments=Comments +widget.documentation_comments.documentation=Documentation +widget.documentation_comments.lines.suffix=\ lines +widget.documentation_comments.docu_api.suffix=\ docu. API +widget.documentation_comments.undocu_api.suffix=\ undocu. API +widget.documentation_comments.public_api.suffix=\ Public API + widget.complexity.name=Complexity widget.complexity.description=Reports on complexity, average complexity and complexity distribution. widget.complexity.per_method.suffix=\ /method diff --git a/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/documentation_comments_widget.html.erb b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/documentation_comments_widget.html.erb new file mode 100644 index 00000000000..6cdc14165ac --- /dev/null +++ b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/documentation_comments_widget.html.erb @@ -0,0 +1,47 @@ +<% + comments=measure('comment_lines_density') + if comments +%> +<table width="100%"> + <tbody> + <tr> + <td valign="top" width="50%"> + <div class="dashbox"> + <p class="title"><%= message('widget.documentation_comments.documentation') -%></p> + <p> + <span class="big"> + <%= format_measure(measure('public_documented_api_density'),:url => url_for_drilldown('public_documented_api_density'), :suffix => ' ' + message('widget.documentation_comments.docu_api.suffix'))%> + </span> + <%= dashboard_configuration.selected_period? ? format_variation('public_documented_api_density') : trend_icon('public_documented_api_density') -%> + </p> + <p> + <%= format_measure(measure('public_api'),:url => url_for_drilldown('public_api'), :suffix => ' ' + message('widget.documentation_comments.public_api.suffix'))%> + <%= dashboard_configuration.selected_period? ? format_variation('public_api') : trend_icon('public_api') -%> + </p> + <p> + <%= format_measure(measure('public_undocumented_api'),:url => url_for_drilldown('public_undocumented_api'), :suffix => ' ' + message('widget.documentation_comments.undocu_api.suffix'))%> + <%= dashboard_configuration.selected_period? ? format_variation('public_undocumented_api') : trend_icon('public_undocumented_api') -%> + </p> + </div> + </td> + <td valign="top" width="50%"> + <div class="dashbox"> + <p class="title"><%= message('widget.documentation_comments.comments') -%></p> + <p> + <span class="big"> + <%= format_measure('comment_lines_density',:url => url_for_drilldown('comment_lines_density'))%> + </span> + <%= dashboard_configuration.selected_period? ? format_variation('comment_lines_density') : trend_icon('comment_lines_density') -%> + </p> + <p> + <%= format_measure(measure('comment_lines'),:url => url_for_drilldown('comment_lines'), :suffix => ' ' + message('widget.documentation_comments.lines.suffix'))%> + <%= dashboard_configuration.selected_period? ? format_variation('comment_lines') : trend_icon('comment_lines') -%> + </p> + </div> + </td> + </tr> + </tbody> +</table> +<% + end +%> |