001 /* 002 // $Id: TextBox.java 3 2009-05-11 08:11:57Z jhyde $ 003 // Clapham generates railroad diagrams to represent computer language grammars. 004 // Copyright (C) 2008-2009 Julian Hyde 005 // Copyright (c) 2005 Stefan Schoergenhumer, Markus Dopler 006 // 007 // This program is free software; you can redistribute it and/or modify it 008 // under the terms of the GNU General Public License as published by the Free 009 // Software Foundation; either version 2 of the License, or (at your option) 010 // any later version approved by The Eigenbase Project. 011 // 012 // This program is distributed in the hope that it will be useful, 013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 015 // GNU General Public License for more details. 016 // 017 // You should have received a copy of the GNU General Public License 018 // along with this program; if not, write to the Free Software 019 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 020 */ 021 package net.hydromatic.clapham.graph; 022 023 import java.awt.*; 024 025 /** 026 * TODO: 027 * 028 * @author jhyde 029 * @version $Id: TextBox.java 3 2009-05-11 08:11:57Z jhyde $ 030 * @since Sep 1, 2008 031 */ 032 public class TextBox { 033 private final Chart chart; 034 private final String text; 035 private final Font font; 036 private final Color color; 037 final int width; 038 final int height; 039 040 TextBox(Chart chart, String text, Font font, Color color) { 041 this.chart = chart; 042 this.text = text; 043 this.font = font; 044 this.color = color; 045 this.width = chart.getStringWidth(font, text); 046 this.height = chart.getFontHeight(); 047 048 } 049 050 void drawAtCenter(float x1, float y1, float width, float height) { 051 float x = x1 + width / 2f; 052 x -= this.width / 2f; 053 float y = y1 + height / 2f; 054 y += this.height / 2f; 055 chart.drawString(text, font, color, x, y); 056 } 057 } 058 059 // End TextBox.java