package org.archstudio.archipelago2.ext.statecharts; import org.archstudio.eclipse.core.startup.InstantiateArchStudio; import org.eclipse.jface.preference.ColorFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.FontFieldEditor; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferenceConverter; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.graphics.RGB; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; public class StatechartPreferences extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { public static final String PREF_STATE_COLOR = "org.archstudio.archipelago2.ext.statecharts.stateColor"; public static final String PREF_STATE_FONT = "org.archstudio.archipelago2.ext.statecharts.stateFont"; public static final String PREF_TRANSITION_FONT = "org.archstudio.archipelago2.ext.statecharts.transitionFont"; public static IPreferenceStore getActivatorPreferenceStore() { return Activator.getDefault().getPreferenceStore(); } public static RGB getStateColor() { return PreferenceConverter.getColor(getActivatorPreferenceStore(), PREF_STATE_COLOR); } public static FontData getStateFont() { return PreferenceConverter.getFontData(getActivatorPreferenceStore(), PREF_STATE_FONT); } public static FontData getTransitionFont() { return PreferenceConverter.getFontData(getActivatorPreferenceStore(), PREF_TRANSITION_FONT); } public StatechartPreferences() { super("Archipelago Statechart Preferences", FLAT); InstantiateArchStudio.instantiate(); setPreferenceStore(getActivatorPreferenceStore()); setDescription("This panel lets you set statecharts preferences for Archipelago."); } @Override public void init(IWorkbench workbench) {} @Override protected void createFieldEditors() { addField(new FontFieldEditor(PREF_STATE_FONT, "Default State Font:", getFieldEditorParent())); addField( new ColorFieldEditor(PREF_STATE_COLOR, "Default State Color:", getFieldEditorParent())); addField(new FontFieldEditor(PREF_TRANSITION_FONT, "Default Transition Font:", getFieldEditorParent())); } }