diff options
Diffstat (limited to 'debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/propertypages/CBreakpointFilteringPage.java')
-rw-r--r-- | debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/propertypages/CBreakpointFilteringPage.java | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/propertypages/CBreakpointFilteringPage.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/propertypages/CBreakpointFilteringPage.java new file mode 100644 index 00000000000..7879cd8ccc4 --- /dev/null +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/propertypages/CBreakpointFilteringPage.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * Copyright (c) 2004, 2008 QNX Software Systems 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: + * QNX Software Systems - Initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.debug.internal.ui.propertypages; + +import org.eclipse.cdt.debug.core.CDIDebugModel; +import org.eclipse.cdt.debug.core.model.ICBreakpoint; +import org.eclipse.cdt.debug.core.model.ICBreakpointFilterExtension; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.ui.dialogs.PropertyPage; + +public class CBreakpointFilteringPage extends PropertyPage { + + private ThreadFilterEditor fThreadFilterEditor; + + /* (non-Javadoc) + * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite) + */ + @Override + protected Control createContents( Composite parent ) { + noDefaultAndApplyButton(); + Composite mainComposite = new Composite( parent, SWT.NONE ); + mainComposite.setFont( parent.getFont() ); + mainComposite.setLayout( new GridLayout() ); + mainComposite.setLayoutData( new GridData( GridData.FILL_BOTH ) ); + createThreadFilterEditor( mainComposite ); + setValid( true ); + return mainComposite; + } + + public ICBreakpoint getBreakpoint() { + return (ICBreakpoint)getElement().getAdapter(ICBreakpoint.class); + } + + public ICBreakpointFilterExtension getFilterExtension() { + ICBreakpoint bp = getBreakpoint(); + if (bp != null) { + try { + return (ICBreakpointFilterExtension)bp.getExtension( + CDIDebugModel.getPluginIdentifier(), ICBreakpointFilterExtension.class); + } catch (CoreException e) {} + } + return null; + } + + protected void createThreadFilterEditor( Composite parent ) { + fThreadFilterEditor = new ThreadFilterEditor( parent, this ); + } + + protected ThreadFilterEditor getThreadFilterEditor() { + return fThreadFilterEditor; + } + + /* (non-Javadoc) + * @see org.eclipse.jface.preference.IPreferencePage#performOk() + */ + @Override + public boolean performOk() { + doStore(); + return super.performOk(); + } + + /** + * Stores the values configured in this page. + */ + protected void doStore() { + fThreadFilterEditor.doStore(); + } +} |