+++ /dev/null
-/*
- * Copyright (c) 2002-2004 Widespace, OU and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * Igor Malinin - initial contribution
- *
- * $Id: DTDMergeViewer.java,v 1.3 2006-10-21 23:14:13 pombredanne Exp $
- */
-
-package net.sourceforge.phpeclipse.xml.ui.internal.compare;
-
-import net.sourceforge.phpeclipse.xml.ui.XMLPlugin;
-import net.sourceforge.phpeclipse.xml.ui.internal.text.DTDConfiguration;
-import net.sourceforge.phpeclipse.xml.ui.text.DTDTextTools;
-
-import org.eclipse.compare.CompareConfiguration;
-import org.eclipse.compare.contentmergeviewer.TextMergeViewer;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.texteditor.AbstractTextEditor;
-
-/**
- * @author Igor Malinin
- */
-public class DTDMergeViewer extends TextMergeViewer {
-
- /**
- * The preference store.
- */
- private IPreferenceStore preferenceStore;
-
- /**
- * The listener for changes to the preference store.
- */
- private IPropertyChangeListener propertyChangeListener;
-
- /**
- * The DTD text tools.
- */
- private DTDTextTools textTools;
-
- /*
- * @see TextMergeViewer#TextMergeViewer(Composite, int,
- * CompareConfiguration)
- */
- public DTDMergeViewer(Composite parent, int style,
- CompareConfiguration configuration) {
- super(parent, style, configuration);
- }
-
- // TextMergeViewer Implementation ------------------------------------------
-
- /*
- * @see TextMergeViewer#configureTextViewer()
- */
- protected void configureTextViewer(TextViewer textViewer) {
- XMLPlugin plugin = XMLPlugin.getDefault();
-
- preferenceStore = plugin.getPreferenceStore();
- if (preferenceStore != null) {
- propertyChangeListener = new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- handlePreferenceStoreChanged(event);
- }
- };
- preferenceStore.addPropertyChangeListener(propertyChangeListener);
- }
-
- textTools = plugin.getDTDTextTools();
-
- if (textViewer instanceof SourceViewer) {
- SourceViewer sourceViewer = (SourceViewer) textViewer;
- sourceViewer.configure(new DTDConfiguration(textTools));
- }
-
- updateBackgroundColor();
- }
-
- /*
- * @see TextMergeViewer#getDocumentPartitioner()
- */
- protected IDocumentPartitioner getDocumentPartitioner() {
- return textTools.createDTDPartitioner();
- }
-
- /*
- * @see org.eclipse.compare.contentmergeviewer.ContentMergeViewer#getTitle()
- */
- public String getTitle() {
- return XMLPlugin.getResourceString("DTDMergeViewer.title"); //$NON-NLS-1$
- }
-
- /*
- * @see org.eclipse.jface.viewers.ContentViewer#handleDispose(org.eclipse.swt.events.DisposeEvent)
- */
- protected void handleDispose(DisposeEvent event) {
- if (propertyChangeListener != null) {
- if (preferenceStore != null) {
- preferenceStore
- .removePropertyChangeListener(propertyChangeListener);
- }
-
- propertyChangeListener = null;
- }
-
- super.handleDispose(event);
- }
-
- protected void handlePreferenceStoreChanged(PropertyChangeEvent event) {
- String p = event.getProperty();
-
- if (p.equals(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND)
- || p
- .equals(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT)) {
- updateBackgroundColor();
- } else if (textTools.affectsBehavior(event)) {
- invalidateTextPresentation();
- }
- }
-
- private void updateBackgroundColor() {
- boolean defaultBackgroundColor = preferenceStore
- .getBoolean(AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT);
-
- if (defaultBackgroundColor) {
- setBackgroundColor(null);
- } else {
- RGB backgroundColor = PreferenceConverter.getColor(preferenceStore,
- AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND);
- setBackgroundColor(backgroundColor);
- }
- }
-}