blob: b64c430950e977bc6cf0f8ea5fda0142d879ce47 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2011 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* 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;
@Override
protected String getPageHelpContextId() {
return IHelpContextIds.COMPARE_PREFERENCE_PAGE;
}
@Override
protected String getPageDescription() {
return CVSUIMessages.ComparePreferencePage_0;
}
@Override
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
@Override
protected void doLoad() {
super.doLoad();
getChangeControl(getFieldEditorParent()).setSelection(!getBooleanValue());
getChangeControl(getFieldEditorParent()).notifyListeners(SWT.Selection,
selectionEvent);
}
@Override
protected void doLoadDefault() {
super.doLoadDefault();
getChangeControl(getFieldEditorParent()).setSelection(!getBooleanValue());
getChangeControl(getFieldEditorParent()).notifyListeners(SWT.Selection,
selectionEvent);
}
@Override
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);
}
}
@Override
public void propertyChange(PropertyChangeEvent event) {
super.propertyChange(event);
regex.setEnabled(!contents.getBooleanValue(), getFieldEditorParent());
}
}