/** * */ package org.korsakow.ide.resources.widget.propertyhandler; import java.awt.GraphicsEnvironment; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import org.korsakow.ide.resources.widget.DefaultPropertyHandler; import org.korsakow.ide.resources.widget.WidgetModel; public class FontFamilyPropertyHandler extends DefaultPropertyHandler { private static final List<String> websafe = Arrays.asList( new String[] { "Arial", "Arial Black", "Century Gothic", "Comic Sans MS", "Courier New", "Garamond", "Georgia", "Impact", "Lucida Console", "Tahoma", "Times New Roman", "Trebuchet MS", "Verdana", "Webdings", "Wingdings", } ); private static List<String> getFonts() { List<String> fonts = new ArrayList<String>( Arrays.asList( GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames() ) ); fonts.retainAll( websafe ); return fonts; } @Override public void initializeEditor(Collection<? extends WidgetModel> widgets, JComboBox editor, String propertyName) { editor.setEditable(false); List<String> model = getFonts(); model.add(0, null); editor.setModel(new DefaultComboBoxModel(model.toArray())); Object value = getCommonValue(widgets, propertyName); editor.getModel().setSelectedItem(value); } }