1 26 27 package org.nightlabs.editor2d.viewer.preferences; 28 29 import java.awt.RenderingHints ; 30 31 import org.eclipse.jface.preference.IPreferenceStore; 32 import org.eclipse.jface.preference.PreferencePage; 33 import org.eclipse.swt.SWT; 34 import org.eclipse.swt.events.DisposeEvent; 35 import org.eclipse.swt.events.DisposeListener; 36 import org.eclipse.swt.events.SelectionEvent; 37 import org.eclipse.swt.events.SelectionListener; 38 import org.eclipse.swt.layout.GridData; 39 import org.eclipse.swt.layout.GridLayout; 40 import org.eclipse.swt.widgets.Button; 41 import org.eclipse.swt.widgets.Composite; 42 import org.eclipse.swt.widgets.Control; 43 import org.eclipse.swt.widgets.Label; 44 import org.eclipse.ui.IWorkbench; 45 import org.eclipse.ui.IWorkbenchPreferencePage; 46 47 import org.nightlabs.base.composite.XComposite; 48 import org.nightlabs.editor2d.viewer.RenderingHintsManager; 49 import org.nightlabs.editor2d.viewer.ViewerPlugin; 50 51 public class RenderingPreferencePage 52 extends PreferencePage 53 implements IWorkbenchPreferencePage 54 { 55 59 public RenderingPreferencePage() 60 { 61 super(); 62 setPreferenceStore(ViewerPlugin.getDefault().getPreferenceStore()); 63 setTitle(ViewerPlugin.getResourceString("preferences.rendering.title")); 64 } 65 66 protected Button buttonQuality; 67 protected Button buttonSpeed; 68 protected Button buttonDefault; 69 71 protected Control createContents(Composite parent) 72 { 73 Composite comp = new XComposite(parent, SWT.NONE); 74 GridData compData = new GridData(GridData.FILL_BOTH); 75 comp.setLayoutData(compData); 76 GridLayout compLayout = new GridLayout(2, false); 77 comp.setLayout(compLayout); 78 79 buttonDefault = new Button(comp, SWT.RADIO); 80 buttonDefault.addSelectionListener(buttonListener); 81 buttonDefault.addDisposeListener(disposeListener); 82 Label labelDefault = new Label(comp, SWT.NONE); 83 labelDefault.setText(ViewerPlugin.getResourceString("preferences.rendering.label.default")); 84 labelDefault.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 85 86 buttonQuality = new Button(comp, SWT.RADIO); 87 buttonQuality.addSelectionListener(buttonListener); 88 buttonQuality.addDisposeListener(disposeListener); 89 Label labelQuality = new Label(comp, SWT.NONE); 90 labelQuality.setText(ViewerPlugin.getResourceString("preferences.rendering.label.quality")); 91 labelQuality.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 92 93 buttonSpeed = new Button(comp, SWT.RADIO); 94 buttonSpeed.addSelectionListener(buttonListener); 95 buttonSpeed.addDisposeListener(disposeListener); 96 Label labelSpeed = new Label(comp, SWT.NONE); 97 labelSpeed.setText(ViewerPlugin.getResourceString("preferences.rendering.label.speed")); 98 labelSpeed.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 99 100 init(); 101 102 109 129 return parent; 130 } 131 132 public void init(IWorkbench workbench) {} 133 134 public IPreferenceStore getPreferenceStore() { 135 return ViewerPlugin.getDefault().getPreferenceStore(); 136 } 137 138 161 protected RenderingHints renderHints = new RenderingHints (RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_DEFAULT);; 162 public RenderingHints getRenderingHints() { 163 return renderHints; 164 } 165 166 protected String selection = Preferences.PREFERENCE_DEFAULT; 167 168 protected SelectionListener buttonListener = new SelectionListener() 169 { 170 public void widgetDefaultSelected(SelectionEvent e) { 171 widgetSelected(e); 172 } 173 public void widgetSelected(SelectionEvent e) 174 { 175 if (e.getSource() instanceof Button) { 176 Button b = (Button) e.getSource(); 177 if (b.getSelection() == true) 178 { 179 if (b.equals(buttonDefault)) { 180 selection = Preferences.PREFERENCE_DEFAULT; 182 } 183 else if (b.equals(buttonQuality)) { 184 selection = Preferences.PREFERENCE_QUALITY; 186 } 187 else if (b.equals(buttonSpeed)) { 188 selection = Preferences.PREFERENCE_SPEED; 190 } 191 } 192 } 193 } 194 }; 195 196 protected DisposeListener disposeListener = new DisposeListener() 197 { 198 public void widgetDisposed(DisposeEvent e) { 199 Button b = (Button) e.getSource(); 200 b.removeSelectionListener(buttonListener); 201 } 202 }; 203 204 protected void setSelection(String selection) 205 { 206 if (selection.equals(Preferences.PREFERENCE_DEFAULT)) { 207 RenderingHintsManager.setDefaultRenderMode(getRenderingHints()); 208 buttonDefault.setSelection(true); 209 } 210 else if (selection.equals(Preferences.PREFERENCE_QUALITY)) { 211 RenderingHintsManager.setQualityRenderMode(getRenderingHints()); 212 buttonQuality.setSelection(true); 213 } 214 else if (selection.equals(Preferences.PREFERENCE_SPEED)) { 215 RenderingHintsManager.setSpeedRenderMode(getRenderingHints()); 216 buttonSpeed.setSelection(true); 217 } 218 } 219 220 public boolean performOk() 221 { 222 setSelection(selection); 223 getPreferenceStore().setValue(Preferences.PREFERENCE_RENDERING, selection); 224 return true; 225 } 226 227 protected void performDefaults() { 228 super.performDefaults(); 229 selection = Preferences.PREFERENCE_DEFAULT; 230 } 231 232 protected void init() { 233 selection = Preferences.getPreferenceStore().getString(Preferences.PREFERENCE_RENDERING); 234 setSelection(selection); 235 } 236 } 237 | Popular Tags |