package org.jactr.eclipse.ui.concurrent;
/*
* default logging
*/
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.jobs.IJobChangeEvent;
import org.eclipse.core.runtime.jobs.IJobChangeListener;
import org.eclipse.ui.progress.UIJob;
public abstract class QueueingUIJob extends UIJob implements IJobChangeListener
{
/**
* Logger definition
*/
static private final transient Log LOGGER = LogFactory
.getLog(QueueingUIJob.class);
private boolean _isQueued = false;
public QueueingUIJob(String name)
{
super(name);
addJobChangeListener(this);
}
public boolean queue(long millis)
{
if (!_isQueued) super.schedule(millis);
return _isQueued;
}
public void aboutToRun(IJobChangeEvent event)
{
// TODO Auto-generated method stub
}
public void awake(IJobChangeEvent event)
{
// TODO Auto-generated method stub
}
public void done(IJobChangeEvent event)
{
_isQueued = false;
}
public void running(IJobChangeEvent event)
{
// TODO Auto-generated method stub
}
public void scheduled(IJobChangeEvent event)
{
_isQueued = true;
}
public void sleeping(IJobChangeEvent event)
{
// TODO Auto-generated method stub
}
}