/******************************************************************************* * Copyright (c) 2006 IBM Corporation. * 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 - Jeff Briggs, Henry Hughes, Ryan Morse *******************************************************************************/ package org.eclipse.linuxtools.internal.systemtap.graphing.ui.wizards.filter; import org.eclipse.linuxtools.internal.systemtap.graphing.ui.Localization; import org.eclipse.linuxtools.systemtap.graphing.core.filters.MatchFilter; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.forms.widgets.ColumnLayout; public class MatchFilterWizardPage extends FilterWizardPage { public MatchFilterWizardPage() { super("selectFilterOptions"); //$NON-NLS-1$ setTitle(Localization.getString("MatchFilterWizardPage.CreateMatchFilter")); //$NON-NLS-1$ } @Override public void createControl(Composite parent) { super.createControl(parent); Composite comp = new Composite(parent, SWT.NULL); comp.setLayout(new FormLayout()); FormData data1 = new FormData(); data1.left = new FormAttachment(0, 0); data1.top = new FormAttachment(0, 0); data1.right = new FormAttachment(40, 0); data1.bottom = new FormAttachment(100, 0); Composite cmpFilterOpts = new Composite(comp, SWT.NONE); cmpFilterOpts.setLayoutData(data1); ColumnLayout colLayout = new ColumnLayout(); colLayout.maxNumColumns = 1; cmpFilterOpts.setLayout(colLayout); //Column Label lblColumn = new Label(cmpFilterOpts, SWT.NONE); lblColumn.setText(Localization.getString("MatchFilterWizardPage.Column")); //$NON-NLS-1$ cboColumn = new Combo(cmpFilterOpts, SWT.DROP_DOWN | SWT.READ_ONLY); cboColumn.addSelectionListener(selectionListener); for(String serie : wizard.series) { cboColumn.add(serie); } new Label(cmpFilterOpts, SWT.NONE); //Spacer //String to compare to Label lblCompare = new Label(cmpFilterOpts, SWT.NONE); lblCompare.setText(Localization.getString("MatchFilterWizardPage.CompareTo")); //$NON-NLS-1$ txtCompare = new Text(cmpFilterOpts, SWT.BORDER); txtCompare.addModifyListener(modifyListener); new Label(cmpFilterOpts, SWT.NONE); //Spacer //Style radKeepMatch = new Button(cmpFilterOpts, SWT.RADIO); radKeepMatch.setText(Localization.getString("MatchFilterWizardPage.KeepMatching")); //$NON-NLS-1$ radKeepMatch.addSelectionListener(selectionListener); radKeepMatch.setSelection(true); radRemoveMatch = new Button(cmpFilterOpts, SWT.RADIO); radRemoveMatch.setText(Localization.getString("MatchFilterWizardPage.RemoveMatching")); //$NON-NLS-1$ radRemoveMatch.addSelectionListener(selectionListener); cboColumn.select(0); createFilter(); setControl(comp); } @Override public boolean canFlipToNextPage() { return false; } @Override protected void createFilter() { filter = null; setErrorMessage(null); String compare = txtCompare.getText().trim(); if (compare.isEmpty()) { setErrorMessage(Localization.getString("MatchFilterWizardPage.EmptyError")); //$NON-NLS-1$ return; } int selected = cboColumn.getSelectionIndex(); int style = (radKeepMatch.getSelection() ? MatchFilter.KEEP_MATCHING : MatchFilter.REMOVE_MATCHING); filter = new MatchFilter(selected, compare, style); } @Override public void dispose() { if(null != txtCompare) { txtCompare.removeModifyListener(modifyListener); txtCompare.dispose(); txtCompare = null; } if(null != cboColumn) { cboColumn.removeSelectionListener(selectionListener); cboColumn.dispose(); cboColumn = null; } if(null != radKeepMatch) { radKeepMatch.removeSelectionListener(selectionListener); radKeepMatch.dispose(); radKeepMatch = null; } if(null != radRemoveMatch) { radRemoveMatch.removeSelectionListener(selectionListener); radRemoveMatch.dispose(); radRemoveMatch = null; } super.dispose(); } private Combo cboColumn; private Text txtCompare; private Button radKeepMatch, radRemoveMatch; }