1 26 27 package org.nightlabs.editor2d.util; 28 29 import java.awt.BasicStroke ; 30 import java.awt.Font ; 31 import java.awt.FontMetrics ; 32 import java.awt.Graphics2D ; 33 import java.awt.Point ; 34 import java.awt.Rectangle ; 35 import java.awt.Toolkit ; 36 import java.awt.font.FontRenderContext ; 37 import java.awt.font.GlyphVector ; 38 import java.awt.font.LineMetrics ; 39 import java.awt.geom.Rectangle2D ; 40 41 import org.nightlabs.editor2d.render.RenderConstants; 42 43 44 public class RenderUtil 45 { 46 47 public RenderUtil() { 48 super(); 49 } 50 51 public static BasicStroke setStrokeStyle(int strokeWidth, int strokeStyle) 52 { 53 float[] dashArray = new float[] {1f, 1f}; 54 int dashPhase = 0; 55 float miterLimit = 10.0f; 56 57 if (strokeStyle == RenderConstants.STROKE_SOLID) { 58 return new BasicStroke (); 60 } 61 else if (strokeStyle == RenderConstants.STROKE_DASHED_1) { 62 dashArray = new float[]{6f, 6f}; 63 } 64 else if (strokeStyle == RenderConstants.STROKE_DASHED_2) { 65 dashArray = new float[]{3f, 3f}; 66 } 67 else if (strokeStyle == RenderConstants.STROKE_DASHED_3) { 68 dashArray = new float[]{1f, 1f}; 69 } 70 else if (strokeStyle == RenderConstants.STROKE_DASHED_4) { 71 dashArray = new float[]{3f, 6f}; 72 dashPhase = 1; 73 } 74 return new BasicStroke (strokeWidth, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, miterLimit, dashArray, dashPhase); 75 } 76 77 public static GlyphVector createGlyphVector(String s, Font f, FontRenderContext frc) 78 { 79 return f.createGlyphVector(frc, s); 80 } 81 82 public static void paintCenterGlyphVector(String s, Graphics2D g2d, Font f, Rectangle bounds) 83 { 84 GlyphVector glyphVector = createGlyphVector(s, f, g2d.getFontRenderContext()); 85 Rectangle2D glyphBounds = glyphVector.getVisualBounds(); 86 Point glyphLocation = EditorModelUtil.getLeftTopCenterLocation(glyphBounds.getBounds(), bounds); 87 g2d.drawGlyphVector(glyphVector, glyphLocation.x, glyphLocation.y); 88 } 89 90 96 } 97 | Popular Tags |