]> git.uio.no Git - ifi-stolz-refaktor.git/blame - case-study/jdt-before/ui/org/eclipse/jdt/internal/ui/preferences/JavaSourcePreviewerUpdater.java
Case Study: adding data and statistics
[ifi-stolz-refaktor.git] / case-study / jdt-before / ui / org / eclipse / jdt / internal / ui / preferences / JavaSourcePreviewerUpdater.java
CommitLineData
1b2798f6
EK
1/*******************************************************************************
2 * Copyright (c) 2000, 2008 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11
12package org.eclipse.jdt.internal.ui.preferences;
13
14import org.eclipse.swt.events.DisposeEvent;
15import org.eclipse.swt.events.DisposeListener;
16import org.eclipse.swt.graphics.Font;
17
18import org.eclipse.core.runtime.Assert;
19
20import org.eclipse.jface.preference.IPreferenceStore;
21import org.eclipse.jface.resource.JFaceResources;
22import org.eclipse.jface.util.IPropertyChangeListener;
23import org.eclipse.jface.util.PropertyChangeEvent;
24
25import org.eclipse.jface.text.source.SourceViewer;
26
27import org.eclipse.jdt.ui.PreferenceConstants;
28import org.eclipse.jdt.ui.text.JavaSourceViewerConfiguration;
29
30/**
31 * Handles Java editor font changes for Java source preview viewers.
32 *
33 * @since 3.0
34 */
35public class JavaSourcePreviewerUpdater {
36
37 /**
38 * Creates a Java source preview updater for the given viewer, configuration and preference store.
39 *
40 * @param viewer the viewer
41 * @param configuration the configuration
42 * @param preferenceStore the preference store
43 */
44 public JavaSourcePreviewerUpdater(final SourceViewer viewer, final JavaSourceViewerConfiguration configuration, final IPreferenceStore preferenceStore) {
45 Assert.isNotNull(viewer);
46 Assert.isNotNull(configuration);
47 Assert.isNotNull(preferenceStore);
48 final IPropertyChangeListener fontChangeListener= new IPropertyChangeListener() {
49 /*
50 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
51 */
52 public void propertyChange(PropertyChangeEvent event) {
53 if (event.getProperty().equals(PreferenceConstants.EDITOR_TEXT_FONT)) {
54 Font font= JFaceResources.getFont(PreferenceConstants.EDITOR_TEXT_FONT);
55 viewer.getTextWidget().setFont(font);
56 }
57 }
58 };
59 final IPropertyChangeListener propertyChangeListener= new IPropertyChangeListener() {
60 /*
61 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
62 */
63 public void propertyChange(PropertyChangeEvent event) {
64 if (configuration.affectsTextPresentation(event)) {
65 configuration.handlePropertyChangeEvent(event);
66 viewer.invalidateTextPresentation();
67 }
68 }
69 };
70 viewer.getTextWidget().addDisposeListener(new DisposeListener() {
71 /*
72 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
73 */
74 public void widgetDisposed(DisposeEvent e) {
75 preferenceStore.removePropertyChangeListener(propertyChangeListener);
76 JFaceResources.getFontRegistry().removeListener(fontChangeListener);
77 }
78 });
79 JFaceResources.getFontRegistry().addListener(fontChangeListener);
80 preferenceStore.addPropertyChangeListener(propertyChangeListener);
81 }
82}