/** * */ package org.goko.tools.editor.preferences; import java.util.ArrayList; import java.util.List; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.goko.common.preferences.GkFieldEditorPreferencesPage; import org.goko.common.preferences.fieldeditor.preference.ComboFieldEditor; import org.goko.core.common.exception.GkException; /** * Preference page for the editor * @author Psyko * @date 29 mai 2016 */ public class EditorPreferencePage extends GkFieldEditorPreferencesPage { public EditorPreferencePage() { setTitle("Editor"); setPreferenceStore(EditorPreference.getInstance()); } /** (inheritDoc) * @see org.goko.common.preferences.GkFieldEditorPreferencesPage#createPreferencePage(org.eclipse.swt.widgets.Composite) */ @Override protected void createPreferencePage(Composite parent) throws GkException { ComboFieldEditor fontNameCombo = new ComboFieldEditor(parent, SWT.NONE | SWT.READ_ONLY); fontNameCombo.setLabelWidthInChar(8); fontNameCombo.setLabel("Font :"); fontNameCombo.setPreferenceName(EditorPreference.FONT_NAME); ComboFieldEditor fontSizeCombo = new ComboFieldEditor(parent, SWT.NONE | SWT.READ_ONLY); fontSizeCombo.setLabelWidthInChar(8); fontSizeCombo.setLabel("Font size :"); fontSizeCombo.setPreferenceName(EditorPreference.FONT_SIZE); // Font family Display display = Display.getCurrent(); FontData[] lstFonts = display.getFontList(null, true); List<String> lstFontName = new ArrayList<String>(); for (FontData fontData : lstFonts) { if(!lstFontName.contains(fontData.getName())){ lstFontName.add(fontData.getName()); } } String[][] fontNameEntry = new String[lstFontName.size()][]; int i = 0; for (String fontName : lstFontName) { fontNameEntry[i] = new String[]{fontName, fontName}; i++; } fontNameCombo.setEntry(fontNameEntry); // Font size String[][] fontSizeEntry = new String[][]{ {"8", "8"}, {"9", "9"}, {"10", "10"}, {"11", "11"}, {"12", "12"}, {"14", "14"}, {"16", "16"}, {"18", "18"}, {"20", "20"}, {"22", "22"}, {"24", "24"}, }; fontSizeCombo.setEntry(fontSizeEntry); addField(fontNameCombo); addField(fontSizeCombo); } }