diff options
author | David Gageot <david@gageot.net> | 2012-07-05 09:00:27 +0200 |
---|---|---|
committer | David Gageot <david@gageot.net> | 2012-07-05 09:00:27 +0200 |
commit | f5ddbab60c57c9eb0d1dac904268f0fdfbf8f8f2 (patch) | |
tree | 35950673b16abe2de7684553437bab55379c8525 /sonar-server | |
parent | 367c873a3475b8f92278a0a13578dc38b1935483 (diff) | |
download | sonarqube-f5ddbab60c57c9eb0d1dac904268f0fdfbf8f8f2.tar.gz sonarqube-f5ddbab60c57c9eb0d1dac904268f0fdfbf8f8f2.zip |
SONAR-3529 Display properties in same order as annotation
Diffstat (limited to 'sonar-server')
-rw-r--r-- | sonar-server/src/main/java/org/sonar/server/ui/ViewProxy.java | 9 | ||||
-rw-r--r-- | sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_properties.html.erb | 38 |
2 files changed, 21 insertions, 26 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/ui/ViewProxy.java b/sonar-server/src/main/java/org/sonar/server/ui/ViewProxy.java index 5945598ca93..81422af11cb 100644 --- a/sonar-server/src/main/java/org/sonar/server/ui/ViewProxy.java +++ b/sonar-server/src/main/java/org/sonar/server/ui/ViewProxy.java @@ -21,7 +21,8 @@ package org.sonar.server.ui; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSetMultimap; -import com.google.common.collect.LinkedHashMultimap; +import com.google.common.collect.LinkedListMultimap; +import com.google.common.collect.ListMultimap; import com.google.common.collect.Maps; import com.google.common.collect.SetMultimap; import org.apache.commons.lang.ArrayUtils; @@ -65,7 +66,7 @@ public class ViewProxy<V extends View> implements Comparable<ViewProxy> { private String[] defaultForMetrics = {}; private String description = ""; private Map<String, WidgetProperty> widgetPropertiesByKey = Maps.newHashMap(); - private SetMultimap<WidgetPropertySet, WidgetProperty> widgetPropertiesBySet = LinkedHashMultimap.create(); + private ListMultimap<WidgetPropertySet, WidgetProperty> widgetPropertiesBySet = LinkedListMultimap.create(); private String[] widgetCategories = {}; private WidgetLayoutType widgetLayout = WidgetLayoutType.DEFAULT; private boolean isDefaultTab = false; @@ -225,8 +226,8 @@ public class ViewProxy<V extends View> implements Comparable<ViewProxy> { return widgetPropertiesByKey.values(); } - public SetMultimap<WidgetPropertySet, WidgetProperty> getWidgetPropertiesBySet() { - return ImmutableSetMultimap.copyOf(widgetPropertiesBySet); + public ListMultimap<WidgetPropertySet, WidgetProperty> getWidgetPropertiesBySet() { + return widgetPropertiesBySet; } public WidgetProperty getWidgetProperty(String propertyKey) { diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_properties.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_properties.html.erb index b14797cfcc3..348a6ab243d 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_properties.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/dashboard/_widget_properties.html.erb @@ -13,28 +13,22 @@ </tr> <% end %> - <% widget.java_definition.getWidgetPropertiesBySet().asMap().sort { |(s1,p1), (s2,p2)| natural_comparison(s1.key, s2.key) }.each do |set,properties| %> - <% if widget.java_definition.getWidgetPropertiesBySet().asMap().size > 1 %> - <% if set.key().empty? %> - <tr> - <td celspan="2"><h3>other</h3></td> - </tr> - <% else %> - <tr> - <td celspan="2"><h3><%= set.key() -%></h3></td> - </tr> - <% end %> - <% end %> - <% properties.sort { |w1, w2| natural_comparison(w1.key, w2.key) }.each do |property_def| %> - <tr> - <td class="form-key-cell"><%= property_def.key() -%><%= " *" unless property_def.optional() -%></td> - <td class="form-val-cell" id="row_<%= property_def.key() -%>"> - <%= property_value_field(property_def, widget.property_text_value(property_def.key())) -%> - <div class="form-val-note"> - <%= message("widget." + widget.key + ".param." + property_def.key(), :default => property_def.description()) -%> - </div> - </td> - </tr> + <% widget.java_definition.getWidgetPropertiesBySet().asMap().each do |set, properties| %> + <% if widget.java_definition.getWidgetPropertiesBySet().asMap().size > 1 or !set.key().empty? %> + <tr> + <td celspan="2"><h3><%= set.key().empty? ? 'other' : set.key() -%></h3></td> + </tr> + <% end %> + <% properties.each do |property_def| %> + <tr> + <td class="form-key-cell"><%= property_def.key() -%><%= " *" unless property_def.optional() -%></td> + <td class="form-val-cell" id="row_<%= property_def.key() -%>"> + <%= property_value_field(property_def, widget.property_text_value(property_def.key())) -%> + <div class="form-val-note"> + <%= message("widget." + widget.key + ".param." + property_def.key(), :default => property_def.description()) -%> + </div> + </td> + </tr> <% end %> <% end %> |