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