KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nightlabs > editor2d > viewer > preferences > RenderingPreferencePage


1 /* *****************************************************************************
2  * NightLabs Editor2D - Graphical editor framework *
3  * Copyright (C) 2004-2005 NightLabs - http://NightLabs.org *
4  * *
5  * This library is free software; you can redistribute it and/or *
6  * modify it under the terms of the GNU Lesser General Public *
7  * License as published by the Free Software Foundation; either *
8  * version 2.1 of the License, or (at your option) any later version. *
9  * *
10  * This library is distributed in the hope that it will be useful, *
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
13  * Lesser General Public License for more details. *
14  * *
15  * You should have received a copy of the GNU Lesser General Public *
16  * License along with this library; if not, write to the *
17  * Free Software Foundation, Inc., *
18  * 51 Franklin St, Fifth Floor, *
19  * Boston, MA 02110-1301 USA *
20  * *
21  * Or get it online : *
22  * http://www.gnu.org/copyleft/lesser.html *
23  * *
24  * *
25  ******************************************************************************/

26
27 package org.nightlabs.editor2d.viewer.preferences;
28
29 import java.awt.RenderingHints JavaDoc;
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 // public static final String ANTIALIASING = "AntiAliasing";
56
// public static final String TEXT_ANTIALIASING = "TextAntiAliasing";
57
// public static final String RENDERING = "RENDERING";
58

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 // protected Button buttonCustom;
70

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 // buttonCustom = new Button(comp, SWT.RADIO);
103
// buttonCustom.addSelectionListener(buttonListener);
104
// buttonCustom.addDisposeListener(disposeListener);
105
// Label labelCustom = new Label(comp, SWT.NONE);
106
// labelCustom.setText(ViewerPlugin.getResourceString("preferences.rendering.label.custom"));
107
// labelCustom.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
108

109 // ExpandableWrapperComposite detailComp = new ExpandableWrapperComposite(parent, SWT.NONE);
110
// detailComp.setText(ViewerPlugin.getResourceString("preferences.rendering.label.details"));
111
// GridLayout detailLayout = new GridLayout(4, false);
112
// detailComp.setLayout(detailLayout);
113
//
114
// createDetailEntry(parent, ViewerPlugin.getResourceString("preferences.rendering.label.antiAliasing"),
115
// ViewerPlugin.getResourceString("preferences.rendering.label.default"),
116
// ViewerPlugin.getResourceString("preferences.rendering.label.on"),
117
// ViewerPlugin.getResourceString("preferences.rendering.label.off"));
118
//
119
// createDetailEntry(parent, ViewerPlugin.getResourceString("preferences.rendering.label.textAntiAliasing"),
120
// ViewerPlugin.getResourceString("preferences.rendering.label.default"),
121
// ViewerPlugin.getResourceString("preferences.rendering.label.on"),
122
// ViewerPlugin.getResourceString("preferences.rendering.label.off"));
123
//
124
// createDetailEntry(parent, ViewerPlugin.getResourceString("preferences.rendering.label.rendering"),
125
// ViewerPlugin.getResourceString("preferences.rendering.label.default"),
126
// ViewerPlugin.getResourceString("preferences.rendering.label.quality"),
127
// ViewerPlugin.getResourceString("preferences.rendering.label.speed"));
128

129         return parent;
130     }
131
132     public void init(IWorkbench workbench) {}
133     
134     public IPreferenceStore getPreferenceStore() {
135         return ViewerPlugin.getDefault().getPreferenceStore();
136     }
137     
138 // protected void createDetailEntry(Composite parent, String entry,
139
// String defaultString, String qualityString, String speedString)
140
// {
141
// Composite comp = new Composite(parent, SWT.NONE);
142
// GridLayout compLayout = new GridLayout(7, false);
143
//
144
// Label l = new Label(parent, SWT.NONE);
145
// l.setText(entry);
146
// l.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
147
//
148
// Button defaultButton = new Button(parent, SWT.RADIO);
149
// Label defaultLabel = new Label(comp, SWT.NONE);
150
// defaultLabel.setText(defaultString);
151
//
152
// Button qualityButton = new Button(parent, SWT.RADIO);
153
// Label qualityLabel = new Label(comp, SWT.NONE);
154
// qualityLabel.setText(qualityString);
155
//
156
// Button speedButton = new Button(parent, SWT.RADIO);
157
// Label speedLabel = new Label(comp, SWT.NONE);
158
// speedLabel.setText(speedString);
159
// }
160

161     protected RenderingHints JavaDoc renderHints = new RenderingHints JavaDoc(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_DEFAULT);;
162     public RenderingHints JavaDoc getRenderingHints() {
163         return renderHints;
164     }
165     
166     protected String JavaDoc 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 // setSelection(Preferences.PREFERENCE_DEFAULT);
181
selection = Preferences.PREFERENCE_DEFAULT;
182                     }
183                     else if (b.equals(buttonQuality)) {
184 // setSelection(Preferences.PREFERENCE_QUALITY);
185
selection = Preferences.PREFERENCE_QUALITY;
186                     }
187                     else if (b.equals(buttonSpeed)) {
188 // setSelection(Preferences.PREFERENCE_SPEED);
189
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 JavaDoc 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