blob: fce001b784a0db989c9295b80388d51f484f389a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 Tasktop Technologies 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:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.internal.debug.ui;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.mylyn.commons.ui.CommonImages;
import org.eclipse.mylyn.commons.workbench.browser.BrowserUtil;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Link;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
public class BreakpointsPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
private Button manageBreakpointsButton;
@Override
public void init(IWorkbench workbench) {
}
@Override
protected Control createContents(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
GridLayoutFactory.fillDefaults().numColumns(2).applyTo(composite);
Label infoImage = new Label(composite, SWT.NONE);
infoImage.setImage(CommonImages.getImage(CommonImages.INFORMATION));
Link bugLink = new Link(composite, SWT.NONE);
bugLink.setText(Messages.BreakpointsPreferencePage_bug_link);
bugLink.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
BrowserUtil.openUrl("https://bugs.eclipse.org/bugs/show_bug.cgi?id=428378"); //$NON-NLS-1$
}
});
manageBreakpointsButton = new Button(composite, SWT.CHECK);
manageBreakpointsButton.setText(Messages.BreakpointsPreferencePage_Manage_breakpoints);
manageBreakpointsButton.setSelection(getPreferenceStore().getBoolean(
BreakpointsContextContributor.AUTO_MANAGE_BREAKPOINTS));
GridDataFactory.fillDefaults().span(2, 1).applyTo(manageBreakpointsButton);
Group warningGroup = new Group(composite, SWT.SHADOW_ETCHED_IN);
warningGroup.setLayout(new GridLayout(1, false));
warningGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
warningGroup.setText(Messages.BreakpointsPreferencePage_Known_Issues);
GridLayoutFactory.fillDefaults().numColumns(2).applyTo(warningGroup);
GridDataFactory.fillDefaults().span(2, 1).applyTo(warningGroup);
createWarning(warningGroup, Messages.Breakpoints_closed_projects_warning);
createWarning(warningGroup, Messages.Breakpoints_locations_warning);
createWarning(warningGroup, Messages.BreakpointsPreferencePage_unchecking_will_remove);
return composite;
}
private void createWarning(Composite parent, String message) {
Label warningImage = new Label(parent, SWT.NONE);
warningImage.setImage(CommonImages.getImage(CommonImages.WARNING));
Label warningMessage = new Label(parent, SWT.NONE);
warningMessage.setText(message);
GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.BEGINNING).applyTo(warningImage);
}
@Override
public boolean performOk() {
getPreferenceStore().setValue(BreakpointsContextContributor.AUTO_MANAGE_BREAKPOINTS,
manageBreakpointsButton.getSelection());
return true;
}
@Override
protected void performDefaults() {
manageBreakpointsButton.setSelection(false);
}
@Override
protected IPreferenceStore doGetPreferenceStore() {
return DebugUiPlugin.getDefault().getPreferenceStore();
}
}