package org.wikiwebserver.distribute.se.gui;

import javax.swing.DefaultListModel;
import javax.swing.SwingUtilities;

import org.wikiwebserver.distribute.interfaces.Task;
import org.wikiwebserver.distribute.interfaces.TaskStateChangeListener;
import org.wikiwebserver.distribute.se.RemoteWorkerApp;

public class TaskListModel extends DefaultListModel implements TaskStateChangeListener {
	
	private static final long serialVersionUID = 1L;

	public TaskListModel() {
		RemoteWorkerApp.getWorker().addTaskStateChangeListener(this);
	}

	public void taskStateChanged(final Task task) {
		
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				if (task.isComplete()) removeElement(task);
				else addElement(task);
			}
		});

	}
}

