diff options
author | Andrew Ferrazzutti | 2014-02-21 19:04:01 +0000 |
---|---|---|
committer | Sami Wagiaalla | 2014-04-01 18:12:50 +0000 |
commit | db1ab32aeb3884e1614b00222a6d976aee7ddc83 (patch) | |
tree | d83e736743bda9666fca548a366520192d8971f5 /systemtap | |
parent | c9f1ffd96db98ee0b196c90972480984ed75a6d8 (diff) | |
download | org.eclipse.linuxtools-db1ab32aeb3884e1614b00222a6d976aee7ddc83.tar.gz org.eclipse.linuxtools-db1ab32aeb3884e1614b00222a6d976aee7ddc83.tar.xz org.eclipse.linuxtools-db1ab32aeb3884e1614b00222a6d976aee7ddc83.zip |
Systemtap: Allow data filters to affect graphs.
Data filters that are applied to the Data View table (DataGrid) of a
Graph Set are now also applied to all graphs in the Set.
Also include SWTBot testing of adding filters to tables/charts.
Change-Id: If9bb7df6ea3686f0930f8ce8bf8685ec5357c45e
Signed-off-by: Andrew Ferrazzutti <aferrazz@redhat.com>
Reviewed-on: https://git.eclipse.org/r/22394
Tested-by: Hudson CI
Reviewed-by: Sami Wagiaalla <swagiaal@redhat.com>
IP-Clean: Sami Wagiaalla <swagiaal@redhat.com>
Tested-by: Sami Wagiaalla <swagiaal@redhat.com>
Diffstat (limited to 'systemtap')
9 files changed, 140 insertions, 60 deletions
diff --git a/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/GraphDisplaySet.java b/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/GraphDisplaySet.java index ed49fe9a76..3a71e5de8c 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/GraphDisplaySet.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/GraphDisplaySet.java @@ -22,6 +22,7 @@ import org.eclipse.linuxtools.internal.systemtap.graphing.ui.GraphingUIPlugin; import org.eclipse.linuxtools.internal.systemtap.graphing.ui.Localization; import org.eclipse.linuxtools.internal.systemtap.graphing.ui.preferences.GraphingPreferenceConstants; import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IDataSet; +import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IFilteredDataSet; import org.eclipse.linuxtools.systemtap.graphing.core.structures.GraphData; import org.eclipse.linuxtools.systemtap.graphing.ui.charts.AbstractChartBuilder; import org.eclipse.linuxtools.systemtap.graphing.ui.datadisplay.DataGrid; @@ -62,7 +63,10 @@ public class GraphDisplaySet { private IPropertyChangeListener propertyChangeListener; private IPreferenceStore p; - public GraphDisplaySet(Composite parent, IDataSet data) { + /** + * @since 3.0 set must be a IFilteredDataSet. + */ + public GraphDisplaySet(Composite parent, IFilteredDataSet data) { p = GraphingUIPlugin.getDefault().getPreferenceStore(); int delay = p.getInt(GraphingPreferenceConstants.P_GRAPH_UPDATE_DELAY); @@ -283,7 +287,7 @@ public class GraphDisplaySet { } private int lastSelectedTab; - private IDataSet dataSet; + private IFilteredDataSet dataSet; private CTabFolder folder; private ButtonClickListener listener; private UpdateManager updater; diff --git a/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/datadisplay/DataGrid.java b/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/datadisplay/DataGrid.java index 6bbaea6124..b1e4e7c438 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/datadisplay/DataGrid.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/datadisplay/DataGrid.java @@ -24,7 +24,6 @@ import org.eclipse.linuxtools.internal.systemtap.graphing.ui.preferences.Graphin import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IDataSet; import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IFilteredDataSet; import org.eclipse.linuxtools.systemtap.graphing.core.filters.IDataSetFilter; -import org.eclipse.linuxtools.systemtap.graphing.ui.wizards.dataset.DataSetFactory; import org.eclipse.linuxtools.systemtap.graphing.ui.wizards.filter.AvailableFilterTypes; import org.eclipse.linuxtools.systemtap.graphing.ui.wizards.filter.SelectFilterWizard; import org.eclipse.linuxtools.systemtap.structures.IFormattingStyles; @@ -52,14 +51,14 @@ import org.eclipse.ui.PlatformUI; public class DataGrid implements IUpdateListener { - public DataGrid(Composite composite, IDataSet set, int style) { + /** + * @since 3.0 set must be a IFilteredDataSet. + */ + public DataGrid(Composite composite, IFilteredDataSet set, int style) { prefs = GraphingUIPlugin.getDefault().getPreferenceStore(); manualResize = !prefs.getBoolean(GraphingPreferenceConstants.P_AUTO_RESIZE); - dataSet = set; - filteredDataSet = (dataSet instanceof IFilteredDataSet) - ? (IFilteredDataSet)dataSet - : DataSetFactory.createFilteredDataSet(dataSet); + filteredDataSet = set; this.style = style; clickLocation = new Point(-1, -1); createPartControl(composite); @@ -79,7 +78,7 @@ public class DataGrid implements IUpdateListener { table.setLayoutData(data); } - public IDataSet getDataSet() { return dataSet; } + public IDataSet getDataSet() { return filteredDataSet; } public Control getControl() { return table; } public void createPartControl(Composite parent) { @@ -88,7 +87,7 @@ public class DataGrid implements IUpdateListener { table.setLinesVisible(true); table.getVerticalBar().setVisible(true); - String[] names = dataSet.getTitles(); + String[] names = filteredDataSet.getTitles(); TableColumn column = new TableColumn(table, SWT.LEFT); column.setText(Localization.getString("DataGrid.Row")); //$NON-NLS-1$ column.pack(); @@ -192,7 +191,7 @@ public class DataGrid implements IUpdateListener { public class AddFilterSelection extends SelectionAdapter { @Override public void widgetSelected(SelectionEvent e) { - SelectFilterWizard wizard = new SelectFilterWizard(dataSet.getTitles()); + SelectFilterWizard wizard = new SelectFilterWizard(filteredDataSet.getTitles()); IWorkbench workbench = PlatformUI.getWorkbench(); wizard.init(workbench, null); WizardDialog dialog = new WizardDialog(workbench.getActiveWorkbenchWindow().getShell(), wizard); @@ -208,7 +207,7 @@ public class DataGrid implements IUpdateListener { MenuItem item = new MenuItem(filterMenu, SWT.CASCADE); item.setText(MessageFormat.format(Localization.getString("DataGrid.FilterLabel"), //$NON-NLS-1$ - AvailableFilterTypes.getFilterName(filter.getID()), dataSet.getTitles()[filter.getColumn()], filter.getInfo())); + AvailableFilterTypes.getFilterName(filter.getID()), filteredDataSet.getTitles()[filter.getColumn()], filter.getInfo())); item.setData(filter); item.addSelectionListener(new RemoveFilterSelection()); } @@ -252,7 +251,7 @@ public class DataGrid implements IUpdateListener { items[IFormattingStyles.UNFORMATED].setEnabled(true); items[IFormattingStyles.STRING].setEnabled(true); - itemText = dataSet.getRow(0)[selectedCol-1].toString(); + itemText = filteredDataSet.getRow(0)[selectedCol-1].toString(); try { Double.parseDouble(itemText); doubleValid = true; @@ -282,7 +281,7 @@ public class DataGrid implements IUpdateListener { } } - Object[] data = dataSet.getColumn(column-1); + Object[] data = filteredDataSet.getColumn(column-1); columnFormat[column-1].setFormat(format); for(i=0; i<table.getItemCount(); i++) { table.getItem(i).setText(column, columnFormat[column-1].format(data[i].toString())); @@ -361,7 +360,7 @@ public class DataGrid implements IUpdateListener { } public void dispose() { - dataSet = null; + filteredDataSet = null; table.dispose(); table = null; clickLocation = null; @@ -370,7 +369,6 @@ public class DataGrid implements IUpdateListener { propertyChangeListener = null; } - protected IDataSet dataSet; protected IFilteredDataSet filteredDataSet; protected IFormattingStyles columnFormat[]; protected int removedItems; diff --git a/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/views/GraphSelectorEditor.java b/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/views/GraphSelectorEditor.java index a821699397..8866356fbc 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/views/GraphSelectorEditor.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/views/GraphSelectorEditor.java @@ -16,7 +16,7 @@ import java.util.List; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.linuxtools.internal.systemtap.graphing.ui.views.Messages; -import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IDataSet; +import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IFilteredDataSet; import org.eclipse.linuxtools.systemtap.graphing.ui.GraphDisplaySet; import org.eclipse.linuxtools.systemtap.structures.listeners.ITabListener; import org.eclipse.osgi.util.NLS; @@ -65,10 +65,10 @@ public class GraphSelectorEditor extends EditorPart { * Each new script set will be given a new tab item at the end of the list. * @param scriptName The full name of the script that is being monitored. * @param titles The names to be shown on each new tab - * @param dataSets The <code>IDataSet</code>s for each new script set + * @param dataSets The <code>IFilteredDataSet</code>s for each new script set * @since 2.2 */ - public void createScriptSets(String scriptName, List<String> titles, List<IDataSet> dataSets) { + public void createScriptSets(String scriptName, List<String> titles, List<IFilteredDataSet> dataSets) { CTabItem item = null; for (int i = 0, n = titles.size(); i < n; i++) { diff --git a/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/wizards/dataset/DataSetFactory.java b/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/wizards/dataset/DataSetFactory.java index d5055946b9..76b47791a8 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/wizards/dataset/DataSetFactory.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.graphing.ui/src/org/eclipse/linuxtools/systemtap/graphing/ui/wizards/dataset/DataSetFactory.java @@ -48,10 +48,11 @@ public final class DataSetFactory { return null; } - public static DataGrid getDataGrid(Composite composite, IDataSet set) { - if(set instanceof RowDataSet) { - return new DataGrid(composite, set, DataGrid.NONE); - } else if(set instanceof TableDataSet) { + /** + * @since 3.0 set must be a IFilteredDataSet. + */ + public static DataGrid getDataGrid(Composite composite, IFilteredDataSet set) { + if(set instanceof RowDataSet || set instanceof TableDataSet) { return new DataGrid(composite, set, DataGrid.FULL_UPDATE); } diff --git a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide.tests/src/org/eclipse/linuxtools/systemtap/ui/ide/test/swtbot/TestCreateSystemtapScript.java b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide.tests/src/org/eclipse/linuxtools/systemtap/ui/ide/test/swtbot/TestCreateSystemtapScript.java index 1abcc60ae5..38dd2ee733 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide.tests/src/org/eclipse/linuxtools/systemtap/ui/ide/test/swtbot/TestCreateSystemtapScript.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide.tests/src/org/eclipse/linuxtools/systemtap/ui/ide/test/swtbot/TestCreateSystemtapScript.java @@ -194,18 +194,21 @@ public class TestCreateSystemtapScript { private String scriptName; private int graphSetNum; private int expectedRows; + private boolean exact; /** - * Wait for the provided GraphSelectorEditor to be fully updated. A table is considered to be updated - * once the number of entries in the table is equal to the expectedRows parameter of this constructor. + * Wait for the provided GraphSelectorEditor to be fully updated. * Note that using this will set focus to the Data View tab of the specified graph set. - * @param graphEditor The SWTBotEditor of the GraphSelectorEditor to wait for. + * @param scriptName The name of the script that is being graphed. * @param graphSetNum Which graph set to focus on & watch for updates. * @param expectedRows How many entries/rows are expected to be in the table when it's fully updated. + * @param exact Set this to <code>true</code> if the number of graph columns should exactly match the + * expected amount, or <code>false</code> if it may be greater than the expected amount. */ - public TableHasUpdated(String scriptName, int graphSetNum, int expectedRows) { + public TableHasUpdated(String scriptName, int graphSetNum, int expectedRows, boolean exact) { this.scriptName = scriptName; this.graphSetNum = graphSetNum; this.expectedRows = expectedRows; + this.exact = exact; } @Override public boolean test() { @@ -213,7 +216,11 @@ public class TestCreateSystemtapScript { graphEditor.setFocus(); graphEditor.bot().cTabItem(MessageFormat.format(Messages.SystemTapScriptGraphOptionsTab_graphSetTitleBase, graphSetNum)).activate(); graphEditor.bot().cTabItem("Data View").activate(); - return bot.table(0).rowCount() >= expectedRows; + if (!exact) { + return bot.table().rowCount() >= expectedRows; + } else { + return bot.table().rowCount() == expectedRows; + } } @Override @@ -228,8 +235,7 @@ public class TestCreateSystemtapScript { int oldCount; int expectedCount; /** - * Wait for the provided chart to become updated. The chart is considered - * to be updated once a new point is added to one of its series sets. + * Wait for the provided chart to become updated. * @param chart The chart to watch for an update. * @param expectedCount The expected number of series points. Set to -1 to instead * check for when there are more points than there were at the beginning. @@ -574,7 +580,7 @@ public class TestCreateSystemtapScript { combo.setText("sample"); combo.setSelection(1); assertEquals(4, combo.itemCount()); - SWTBotTable table = bot.table(0); + SWTBotTable table = bot.table(); SWTBotButton button = bot.button(Messages.SystemTapScriptGraphOptionsTab_RemoveGraphButton); assertTrue(!button.isEnabled()); table.select(0); @@ -614,9 +620,9 @@ public class TestCreateSystemtapScript { + "\nprobe timer.ms(1000){exit()}"); editor.save(); - String val0 = "i"; - String val1 = "j"; - String val2 = "k"; + final String val0 = "i"; + final String val1 = "j"; + final String val2 = "k"; openRunConfigurations(scriptName); SWTBotShell shell = bot.shell("Run Configurations"); @@ -648,6 +654,8 @@ public class TestCreateSystemtapScript { // Add a graph. bot.button(Messages.SystemTapScriptGraphOptionsTab_AddGraphButton).click(); setupGraphWithTests("Values"); + String setTitle1 = MessageFormat.format(Messages.SystemTapScriptGraphOptionsTab_graphSetTitleBase, 1); + String graphTitle1 = "Values - Scatter Graph"; // Make a second regex, and a graph for it. shell.setFocus(); @@ -671,6 +679,8 @@ public class TestCreateSystemtapScript { bot.button(Messages.SystemTapScriptGraphOptionsTab_AddGraphButton).click(); setupGraphWithTests("Others"); + String setTitle2 = MessageFormat.format(Messages.SystemTapScriptGraphOptionsTab_graphSetTitleBase, 2); + String graphTitle2 = "Others - Scatter Graph"; // Apply the changes, then close the menu & reopen it to make sure settings were saved. shell.setFocus(); @@ -687,7 +697,7 @@ public class TestCreateSystemtapScript { combo = bot.comboBoxWithLabel(Messages.SystemTapScriptGraphOptionsTab_regexLabel); text = bot.textWithLabel(Messages.SystemTapScriptGraphOptionsTab_sampleOutputLabel); - SWTBotTable table = bot.table(0); + SWTBotTable table = bot.table(); assertEquals(3, combo.itemCount()); assertEquals("Value:(\\d+) (\\d+)", combo.getText()); assertEquals("Value:1 2", text.getText()); @@ -711,31 +721,95 @@ public class TestCreateSystemtapScript { console.setFocus(); bot.waitUntil(new StapHasExited()); // The script should end on its own - // Give time for the table to be fully constructed + // Give time for the table to be fully constructed. SWTBotEditor graphEditor = bot.activeEditor(); - bot.waitUntil(new TableHasUpdated(scriptName, 1, 10)); - bot.waitUntil(new TableHasUpdated(scriptName, 2, 4)); + bot.waitUntil(new TableHasUpdated(scriptName, 1, 10, false)); + bot.waitUntil(new TableHasUpdated(scriptName, 2, 4, false)); + // Test table & graph contents. graphEditor.setFocus(); - graphEditor.bot().cTabItem(MessageFormat.format(Messages.SystemTapScriptGraphOptionsTab_graphSetTitleBase, 1)).activate(); + graphEditor.bot().cTabItem(setTitle1).activate(); graphEditor.bot().cTabItem("Data View").activate(); - SWTBotTable dataTable = bot.table(0); + SWTBotTable dataTable = bot.table(); List<String> colNames = dataTable.columns(); assertEquals(3, colNames.size()); assertEquals(val0, colNames.get(1)); assertEquals(val1, colNames.get(2)); - assertEquals("3", dataTable.cell(3, 1)); - assertEquals("6", dataTable.cell(3, 2)); + assertEquals("2", dataTable.cell(2, 1)); + assertEquals("4", dataTable.cell(2, 2)); - graphEditor.bot().cTabItem(MessageFormat.format(Messages.SystemTapScriptGraphOptionsTab_graphSetTitleBase, 2)).activate(); + graphEditor.bot().cTabItem(graphTitle1).activate(); + Matcher<AbstractChartBuilder> matcher = widgetOfType(AbstractChartBuilder.class); + AbstractChartBuilder cb = bot.widget(matcher); + ISeries[] series = cb.getChart().getSeriesSet().getSeries(); + assertEquals(2, series.length); + assertEquals(10, series[0].getXSeries().length); + assertEquals(10, series[1].getXSeries().length); + assertEquals(2, (int) series[0].getYSeries()[2]); + assertEquals(4, (int) series[1].getYSeries()[2]); + + graphEditor.bot().cTabItem(setTitle2).activate(); graphEditor.bot().cTabItem("Data View").activate(); - dataTable = bot.table(0); + dataTable = bot.table(); colNames = dataTable.columns(); assertEquals(3, colNames.size()); assertEquals(val0, colNames.get(1)); assertEquals(val2, colNames.get(2)); - assertEquals("10", dataTable.cell(3, 1)); - assertEquals("3", dataTable.cell(3, 2)); + assertEquals("7", dataTable.cell(2, 1)); + assertEquals("2", dataTable.cell(2, 2)); + + graphEditor.bot().cTabItem(graphTitle2).activate(); + cb = bot.widget(matcher); + series = cb.getChart().getSeriesSet().getSeries(); + assertEquals(2, series.length); + assertEquals(4, series[0].getXSeries().length); + assertEquals(4, series[1].getXSeries().length); + assertEquals(7, (int) series[0].getYSeries()[2]); + assertEquals(2, (int) series[1].getYSeries()[2]); + + // Test filters on the data table & graphs. + graphEditor.bot().cTabItem(setTitle1).activate(); + graphEditor.bot().cTabItem("Data View").activate(); + dataTable = bot.table(); + click(ContextMenuHelper.contextMenu(dataTable, "Add filter...")); + shell = bot.shell("Create Filter"); + shell.setFocus(); + + // Match Filter - Remove a matching + bot.button("Match Filter").click(); + bot.button("Next >").click(); + bot.text().setText("2"); + deselectDefaultSelection(0); + bot.radio(1).click(); + bot.button("Finish").click(); + bot.waitUntil(new ShellIsClosed(shell)); + bot.waitUntil(new TableHasUpdated(scriptName, 1, 9, true)); + assertEquals("3", dataTable.cell(2, 1)); + assertEquals("6", dataTable.cell(2, 2)); + + // Filters should be applied to graphs as well as data tables. + graphEditor.bot().cTabItem(graphTitle1).activate(); + cb = bot.widget(matcher); + series = cb.getChart().getSeriesSet().getSeries(); + bot.waitUntil(new ChartHasUpdated(cb.getChart(), 9)); + assertEquals(3, (int) series[0].getYSeries()[2]); + assertEquals(6, (int) series[1].getYSeries()[2]); + + // Each graph set should have its own filters. + graphEditor.bot().cTabItem(setTitle2).activate(); + graphEditor.bot().cTabItem("Data View").activate(); + dataTable = bot.table(); + assertEquals(4, dataTable.rowCount()); + assertEquals("2", dataTable.cell(0, 1)); + + // Test removing a filter. + graphEditor.bot().cTabItem(setTitle1).activate(); + graphEditor.bot().cTabItem("Data View").activate(); + dataTable = bot.table(); + click(ContextMenuHelper.contextMenu(dataTable, "Remove filter...", "Match Filter: \"" + val0 + "\" removing \"2\"")); + bot.waitUntil(new TableHasUpdated(scriptName, 1, 10, true)); + assertEquals("2", dataTable.cell(2, 1)); + assertEquals("4", dataTable.cell(2, 2)); clearAllTerminated(); } @@ -836,9 +910,9 @@ public class TestCreateSystemtapScript { console.setFocus(); bot.waitUntil(new StapHasExited()); // The script should end on its own - // Give time for the table to be fully constructed + // Give time for the table to be fully constructed. SWTBotEditor graphEditor = bot.activeEditor(); - bot.waitUntil(new TableHasUpdated(scriptName, 1, numItems)); + bot.waitUntil(new TableHasUpdated(scriptName, 1, numItems, false)); // Confirm that the bar & pie charts display the String categories, but the line chart ignores them. String titleBar = title + " - Bar Graph"; diff --git a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/actions/ImportDataSetHandler.java b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/actions/ImportDataSetHandler.java index db423d9313..13b549f6c8 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/actions/ImportDataSetHandler.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/actions/ImportDataSetHandler.java @@ -20,8 +20,10 @@ import java.util.Arrays; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.linuxtools.internal.systemtap.ui.ide.IDEPerspective; -import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IDataSet; +import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IFilteredDataSet; +import org.eclipse.linuxtools.systemtap.graphing.core.datasets.row.FilteredRowDataSet; import org.eclipse.linuxtools.systemtap.graphing.core.datasets.row.RowDataSet; +import org.eclipse.linuxtools.systemtap.graphing.core.datasets.table.FilteredTableDataSet; import org.eclipse.linuxtools.systemtap.graphing.core.datasets.table.TableDataSet; import org.eclipse.linuxtools.systemtap.graphing.ui.views.GraphSelectorEditor; import org.eclipse.linuxtools.systemtap.graphing.ui.views.GraphSelectorEditorInput; @@ -50,7 +52,7 @@ public class ImportDataSetHandler extends AbstractHandler { return null; } - IDataSet dataset = null; + IFilteredDataSet dataset = null; File file = new File(path); try (InputStreamReader fr = new InputStreamReader(new FileInputStream(file), Charset.defaultCharset()); BufferedReader br = new BufferedReader(fr)) { @@ -60,9 +62,9 @@ public class ImportDataSetHandler extends AbstractHandler { if (id == null && titles == null) { throw new IOException(); } else if (id.equals(RowDataSet.ID)) { - dataset = new RowDataSet(titles); + dataset = new FilteredRowDataSet(titles); } else if (id.equals(TableDataSet.ID)) { - dataset = new TableDataSet(titles); + dataset = new FilteredTableDataSet(titles); } else { throw new IOException(); } diff --git a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/actions/RunScriptChartHandler.java b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/actions/RunScriptChartHandler.java index 68590be876..c8b04659ac 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/actions/RunScriptChartHandler.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/actions/RunScriptChartHandler.java @@ -15,8 +15,8 @@ import java.util.LinkedList; import java.util.List; import org.eclipse.linuxtools.internal.systemtap.ui.ide.IDEPerspective; -import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IDataSet; import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IDataSetParser; +import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IFilteredDataSet; import org.eclipse.linuxtools.systemtap.graphing.core.structures.ChartStreamDaemon; import org.eclipse.linuxtools.systemtap.graphing.core.structures.GraphData; import org.eclipse.linuxtools.systemtap.graphing.ui.views.GraphSelectorEditor; @@ -35,11 +35,11 @@ import org.eclipse.ui.WorkbenchException; public class RunScriptChartHandler extends RunScriptHandler { private List<IDataSetParser> parsers; - private List<IDataSet> dataSets; + private List<IFilteredDataSet> dataSets; private List<String> names; private List<LinkedList<GraphData>> graphs; - public RunScriptChartHandler(List<IDataSetParser> parsers, List<IDataSet> dataSet, List<String> names, List<LinkedList<GraphData>> graphs) { + public RunScriptChartHandler(List<IDataSetParser> parsers, List<IFilteredDataSet> dataSet, List<String> names, List<LinkedList<GraphData>> graphs) { super(); this.parsers = parsers; this.dataSets = dataSet; diff --git a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/launcher/SystemTapScriptGraphOptionsTab.java b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/launcher/SystemTapScriptGraphOptionsTab.java index 8271acee3d..b735965bf4 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/launcher/SystemTapScriptGraphOptionsTab.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/launcher/SystemTapScriptGraphOptionsTab.java @@ -39,6 +39,7 @@ import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.linuxtools.internal.systemtap.ui.ide.IDEPlugin; import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IDataSet; import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IDataSetParser; +import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IFilteredDataSet; import org.eclipse.linuxtools.systemtap.graphing.core.datasets.row.LineParser; import org.eclipse.linuxtools.systemtap.graphing.core.datasets.row.RowDataSet; import org.eclipse.linuxtools.systemtap.graphing.core.structures.GraphData; @@ -510,10 +511,10 @@ public class SystemTapScriptGraphOptionsTab extends * @param configuration * @return */ - public static ArrayList<IDataSet> createDataset(ILaunchConfiguration configuration) { + public static ArrayList<IFilteredDataSet> createDataset(ILaunchConfiguration configuration) { try { int numberOfRegexs = configuration.getAttribute(NUMBER_OF_REGEXS, 0); - ArrayList<IDataSet> datasets = new ArrayList<>(numberOfRegexs); + ArrayList<IFilteredDataSet> datasets = new ArrayList<>(numberOfRegexs); for (int r = 0; r < numberOfRegexs; r++) { int numberOfColumns = configuration.getAttribute(NUMBER_OF_COLUMNS + r, 0); @@ -522,7 +523,7 @@ public class SystemTapScriptGraphOptionsTab extends for (int c = 0; c < numberOfColumns; c++) { labels.add(configuration.getAttribute(get2DConfigData(REGEX_BOX, r, c), "")); //$NON-NLS-1$ } - datasets.add(DataSetFactory.createDataSet(RowDataSet.ID, labels.toArray(new String[] {}))); + datasets.add(DataSetFactory.createFilteredDataSet(RowDataSet.ID, labels.toArray(new String[] {}))); } return datasets; diff --git a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/launcher/SystemTapScriptLaunchConfigurationDelegate.java b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/launcher/SystemTapScriptLaunchConfigurationDelegate.java index 5532ef0bf8..369e1090f4 100644 --- a/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/launcher/SystemTapScriptLaunchConfigurationDelegate.java +++ b/systemtap/org.eclipse.linuxtools.systemtap.ui.ide/src/org/eclipse/linuxtools/internal/systemtap/ui/ide/launcher/SystemTapScriptLaunchConfigurationDelegate.java @@ -34,8 +34,8 @@ import org.eclipse.debug.core.model.LaunchConfigurationDelegate; import org.eclipse.linuxtools.internal.systemtap.ui.ide.actions.RunScriptChartHandler; import org.eclipse.linuxtools.internal.systemtap.ui.ide.actions.RunScriptHandler; import org.eclipse.linuxtools.internal.systemtap.ui.ide.preferences.IDEPreferenceConstants; -import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IDataSet; import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IDataSetParser; +import org.eclipse.linuxtools.systemtap.graphing.core.datasets.IFilteredDataSet; import org.eclipse.linuxtools.systemtap.graphing.core.structures.GraphData; import org.eclipse.linuxtools.systemtap.structures.process.SystemTapRuntimeProcessFactory; import org.eclipse.linuxtools.systemtap.ui.consolelog.structures.RemoteScriptOptions; @@ -113,7 +113,7 @@ public class SystemTapScriptLaunchConfigurationDelegate extends int numGraphs = configuration.getAttribute(SystemTapScriptGraphOptionsTab.NUMBER_OF_REGEXS, 0); if (runWithChart && numGraphs > 0){ List<IDataSetParser> parsers = SystemTapScriptGraphOptionsTab.createDatasetParsers(configuration); - List<IDataSet> dataSets = SystemTapScriptGraphOptionsTab.createDataset(configuration); + List<IFilteredDataSet> dataSets = SystemTapScriptGraphOptionsTab.createDataset(configuration); List<String> names = SystemTapScriptGraphOptionsTab.createDatasetNames(configuration); List<LinkedList<GraphData>> graphs = SystemTapScriptGraphOptionsTab.createGraphsFromConfiguration(configuration); action = new RunScriptChartHandler(parsers, dataSets, names, graphs); |