in src/components/src/main/java/org/apache/jmeter/visualizers/StatGraphVisualizer.java [716:806]
public void actionPerformed(ActionEvent event) {
boolean forceReloadData = false;
final Object eventSource = event.getSource();
if (eventSource == displayButton) {
actionMakeGraph();
} else if (eventSource == saveGraph) {
saveGraphToFile = true;
try {
ActionRouter.getInstance().getAction(
ActionNames.SAVE_GRAPHICS,SaveGraphics.class.getName()).doAction(
new ActionEvent(this,event.getID(),ActionNames.SAVE_GRAPHICS));
} catch (Exception e) {
log.error("Error saving to file", e);
}
} else if (eventSource == saveTable) {
JFileChooser chooser = FileDialoger.promptToSaveFile("statistics.csv"); //$NON-NLS-1$
if (chooser == null) {
return;
}
try (FileOutputStream fo = new FileOutputStream(chooser.getSelectedFile());
OutputStreamWriter writer = new OutputStreamWriter(fo, Charset.forName("UTF-8"))){
CSVSaveService.saveCSVStats(getAllTableData(model, getFormatters()),
writer,
saveHeaders.isSelected() ? getLabels(COLUMNS, getColumnsMsgParameters()) : null);
} catch (IOException e) { // NOSONAR Error is reported in GUI
JMeterUtils.reportErrorToUser(e.getMessage(), "Error saving data");
}
} else if (eventSource == chooseForeColor) {
Color color = JColorChooser.showDialog(
null,
JMeterUtils.getResString("aggregate_graph_choose_color"), //$NON-NLS-1$
colorBarGraph);
if (color != null) {
colorForeGraph = color;
}
} else if (eventSource == syncWithName) {
graphTitle.setText(getName());
} else if (eventSource == dynamicGraphSize) {
// if use dynamic graph size is checked, we disable the dimension fields
if (dynamicGraphSize.isSelected()) {
graphWidth.setEnabled(false);
graphHeight.setEnabled(false);
} else {
graphWidth.setEnabled(true);
graphHeight.setEnabled(true);
}
} else if (eventSource == columnSelection) {
if (columnSelection.isSelected()) {
columnMatchLabel.setEnabled(true);
applyFilterBtn.setEnabled(true);
caseChkBox.setEnabled(true);
regexpChkBox.setEnabled(true);
} else {
columnMatchLabel.setEnabled(false);
applyFilterBtn.setEnabled(false);
caseChkBox.setEnabled(false);
regexpChkBox.setEnabled(false);
// Force reload data
forceReloadData = true;
}
}
// Not 'else if' because forceReloadData
if (eventSource == applyFilterBtn || forceReloadData) {
if (columnSelection.isSelected() && columnMatchLabel.getText() != null
&& columnMatchLabel.getText().length() > 0) {
pattern = createPattern(columnMatchLabel.getText());
} else if (forceReloadData) {
pattern = null;
}
if (getFile() != null && getFile().length() > 0) {
clearData();
FilePanel filePanel = (FilePanel) getFilePanel();
filePanel.actionPerformed(event);
}
} else if (eventSource instanceof JButton) {
// Changing color for column
JButton btn = (JButton) eventSource;
if (btn.getName() != null) {
try {
BarGraph bar = eltList.get(Integer.parseInt(btn.getName()));
Color color = JColorChooser.showDialog(null, bar.getLabel(), bar.getBackColor());
if (color != null) {
bar.setBackColor(color);
btn.setBackground(bar.getBackColor());
}
} catch (NumberFormatException nfe) {
// nothing to do
}
}
}
}