org.eclipse.team.internal.ccvs.ui.ComparePreferencePage.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.team.internal.ccvs.ui.ComparePreferencePage.java

Source

/*******************************************************************************
 * Copyright (c) 2000, 2011 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.team.internal.ccvs.ui;

import org.eclipse.compare.CompareUI;
import org.eclipse.jface.preference.*;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Event;
import org.eclipse.team.internal.ui.SWTUtils;
import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;

/**
 * Preference page for configuring CVS comparisons
 */
public class ComparePreferencePage extends CVSFieldEditorPreferencePage {
    private BooleanFieldEditor contents;
    private StringFieldEditor regex;

    /* (non-Javadoc)
     * @see org.eclipse.team.internal.ccvs.ui.CVSFieldEditorPreferencePage#getPageHelpContextId()
     */
    protected String getPageHelpContextId() {
        return IHelpContextIds.COMPARE_PREFERENCE_PAGE;
    }

    /* (non-Javadoc)
     * @see org.eclipse.team.internal.ccvs.ui.CVSFieldEditorPreferencePage#getPageDescription()
     */
    protected String getPageDescription() {
        return CVSUIMessages.ComparePreferencePage_0;
    }

    /* (non-Javadoc)
     * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
     */
    protected void createFieldEditors() {
        IPreferenceStore store = getPreferenceStore();

        contents = new BooleanFieldEditor(ICVSUIConstants.PREF_CONSIDER_CONTENTS,
                CVSUIMessages.ComparePreferencePage_4, BooleanFieldEditor.DEFAULT, getFieldEditorParent()) {
            private Event selectionEvent = createSelectionEvent();

            private Event createSelectionEvent() {
                Event event = new Event();
                event.type = SWT.Selection;
                return event;
            }

            // invert the UI
            protected void doLoad() {
                super.doLoad();
                getChangeControl(getFieldEditorParent()).setSelection(!getBooleanValue());
                getChangeControl(getFieldEditorParent()).notifyListeners(SWT.Selection, selectionEvent);
            }

            protected void doLoadDefault() {
                super.doLoadDefault();
                getChangeControl(getFieldEditorParent()).setSelection(!getBooleanValue());
                getChangeControl(getFieldEditorParent()).notifyListeners(SWT.Selection, selectionEvent);
            }

            protected void doStore() {
                getPreferenceStore().setValue(getPreferenceName(), !getBooleanValue());
            }
        };
        addField(contents);
        regex = new StringFieldEditor(ICVSUIConstants.PREF_SYNCVIEW_REGEX_FILTER_PATTERN,
                CVSUIMessages.ComparePreferencePage_5, getFieldEditorParent());
        addField(regex);
        GridData data = new GridData();
        data.horizontalIndent = 20;
        regex.getLabelControl(getFieldEditorParent()).setLayoutData(data);
        regex.setEnabled(store.getBoolean(ICVSUIConstants.PREF_CONSIDER_CONTENTS), getFieldEditorParent());
        addField(new BooleanFieldEditor(ICVSUIConstants.PREF_SHOW_COMPARE_REVISION_IN_DIALOG,
                CVSUIMessages.ComparePreferencePage_3, BooleanFieldEditor.DEFAULT, getFieldEditorParent()));
        addField(new BooleanFieldEditor(ICVSUIConstants.PREF_COMMIT_SET_DEFAULT_ENABLEMENT,
                CVSUIMessages.ComparePreferencePage_2, BooleanFieldEditor.DEFAULT, getFieldEditorParent()));
        addField(new BooleanFieldEditor(ICVSUIConstants.PREF_ENABLE_MODEL_SYNC,
                CVSUIMessages.ComparePreferencePage_7, BooleanFieldEditor.DEFAULT, getFieldEditorParent()));
        addField(new BooleanFieldEditor(ICVSUIConstants.PREF_OPEN_COMPARE_EDITOR_FOR_SINGLE_FILE,
                CVSUIMessages.ComparePreferencePage_8, BooleanFieldEditor.DEFAULT, getFieldEditorParent()));

        IPreferencePageContainer container = getContainer();
        if (container instanceof IWorkbenchPreferenceContainer) {
            IWorkbenchPreferenceContainer workbenchContainer = (IWorkbenchPreferenceContainer) container;
            SWTUtils.createPreferenceLink(workbenchContainer, getFieldEditorParent(), CompareUI.PREFERENCE_PAGE_ID,
                    CVSUIMessages.ComparePreferencePage_6);
        }
    }

    public void propertyChange(PropertyChangeEvent event) {
        super.propertyChange(event);
        regex.setEnabled(!contents.getBooleanValue(), getFieldEditorParent());
    }
}