/** * Copyright (c) 2009-2011, The HATS Consortium. All rights reserved. * This file is licensed under the terms of the Modified BSD License. */ package org.absmodels.abs.plugin.debug.model; import static org.absmodels.abs.plugin.debug.DebugUtils.highlightLine; import static org.absmodels.abs.plugin.debug.DebugUtils.refreshDebugViewer; import static org.absmodels.abs.plugin.debug.DebugUtils.removeHighlighting; import org.absmodels.abs.plugin.debug.DebugUtils; import abs.backend.java.debugging.COGInfo; import abs.backend.java.debugging.TaskInfo; /** * Listener reacting on creation and changes of tasks and COGs * @author tfischer */ public class DebugModelListener implements abs.backend.java.debugging.DebugModelListener { TaskInfo lastTask; @Override public void taskInfoRemoved(TaskInfo line) { if(DebugUtils.highlightStep) refreshDebugViewer(); } @Override public void taskInfoChanged(TaskInfo line) { if(DebugUtils.highlightStep){ DebugUtils.getSchedulerRef().setLastTask(line); switch(line.getState()){ case FINISHED: case EXCEPTION: removeHighlighting(line); break; default: highlightLine(line); break; } refreshDebugViewer(); } } @Override public void taskInfoAdded(TaskInfo line) { if(DebugUtils.highlightStep) refreshDebugViewer(); } @Override public void cogCreated(COGInfo info) { if(DebugUtils.highlightStep) refreshDebugViewer(); } @Override public void cogChanged(COGInfo info) { if(DebugUtils.highlightStep) refreshDebugViewer(); } }