package mior.controler;

import java.awt.event.ActionEvent;

import javax.swing.SwingWorker;

import mior.model.IMiorModel;

public class AutoLiveAction extends AbstractMiorAction<IMiorModel> {
	
	private static final long serialVersionUID = 1L;

	public AutoLiveAction(IMiorModel model) {
		super(model, "AutoLive");
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		setEnabled(false);
		new SwingWorker<Object, Object>() {
			
			@Override
			protected Object doInBackground() throws Exception {
				/*
				int notChangedSince = 0;
				final IMiorModel model = getData();
				int oldWorldCO2 = model.getWorld().CO2;
				model.doLive();
				
				if (oldWorldCO2 == model.getWorld().CO2) {
					model.reset();
					model.doLive();
				}
				
				while (notChangedSince < 2) {
					if (model.getWorld().CO2 == oldWorldCO2) {
						notChangedSince++;
					} else {
						oldWorldCO2 = model.getWorld().CO2;
						notChangedSince = 0;
					}
					
					model.doLive();
				}*/
				getData().doAutoLive();
				return null;
			};
			
			@Override
			protected void done() {
				setEnabled(true);
			};
		}.execute();
		
		/*
		model.doLive();
		
		if (oldWorldCO2 == model.getWorld().CO2) {
			model.reset();
			model.doLive();
		}
		
		while (notChangedSince < 2) {
			if (model.getWorld().CO2 == oldWorldCO2) {
				notChangedSince++;
			} else {
				oldWorldCO2 = model.getWorld().CO2;
				notChangedSince = 0;
			}
			
			model.doLive();
		}*/	
	}

}
