From c637a52e84db7cc86c1ef574ac6fa2787d2a0683 Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Fri, 11 Dec 2015 17:50:56 +0100 Subject: [PATCH] Add duplications in report viewer --- .../protocol/viewer/ViewerApplication.java | 49 +++++++++++++------ 1 file 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 it = reader.readComponentCoverage(component.getRef())) { + try (CloseableIterator 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 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 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 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); -- 2.39.5