diff options
author | simonbrandhof <simon.brandhof@gmail.com> | 2011-01-03 14:42:18 +0000 |
---|---|---|
committer | simonbrandhof <simon.brandhof@gmail.com> | 2011-01-03 14:42:18 +0000 |
commit | cd7e660498017d5dd42812b54879bfbd215f2808 (patch) | |
tree | c949aeebdca09c207a27ec8bc35b0681f7001f9b /plugins/sonar-core-gwt | |
parent | d3defa985674f487fe7283a4bfafe897c7c83080 (diff) | |
download | sonarqube-cd7e660498017d5dd42812b54879bfbd215f2808.tar.gz sonarqube-cd7e660498017d5dd42812b54879bfbd215f2808.zip |
Violations viewer : keep the rule selected in drilldown
Diffstat (limited to 'plugins/sonar-core-gwt')
-rw-r--r-- | plugins/sonar-core-gwt/src/main/java/org/sonar/plugins/core/violationsviewer/client/ViolationsViewer.java | 65 |
1 files changed, 30 insertions, 35 deletions
diff --git a/plugins/sonar-core-gwt/src/main/java/org/sonar/plugins/core/violationsviewer/client/ViolationsViewer.java b/plugins/sonar-core-gwt/src/main/java/org/sonar/plugins/core/violationsviewer/client/ViolationsViewer.java index 546dc433bf2..08659d04661 100644 --- a/plugins/sonar-core-gwt/src/main/java/org/sonar/plugins/core/violationsviewer/client/ViolationsViewer.java +++ b/plugins/sonar-core-gwt/src/main/java/org/sonar/plugins/core/violationsviewer/client/ViolationsViewer.java @@ -51,8 +51,6 @@ public class ViolationsViewer extends Page { private ListBox filterBox = null, periodBox = null; private List<Date> dateFilters = new ArrayList<Date>(); private CheckBox expandCheckbox = null; - private String defaultFilter; - private int defaultPeriodIndex = -1; // source private ViolationsPanel sourcePanel; @@ -75,8 +73,7 @@ public class ViolationsViewer extends Page { header.getCellFormatter().setStyleName(0, 1, "right"); - initDefaultFilter(); - initFilterBoxes(); + initFilters(); header.setWidget(0, 1, periodBox); header.getCellFormatter().setStyleName(0, 1, "thin cell right"); @@ -98,13 +95,11 @@ public class ViolationsViewer extends Page { header.setWidget(0, 4, expandCheckbox); header.getCellFormatter().setStyleName(0, 4, "thin cell left"); - sourcePanel = new ViolationsPanel(resource, getCurrentRuleFilter(), getCurrentDateFilter()); - loadRuleSeverities(); return mainPanel; } - private void initFilterBoxes() { + private void initFilters() { initFilterBox(); initPeriodBox(); @@ -135,6 +130,11 @@ public class ViolationsViewer extends Page { initPeriod(3); initPeriod(4); initPeriod(5); + + String period = Configuration.getRequestParameter("period"); + if (period != null && !"".equals(period)) { + periodBox.setSelectedIndex(Integer.valueOf(period)); + } } private void initPeriod(int periodIndex) { @@ -146,9 +146,6 @@ public class ViolationsViewer extends Page { dateFilters.add(date); } } - if (defaultPeriodIndex > -1) { - periodBox.setSelectedIndex(defaultPeriodIndex); - } } private Date getCurrentDateFilter() { @@ -163,42 +160,35 @@ public class ViolationsViewer extends Page { return filterBox.getValue(filterBox.getSelectedIndex()); } - private void initDefaultFilter() { - defaultFilter = Configuration.getRequestParameter("rule"); - if (defaultFilter == null) { - defaultFilter = Configuration.getRequestParameter("priority"); - } - String period = Configuration.getRequestParameter("period"); - if (period != null && !"".equals(period)) { - defaultPeriodIndex = Integer.valueOf(period); - } - } - private void loadRuleSeverities() { final ResourceQuery query = ResourceQuery.createForResource(resource, Metrics.BLOCKER_VIOLATIONS, Metrics.CRITICAL_VIOLATIONS, Metrics.MAJOR_VIOLATIONS, Metrics.MINOR_VIOLATIONS, Metrics.INFO_VIOLATIONS); Sonar.getInstance().find(query, new AbstractCallback<Resource>(loading) { @Override protected void doOnResponse(Resource resource) { + String defaultFilter = Configuration.getRequestParameter("rule"); + if (defaultFilter == null) { + defaultFilter = Configuration.getRequestParameter("priority"); + } setResourceHasViolations(resource); - displayRuleSeverities(resource); - loadRules(resource); + displayRuleSeverities(resource, defaultFilter); + loadRules(resource, defaultFilter); } }); } - private void displayRuleSeverities(Resource resource) { + private void displayRuleSeverities(Resource resource, String defaultFilter) { final Grid grid = new Grid(1, 10); header.setWidget(0, 0, grid); - displayRuleSeverity(grid, 0, "BLOCKER", resource.getMeasure(Metrics.BLOCKER_VIOLATIONS)); - displayRuleSeverity(grid, 2, "CRITICAL", resource.getMeasure(Metrics.CRITICAL_VIOLATIONS)); - displayRuleSeverity(grid, 4, "MAJOR", resource.getMeasure(Metrics.MAJOR_VIOLATIONS)); - displayRuleSeverity(grid, 6, "MINOR", resource.getMeasure(Metrics.MINOR_VIOLATIONS)); - displayRuleSeverity(grid, 8, "INFO", resource.getMeasure(Metrics.INFO_VIOLATIONS)); + displayRuleSeverity(grid, 0, "BLOCKER", defaultFilter, resource.getMeasure(Metrics.BLOCKER_VIOLATIONS)); + displayRuleSeverity(grid, 2, "CRITICAL", defaultFilter, resource.getMeasure(Metrics.CRITICAL_VIOLATIONS)); + displayRuleSeverity(grid, 4, "MAJOR", defaultFilter, resource.getMeasure(Metrics.MAJOR_VIOLATIONS)); + displayRuleSeverity(grid, 6, "MINOR", defaultFilter, resource.getMeasure(Metrics.MINOR_VIOLATIONS)); + displayRuleSeverity(grid, 8, "INFO", defaultFilter, resource.getMeasure(Metrics.INFO_VIOLATIONS)); } - private void displayRuleSeverity(final Grid grid, final int column, final String severity, final Measure measure) { + private void displayRuleSeverity(final Grid grid, final int column, final String severity, final String defaultFilter, final Measure measure) { String value = "0"; if (measure != null) { value = measure.getFormattedValue(); @@ -214,7 +204,7 @@ public class ViolationsViewer extends Page { grid.getCellFormatter().setStyleName(0, column + 1, "thin left value"); } - private void loadRules(Resource resource) { + private void loadRules(final Resource resource, final String defaultFilter) { final ResourceQuery query = ResourceQuery.createForResource(resource, Metrics.VIOLATIONS) .setExcludeRules(false); Sonar.getInstance().find(query, new AbstractCallback<Resource>(loading) { @@ -222,7 +212,7 @@ public class ViolationsViewer extends Page { @Override protected void doOnResponse(Resource resource) { setResourceHasViolations(resource); - displayRules(resource); + displayRules(resource, defaultFilter); loadSources(); } }); @@ -232,7 +222,7 @@ public class ViolationsViewer extends Page { resourceHasViolations = resource != null && resource.getMeasure(Metrics.VIOLATIONS) != null; } - private void displayRules(Resource resource) { + private void displayRules(final Resource resource, final String defaultFilter) { Collections.sort(resource.getMeasures(), new Comparator<Measure>() { public int compare(Measure m1, Measure m2) { return m1.getRuleName().compareTo(m2.getRuleName()); @@ -250,9 +240,14 @@ public class ViolationsViewer extends Page { } private void loadSources() { - mainPanel.remove(sourcePanel); - if (resourceHasViolations || expandCheckbox.getValue()) { + if (sourcePanel == null) { + sourcePanel = new ViolationsPanel(resource, getCurrentRuleFilter(), getCurrentDateFilter()); mainPanel.add(sourcePanel); + } else { + mainPanel.remove(sourcePanel); + if (resourceHasViolations || expandCheckbox.getValue()) { + mainPanel.add(sourcePanel); + } } } } |