fAddTypeButton.setToolTipText("Choose a java type and add it to step filters");
fAddTypeButton.setToolTipText("Choose a Java type and add it to step filters");
	private void createStepFilterPreferences(Composite parent) {		Composite comp = createLabelledComposite(parent, 1, "Step filters");				// top level container		Composite container = new Composite(comp, SWT.NONE);		GridLayout layout = new GridLayout();		layout.numColumns = 2;		layout.marginHeight = 0;		layout.marginWidth = 0;		container.setLayout(layout);				// use filters checkbox		fUseFiltersCheckbox = new Button(container, SWT.CHECK);		fUseFiltersCheckbox.setText("Use &step filters");		fUseFiltersCheckbox.setToolTipText("Toggle whether step filters are used at all");		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);		gd.horizontalSpan = 2;		fUseFiltersCheckbox.setLayoutData(gd);			fUseFiltersCheckbox.addSelectionListener(new SelectionListener() {			public void widgetSelected(SelectionEvent se) {				toggleStepFilterWidgetsEnabled(fUseFiltersCheckbox.getSelection());			}			public void widgetDefaultSelected(SelectionEvent se) {			}		});					// filter table		fFilterViewer = new CheckboxTableViewer(container, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);		fFilterTable = fFilterViewer.getTable();		fTableEditor = new TableEditor(fFilterTable);		fFilterViewer.setLabelProvider(new StepFilterLabelProvider());		fFilterViewer.setSorter(new WorkbenchViewerSorter());		fStepFilterContentProvider = new StepFilterContentProvider(fFilterViewer);		fFilterViewer.setContentProvider(fStepFilterContentProvider);		fFilterViewer.setInput(JDIDebugModel.getAllStepFilters());		gd = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL);		gd.heightHint = 150;		gd.widthHint = 300;		fFilterViewer.getTable().setLayoutData(gd);		fFilterViewer.addCheckStateListener(new ICheckStateListener() {			public void checkStateChanged(CheckStateChangedEvent event) {				StepFilter filter = (StepFilter)event.getElement();				fStepFilterContentProvider.toggleFilter(filter);			}		});		fFilterViewer.addSelectionChangedListener(new ISelectionChangedListener() {			public void selectionChanged(SelectionChangedEvent event) {				ISelection selection = event.getSelection();				if (selection.isEmpty()) {					fRemoveFilterButton.setEnabled(false);				} else {					fRemoveFilterButton.setEnabled(true);									}			}		});						// button container		Composite buttonContainer = new Composite(container, SWT.NONE);		gd = new GridData(GridData.FILL_VERTICAL);		buttonContainer.setLayoutData(gd);		GridLayout buttonLayout = new GridLayout();		buttonLayout.numColumns = 1;		buttonLayout.marginHeight = 0;		buttonLayout.marginWidth = 0;		buttonContainer.setLayout(buttonLayout);				// Add filter button		fAddFilterButton = new Button(buttonContainer, SWT.PUSH);		fAddFilterButton.setText("Add &Filter");		fAddFilterButton.setToolTipText("Key in the name of a new step filter");		gd = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);		fAddFilterButton.setLayoutData(gd);		fAddFilterButton.addSelectionListener(new SelectionListener() {			public void widgetSelected(SelectionEvent se) {				addActiveFilter();			}			public void widgetDefaultSelected(SelectionEvent se) {			}		});				// Add type button		fAddTypeButton = new Button(buttonContainer, SWT.PUSH);		fAddTypeButton.setText("Add &Type...");		fAddTypeButton.setToolTipText("Choose a java type and add it to step filters");		gd = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);		fAddTypeButton.setLayoutData(gd);		fAddTypeButton.addSelectionListener(new SelectionListener() {			public void widgetSelected(SelectionEvent se) {				addType();			}			public void widgetDefaultSelected(SelectionEvent se) {			}		});				// Add package button		fAddPackageButton = new Button(buttonContainer, SWT.PUSH);		fAddPackageButton.setText("Add &Package...");		fAddPackageButton.setToolTipText("Choose a package and add it to step filters");		gd = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);		fAddPackageButton.setLayoutData(gd);		fAddPackageButton.addSelectionListener(new SelectionListener() {			public void widgetSelected(SelectionEvent se) {				addPackage();			}			public void widgetDefaultSelected(SelectionEvent se) {			}		});				// Remove button		fRemoveFilterButton = new Button(buttonContainer, SWT.PUSH);		fRemoveFilterButton.setText("&Remove");		fRemoveFilterButton.setToolTipText("Remove all selected step filters");		gd = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);		fRemoveFilterButton.setLayoutData(gd);		fRemoveFilterButton.addSelectionListener(new SelectionListener() {			public void widgetSelected(SelectionEvent se) {				removeFilters();			}			public void widgetDefaultSelected(SelectionEvent se) {			}		});		fRemoveFilterButton.setEnabled(false);				// filter synthetic checkbox		fFilterSyntheticButton = new Button(container, SWT.CHECK);		fFilterSyntheticButton.setText("Filter s&ynthetic methods (requires VM support)");		gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);		gd.horizontalSpan = 2;		fFilterSyntheticButton.setLayoutData(gd);				// filter static checkbox		fFilterStaticButton = new Button(container, SWT.CHECK);		fFilterStaticButton.setText("Filter static &initializers");		gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);		gd.horizontalSpan = 2;		fFilterStaticButton.setLayoutData(gd);				// filter constructor checkbox		fFilterConstructorButton = new Button(container, SWT.CHECK);		fFilterConstructorButton.setText("Filter co&nstructors");		gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);		gd.horizontalSpan = 2;		fFilterConstructorButton.setLayoutData(gd);				fFilterSyntheticButton.setSelection(JDIDebugModel.getFilterSynthetic());		fFilterStaticButton.setSelection(JDIDebugModel.getFilterStatic());		fFilterConstructorButton.setSelection(JDIDebugModel.getFilterConstructor());		boolean enabled = JDIDebugModel.useStepFilters();		fUseFiltersCheckbox.setSelection(enabled);		toggleStepFilterWidgetsEnabled(enabled);	}