/** * This routine goes through the attributes and sets the font before calling the actual string * drawing routine * * @param iter */ protected void doAttributes(AttributedCharacterIterator iter) { underline = false; Set set = iter.getAttributes().keySet(); for (Iterator iterator = set.iterator(); iterator.hasNext(); ) { TextAttribute textattribute = (TextAttribute) iterator.next(); if (textattribute.equals(TextAttribute.FONT)) { Font font = (Font) iter.getAttributes().get(textattribute); setFont(font); } else if (textattribute.equals(TextAttribute.UNDERLINE)) { if (iter.getAttributes().get(textattribute) == TextAttribute.UNDERLINE_ON) underline = true; } else if (textattribute.equals(TextAttribute.SUPERSCRIPT)) { /* iter.getAttributes().get(textattribute); Integer _tmp = TextAttribute.SUPERSCRIPT_SUPER; subscript = true; */ } else if (textattribute.equals(TextAttribute.SIZE)) { Object obj = iter.getAttributes().get(textattribute); Font font1 = null; /* ssteward: no deriveFont method for java.awt.Font in libgcj 3.4.2 if(obj instanceof Integer) { int i = ((Integer)obj).intValue(); font1 = getFont().deriveFont(getFont().getStyle(), i); } else if(obj instanceof Float) { float f = ((Float)obj).floatValue(); font1 = getFont().deriveFont(getFont().getStyle(), f); } else { //System.out.println("Unknown type for attribute SIZE"); return; } */ return; // setFont(font1); // ssteward } else { String s = "only FONT/SIZE/UNDERLINE/SUPERSCRIPT supported"; throw new RuntimeException(s); } } }
/** * This routine goes through the attributes and sets the font before calling the actual string * drawing routine * * @param iter */ protected void doAttributes(AttributedCharacterIterator iter) { underline = false; Set set = iter.getAttributes().keySet(); for (Iterator iterator = set.iterator(); iterator.hasNext(); ) { AttributedCharacterIterator.Attribute attribute = (AttributedCharacterIterator.Attribute) iterator.next(); if (!(attribute instanceof TextAttribute)) continue; TextAttribute textattribute = (TextAttribute) attribute; if (textattribute.equals(TextAttribute.FONT)) { Font font = (Font) iter.getAttributes().get(textattribute); setFont(font); } else if (textattribute.equals(TextAttribute.UNDERLINE)) { if (iter.getAttributes().get(textattribute) == TextAttribute.UNDERLINE_ON) underline = true; } else if (textattribute.equals(TextAttribute.SIZE)) { Object obj = iter.getAttributes().get(textattribute); if (obj instanceof Integer) { int i = ((Integer) obj).intValue(); setFont(getFont().deriveFont(getFont().getStyle(), i)); } else if (obj instanceof Float) { float f = ((Float) obj).floatValue(); setFont(getFont().deriveFont(getFont().getStyle(), f)); } } else if (textattribute.equals(TextAttribute.FOREGROUND)) { setColor((Color) iter.getAttributes().get(textattribute)); } else if (textattribute.equals(TextAttribute.FAMILY)) { Font font = getFont(); Map fontAttributes = font.getAttributes(); fontAttributes.put(TextAttribute.FAMILY, iter.getAttributes().get(textattribute)); setFont(font.deriveFont(fontAttributes)); } else if (textattribute.equals(TextAttribute.POSTURE)) { Font font = getFont(); Map fontAttributes = font.getAttributes(); fontAttributes.put(TextAttribute.POSTURE, iter.getAttributes().get(textattribute)); setFont(font.deriveFont(fontAttributes)); } else if (textattribute.equals(TextAttribute.WEIGHT)) { Font font = getFont(); Map fontAttributes = font.getAttributes(); fontAttributes.put(TextAttribute.WEIGHT, iter.getAttributes().get(textattribute)); setFont(font.deriveFont(fontAttributes)); } } }