-
Notifications
You must be signed in to change notification settings - Fork 13
/
HPROFPreferencePage.java
89 lines (83 loc) · 4.05 KB
/
HPROFPreferencePage.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*******************************************************************************
* Copyright (c) 2011,2019 IBM Corporation.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.mat.hprof.ui;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.RadioGroupFieldEditor;
import org.eclipse.mat.hprof.HprofPlugin;
import org.eclipse.mat.hprof.Messages;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.PlatformUI;
/**
* This class represents a preference page that is contributed to the
* Preferences dialog. By subclassing { link org.eclipse.jface.preference.FieldEditorPreferencePage}, we can use the
* field support built into JFace that allows us to create a page that is small
* and knows how to save, restore and apply itself.
* <p>
* This page is used to modify preferences only. They are stored in the
* preference store that belongs to the main plug-in class. That way,
* preferences can be accessed directly via the preference store.
*/
public class HPROFPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage
{
/**
* Create the preference page.
*/
public HPROFPreferencePage()
{
super(GRID);
setPreferenceStore((IPreferenceStore)HprofPlugin.getDefault().getPreferenceStore());
setDescription(Messages.HPROFPreferences_Description);
}
/**
* Creates the field editors. Field editors are abstractions of the common
* GUI blocks needed to manipulate various types of preferences. Each field
* editor knows how to save and restore itself.
*/
public void createFieldEditors()
{
// Create a choice for the parser strictness
addField(new RadioGroupFieldEditor(
HprofPreferences.STRICTNESS_PREF,
Messages.HPROFPreferences_Strictness,
1,
new String[][] {
{ Messages.HPROFPreferences_Strictness_Stop,
HprofPreferences.HprofStrictness.STRICTNESS_STOP.toString() },
{
Messages.HPROFPreferences_Strictness_Warning,
HprofPreferences.HprofStrictness.STRICTNESS_WARNING
.toString() },
// Don't show the permissive option until we actually do
// something interesting with it
// {
// Messages.HPROFPreferences_Strictness_Permissive,
// PreferenceConstants.HprofStrictness.STRICTNESS_PERMISSIVE
// .toString() }
}, getFieldEditorParent(), true));
addField(new BooleanFieldEditor(HprofPreferences.ADDITIONAL_CLASS_REFERENCES, Messages.HPROFPreferences_Additional_Class_References,
getFieldEditorParent()));
}
/**
* No-op
*/
public void init(IWorkbench workbench)
{}
@Override
protected Control createContents(Composite parent) {
PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, "org.eclipse.mat.ui.help.preferences_hprof_assist"); //$NON-NLS-1$
return super.createContents(parent);
}
}