From 4f9251c3d1a0550446e6d5d525d03037dfb32833 Mon Sep 17 00:00:00 2001 From: Tom Copeland Date: Wed, 7 Aug 2002 17:31:20 +0000 Subject: [PATCH] tweak git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@651 51baf565-9d33-0410-a72c-fc3788e3496d --- pmd/src/net/sourceforge/pmd/cpd/GUI.java | 17 +++++++++++------ .../net/sourceforge/pmd/cpd/TextRenderer.java | 4 ++-- pmd/xdocs/cpd.xml | 3 ++- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/pmd/src/net/sourceforge/pmd/cpd/GUI.java b/pmd/src/net/sourceforge/pmd/cpd/GUI.java index c28b856d40..6e22222b71 100644 --- a/pmd/src/net/sourceforge/pmd/cpd/GUI.java +++ b/pmd/src/net/sourceforge/pmd/cpd/GUI.java @@ -35,13 +35,14 @@ public class GUI implements CPDListener { } private JTextField rootDirectoryField= new JTextField("c:\\data\\pmd\\pmd\\src\\net\\sourceforge\\pmd\\cpd\\"); + //private JTextField rootDirectoryField = new JTextField(System.getProperty("user.home")); //private JTextField rootDirectoryField= new JTextField("c:\\data\\cougaar\\core\\src"); - private JTextField minimumLengthField= new JTextField("50"); + private JTextField minimumLengthField= new JTextField("20"); private JProgressBar tokenizingFilesBar = new JProgressBar(); private JProgressBar addingTokensBar = new JProgressBar(); - private JTextArea resultsTextArea = new JTextArea(20,50); + private JTextArea resultsTextArea = new JTextArea(); private JTextField expandingTileField = new JTextField(50); private JCheckBox recurseCheckbox = new JCheckBox("Recurse?", true); @@ -93,16 +94,19 @@ public class GUI implements CPDListener { progressPanel.setBorder(BorderFactory.createTitledBorder("Progress")); JPanel resultsPanel = new JPanel(); - resultsPanel.add(new JScrollPane(resultsTextArea)); + JScrollPane areaScrollPane = new JScrollPane(resultsTextArea); + areaScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); + areaScrollPane.setPreferredSize(new Dimension(600,300)); + resultsPanel.add(areaScrollPane); resultsPanel.setBorder(BorderFactory.createTitledBorder("Results")); frame.getContentPane().setLayout(new BorderLayout()); JPanel topPanel = new JPanel(); topPanel.setLayout(new BorderLayout()); topPanel.add(inputPanel, BorderLayout.NORTH); - topPanel.add(progressPanel, BorderLayout.SOUTH); + topPanel.add(progressPanel, BorderLayout.CENTER); frame.getContentPane().add(topPanel, BorderLayout.NORTH); - frame.getContentPane().add(resultsPanel, BorderLayout.SOUTH); + frame.getContentPane().add(resultsPanel, BorderLayout.CENTER); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.show(); @@ -121,7 +125,8 @@ public class GUI implements CPDListener { } cpd.go(); CPDRenderer renderer = new TextRenderer(); - resultsTextArea.setText(renderer.render(cpd)); + resultsTextArea.setText(""); + resultsTextArea.append(renderer.render(cpd)); } catch (IOException ioe) { ioe.printStackTrace(); } diff --git a/pmd/src/net/sourceforge/pmd/cpd/TextRenderer.java b/pmd/src/net/sourceforge/pmd/cpd/TextRenderer.java index fda45c65e5..ea5212ff0e 100644 --- a/pmd/src/net/sourceforge/pmd/cpd/TextRenderer.java +++ b/pmd/src/net/sourceforge/pmd/cpd/TextRenderer.java @@ -15,11 +15,11 @@ public class TextRenderer implements CPDRenderer { Tile tile = (Tile)i.next(); sb.append("============================================================="); sb.append(System.getProperty("line.separator")); - sb.append("A " + cpd.getLineCountFor(tile) + " line (" + tile.getTokenCount() + " tokens) duplication in these files:"); + sb.append("A " + cpd.getLineCountFor(tile) + " line (" + tile.getTokenCount() + " tokens) duplication:"); sb.append(System.getProperty("line.separator")); for (Iterator j = cpd.getResults().getOccurrences(tile); j.hasNext();) { TokenEntry tok = (TokenEntry)j.next(); - sb.append(tok.getBeginLine() + "\t" + tok.getTokenSrcID()); + sb.append("Starting at line " + tok.getBeginLine() + " in " + tok.getTokenSrcID()); sb.append(System.getProperty("line.separator")); } sb.append(cpd.getImage(tile)); diff --git a/pmd/xdocs/cpd.xml b/pmd/xdocs/cpd.xml index f663d984de..2f68252137 100644 --- a/pmd/xdocs/cpd.xml +++ b/pmd/xdocs/cpd.xml @@ -10,7 +10,8 @@

But it can be hard to find, especially in a large project. So we wrote a utility - CPD - to find it for us. CPD uses (more or less) Michael Wise's Greedy String Tiling algorithm to find duplicate code. Here's - a screenshot.

+ a screenshot of CPD after running on itself. Looks like we've got + some refactoring to do....

To run CPD as a JNLP application, click here.

Future plans