package QCM;


import java.io.Serializable;
import java.util.ArrayList;
import java.util.Scanner;

import Databases.QCMDatabase;


public class QCM implements Serializable {
private Scanner sc;

private String nom;
private boolean publique;
private ArrayList<Question> quest = new ArrayList<>();

//getter et setter
public String getNom() {
	return nom;
}
public void setNom(String nom) {
	this.nom = nom;
}

public boolean isPublique() {
	return publique;
}
public ArrayList<Question> getQuest() {
	return quest;
}
public void setPublique(boolean publique) {
	this.publique = publique;
}

//constructeur 
public QCM(String nom,ArrayList<Question> quest, boolean publique){
	this.nom=nom;
	this.quest=quest;
	this.publique=publique;
		}

public QCM(QCMDatabase qcd){
	this.creerQCM(qcd);
	
	}

//fonction pour creer QCM
public void creerQCM(QCMDatabase qcd){
	sc = new Scanner(System.in);
		boolean publique;
	
	System.out.println("Quel est le nom QCM");
	String nom=sc.nextLine();
	System.out.println("Combien de questions voulez-vous?");
	int i=sc.nextInt();//faire une exception si ce n'est pas un entier
	
	System.out.println("Saisir les questions");
	int j=1;
	while(j<=i){
	System.out.println("Question "+j+" "+ ":" );
	quest.add(new Question());
	j++;
	}
	
	System.out.println("Le QCM est il public? (taper 1 pour oui ou O pour non)");
	int vrai=sc.nextInt();
	if (vrai==1)
	{
		publique= true;
		qcd.addQCM(new QCM(nom, quest, publique));
	}
	else 
	{
		publique= false;
		qcd.addQCM(new QCM(nom, quest, publique));
	}
	
}

//fonction afficher QCM
public void afficherQCM(QCM q) {
	int i=0;
	
	System.out.println("Le QCM est :" +" "+ this.nom );
	for (Question c : quest){
		System.out.println(i+")"+" "+"Question"+i+" "+ ":");
		c.afficherQuestion();
		System.out.println("");
			i++;
		}
	}

	//fonction modifier QCM
public void modifierQCM(){
	sc = new Scanner(System.in);
	Question q = new Question();
	
	int sousmenu = 0;
		
	while (sousmenu!=9){
	System.out.println("--Menu de modification QCM--");
	this.afficherQCM(this);
	System.out.println("Modifier le nom du QCM : tapez 1");
	System.out.println("Modifier les questions : tapez 2");
	System.out.println("quitter : tapez 9");
	sousmenu = sc.nextInt();//Exception à faire 
	sc.nextLine();
	

	switch(sousmenu)
	{
case 1 :{

System.out.println("---Modifier du nom ---");
//modification du nom
			System.out.println("Taper le nouveau nom :");
			String newlibelle=sc.nextLine();
			this.nom=newlibelle;
		break;
	}

case 2 :{// a modifier
	int taille=this.quest.size();
int choix = 0;
System.out.println("---Modification d'une question---");
for (int i=0;i<taille;i++)
{
	System.out.println("Modifier la question"+i+" : tapez" + i);
}
	System.out.println("quitter : tapez 9");
	choix = sc.nextInt();
	sc.nextLine();
		q=q.creerQuestion(choix);
		this.quest.remove(choix);
		this.quest.add(choix,q);
		break;
		}
			
	}

	}
}

//fonction ajouter question aux QCM
public void ajouterQuestion(){
	sc = new Scanner(System.in);
	int j=this.quest.size();
	
System.out.println("Saisir la question");

Question r=new Question();	
System.out.println("Question"+j+" "+ ":" );
r=r.creerQuestion(j);
this.quest.add(r);
}

}		



