Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'lttng/org.eclipse.linuxtools.lttng2.control.ui/src/org/eclipse/linuxtools/internal/lttng2/control/ui/views/handlers/AssignEventHandler.java')
-rw-r--r--lttng/org.eclipse.linuxtools.lttng2.control.ui/src/org/eclipse/linuxtools/internal/lttng2/control/ui/views/handlers/AssignEventHandler.java253
1 files changed, 0 insertions, 253 deletions
diff --git a/lttng/org.eclipse.linuxtools.lttng2.control.ui/src/org/eclipse/linuxtools/internal/lttng2/control/ui/views/handlers/AssignEventHandler.java b/lttng/org.eclipse.linuxtools.lttng2.control.ui/src/org/eclipse/linuxtools/internal/lttng2/control/ui/views/handlers/AssignEventHandler.java
deleted file mode 100644
index 39ba8fefad..0000000000
--- a/lttng/org.eclipse.linuxtools.lttng2.control.ui/src/org/eclipse/linuxtools/internal/lttng2/control/ui/views/handlers/AssignEventHandler.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2012, 2014 Ericsson
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Bernd Hufmann - Initial API and implementation
- * Bernd Hufmann - Updated for support of LTTng Tools 2.1
- **********************************************************************/
-package org.eclipse.linuxtools.internal.lttng2.control.ui.views.handlers;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.linuxtools.internal.lttng2.control.ui.Activator;
-import org.eclipse.linuxtools.internal.lttng2.control.ui.views.ControlView;
-import org.eclipse.linuxtools.internal.lttng2.control.ui.views.dialogs.IGetEventInfoDialog;
-import org.eclipse.linuxtools.internal.lttng2.control.ui.views.dialogs.TraceControlDialogFactory;
-import org.eclipse.linuxtools.internal.lttng2.control.ui.views.messages.Messages;
-import org.eclipse.linuxtools.internal.lttng2.control.ui.views.model.ITraceControlComponent;
-import org.eclipse.linuxtools.internal.lttng2.control.ui.views.model.impl.BaseEventComponent;
-import org.eclipse.linuxtools.internal.lttng2.control.ui.views.model.impl.KernelProviderComponent;
-import org.eclipse.linuxtools.internal.lttng2.control.ui.views.model.impl.TargetNodeComponent;
-import org.eclipse.linuxtools.internal.lttng2.control.ui.views.model.impl.TraceChannelComponent;
-import org.eclipse.linuxtools.internal.lttng2.control.ui.views.model.impl.TraceSessionComponent;
-import org.eclipse.linuxtools.internal.lttng2.control.ui.views.model.impl.UstProviderComponent;
-import org.eclipse.ui.IWorkbenchPage;
-
-/**
- * <p>
- * Command handler implementation to assign events to a session and channel and enable/configure them.
- * This is done on the trace provider level.
- * </p>
- *
- * @author Bernd Hufmann
- */
-public class AssignEventHandler extends BaseControlViewHandler {
-
- // ------------------------------------------------------------------------
- // Attributes
- // ------------------------------------------------------------------------
-
- /**
- * The command execution parameter.
- */
- private Parameter fParam;
-
- // ------------------------------------------------------------------------
- // Operations
- // ------------------------------------------------------------------------
-
- @Override
- public Object execute(ExecutionEvent event) throws ExecutionException {
-
- fLock.lock();
- try {
- // Make a copy for thread safety
- final Parameter param = new Parameter(fParam);
-
- // Open dialog box to retrieve the session and channel where the events should be enabled in.
- final IGetEventInfoDialog dialog = TraceControlDialogFactory.getInstance().getGetEventInfoDialog();
- dialog.setIsKernel(param.isKernel());
- dialog.setSessions(param.getSessions());
-
- if (dialog.open() != Window.OK) {
- return null;
- }
-
- Job job = new Job(Messages.TraceControl_EnableEventsJob) {
- @Override
- protected IStatus run(IProgressMonitor monitor) {
-
- Exception error = null;
-
- try {
- List<String> eventNames = new ArrayList<>();
- List<BaseEventComponent> events = param.getEvents();
- // Create list of event names
- for (Iterator<BaseEventComponent> iterator = events.iterator(); iterator.hasNext();) {
- BaseEventComponent baseEvent = iterator.next();
- eventNames.add(baseEvent.getName());
- }
-
- TraceChannelComponent channel = dialog.getChannel();
- if (channel == null) {
- // enable events on default channel (which will be created by lttng-tools)
- dialog.getSession().enableEvents(eventNames, param.isKernel(), dialog.getFilterExpression(), monitor);
- } else {
- channel.enableEvents(eventNames, dialog.getFilterExpression(), monitor);
- }
-
- } catch (ExecutionException e) {
- error = e;
- }
-
- // refresh in all cases
- refresh(new CommandParameter(dialog.getSession()));
-
- if (error != null) {
- return new Status(IStatus.ERROR, Activator.PLUGIN_ID, Messages.TraceControl_EnableEventsFailure, error);
- }
- return Status.OK_STATUS;
- }
- };
- job.setUser(true);
- job.schedule();
- } finally {
- fLock.unlock();
- }
-
- return null;
- }
-
- @Override
- public boolean isEnabled() {
- ArrayList<BaseEventComponent> events = new ArrayList<>();
- TraceSessionComponent[] sessions = null;
- Boolean isKernel = null;
-
- // Get workbench page for the Control View
- IWorkbenchPage page = getWorkbenchPage();
- if (page == null) {
- return false;
- }
-
- // Check if one or more session are selected
- ISelection selection = page.getSelection(ControlView.ID);
- if (selection instanceof StructuredSelection) {
-
- StructuredSelection structered = ((StructuredSelection) selection);
- for (Iterator<?> iterator = structered.iterator(); iterator.hasNext();) {
- Object element = iterator.next();
- if (element instanceof BaseEventComponent) {
- BaseEventComponent event = (BaseEventComponent) element;
- ITraceControlComponent provider = event.getParent();
-
- // check for kernel or UST provider
- boolean temp = false;
- if (provider instanceof KernelProviderComponent) {
- temp = true;
- } else if (provider instanceof UstProviderComponent) {
- temp = false;
- } else {
- return false;
- }
- if (isKernel == null) {
- isKernel = Boolean.valueOf(temp);
- } else {
- // don't mix events from Kernel and UST provider
- if (isKernel.booleanValue() != temp) {
- return false;
- }
- }
-
- // Add BaseEventComponents
- events.add(event);
-
- if (sessions == null) {
- TargetNodeComponent root = (TargetNodeComponent)event.getParent().getParent().getParent();
- sessions = root.getSessions();
- }
- }
- }
- }
-
- boolean isEnabled = ((!events.isEmpty()) && (sessions != null) && (sessions.length > 0));
-
- // To avoid compiler warnings check for null even if isKernel is always not null when used below
- if (isKernel == null) {
- return false;
- }
-
- fLock.lock();
- try {
- fParam = null;
- if(isEnabled) {
- fParam = new Parameter(sessions, events, isKernel);
- }
- } finally {
- fLock.unlock();
- }
- return isEnabled;
- }
-
- /**
- * Class containing parameter for the command execution.
- */
- private static final class Parameter {
-
- /**
- * The list of event components the command is to be executed on.
- */
- private final List<BaseEventComponent> fEvents;
-
- /**
- * The list of available sessions.
- */
- final private TraceSessionComponent[] fSessions;
-
- /**
- * Flag for indicating Kernel or UST.
- */
- private final boolean fIsKernel;
-
- /**
- * Constructor
- *
- * @param sessions - a array of trace sessions
- * @param events - a lists of events to enable
- * @param isKernel - domain (true for kernel or UST)
- */
- public Parameter(TraceSessionComponent[] sessions, List<BaseEventComponent> events, boolean isKernel) {
- fSessions = Arrays.copyOf(sessions, sessions.length);
- fEvents = new ArrayList<>();
- fEvents.addAll(events);
- fIsKernel = isKernel;
- }
-
- /**
- * Copy constructor
- * @param other - a parameter to copy
- */
- public Parameter(Parameter other) {
- this(other.fSessions, other.fEvents, other.fIsKernel);
- }
-
- public TraceSessionComponent[] getSessions() {
- return fSessions;
- }
-
- public List<BaseEventComponent> getEvents() {
- return fEvents;
- }
-
- public boolean isKernel() {
- return fIsKernel;
- }
- }
-}

Back to the top