/*******************************************************************************
* Copyright (c) 2009 the CHISEL group and contributors.
* 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:
* the CHISEL group - initial API and implementation
*******************************************************************************/
package ca.uvic.chisel.javasketch;
import org.eclipse.core.runtime.IProgressMonitor;
import ca.uvic.chisel.javasketch.data.model.IThread;
/**
* A simple interface that returns the degree of interest for a particular
* object in the workbench.
* @author Del
*
*/
public interface IDegreeOfInterest {
/**
* Returns the interest of the given object from 0 as uninteresting
* to 1 as interesting. Negative number if it is not covered by this
* model.
* @param o
* @return the interest of the given object.
*/
public double getInterest(Object o);
/**
*
* @param listener
*/
public void addSketchInterestListener(ISketchInterestListener listener);
public void removeSketchInterestListener(ISketchInterestListener listener);
public boolean isSketchHidden(IProgramSketch sketch);
public IProgramSketch getActiveSketch();
/**
* @return
*/
public IProgramSketch[] getHiddenSketches();
/**
* @param selected
* @param b
*/
public void setSketchHidden(IProgramSketch selected, boolean hidden, IProgressMonitor progress);
public abstract boolean requestFiltering(IThread thread, IProgressMonitor monitor);
public void setThreadSelection(IThread thread);
}