import javafx.geometry.Pos;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.*;
import javafx.scene.control.TextField;
import javafx.scene.control.Spinner;
import javafx.scene.media.MediaPlayer;
import javafx.scene.control.SpinnerValueFactory;
import java.util.Locale;
import javafx.util.Duration;
import java.beans.EventHandler;
import java.lang.Runnable;
import java.util.ArrayList;
public class Cronometro {

public Cronometro(Boton _boton){
	boton=_boton;
}
   
    
public void display()
{
	Stage popupwindow=new Stage();	  
	popupwindow.initModality(Modality.APPLICATION_MODAL);
	popupwindow.setTitle("MMM");
	Label label1= new Label("Quiere que su audio se reproduzca en un loop o solo una vez?");
	Button button1= new Button("No quiero que suene");
	Button button2= new Button("En loop");     
	Button button3= new Button("Solo una vez");
	button1.setOnAction(e -> popupwindow.close());
	VBox vbox=new VBox();
	vbox.setAlignment(Pos.CENTER);
	Button submit=new Button("Ingresar");
	final Spinner spinner = new Spinner();
	button2.setOnAction(e->{
        spinner.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(0, 10000));
        spinner.setEditable(true);
		vbox.getChildren().addAll(spinner,submit);
	});    
	submit.setOnAction(e->{
			int num= (int)spinner.getValue();
			tiempo=num;
			asignarTiempo();
			popupwindow.close();
		});	
	vbox.getChildren().add(new Label("MMM"));
	button3.setOnAction(e->{
		boton.play_pause();
		popupwindow.close();
	});
	VBox layout= new VBox(10);
	layout.getChildren().addAll(label1, button2,button3,button1,vbox);      
	layout.setAlignment(Pos.CENTER);
	Scene scene1= new Scene(layout, 500, 300);
	popupwindow.setScene(scene1);
	popupwindow.showAndWait();
	}
	
	public void asignarTiempo(){
		if(boton.player.getCycleDuration().compareTo(Duration.seconds(tiempo))>=0){//revisa si el audio es menor tiempo que el tiempo ingresado por el usuario
			boton.player.seek(Duration.ZERO);
			boton.player.setCycleCount(MediaPlayer.INDEFINITE);
			boton.player.setStartTime(Duration.seconds(0));
			boton.player.setStopTime(Duration.seconds(tiempo));
			boton.play_pause();
		}
		else{
			boton.player.seek(Duration.ZERO);
			boton.player.setCycleCount(MediaPlayer.INDEFINITE);
			boton.play_pause();
			//handle(boton.player.getOnRepeat(),tiempo);
				
			
			
		}
		
	}
	
	/*public void handle(Runnable e,int tiempo) {  
		boton.player.setCycleCount(MediaPlayer.INDEFINITE);
		boton.play_pause();
		sleepFor(tiempo);
		boton.play_pause();
	}  
	*/
   
   public void sleepFor(int time) {
	   try {
         Thread.sleep(time*1000);
      } catch (InterruptedException e){
      }
   }
	
	private Boton boton;
	public int tiempo;
	
}

