blob: 4dee6b981d2d7b0324012e67724413d915188a5f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2007 Mylyn project committers and others.
* 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
*******************************************************************************/
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";
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("")) {
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.PLUGIN_ID, "Error parsing interaction event",
t));
}
return event;
}
}