blob: 1753355689eb3ec2d1ceac2e913e8af979a67c75 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2011 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.java.tests.search;
import java.io.IOException;
import junit.framework.Assert;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.mylyn.context.core.ContextCore;
import org.eclipse.mylyn.context.core.IInteractionElement;
import org.eclipse.mylyn.context.sdk.java.WorkspaceSetupHelper;
import org.eclipse.mylyn.internal.context.core.CompositeInteractionContext;
import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
import org.eclipse.mylyn.internal.context.core.InteractionContext;
import org.eclipse.mylyn.monitor.core.InteractionEvent;
/**
* @author Shawn Minto
*/
public class ActiveSearchNotifier {
private CompositeInteractionContext context;
private final String source;
public ActiveSearchNotifier(CompositeInteractionContext context, String source) {
this.context = context;
this.source = source;
}
public IInteractionElement mockLowerInterest(IInteractionElement node) {
return context.addEvent(mockUserEvent(node.getHandleIdentifier(), node.getContentType(), source, -3));
}
public IInteractionElement mockRaiseInterest(IInteractionElement node) {
return context.addEvent(mockUserEvent(node.getHandleIdentifier(), node.getContentType(), source, 2));
}
public IInteractionElement mockLowerInterest(String handle, String kind) {
return mockLowerInterest(mockEditorSelection(handle, kind));
}
public IInteractionElement mockRaiseInterest(String handle, String kind) {
return mockRaiseInterest(mockEditorSelection(handle, kind));
}
public IInteractionElement mockEditorSelection(String handle, String kind) {
context.addEvent(mockSelection(handle, kind, source));
return context.addEvent(mockSelection(handle, kind, source));
}
public IInteractionElement getElement(String handle, String kind) {
IInteractionElement node = context.addEvent(mockSelection(handle, kind, source));
ContextCorePlugin.getContextManager().processInteractionEvent(
mockUserEvent(handle, kind, source, (1 / ContextCore.getCommonContextScaling().getLandmark()) * -2),
true);
return node;
}
public void clearContext() throws IOException, CoreException {
WorkspaceSetupHelper.clearDoiModel();
try {
InteractionContext workspaceContext = WorkspaceSetupHelper.getContext();
ContextCore.getContextManager().activateContext(workspaceContext.getHandleIdentifier());
context = (CompositeInteractionContext) ContextCore.getContextManager().getActiveContext();
} catch (Exception e) {
Assert.fail();
}
}
private InteractionEvent mockSelection(String handle, String kind, String origin) {
return new InteractionEvent(InteractionEvent.Kind.SELECTION, kind, handle, origin);
}
private InteractionEvent mockUserEvent(String handle, String kind, String origin, float scale) {
InteractionEvent e = new InteractionEvent(InteractionEvent.Kind.MANIPULATION, kind, handle, origin, scale
* ContextCore.getCommonContextScaling().getLandmark());
e.getInterestContribution();
return e;
}
}