/******************************************************************************* * Copyright (c) 2000, 2015 IBM Corporation and others. * 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.jdt.internal.debug.ui; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; 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; /** * Preference page for debug preferences that apply specifically to * Java Debugging. */ public class JavaPrimitivesPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { private List<BooleanFieldEditor> fEdtiors = new ArrayList<>(); public JavaPrimitivesPreferencePage() { super(DebugUIMessages.JavaPrimitivesPreferencePage_0); setPreferenceStore(JDIDebugUIPlugin.getDefault().getPreferenceStore()); setDescription(DebugUIMessages.JavaPrimitivesPreferencePage_1); } /** * @see PreferencePage#createContents(Composite) */ @Override protected Control createContents(Composite parent) { PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaDebugHelpContextIds.JAVA_PRIMITIVES_PREFERENCE_PAGE); //The main composite Composite composite = new Composite(parent, SWT.NULL); GridLayout layout = new GridLayout(); layout.numColumns = 1; layout.marginHeight=0; layout.marginWidth=0; composite.setLayout(layout); GridData data = new GridData(); data.verticalAlignment = GridData.FILL; data.horizontalAlignment = GridData.FILL; composite.setLayoutData(data); IPreferenceStore preferenceStore = JDIDebugUIPlugin.getDefault().getPreferenceStore(); BooleanFieldEditor editor = new BooleanFieldEditor(IJDIPreferencesConstants.PREF_SHOW_HEX, DebugUIMessages.JavaDebugPreferencePage_Display__hexadecimal_values__byte__short__char__int__long__3, composite); editor.setPreferenceStore(preferenceStore); fEdtiors.add(editor); editor = new BooleanFieldEditor(IJDIPreferencesConstants.PREF_SHOW_CHAR, DebugUIMessages.JavaDebugPreferencePage_Display_ASCII__character_values__byte__short__int__long__4, composite); editor.setPreferenceStore(preferenceStore); fEdtiors.add(editor); editor = new BooleanFieldEditor(IJDIPreferencesConstants.PREF_SHOW_UNSIGNED, DebugUIMessages.JavaDebugPreferencePage_Display__unsigned_values__byte__5, composite); editor.setPreferenceStore(preferenceStore); fEdtiors.add(editor); loadValues(); applyDialogFont(composite); return composite; } /** * @see IWorkbenchPreferencePage#init(IWorkbench) */ @Override public void init(IWorkbench workbench) { } /** * @see org.eclipse.jface.preference.IPreferencePage#performOk() * Also, notifies interested listeners */ @Override public boolean performOk() { storeValues(); return true; } /** * Sets the default preferences. * @see PreferencePage#performDefaults() */ @Override protected void performDefaults() { Iterator<BooleanFieldEditor> iterator = fEdtiors.iterator(); while (iterator.hasNext()) { BooleanFieldEditor editor = iterator.next(); editor.loadDefault(); } super.performDefaults(); } /** * Set the values of the component widgets based on the * values in the preference store */ private void loadValues() { Iterator<BooleanFieldEditor> iterator = fEdtiors.iterator(); while (iterator.hasNext()) { BooleanFieldEditor editor = iterator.next(); editor.load(); } } /** * Store the preference values based on the state of the * component widgets */ private void storeValues() { Iterator<BooleanFieldEditor> iterator = fEdtiors.iterator(); while (iterator.hasNext()) { BooleanFieldEditor editor = iterator.next(); editor.store(); } } }