package jrummikub.view;

import java.awt.Color;

import jrummikub.model.GameSettings;
import jrummikub.util.IEvent;
import jrummikub.util.IEvent1;
import jrummikub.util.IEvent2;
import jrummikub.util.MockEvent;
import jrummikub.util.MockEvent1;
import jrummikub.util.MockEvent2;

public class MockSettingsPanel implements ISettingsPanel {

	public MockEvent addPlayerEvent = new MockEvent();
	public MockEvent1<Integer> removePlayerEvent = new MockEvent1<Integer>();
	public MockEvent2<Integer, Color> changePlayerColorEvent = new MockEvent2<Integer, Color>();
	public MockEvent2<Integer, String> changePlayerNameEvent = new MockEvent2<Integer, String>();
	public MockEvent startGameEvent = new MockEvent();
	public SettingsError error = SettingsError.NO_ERROR;
	public boolean startButtonEnabled = true;
	public boolean addPlayerButtonEnabled = true;
	public boolean removePlayerButtonsEnabled = false;
	public GameSettings gameSettings = new GameSettings();
	
	public MockEvent1<Integer> changeInitialMeldThresholdEvent = new MockEvent1<Integer>();
	public MockEvent1<Integer> changeJokerNumberEvent = new MockEvent1<Integer>();
	
	public int initialMeldThreshold;
	public int jokerNumber;

	@Override
	public IEvent getAddPlayerEvent() {
		return addPlayerEvent;
	}

	@Override
	public IEvent1<Integer> getRemovePlayerEvent() {
		return removePlayerEvent;
	}

	@Override
	public IEvent2<Integer, Color> getChangePlayerColorEvent() {
		return changePlayerColorEvent;
	}

	@Override
	public IEvent2<Integer, String> getChangePlayerNameEvent() {
		return changePlayerNameEvent;
	}

	@Override
	public IEvent1<Integer> getChangeInitialMeldThresholdEvent() {
		return changeInitialMeldThresholdEvent;
	}

	@Override
	public IEvent getStartGameEvent() {
		return startGameEvent;
	}

	@Override
	public void setError(SettingsError error) {
		this.error = error;

	}

	@Override
	public void enableStartGameButton(boolean enable) {
		startButtonEnabled = enable;

	}

	@Override
	public void enableAddPlayerButton(boolean enable) {
		addPlayerButtonEnabled = enable;

	}

	@Override
	public void enableRemovePlayerButtons(boolean enable) {
		removePlayerButtonsEnabled = enable;

	}

	@Override
	public void setGameSettings(GameSettings gameSettings) {
		this.gameSettings = gameSettings;

	}

	@Override
	public void setInitialMeldThreshold(int value) {
		initialMeldThreshold = value;
	}

	@Override
	public IEvent1<Integer> getChangeJokerNumberEvent() {
		return changeJokerNumberEvent;
	}

	@Override
	public void setJokerNumber(int jokerNumber) {
		this.jokerNumber = jokerNumber;
	}

}