Clover coverage report - baseCode - 0.2.5
Coverage timestamp: Tue Apr 12 2005 11:31:58 EDT
file stats: LOC: 82   Methods: 3
NCLOC: 38   Classes: 1
30 day Evaluation Version distributed via the Maven Jar Repository. Clover is not free. You have 30 days to evaluate it. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover
 
 Source file Conditionals Statements Methods TOTAL
Util.java 0% 0% 0% 0%
coverage
 1   
 /*
 2   
  * Util.java Created on June 5, 2004, 10:21 AM
 3   
  */
 4   
 
 5   
 package baseCode.graphics.text;
 6   
 
 7   
 import java.awt.Component;
 8   
 import java.awt.Font;
 9   
 import java.awt.FontMetrics;
 10   
 import java.awt.Graphics;
 11   
 import java.awt.Graphics2D;
 12   
 import java.awt.font.FontRenderContext;
 13   
 import java.awt.font.TextLayout;
 14   
 import java.awt.geom.AffineTransform;
 15   
 
 16   
 /**
 17   
  * @author Will Braynen
 18   
  * @version $Id: Util.java,v 1.9 2004/07/27 03:18:58 pavlidis Exp $
 19   
  */
 20   
 public class Util {
 21   
 
 22   
    /**
 23   
     * @param text the string whose pixel width is to be measured
 24   
     * @param font the pixels width of a string varies from font to font
 25   
     * @param c the parent component; usually <code>this</code>
 26   
     * @return the pixel width of the string for the specified font.
 27   
     */
 28  0
    public static int stringPixelWidth( String text, Font font, Component c ) {
 29   
 
 30  0
       FontMetrics fontMetrics = c.getFontMetrics( font );
 31  0
       return fontMetrics.charsWidth( text.toCharArray(), 0, text.length() );
 32   
 
 33   
    } // end stringPixelWidth
 34   
 
 35   
    /**
 36   
     * @param strings an array of strings whose pixels widths to compare
 37   
     * @param font the pixels width of a string varies from font to font
 38   
     * @param c the parent component; usually <code>this</code>
 39   
     * @return the largest pixel width of a string in the <code>strings</code> array.
 40   
     */
 41  0
    public static int maxStringPixelWidth( String[] strings, Font font,
 42   
          Component c ) {
 43   
 
 44   
       // the number of chars in the longest string
 45  0
       int maxWidth = 0;
 46  0
       int width;
 47  0
       String s;
 48  0
       for ( int i = 0; i < strings.length; i++ ) {
 49  0
          s = strings[i];
 50  0
          width = stringPixelWidth( s, font, c );
 51  0
          if ( maxWidth < width ) {
 52  0
             maxWidth = width;
 53   
          }
 54   
       }
 55   
 
 56  0
       return maxWidth;
 57   
    } // end getMaxPixelWidth
 58   
 
 59   
    /**
 60   
     * Draws a string vertically, turned 90 degrees counter-clockwise. Read carefully what the <i>x </i> and <i>y </i>
 61   
     * coordinates means; chances are that if you draw to (x,y) = (0,0), you won't see anything.
 62   
     * 
 63   
     * @param g the graphics context on which to draw
 64   
     * @param text the string to draw
 65   
     * @param font the font to use
 66   
     * @param x the <i>x </i> coordinate where you want to place the baseline of the text.
 67   
     * @param y the <i>y </i> coordinate where you want to place the first letter of the text.
 68   
     */
 69  0
    public static void drawVerticalString( Graphics g, String text, Font font,
 70   
          int x, int y ) {
 71  0
       Graphics2D g2 = ( Graphics2D ) g;
 72  0
       AffineTransform fontAT = new AffineTransform();
 73   
       //fontAT.shear(0.2, 0.0); // slant text backwards
 74  0
       fontAT.setToRotation( Math.PI * 3.0f / 2.0f ); // counter-clockwise 90
 75   
       // degrees
 76  0
       FontRenderContext frc = g2.getFontRenderContext();
 77  0
       Font theDerivedFont = font.deriveFont( fontAT );
 78  0
       TextLayout tstring = new TextLayout( text, theDerivedFont, frc );
 79  0
       tstring.draw( g2, x, y );
 80   
 
 81   
    } // end drawVerticalString
 82   
 }