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