/*
 * Created on 19.03.2005
 */

package net.sourceforge.tuned.ui.notification;


import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import net.sourceforge.tuned.ui.TunedUtilities;


public class NotificationManager {
	
	private final NotificationLayout layout;
	
	
	public NotificationManager() {
		this(new QueueNotificationLayout());
	}
	

	public NotificationManager(NotificationLayout layout) {
		this.layout = layout;
	}
	

	public void show(NotificationWindow notification) {
		TunedUtilities.checkEventDispatchThread();
		
		notification.addWindowListener(new RemoveListener());
		layout.add(notification);
		
		notification.setVisible(true);
	}
	
	
	private class RemoveListener extends WindowAdapter {
		
		@Override
		public void windowClosing(WindowEvent e) {
			layout.remove((NotificationWindow) e.getWindow());
		}
	}
	
}