blob: 6d1513db9151d09e5d04cff3c1bb07563d96b859 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2008 Tasktop Technologies and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* https://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.internal.context.core;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.mylyn.commons.core.StatusHandler;
import org.eclipse.mylyn.monitor.core.InteractionEvent;
/**
* Adapt any legacy attention events to new form
*
* @since 2.1
* @author Rob Elves
*/
public class LegacyActivityAdaptor {
private static final String LEGACY_HANDLE_ATTENTION = "attention"; //$NON-NLS-1$
private String currentTask;
public InteractionEvent parseInteractionEvent(InteractionEvent event) {
try {
if (event.getDelta() != null && event.getDelta().equals(InteractionContextManager.ACTIVITY_DELTA_ACTIVATED)) {
if (event.getStructureHandle() != null && !event.getStructureHandle().equals(LEGACY_HANDLE_ATTENTION)) {
String activatedTask = event.getStructureHandle();
if (activatedTask != null) {
currentTask = event.getStructureHandle();
}
} else if (event.getStructureHandle() != null
&& event.getStructureHandle().equals(LEGACY_HANDLE_ATTENTION)) {
if (currentTask != null && !currentTask.equals("")) { //$NON-NLS-1$
return new InteractionEvent(InteractionEvent.Kind.ATTENTION,
InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, currentTask,
InteractionContextManager.ACTIVITY_ORIGINID_WORKBENCH, null,
InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, event.getDate(), event.getEndDate());
} else if (currentTask == null) {
// bogus event remove.
return null;
}
}
} else if (event.getDelta() != null
&& event.getDelta().equals(InteractionContextManager.ACTIVITY_DELTA_DEACTIVATED)) {
if (event.getStructureHandle() != null && !event.getStructureHandle().equals(LEGACY_HANDLE_ATTENTION)
&& currentTask != null && currentTask.equals(event.getStructureHandle())) {
currentTask = null;
} else if (event.getStructureHandle() != null
&& event.getStructureHandle().equals(LEGACY_HANDLE_ATTENTION)) {
// bogus event remove.
return null;
}
}
} catch (Throwable t) {
StatusHandler.log(new Status(IStatus.ERROR, ContextCorePlugin.ID_PLUGIN, "Error parsing interaction event", //$NON-NLS-1$
t));
}
return event;
}
}