package hu.ppke.itk.java.hakta.hf10;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	// A következő függvény kierőszakol a felhasználótól egy érvényes pozitív számot
	private static int getPositiveNumber(String message) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		System.out.println(message);
		Integer number = null;
		while (number == null)
			try {
				number = Integer.parseInt(br.readLine());
				if (number < 1) {
					System.err.println("Egy pozitív számot adj meg!");
					number = null;
				}
			} catch (NumberFormatException e) {
				System.err.println("Egy számot adj meg!");
			}
		return number;
	}

	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		Printer printer = new Printer();
		
		int command = -1;
		try {
			while (command != 0) {
				System.out.println("\nVálassz utasítást, és írd be a számát:\n"
						+ "\t0 - Kilépés\n"
						+ "\t1 - Nyomtatandó dokumentum hozzáadása\n"
						+ "\t2 - Lapok újratöltése\n"
						+ "\t3 - Tintapatron cseréje\n"
						+ "\t4 - Jelenleg nyomtatás alatt lévő dokumentum törlése\n"
						+ "\t5 - Dokumentum törlése a nyomtatási listából ID lapján\n");
				try {
					command = Integer.parseInt(br.readLine());
					switch (command) {
					case 0 : break;
					case 1 :
						printer.add(
								getPositiveNumber("Add meg a dokumentum azonosítóját (ID)!"), 
								getPositiveNumber("Add meg a dokumentum lapjainak számát!"));
						break;
					case 2 :
						printer.refillPaper(getPositiveNumber("Hány lapot szeretnél berakni a nyomtatóba?"));
						break;
					case 3 :
						printer.refillInk();
						break;
					case 4 :
						if (!printer.cancel())
							System.out.println("Épp nincs egyetlen dokumentum nyomtatás alatt, így nincs mit törölni");
						break;
					case 5 :
						if (!printer.cancel(
								getPositiveNumber("Add meg a törlendő dokumentum azonosítóját (ID)!")))
							System.out.println("Épp nincs egyetlen dokumentum sem a nyomtatási várólistán, így nincs mit törölni");
						break;
					default :
						System.err.println(" >> Nem megfelelő parancs!");
					}
				} catch (NumberFormatException e) {
					System.err.println(" >> Nem megfelelő parancs!");
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}
