package net.iponweb.disthene.reader.graph;
import java.awt.*;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
/**
* @author Andrei Ivanov
*/
public class FontTable {
private static Map<String, Font> fontMap = new HashMap<>();
private static Font HELVETICA = new Font(Font.SANS_SERIF, Font.PLAIN, 1);
private static Font COURIER = new Font(Font.SANS_SERIF, Font.PLAIN, 1);;
private static Font TIMES = new Font(Font.SANS_SERIF, Font.PLAIN, 1);;
private static Font SANS = new Font(Font.SANS_SERIF, Font.PLAIN, 1);;
static {
try {
InputStream is = FontTable.class.getResourceAsStream("/fonts/Helvetica.ttf");
HELVETICA = Font.createFont(Font.TRUETYPE_FONT, is);
} catch (Exception ignored) {
}
try {
InputStream is = FontTable.class.getResourceAsStream("/fonts/Courier.ttf");
COURIER = Font.createFont(Font.TRUETYPE_FONT, is);
} catch (Exception ignored) {
}
try {
InputStream is = FontTable.class.getResourceAsStream("/fonts/Times.ttf");
TIMES = Font.createFont(Font.TRUETYPE_FONT, is);
} catch (Exception ignored) {
}
fontMap.put("helvetica", HELVETICA);
fontMap.put("courier", COURIER);
fontMap.put("times", TIMES);
fontMap.put("sans", SANS);
}
public static Font getFont(String name, int style, float size) {
Font font = fontMap.get(name.toLowerCase());
if (font == null) {
font = SANS;
}
return font.deriveFont(style, size);
}
}