Clover coverage report - PMD - 3.3
Coverage timestamp: Thu Sep 15 2005 17:59:57 EDT
file stats: LOC: 140   Methods: 5
NCLOC: 57   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
SourceCodePanel.java 0% 0% 0% 0%
coverage
 1    package net.sourceforge.pmd.util.viewer.gui;
 2   
 3   
 4    import net.sourceforge.pmd.ast.SimpleNode;
 5    import net.sourceforge.pmd.util.viewer.model.ViewerModel;
 6    import net.sourceforge.pmd.util.viewer.model.ViewerModelEvent;
 7    import net.sourceforge.pmd.util.viewer.model.ViewerModelListener;
 8    import net.sourceforge.pmd.util.viewer.util.NLS;
 9   
 10    import javax.swing.*;
 11    import javax.swing.text.BadLocationException;
 12    import javax.swing.text.DefaultHighlighter;
 13    import java.awt.BorderLayout;
 14    import java.awt.Color;
 15   
 16   
 17    /**
 18    * source code panel
 19    *
 20    * @author Boris Gruschko ( boris at gruschko.org )
 21    * @version $Id: SourceCodePanel.java,v 1.9 2005/09/02 19:36:22 tomcopeland Exp $
 22    */
 23   
 24    public class SourceCodePanel
 25   
 26    extends JPanel
 27   
 28    implements ViewerModelListener {
 29   
 30    private ViewerModel model;
 31   
 32    private JTextArea sourceCodeArea;
 33   
 34   
 35  0 public SourceCodePanel(ViewerModel model) {
 36   
 37  0 this.model = model;
 38   
 39   
 40  0 init();
 41   
 42    }
 43   
 44   
 45  0 private void init() {
 46   
 47  0 model.addViewerModelListener(this);
 48   
 49   
 50  0 setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), NLS.nls("SOURCE.PANEL.TITLE")));
 51   
 52   
 53  0 setLayout(new BorderLayout());
 54   
 55   
 56  0 sourceCodeArea = new JTextArea();
 57   
 58   
 59  0 add(new JScrollPane(sourceCodeArea), BorderLayout.CENTER);
 60   
 61    }
 62   
 63   
 64    /**
 65    * retrieves the string representation of the source code
 66    *
 67    * @return source code's string representation
 68    */
 69   
 70  0 public String getSourceCode() {
 71   
 72  0 return sourceCodeArea.getText();
 73   
 74    }
 75   
 76   
 77    /**
 78    * @see ViewerModelListener#viewerModelChanged(ViewerModelEvent)
 79    */
 80   
 81  0 public void viewerModelChanged(ViewerModelEvent e) {
 82   
 83  0 if (e.getReason() == ViewerModelEvent.NODE_SELECTED) {
 84   
 85  0 final SimpleNode node = (SimpleNode) e.getParameter();
 86   
 87   
 88  0 SwingUtilities.invokeLater(new Runnable() {
 89   
 90  0 public void run() {
 91   
 92  0 try {
 93   
 94  0 sourceCodeArea.getHighlighter().removeAllHighlights();
 95   
 96   
 97  0 if (node == null) {
 98   
 99  0 return;
 100   
 101    }
 102   
 103   
 104  0 int startOffset =
 105   
 106    (sourceCodeArea.getLineStartOffset(node.getBeginLine() - 1) +
 107   
 108    node.getBeginColumn()) - 1;
 109   
 110   
 111  0 int end =
 112   
 113    (sourceCodeArea.getLineStartOffset(node.getEndLine() - 1) +
 114   
 115    node.getEndColumn());
 116   
 117   
 118  0 sourceCodeArea.getHighlighter().addHighlight(startOffset, end,
 119   
 120    new DefaultHighlighter.DefaultHighlightPainter(new Color(79, 237, 111)));
 121   
 122   
 123  0 sourceCodeArea.moveCaretPosition(startOffset);
 124   
 125    } catch (BadLocationException exc) {
 126   
 127  0 throw new IllegalStateException(exc.getMessage());
 128   
 129    }
 130   
 131    }
 132   
 133    });
 134   
 135    }
 136   
 137    }
 138   
 139    }
 140