--- /dev/null
+package org.simantics.modeling.ui.diagram.monitor;\r
+\r
+import java.awt.GraphicsEnvironment;\r
+import java.util.ArrayList;\r
+import java.util.Arrays;\r
+import java.util.List;\r
+\r
+import org.simantics.browsing.ui.swt.widgets.impl.ReadFactoryImpl;\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.utils.datastructures.Pair;\r
+\r
+public class AvailableFontFactory extends ReadFactoryImpl<Object, List<Pair<String, Object>>> {\r
+\r
+ @Override\r
+ public List<Pair<String, Object>> perform(ReadGraph graph, Object input) throws DatabaseException {\r
+ \r
+ GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();\r
+ String[] fonts = ge.getAvailableFontFamilyNames();\r
+ Arrays.sort(fonts);\r
+ ArrayList<Pair<String, Object>> result = new ArrayList<Pair<String, Object>>();\r
+ for(String font : fonts) {\r
+ result.add(Pair.make(font, (Object)font));\r
+ }\r
+ return result;\r
+ \r
+ }\r
+ \r
+}\r