Fix NLS-related Javadoc warnings
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng2.ui / src / org / eclipse / linuxtools / internal / lttng2 / ui / views / control / dialogs / EnableUstEventsComposite.java
CommitLineData
ccc66d01 1/**********************************************************************
ba3a9bd2 2 * Copyright (c) 2012, 2013 Ericsson
cfdb727a 3 *
ccc66d01
BH
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
cfdb727a
AM
8 *
9 * Contributors:
ccc66d01 10 * Bernd Hufmann - Initial API and implementation
ba3a9bd2 11 * Bernd Hufmann - Updated for support of LTTng Tools 2.1
ccc66d01 12 **********************************************************************/
115b4a01 13package org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs;
ccc66d01
BH
14
15import java.util.ArrayList;
16import java.util.HashSet;
17import java.util.List;
18import java.util.Set;
19
20import org.eclipse.jface.dialogs.MessageDialog;
21import org.eclipse.jface.viewers.CheckStateChangedEvent;
22import org.eclipse.jface.viewers.CheckboxTreeViewer;
23import org.eclipse.jface.viewers.ICheckStateListener;
9315aeee
BH
24import org.eclipse.linuxtools.internal.lttng2.core.control.model.LogLevelType;
25import org.eclipse.linuxtools.internal.lttng2.core.control.model.TraceLogLevel;
26import org.eclipse.linuxtools.internal.lttng2.ui.views.control.messages.Messages;
115b4a01 27import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.ITraceControlComponent;
115b4a01
BH
28import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.BaseEventComponent;
29import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TargetNodeComponent;
9315aeee
BH
30import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceControlContentProvider;
31import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceControlLabelProvider;
115b4a01
BH
32import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.TraceProviderGroup;
33import org.eclipse.linuxtools.internal.lttng2.ui.views.control.model.impl.UstProviderComponent;
ccc66d01
BH
34import org.eclipse.swt.SWT;
35import org.eclipse.swt.custom.CCombo;
36import org.eclipse.swt.events.SelectionAdapter;
37import org.eclipse.swt.events.SelectionEvent;
38import org.eclipse.swt.graphics.Image;
39import org.eclipse.swt.layout.GridData;
40import org.eclipse.swt.layout.GridLayout;
41import org.eclipse.swt.widgets.Button;
42import org.eclipse.swt.widgets.Composite;
43import org.eclipse.swt.widgets.Group;
44import org.eclipse.swt.widgets.Label;
45import org.eclipse.swt.widgets.Text;
46
47/**
ccc66d01
BH
48 * <p>
49 * A composite for collecting information about UST events to be enabled.
50 * </p>
cfdb727a 51 *
dbd4432d 52 * @author Bernd Hufmann
ccc66d01
BH
53 */
54public class EnableUstEventsComposite extends Composite implements IEnableUstEvents {
55
56 // ------------------------------------------------------------------------
57 // Constants
58 // ------------------------------------------------------------------------
cfdb727a
AM
59
60 private enum GroupEnum { TRACEPOINTS, WILDCARD, LOGLEVEL }
61
ccc66d01
BH
62 // ------------------------------------------------------------------------
63 // Attributes
64 // ------------------------------------------------------------------------
cfdb727a 65
ccc66d01
BH
66 /**
67 * A button to enable/disable the tracepoints group
68 */
69 private Button fTracepointsActivateButton;
70 /**
71 * A tree viewer for diplaying and selection of available tracepoints.
72 */
73 private CheckboxTreeViewer fTracepointsViewer;
74 /**
75 * A button to enable/disable the wildcard group
76 */
77 private Button fWildcardActivateButton;
78 /**
79 * A Text field for the event's wildcard.
80 */
81 private Text fWildcardText;
82 /**
83 * A button to enable/disable the log level group
84 */
85 private Button fLogLevelActivateButton;
86 /**
87 * A Text field for the event name for the log level enablement.
88 */
89 private Text fLogLevelEventNameText;
90 /**
91 * A Combo box for selecting the log level.
92 */
93 private CCombo fLogLevelCombo;
94 /**
95 * A button for selecting the log level (range 0 to level).
96 */
97 private Button fLogLevelButton;
98 /**
99 * A button for selecting the specified log level only.
100 */
101 private Button fLogLevelOnlyButton;
d4514365
BH
102 /**
103 * The filter text
104 */
105 private Text fFilterText;
106
ccc66d01 107 /**
cfdb727a 108 * The referenced trace provider group containing the UST providers
ccc66d01
BH
109 * component which contains a list of available tracepoints.
110 */
cfdb727a 111 private final TraceProviderGroup fProviderGroup;
ccc66d01
BH
112 /**
113 * The flag indicating that tracepoints are selected.
114 */
115 private boolean fIsTracepoints;
116 /**
117 * The flag indicating that all tracepoints (across providers) are selected.
118 */
119 private boolean fIsAllTracepoints;
120 /**
121 * The list of tracepoints to be enabled.
122 */
123 private List<String> fSelectedEvents;
124 /**
cfdb727a 125 * The flag indicating that all wildcard are selected..
ccc66d01
BH
126 */
127 private boolean fIsWildcard;
128 /**
cfdb727a 129 * The wildcard if wildcard is selected.
ccc66d01
BH
130 */
131 private String fWildcard;
132 /**
cfdb727a 133 *The flag indicating that all log level are selected.
ccc66d01
BH
134 */
135 private boolean fIsLogLevel;
136 /**
137 * The event name for the log level enablement.
138 */
139 private String fLogLevelEventName;
140 /**
141 * The type of the log level (loglevel or loglevel-only)
142 */
143 private LogLevelType fLogLevelType;
144 /**
145 * The actual selected log level.
146 */
147 private TraceLogLevel fLogLevel;
d4514365
BH
148 /**
149 * The filter expression
150 */
151 private String fFilterExpression;
ccc66d01
BH
152
153 // ------------------------------------------------------------------------
154 // Constructors
155 // ------------------------------------------------------------------------
156 /**
157 * Constructor
158 * @param parent - a parent composite
cfdb727a 159 * @param style - a composite style
ccc66d01
BH
160 * @param providerGroup - the trace provider group
161 */
162 public EnableUstEventsComposite(Composite parent, int style, TraceProviderGroup providerGroup) {
163 super(parent, style);
164 fProviderGroup = providerGroup;
165 }
166
167 // ------------------------------------------------------------------------
168 // Accessors
169 // ------------------------------------------------------------------------
170
171 /*
172 * (non-Javadoc)
115b4a01 173 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs.IEnableUstEvents#isTracepoints()
ccc66d01
BH
174 */
175 @Override
176 public boolean isTracepoints() {
177 return fIsTracepoints;
178 }
cfdb727a 179
ccc66d01
BH
180 /*
181 * (non-Javadoc)
115b4a01 182 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs.IEnableUstEvents#isAllTracePoints()
ccc66d01
BH
183 */
184 @Override
185 public boolean isAllTracePoints() {
186 return fIsAllTracepoints;
187 }
cfdb727a 188
ccc66d01
BH
189 /*
190 * (non-Javadoc)
115b4a01 191 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs.IEnableUstEvents#getEventNames()
ccc66d01
BH
192 */
193 @Override
194 public List<String> getEventNames() {
195 return new ArrayList<String>(fSelectedEvents);
196 }
197
198 /*
199 * (non-Javadoc)
115b4a01 200 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs.IEnableUstEvents#isWildcard()
ccc66d01
BH
201 */
202 @Override
203 public boolean isWildcard() {
204 return fIsWildcard;
205 }
206
207 /*
208 * (non-Javadoc)
115b4a01 209 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs.IEnableUstEvents#getWildcard()
ccc66d01
BH
210 */
211 @Override
212 public String getWildcard() {
7a6e4bfd 213 return fWildcard;
ccc66d01
BH
214 }
215
216 /*
217 * (non-Javadoc)
115b4a01 218 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs.IEnableUstEvents#isLogLevel()
ccc66d01
BH
219 */
220 @Override
221 public boolean isLogLevel() {
222 return fIsLogLevel;
223 }
224
225 /*
226 * (non-Javadoc)
115b4a01 227 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs.IEnableUstEvents#getLogLevelType()
ccc66d01
BH
228 */
229 @Override
230 public LogLevelType getLogLevelType() {
231 return fLogLevelType;
232 }
233
234 /*
235 * (non-Javadoc)
115b4a01 236 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs.IEnableUstEvents#getLogLevel()
ccc66d01
BH
237 */
238 @Override
239 public TraceLogLevel getLogLevel() {
240 return fLogLevel;
241 }
242
243 /*
244 * (non-Javadoc)
115b4a01 245 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs.IEnableUstEvents#getLogLevelEventName()
ccc66d01
BH
246 */
247 @Override
248 public String getLogLevelEventName() {
249 return fLogLevelEventName;
250 }
cfdb727a 251
d4514365
BH
252 /*
253 * (non-Javadoc)
254 * @see org.eclipse.linuxtools.internal.lttng2.ui.views.control.dialogs.IEnableUstEvents#getFilterExpression()
255 */
256 @Override
257 public String getFilterExpression() {
258 return fFilterExpression;
259 }
260
ccc66d01
BH
261 // ------------------------------------------------------------------------
262 // Operations
263 // ------------------------------------------------------------------------
264
cfdb727a
AM
265 /**
266 * Create the contents of this event composite
267 */
ccc66d01 268 public void createContent() {
cfdb727a
AM
269
270 // Tracepoints Group
ccc66d01
BH
271 createTracepointsGroup();
272
cfdb727a 273 // Wildcard Group
ccc66d01
BH
274 createWildCardGroup();
275
cfdb727a 276 // Log Level Group
ccc66d01 277 createLogLevelGroup();
cfdb727a 278
d4514365
BH
279 // Filter Group
280 createFilterGroup();
281
ccc66d01
BH
282 // Set default enablements
283 setEnablements(GroupEnum.TRACEPOINTS);
284 }
285
286 /**
c56972bb 287 * Validates the UST composite input data.
ccc66d01
BH
288 * @return true if configured data is valid and can be retrieved.
289 */
290 public boolean isValid() {
cfdb727a 291
ccc66d01
BH
292 fIsTracepoints = fTracepointsActivateButton.getSelection();
293 fIsWildcard = fWildcardActivateButton.getSelection();
294 fIsLogLevel = fLogLevelActivateButton.getSelection();
cfdb727a 295
5f1f22f8
BH
296 // initialize tracepoint fields
297 fIsAllTracepoints = false;
ccc66d01 298 fSelectedEvents = new ArrayList<String>();
5f1f22f8
BH
299 if (fIsTracepoints) {
300 fIsAllTracepoints = fTracepointsViewer.getChecked(fProviderGroup);
301 Set<String> set = new HashSet<String>();
302 Object[] checkedElements = fTracepointsViewer.getCheckedElements();
303 for (int i = 0; i < checkedElements.length; i++) {
304 ITraceControlComponent component = (ITraceControlComponent)checkedElements[i];
305 if (!set.contains(component.getName()) && (component instanceof BaseEventComponent)) {
306 set.add(component.getName());
307 fSelectedEvents.add(component.getName());
308 }
ccc66d01
BH
309 }
310 }
311
ccc66d01 312 // initialize log level event name string
5f1f22f8 313 fLogLevelType = LogLevelType.LOGLEVEL_NONE;
ccc66d01 314 fLogLevelEventName = null;
ccc66d01 315
5f1f22f8
BH
316 if (fIsLogLevel) {
317 if (fLogLevelButton.getSelection()) {
318 fLogLevelType = LogLevelType.LOGLEVEL;
319 } else if (fLogLevelOnlyButton.getSelection()) {
320 fLogLevelType = LogLevelType.LOGLEVEL_ONLY;
321 }
ccc66d01 322
5f1f22f8
BH
323 String temp = fLogLevelEventNameText.getText();
324 if (!temp.matches("^[\\s]{0,}$") && !temp.matches("^[a-zA-Z0-9\\-\\_]{1,}$")) { //$NON-NLS-1$ //$NON-NLS-2$
325 MessageDialog.openError(getShell(),
326 Messages.TraceControl_EnableEventsDialogTitle,
327 Messages.TraceControl_InvalidLogLevelEventNameError + " (" + temp + ") \n"); //$NON-NLS-1$ //$NON-NLS-2$
328
329 return false;
330 }
331
332 if(!temp.matches("\\s*")) { //$NON-NLS-1$
333 fLogLevelEventName = temp;
334 }
ccc66d01 335
5f1f22f8
BH
336 TraceLogLevel[] levels = TraceLogLevel.values();
337 int id = fLogLevelCombo.getSelectionIndex();
c56972bb 338
5f1f22f8
BH
339 if (id < 0) {
340 MessageDialog.openError(getShell(),
341 Messages.TraceControl_EnableEventsDialogTitle,
342 Messages.TraceControl_InvalidLogLevel + " (" + temp + ") \n"); //$NON-NLS-1$ //$NON-NLS-2$
343
344 return false;
5f1f22f8 345 }
cfdb727a 346 fLogLevel = levels[id];
c56972bb
BH
347 }
348
d4514365 349 // initialize wildcard with null
ccc66d01 350 fWildcard = null;
5f1f22f8
BH
351 if (fIsWildcard) {
352 String tempWildcard = fWildcardText.getText();
353 if (!tempWildcard.matches("^[\\s]{0,}$") && !tempWildcard.matches("^[a-zA-Z0-9\\-\\_\\*]{1,}$")) { //$NON-NLS-1$ //$NON-NLS-2$
354 MessageDialog.openError(getShell(),
355 Messages.TraceControl_EnableEventsDialogTitle,
356 Messages.TraceControl_InvalidWildcardError + " (" + tempWildcard + ") \n"); //$NON-NLS-1$ //$NON-NLS-2$
ccc66d01 357
5f1f22f8
BH
358 return false;
359 }
360
361 if(!tempWildcard.matches("\\s*")) { //$NON-NLS-1$
362 fWildcard = tempWildcard;
363 }
ccc66d01 364 }
5f1f22f8 365
d4514365
BH
366 // initialize filter with null
367 fFilterExpression = null;
368 if (fProviderGroup.isEventFilteringSupported()) {
369 String tempFilter = fFilterText.getText();
370
371 if(!tempFilter.matches("\\s*")) { //$NON-NLS-1$
372 fFilterExpression = tempFilter;
373 }
374 }
375
ccc66d01
BH
376 // validation successful -> call super.okPressed()
377 return true;
378 }
cfdb727a 379
ccc66d01
BH
380 // ------------------------------------------------------------------------
381 // Helper methods
382 // ------------------------------------------------------------------------
cfdb727a 383
ccc66d01
BH
384 /**
385 * Creates tracepoints group.
386 */
387 private void createTracepointsGroup() {
388 Group tpMainGroup = new Group(this, SWT.SHADOW_NONE);
389 tpMainGroup.setText(Messages.TraceControl_EnableEventsTracepointGroupName);
390 GridLayout layout = new GridLayout(2, false);
391 tpMainGroup.setLayout(layout);
392 GridData data = new GridData(GridData.FILL_BOTH);
393 tpMainGroup.setLayoutData(data);
cfdb727a 394
ccc66d01
BH
395 Composite buttonComposite = new Composite(tpMainGroup, SWT.NONE);
396 layout = new GridLayout(1, true);
397 buttonComposite.setLayout(layout);
398 data = new GridData(SWT.BEGINNING, SWT.CENTER, false, true);
399 buttonComposite.setLayoutData(data);
400
401 fTracepointsActivateButton = new Button(buttonComposite, SWT.RADIO);
402 fTracepointsActivateButton.setText(Messages.TraceControl_EnableGroupSelectionName);
403 data = new GridData(GridData.FILL_HORIZONTAL);
404 fTracepointsActivateButton.setLayoutData(data);
405 fTracepointsActivateButton.addSelectionListener(new SelectionAdapter() {
406 @Override
407 public void widgetSelected(SelectionEvent e) {
408 setEnablements(GroupEnum.TRACEPOINTS);
409 }
410 });
cfdb727a 411
ccc66d01
BH
412 Group tpGroup = new Group(tpMainGroup, SWT.SHADOW_NONE);
413 layout = new GridLayout(1, true);
414 tpGroup.setLayout(layout);
415 data = new GridData(GridData.FILL_BOTH);
416 tpGroup.setLayoutData(data);
cfdb727a 417
ccc66d01
BH
418 fTracepointsViewer = new CheckboxTreeViewer(tpGroup, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
419 fTracepointsViewer.getTree().setToolTipText(Messages.TraceControl_EnableEventsTracepointTreeTooltip);
420 fTracepointsViewer.setContentProvider(new UstContentProvider());
421
422 fTracepointsViewer.setLabelProvider(new UstLabelProvider());
423 fTracepointsViewer.addCheckStateListener(new UstCheckStateListener());
424
425 fTracepointsViewer.setInput(fProviderGroup.getParent());
426 fTracepointsViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
427 }
cfdb727a 428
ccc66d01
BH
429 /**
430 * Creates wildcard group.
431 */
432 private void createWildCardGroup() {
433 Group wildcardMainGroup = new Group(this, SWT.SHADOW_NONE);
434 wildcardMainGroup.setText(Messages.TraceControl_EnableEventsWildcardGroupName);
435 GridLayout layout = new GridLayout(2, false);
436 wildcardMainGroup.setLayout(layout);
437 GridData data = new GridData(GridData.FILL_HORIZONTAL);
438 wildcardMainGroup.setLayoutData(data);
cfdb727a 439
ccc66d01
BH
440 Composite buttonComposite = new Composite(wildcardMainGroup, SWT.NONE);
441 layout = new GridLayout(1, false);
442 buttonComposite.setLayout(layout);
443 data = new GridData(SWT.BEGINNING, SWT.CENTER, false, true);
444 buttonComposite.setLayoutData(data);
445
446 fWildcardActivateButton = new Button(buttonComposite, SWT.RADIO);
447 fWildcardActivateButton.setText(Messages.TraceControl_EnableGroupSelectionName);
448 fWildcardActivateButton.setSelection(false);
449 data = new GridData(GridData.FILL_HORIZONTAL);
450 fWildcardActivateButton.setLayoutData(data);
451 fWildcardActivateButton.addSelectionListener(new SelectionAdapter() {
452 @Override
453 public void widgetSelected(SelectionEvent e) {
454 setEnablements(GroupEnum.WILDCARD);
455 }
456 });
cfdb727a 457
ccc66d01
BH
458 Group wildcardGroup = new Group(wildcardMainGroup, SWT.SHADOW_NONE);
459 layout = new GridLayout(3, true);
460 wildcardGroup.setLayout(layout);
461 data = new GridData(GridData.FILL_HORIZONTAL);
462 wildcardGroup.setLayoutData(data);
cfdb727a 463
ccc66d01
BH
464 Label wildcardLabel = new Label(wildcardGroup, SWT.LEFT);
465 wildcardLabel.setText(Messages.TraceControl_EnableEventsWildcardLabel);
466 data = new GridData(GridData.FILL_HORIZONTAL);
467 data.horizontalSpan = 1;
468 wildcardLabel.setLayoutData(data);
cfdb727a 469
ccc66d01
BH
470 fWildcardText = new Text(wildcardGroup, SWT.LEFT);
471 fWildcardText.setToolTipText(Messages.TraceControl_EnableEventsWildcardTooltip);
472 data = new GridData(GridData.FILL_HORIZONTAL);
473 data.horizontalSpan = 2;
474 fWildcardText.setLayoutData(data);
475 }
cfdb727a 476
ccc66d01
BH
477 /**
478 * Creates log level group.
479 */
480 private void createLogLevelGroup() {
481 Group logLevelMainGroup = new Group(this, SWT.SHADOW_NONE);
482 logLevelMainGroup.setText(Messages.TraceControl_EnableEventsLogLevelGroupName);
483 GridLayout layout = new GridLayout(2, false);
484 logLevelMainGroup.setLayout(layout);
485 GridData data = new GridData(GridData.FILL_HORIZONTAL);
486 logLevelMainGroup.setLayoutData(data);
cfdb727a 487
ccc66d01
BH
488 Composite buttonComposite = new Composite(logLevelMainGroup, SWT.NONE);
489 layout = new GridLayout(1, false);
490 buttonComposite.setLayout(layout);
491 data = new GridData(SWT.BEGINNING, SWT.CENTER, false, true);
492 buttonComposite.setLayoutData(data);
493
494 fLogLevelActivateButton = new Button(buttonComposite, SWT.RADIO);
495 fLogLevelActivateButton.setText(Messages.TraceControl_EnableGroupSelectionName);
496 fLogLevelActivateButton.setSelection(false);
497 data = new GridData(GridData.FILL_HORIZONTAL);
498 fLogLevelActivateButton.setLayoutData(data);
499 fLogLevelActivateButton.addSelectionListener(new SelectionAdapter() {
500 @Override
501 public void widgetSelected(SelectionEvent e) {
502 setEnablements(GroupEnum.LOGLEVEL);
503 }
504 });
505
506 Group logLevelGroup = new Group(logLevelMainGroup, SWT.SHADOW_NONE);
507 layout = new GridLayout(3, true);
508 logLevelGroup.setLayout(layout);
509 logLevelGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
510
511 Label logLevelEventNameLabel = new Label(logLevelGroup, SWT.LEFT);
512 logLevelEventNameLabel.setText(Messages.TraceControl_EnableEventsEventNameLabel);
513
514 data = new GridData(GridData.FILL_BOTH);
515 data.horizontalSpan = 1;
516 logLevelEventNameLabel.setLayoutData(data);
517
518 fLogLevelEventNameText = new Text(logLevelGroup, SWT.LEFT);
519 fLogLevelEventNameText.setToolTipText(Messages.TraceControl_EnableEventsLoglevelEventNameTooltip);
520 data = new GridData(GridData.FILL_BOTH);
521 data.horizontalSpan = 2;
522 fLogLevelEventNameText.setLayoutData(data);
523
524 TraceLogLevel[] levels = TraceLogLevel.values();
cfdb727a 525
ccc66d01
BH
526 String[] levelNames = new String[levels.length - 1];
527 int k = 0;
528 for (int i = 0; i < levels.length; i++) {
529 if (levels[i] != TraceLogLevel.LEVEL_UNKNOWN) {
530 levelNames[k++] = levels[i].getInName();
531 }
532 }
533
534 fLogLevelCombo = new CCombo(logLevelGroup, SWT.READ_ONLY);
535 fLogLevelCombo.setItems(levelNames);
536 fLogLevelCombo.setToolTipText(Messages.TraceControl_EnableEventsLogLevelTooltip);
537 data = new GridData(GridData.FILL_HORIZONTAL);
538 data.horizontalSpan = 4;
539 fLogLevelCombo.setLayoutData(data);
540
541 fLogLevelButton = new Button(logLevelGroup, SWT.RADIO);
542 fLogLevelButton.setText(Messages.TraceControl_EnableEventsLogLevelTypeName);
543 fLogLevelButton.setToolTipText(Messages.TraceControl_EnableEventsLogLevelTypeTooltip);
544 data = new GridData(GridData.FILL_BOTH);
545 fLogLevelButton.setLayoutData(data);
546
547 fLogLevelOnlyButton = new Button(logLevelGroup, SWT.RADIO);
548 fLogLevelOnlyButton.setText(Messages.TraceControl_EnableEventsLogLevelOnlyTypeName);
549 fLogLevelOnlyButton.setToolTipText(Messages.TraceControl_EnableEventsLogLevelOnlyTypeTooltip);
550 data = new GridData(GridData.FILL_BOTH);
551 fLogLevelButton.setLayoutData(data);
552 }
cfdb727a 553
d4514365
BH
554 void createFilterGroup() {
555 if (fProviderGroup.isEventFilteringSupported()) {
556 Group filterMainGroup = new Group(this, SWT.SHADOW_NONE);
557 filterMainGroup.setText(Messages.TraceControl_EnableEventsFilterGroupName);
558 GridLayout layout = new GridLayout(3, false);
559 filterMainGroup.setLayout(layout);
560 GridData data = new GridData(GridData.FILL_HORIZONTAL);
561 filterMainGroup.setLayoutData(data);
562
563 fFilterText = new Text(filterMainGroup, SWT.LEFT);
564 fFilterText.setToolTipText(Messages.TraceControl_EnableEventsFilterTooltip);
565 data = new GridData(GridData.FILL_HORIZONTAL);
566 fFilterText.setLayoutData(data);
567 }
568 }
569
ccc66d01
BH
570 /**
571 * Enable/selects widgets depending on the group specified.
572 * @param group - group to enable.
573 */
574 private void setEnablements(GroupEnum group) {
cfdb727a 575
ccc66d01
BH
576 // Enable/disable trace point items
577 fTracepointsActivateButton.setSelection(group == GroupEnum.TRACEPOINTS);
578 fTracepointsViewer.getTree().setEnabled(group == GroupEnum.TRACEPOINTS);
cfdb727a 579
ccc66d01
BH
580 // Enable/disable wildcard items
581 fWildcardActivateButton.setSelection(group == GroupEnum.WILDCARD);
582 fWildcardText.setEnabled(group == GroupEnum.WILDCARD);
583
584 // Enable/disable log level items
585 fLogLevelActivateButton.setSelection(group == GroupEnum.LOGLEVEL);
586 fLogLevelEventNameText.setEnabled(group == GroupEnum.LOGLEVEL);
587 fLogLevelCombo.setEnabled(group == GroupEnum.LOGLEVEL);
588 fLogLevelButton.setEnabled(group == GroupEnum.LOGLEVEL);
589 fLogLevelOnlyButton.setEnabled(group == GroupEnum.LOGLEVEL);
590 }
591
592 // ------------------------------------------------------------------------
593 // Local classes
594 // ------------------------------------------------------------------------
595 /**
cfdb727a 596 * Content provider for the tracepoints tree.
ccc66d01 597 */
c56972bb 598 final static public class UstContentProvider extends TraceControlContentProvider {
ccc66d01
BH
599 @Override
600 public Object[] getChildren(Object parentElement) {
601 if (parentElement instanceof TargetNodeComponent) {
602 List<ITraceControlComponent> children = ((ITraceControlComponent)parentElement).getChildren(TraceProviderGroup.class);
cfdb727a 603 return children.toArray(new ITraceControlComponent[children.size()]);
ccc66d01
BH
604 }
605 if (parentElement instanceof TraceProviderGroup) {
606 List<ITraceControlComponent> children = ((ITraceControlComponent)parentElement).getChildren(UstProviderComponent.class);
cfdb727a 607 return children.toArray(new ITraceControlComponent[children.size()]);
ccc66d01
BH
608 }
609 if (parentElement instanceof ITraceControlComponent) {
610 return ((ITraceControlComponent)parentElement).getChildren();
611 }
612 return new Object[0];
613 }
614 }
cfdb727a 615
ccc66d01 616 /**
cfdb727a 617 * Content label for the tracepoints tree.
ccc66d01 618 */
c56972bb 619 final static public class UstLabelProvider extends TraceControlLabelProvider {
ccc66d01
BH
620 @Override
621 public Image getImage(Object element) {
622 return null;
623 }
624 @Override
625 public String getText(Object element) {
626 if ((element != null) && (element instanceof TraceProviderGroup)) {
627 return Messages.TraceControl_EnableEventsTracepointTreeAllLabel;
628 }
629
630 if ((element != null) && (element instanceof UstProviderComponent)) {
631 return Messages.TraceControl_EnableEventsTracepointTreeAllLabel + " - " + ((UstProviderComponent)element).getName(); //$NON-NLS-1$
632 }
633 return super.getText(element);
634 }
635 }
636
637 /**
cfdb727a 638 * Check state listener for the tracepoints tree.
ccc66d01
BH
639 */
640 final public class UstCheckStateListener implements ICheckStateListener {
641 @Override
642 public void checkStateChanged(CheckStateChangedEvent event) {
643 if (event.getChecked()) {
644 if (event.getElement() instanceof TraceProviderGroup) {
645 fTracepointsViewer.setSubtreeChecked(event.getElement(), true);
646 }
647 if (event.getElement() instanceof UstProviderComponent) {
648 fTracepointsViewer.setSubtreeChecked(event.getElement(), true);
cfdb727a 649 }
ccc66d01
BH
650 } else {
651 if (event.getElement() instanceof TraceProviderGroup) {
652 fTracepointsViewer.setSubtreeChecked(event.getElement(), true);
653 }
654 if (event.getElement() instanceof UstProviderComponent) {
655 ITraceControlComponent component = (ITraceControlComponent) event.getElement();
656 fTracepointsViewer.setSubtreeChecked(event.getElement(), false);
657 fTracepointsViewer.setChecked(component.getParent(), false);
658 } else {
659 ITraceControlComponent component = (ITraceControlComponent) event.getElement();
660 fTracepointsViewer.setChecked(component.getParent(), false);
661 fTracepointsViewer.setChecked(component.getParent().getParent(), false);
662 }
663 }
664 }
665 }
666}
This page took 0.16283 seconds and 5 git commands to generate.