specificEventGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Label specificEventLabel = new Label(specificEventGroup, SWT.LEFT);
- specificEventLabel.setText(Messages.TraceControl_EnableEventsEventNameLabel);
+ specificEventLabel.setText(Messages.TraceControl_EnableEventsNameLabel);
data = new GridData(GridData.FILL_HORIZONTAL);
data.horizontalSpan = 1;
specificEventLabel.setLayoutData(data);
probeGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Label probeNameLabel = new Label(probeGroup, SWT.LEFT);
- probeNameLabel.setText(Messages.TraceControl_EnableEventsEventNameLabel);
+ probeNameLabel.setText(Messages.TraceControl_EnableEventsNameLabel);
data = new GridData(GridData.FILL_BOTH);
data.horizontalSpan = 1;
probeNameLabel.setLayoutData(data);
functionGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
Label functionNameLabel = new Label(functionGroup, SWT.LEFT);
- functionNameLabel.setText(Messages.TraceControl_EnableEventsEventNameLabel);
+ functionNameLabel.setText(Messages.TraceControl_EnableEventsNameLabel);
data = new GridData(GridData.FILL_BOTH);
data.horizontalSpan = 1;
functionNameLabel.setLayoutData(data);
package org.eclipse.tracecompass.internal.lttng2.control.ui.views.dialogs;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.ITraceLogLevel;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.LogLevelType;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.TraceDomainType;
* A tree viewer for displaying and selection of available loggers.
*/
private CheckboxTreeViewer fLoggersViewer;
+ /**
+ * A Text field for the specific logger name.
+ */
+ private Text fSpecificLoggerText;
/**
* The flag indicating that loggers are selected.
*/
if (fIsLoggers) {
Set<String> set = new HashSet<>();
Object[] checkedElements = fLoggersViewer.getCheckedElements();
- int totalNbEvents = 0;
+ int totalNbLoggers = 0;
for (int i = 0; i < checkedElements.length; i++) {
ITraceControlComponent component = (ITraceControlComponent) checkedElements[i];
if (component instanceof BaseLoggerComponent) {
- totalNbEvents++;
+ totalNbLoggers++;
if (!set.contains(component.getName())) {
set.add(component.getName());
fLoggers.add(component.getName());
}
}
-
}
// verify if all events are selected
}
}
- fIsAllLoggers = nbLoggers == totalNbEvents;
+ fIsAllLoggers = (nbLoggers == totalNbLoggers);
+ String tmpSpecificLogger = fSpecificLoggerText.getText();
+ if (!fIsAllLoggers && !tmpSpecificLogger.trim().isEmpty()) {
+ // Format the text to a List<String>
+ // Removing all non visible characters
+ tmpSpecificLogger = tmpSpecificLogger.replaceAll("\\s", ""); //$NON-NLS-1$ //$NON-NLS-2$
+ // Splitting the different events that are separated by commas
+ List<String> specificLoggerList = Arrays.asList(tmpSpecificLogger.split(",")); //$NON-NLS-1$
+ fLoggers.addAll(specificLoggerList);
+ fLoggers = fLoggers.stream().distinct().collect(Collectors.toList());
+ }
}
// initialize log level event name string
return fLoggersViewer;
}
};
+
+ Group specificLoggerGroup = new Group(loggersGroup, SWT.SHADOW_NONE);
+ specificLoggerGroup.setText(Messages.TraceControl_EnableEventsSpecificLoggerGroupName);
+ layout = new GridLayout(4, true);
+ specificLoggerGroup.setLayout(layout);
+ specificLoggerGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ Label specificLoggerLabel = new Label(specificLoggerGroup, SWT.LEFT);
+ specificLoggerLabel.setText(Messages.TraceControl_EnableEventsNameLabel);
+ data = new GridData(GridData.FILL_HORIZONTAL);
+ data.horizontalSpan = 1;
+ specificLoggerLabel.setLayoutData(data);
+
+ fSpecificLoggerText = new Text(specificLoggerGroup, SWT.LEFT);
+ fSpecificLoggerText.setToolTipText(Messages.TraceControl_EnableEventsSpecificLoggerTooltip);
+ data = new GridData(GridData.FILL_HORIZONTAL);
+ data.horizontalSpan = 3;
+ fSpecificLoggerText.setLayoutData(data);
}
/**
public static String TraceControl_EnableEventsAllEventsLabel;
public static String TraceControl_EnableEventsAllEventsTooltip;
public static String TraceControl_EnableEventsSpecificEventGroupName;
+ public static String TraceControl_EnableEventsSpecificLoggerGroupName;
public static String TraceControl_EnableEventsSpecificEventTooltip;
+ public static String TraceControl_EnableEventsSpecificLoggerTooltip;
public static String TraceControl_EnableEventsExcludedEventGroupName;
public static String TraceControl_EnableEventsExcludedEventLabel;
public static String TraceControl_EnableEventsExcludedEventTooltip;
public static String TraceControl_EnableEventsSyscallName;
public static String TraceControl_EnableEventsSyscallTooltip;
public static String TraceControl_EnableEventsProbeGroupName;
- public static String TraceControl_EnableEventsEventNameLabel;
+ public static String TraceControl_EnableEventsNameLabel;
public static String TraceControl_EnableEventsProbeEventNameTooltip;
public static String TraceControl_EnableEventsProbeNameLabel;
public static String TraceControl_EnableEventsProbeNameTooltip;
TraceControl_EnableEventsAllEventsLabel=All Tracepoint Events and Syscalls
TraceControl_EnableEventsAllEventsTooltip=Enable all tracepoint events and all Syscalls
TraceControl_EnableEventsSpecificEventGroupName=Specific event
+TraceControl_EnableEventsSpecificLoggerGroupName=Specific logger
TraceControl_EnableEventsSpecificEventTooltip=Enable event by specifying the name
+TraceControl_EnableEventsSpecificLoggerTooltip=Enable logger by specifying the name
TraceControl_EnableEventsExcludedEventGroupName=Exclude Events
TraceControl_EnableEventsExcludedEventLabel=Event Names
TraceControl_EnableEventsExcludedEventTooltip=Exclude specific event(s) by name (comma-separated names)
TraceControl_EnableEventsTracepointGroupName=Tracepoint Events
-TraceControl_EnableEventsTracepointTreeTooltip=List of available kernel tracepoint events
+TraceControl_EnableEventsTracepointTreeTooltip=List of available tracepoint events
TraceControl_EnableEventsTreeAllLabel=All
TraceControl_EnableEventsSyscallName=Syscall Events
TraceControl_EnableEventsSyscallTooltip=List of available kernel syscall events
TraceControl_EnableEventsProbeGroupName=Dynamic Probe
-TraceControl_EnableEventsEventNameLabel=Event Name
+TraceControl_EnableEventsNameLabel=Name
TraceControl_EnableEventsProbeEventNameTooltip=The name of the event for enabling a dynamic probe
TraceControl_EnableEventsProbeNameLabel=Probe
TraceControl_EnableEventsProbeNameTooltip=[addr | symbol | symbol+offset]\nAddr and offset can be octal (0NNN...),\ndecimal (NNN...) or hexadecimal (0xNNN...)