/*******************************************************************************
* Copyright 2006, CHISEL Group, University of Victoria, Victoria, BC, Canada.
* 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, University of Victoria
* IBM Corporation
*******************************************************************************/
package ca.uvic.cs.tagsea.core.resource;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.swt.widgets.Display;
import ca.uvic.cs.tagsea.TagSEAPlugin;
import ca.uvic.cs.tagsea.monitoring.TagSEAJobEvent;
import ca.uvic.cs.tagsea.monitoring.internal.Monitoring;
/**
* @author mdesmond
*/
public class RoutesRestoringJob extends Job
{
public RoutesRestoringJob()
{
super("Retrieving @tag routes from workspace");
}
@Override
protected IStatus run(IProgressMonitor monitor)
{
monitor.beginTask("Loading routes", 1);
Monitoring.getDefault().fireEvent(new TagSEAJobEvent(TagSEAJobEvent.JobType.StartLoadingRoutes));
TagSEAPlugin.getDefault().getRouteCollection().load();
monitor.worked(1);
monitor.done();
refreshRoutesView();
Monitoring.getDefault().fireEvent(new TagSEAJobEvent(TagSEAJobEvent.JobType.EndLoadingRoutes));
return Status.OK_STATUS;
}
/**
* Refresh the tag UI part
*/
private void refreshRoutesView()
{
Display.getDefault().asyncExec(new Runnable()
{
public void run()
{
TagSEAPlugin.getDefault().getRouteCollection().updateView();
}
});
}
}