]> source.dussan.org Git - sonarqube.git/commitdiff
Add duplications in report viewer
authorJulien HENRY <julien.henry@sonarsource.com>
Fri, 11 Dec 2015 16:50:56 +0000 (17:50 +0100)
committerJulien HENRY <julien.henry@sonarsource.com>
Fri, 11 Dec 2015 16:50:56 +0000 (17:50 +0100)
sonar-batch-protocol/src/main/java/org/sonar/batch/protocol/viewer/ViewerApplication.java

index a2f9352f6d2d4c380933c04ba7159703f5837da0..d0089c37dc3b88bd93d34e020c43396ca4cf18c2 100644 (file)
@@ -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);