/******************************************************************************* * 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.startup; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.jobs.IJobChangeEvent; import org.eclipse.core.runtime.jobs.IJobChangeListener; import org.eclipse.ui.IStartup; import ca.uvic.cs.tagsea.TagSEAPlugin; import ca.uvic.cs.tagsea.core.resource.RoutesRestoringJob; import ca.uvic.cs.tagsea.core.resource.TagResourceChangeListener; import ca.uvic.cs.tagsea.core.resource.TagRestoringJob; import ca.uvic.cs.tagsea.preferences.TagSEAPreferences; public class TagseaStartup implements IStartup { TagResourceChangeListener tagChangedListener = new TagResourceChangeListener(); /** * @tag loadTags loadRoutes * @author mdesmond */ public void earlyStartup() { if (!TagSEAPreferences.askedForID()) { TagSEAPlugin.getDefault().askForUserID(); } TagRestoringJob tagRestoringJob = new TagRestoringJob(); final RoutesRestoringJob routesRestoringJob = new RoutesRestoringJob(); routesRestoringJob.setSystem(true); tagRestoringJob.setSystem(true); tagRestoringJob.schedule(); tagRestoringJob.addJobChangeListener(new IJobChangeListener() { public void sleeping(IJobChangeEvent event){} public void scheduled(IJobChangeEvent event){} public void running(IJobChangeEvent event){} // The route state loader relies on the waypoints being loaded public void done(IJobChangeEvent event) { routesRestoringJob.schedule(); } public void awake(IJobChangeEvent event){} public void aboutToRun(IJobChangeEvent event){} }); //@tag resourceManagment try { ResourcesPlugin.getWorkspace().addResourceChangeListener(tagChangedListener); } catch (IllegalStateException e) { TagSEAPlugin.log("Can not add resource change listener - workspace is null: " + e.getMessage(), e); } } }