aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-batch-protocol
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2015-12-11 17:50:56 +0100
committerJulien HENRY <julien.henry@sonarsource.com>2015-12-11 17:50:56 +0100
commitc637a52e84db7cc86c1ef574ac6fa2787d2a0683 (patch)
treed5c6735bad11b25144a0098fc9006b7f601e515d /sonar-batch-protocol
parent0c3a16f09f18b8ecf11c4ca7d37842017f94ffe0 (diff)
downloadsonarqube-c637a52e84db7cc86c1ef574ac6fa2787d2a0683.tar.gz
sonarqube-c637a52e84db7cc86c1ef574ac6fa2787d2a0683.zip
Add duplications in report viewer
Diffstat (limited to 'sonar-batch-protocol')
-rw-r--r--sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/viewer/ViewerApplication.java49
1 files changed, 33 insertions, 16 deletions
diff --git a/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/viewer/ViewerApplication.java b/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/viewer/ViewerApplication.java
index a2f9352f6d2..d0089c37dc3 100644
--- a/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/viewer/ViewerApplication.java
+++ b/sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/viewer/ViewerApplication.java
@@ -31,7 +31,6 @@ import java.nio.charset.StandardCharsets;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Scanner;
-
import javax.swing.JEditorPane;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
@@ -48,7 +47,6 @@ import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeSelectionModel;
-
import org.sonar.batch.protocol.output.BatchReport;
import org.sonar.batch.protocol.output.BatchReport.Component;
import org.sonar.batch.protocol.output.BatchReport.Metadata;
@@ -75,6 +73,8 @@ public class ViewerApplication {
private JScrollPane coverageTab;
private JEditorPane coverageEditor;
private TextLineNumber textLineNumber;
+ private JScrollPane duplicationTab;
+ private JEditorPane duplicationEditor;
/**
* Create the application.
@@ -185,22 +185,35 @@ public class ViewerApplication {
updateHighlighting(component);
updateSource(component);
updateCoverage(component);
+ updateDuplications(component);
}
- private void updateCoverage(Component component) {
- coverageEditor.setText("");
+ private void updateDuplications(Component component) {
+ duplicationEditor.setText("");
if (reader.hasCoverage(component.getRef())) {
- try (CloseableIterator<BatchReport.Coverage> it = reader.readComponentCoverage(component.getRef())) {
+ try (CloseableIterator<BatchReport.Duplication> it = reader.readComponentDuplications(component.getRef())) {
while (it.hasNext()) {
- BatchReport.Coverage coverage = it.next();
- coverageEditor.getDocument().insertString(coverageEditor.getDocument().getEndPosition().getOffset(), coverage.toString() + "\n", null);
+ BatchReport.Duplication dup = it.next();
+ duplicationEditor.getDocument().insertString(duplicationEditor.getDocument().getEndPosition().getOffset(), dup.toString() + "\n", null);
}
} catch (Exception e) {
- throw new IllegalStateException("Can't read code coverage for " + getNodeName(component), e);
+ throw new IllegalStateException("Can't read duplications for " + getNodeName(component), e);
}
}
}
+ private void updateCoverage(Component component) {
+ coverageEditor.setText("");
+ try (CloseableIterator<BatchReport.Coverage> it = reader.readComponentCoverage(component.getRef())) {
+ while (it.hasNext()) {
+ BatchReport.Coverage coverage = it.next();
+ coverageEditor.getDocument().insertString(coverageEditor.getDocument().getEndPosition().getOffset(), coverage.toString() + "\n", null);
+ }
+ } catch (Exception e) {
+ throw new IllegalStateException("Can't read code coverage for " + getNodeName(component), e);
+ }
+ }
+
private void updateSource(Component component) {
File sourceFile = reader.getFileStructure().fileFor(Domain.SOURCE, component.getRef());
sourceEditor.setText("");
@@ -220,15 +233,13 @@ public class ViewerApplication {
private void updateHighlighting(Component component) {
highlightingEditor.setText("");
- if (reader.hasSyntaxHighlighting(component.getRef())) {
- try (CloseableIterator<BatchReport.SyntaxHighlighting> it = reader.readComponentSyntaxHighlighting(component.getRef())) {
- while (it.hasNext()) {
- BatchReport.SyntaxHighlighting rule = it.next();
- highlightingEditor.getDocument().insertString(highlightingEditor.getDocument().getEndPosition().getOffset(), rule.toString() + "\n", null);
- }
- } catch (Exception e) {
- throw new IllegalStateException("Can't read syntax highlighting for " + getNodeName(component), e);
+ try (CloseableIterator<BatchReport.SyntaxHighlighting> it = reader.readComponentSyntaxHighlighting(component.getRef())) {
+ while (it.hasNext()) {
+ BatchReport.SyntaxHighlighting rule = it.next();
+ highlightingEditor.getDocument().insertString(highlightingEditor.getDocument().getEndPosition().getOffset(), rule.toString() + "\n", null);
}
+ } catch (Exception e) {
+ throw new IllegalStateException("Can't read syntax highlighting for " + getNodeName(component), e);
}
}
@@ -284,6 +295,12 @@ public class ViewerApplication {
coverageEditor = new JEditorPane();
coverageTab.setViewportView(coverageEditor);
+ duplicationTab = new JScrollPane();
+ tabbedPane.addTab("Duplications", null, duplicationTab, null);
+
+ duplicationEditor = new JEditorPane();
+ duplicationTab.setViewportView(duplicationEditor);
+
treeScrollPane = new JScrollPane();
treeScrollPane.setPreferredSize(new Dimension(200, 400));
splitPane.setLeftComponent(treeScrollPane);