1 /*******************************************************************************
2 * Copyright (c) 2011 Association for Decentralized Information Management in
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License v1.0
6 * which accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * VTT Technical Research Centre of Finland - initial API and implementation
11 *******************************************************************************/
12 package org.simantics.charts.preference;
14 import org.eclipse.jface.preference.BooleanFieldEditor;
15 import org.eclipse.jface.preference.FieldEditorPreferencePage;
16 import org.eclipse.jface.preference.IntegerFieldEditor;
17 import org.eclipse.jface.preference.RadioGroupFieldEditor;
18 import org.eclipse.swt.widgets.Composite;
19 import org.eclipse.ui.IWorkbench;
20 import org.eclipse.ui.IWorkbenchPreferencePage;
21 import org.simantics.charts.Activator;
22 import org.simantics.trend.configuration.ItemPlacement;
23 import org.simantics.trend.configuration.TimeFormat;
24 import org.simantics.trend.configuration.LineQuality;
27 * @author Toni Kalajainen
29 public class ChartPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
31 private IntegerFieldEditor fRedrawIntervalEditor = null;
32 private IntegerFieldEditor fAutoscaleIntervalEditor = null;
33 private BooleanFieldEditor fDrawSamplesEditor = null;
34 private RadioGroupFieldEditor fTimeFormatEditor = null;
35 private RadioGroupFieldEditor fItemPlacementEditor = null;
36 private RadioGroupFieldEditor fValueFormatEditor = null;
37 private RadioGroupFieldEditor fLineQualityEditor = null;
38 private RadioGroupFieldEditor fTextQualityEditor = null;
42 * Create the console page.
44 public ChartPreferencePage() {
47 //setDescription("Chart prefrences");
48 setPreferenceStore(Activator.getDefault().getPreferenceStore());
52 * @see org.eclipse.jface.preference.PreferencePage#createControl(Composite)
55 public void createControl(Composite parent) {
56 super.createControl(parent);
60 * Create all field editors for this page
63 public void createFieldEditors() {
64 fRedrawIntervalEditor = new IntegerFieldEditor(ChartPreferences.P_REDRAW_INTERVAL, Messages.ChartPreferencePage_redrawIntervalLabel, getFieldEditorParent());
65 fRedrawIntervalEditor.setValidRange(1, Integer.MAX_VALUE);
66 fRedrawIntervalEditor.setErrorMessage(Messages.ChartPreferencePage_redrawIntervalInvalid);
67 addField(fRedrawIntervalEditor);
69 fAutoscaleIntervalEditor = new IntegerFieldEditor(ChartPreferences.P_AUTOSCALE_INTERVAL, Messages.ChartPreferencePage_autoscaleIntervalLabel, getFieldEditorParent());
70 fAutoscaleIntervalEditor.setValidRange(1, Integer.MAX_VALUE);
71 fAutoscaleIntervalEditor.setErrorMessage(Messages.ChartPreferencePage_autoscaleIntervalInvalid);
72 addField(fAutoscaleIntervalEditor);
74 fDrawSamplesEditor = new BooleanFieldEditor(ChartPreferences.P_DRAW_SAMPLES, Messages.ChartPreferencePage_drawSamplesLabel, getFieldEditorParent());
75 addField(fDrawSamplesEditor);
77 fTimeFormatEditor = new RadioGroupFieldEditor(
78 ChartPreferences.P_TIMEFORMAT,
79 "Preferred time format",
82 new String[] {"Time", TimeFormat.Time.name()},
83 new String[] {"Decimal", TimeFormat.Decimal.name()}
85 getFieldEditorParent());
86 addField(fTimeFormatEditor);
88 fValueFormatEditor = new RadioGroupFieldEditor(
89 ChartPreferences.P_VALUEFORMAT,
90 "Preferred value format",
93 new String[] {"Default", "Default"},
94 new String[] {"Currency", "Currency"},
95 new String[] {"Scientific", "Scientific"},
96 new String[] {"Engineering", "Engineering"}
98 getFieldEditorParent());
99 addField(fValueFormatEditor);
101 fItemPlacementEditor = new RadioGroupFieldEditor(
102 ChartPreferences.P_ITEMPLACEMENT,
103 "Item autoscale placement",
106 new String[] {"Stacked", ItemPlacement.Stacked.name()},
107 new String[] {"Overlapping", ItemPlacement.Overlapping.name()}
109 getFieldEditorParent());
110 addField(fItemPlacementEditor);
112 fLineQualityEditor = new RadioGroupFieldEditor(
113 ChartPreferences.P_LINEQUALITY,
117 new String[] {"Normal", LineQuality.Normal.name()},
118 new String[] {"Anti-alias", LineQuality.Antialias.name()}
120 getFieldEditorParent());
121 addField( fLineQualityEditor );
123 fTextQualityEditor = new RadioGroupFieldEditor(
124 ChartPreferences.P_TEXTQUALITY,
128 new String[] {"Normal", LineQuality.Normal.name()},
129 new String[] {"Anti-alias", LineQuality.Antialias.name()}
131 getFieldEditorParent());
132 addField( fTextQualityEditor );
137 * @see IWorkbenchPreferencePage#init(IWorkbench)
140 public void init(IWorkbench workbench) {