package org.eclipse.tracecompass.internal.lttng2.control.ui.views.dialogs;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
+import java.util.stream.Collectors;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.CheckStateChangedEvent;
* A button to enable/disable the syscalls group
*/
private Button fSysCallsActivateButton;
+ /**
+ * A Text field for the specific event name.
+ */
+ private Text fSpecificEventText;
/**
* A button to enable or disable the dynamic probe group.
*/
nbEvents += comp.getChildren().length;
}
fIsAllTracepoints = (nbEvents == fSelectedEvents.size());
+ String tmpSpecificEvent = fSpecificEventText.getText();
+ if (!fIsAllTracepoints && !tmpSpecificEvent.trim().isEmpty()) {
+ // Format the text to a List<String>
+ // Removing all non visible characters
+ tmpSpecificEvent = tmpSpecificEvent.replaceAll("\\s", ""); //$NON-NLS-1$ //$NON-NLS-2$
+ // Splitting the different events that are separated by commas
+ List<String> list = Arrays.asList(tmpSpecificEvent.split(",")); //$NON-NLS-1$
+ fSelectedEvents.addAll(list);
+ fSelectedEvents = fSelectedEvents.stream().distinct().collect(Collectors.toList());
+ }
}
if (fIsDynamicProbe) {
treeViewer.expandAll();
}
};
+
+ Group specificEventGroup = new Group(tracepointsGroup, SWT.SHADOW_NONE);
+ specificEventGroup.setText(Messages.TraceControl_EnableEventsSpecificEventGroupName);
+ layout = new GridLayout(4, true);
+ specificEventGroup.setLayout(layout);
+ specificEventGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ Label specificEventLabel = new Label(specificEventGroup, SWT.LEFT);
+ specificEventLabel.setText(Messages.TraceControl_EnableEventsSpecificEventLabel);
+ data = new GridData(GridData.FILL_HORIZONTAL);
+ data.horizontalSpan = 1;
+ specificEventLabel.setLayoutData(data);
+
+ fSpecificEventText = new Text(specificEventGroup, SWT.LEFT);
+ fSpecificEventText.setToolTipText(Messages.TraceControl_EnableEventsSpecificEventTooltip);
+ data = new GridData(GridData.FILL_HORIZONTAL);
+ data.horizontalSpan = 3;
+ fSpecificEventText.setLayoutData(data);
}
/**
fAllActivateButton.setSelection(group == KernelGroupEnum.ALL);
fTracepointsActivateButton.setSelection(group == KernelGroupEnum.TRACEPOINTS);
fTracepointsViewer.getTree().setEnabled(group == KernelGroupEnum.TRACEPOINTS);
+ fSpecificEventText.setEnabled(group == KernelGroupEnum.TRACEPOINTS);
fSysCallsActivateButton.setSelection(group == KernelGroupEnum.SYSCALLS);
TraceControl_EnableGroupSelectionName=Select
TraceControl_EnableEventsAllEventsLabel=All Tracepoint Events and Syscalls
TraceControl_EnableEventsAllEventsTooltip=Enable all tracepoint events and all Syscalls
+TraceControl_EnableEventsSpecificEventGroupName=Specific event
+TraceControl_EnableEventsSpecificEventLabel=Event type
+TraceControl_EnableEventsSpecificEventTooltip=Enable event by specifying the name
TraceControl_EnableEventsTracepointGroupName=Tracepoint Events
TraceControl_EnableEventsTracepointTreeTooltip=List of available kernel tracepoint events
TraceControl_EnableEventsTracepointTreeAllLabel=All
TraceControl_EnableEventsFilterGroupName=Filter Expression
TraceControl_EnableEventsFilterTooltip=Filter expression on event field.
-TraceControl_InvalidProbeNameError=The probe name is invalid or empty
+TraceControl_InvalidProbeNameError=The probe name is invalid or empty
TraceControl_InvalidWildcardError=The wild card name is invalid or empty
TraceControl_InvalidLogLevelEventNameError=The event name for log level is invalid or empty
TraceControl_InvalidLogLevel=No log level selected