package jrummikub.view;

import java.awt.Color;
import java.io.File;
import java.util.Collection;

import jrummikub.model.Stone;
import jrummikub.util.IEvent;
import jrummikub.util.IEvent1;
import jrummikub.util.MockEvent;
import jrummikub.util.MockEvent1;

/**
 * Mock class for View
 */
public class MockView implements IView {
	/** */
	public MockSettingsPanel settingsPanel = new MockSettingsPanel();
	/** */
	public MockScorePanel scorePanel = new MockScorePanel();
	/** */
	public MockPlayerPanel playerPanel = new MockPlayerPanel();
	/** */
	public MockTablePanel tablePanel = new MockTablePanel();
	/** */
	public MockHandPanel handPanel = new MockHandPanel();
	/** */
	public MockLoginPanel loginPanel = new MockLoginPanel();
	/** */
	public MockGameListPanel gameListPanel = new MockGameListPanel();
	/** */
	public boolean isSettingsPanelVisible = false;
	/** */
	public boolean isScorePanelVisible = false;
	/** */
	public boolean isLoginPanelVisible = false;
	/** */
	public boolean isGameListPanelVisible = false;

	/** */
	public Collection<Stone> selectedStones;

	/** */
	public String currentPlayerName;
	/** */
	public BottomPanelType bottomPanelType;

	/** */
	public MockEvent startTurnEvent = new MockEvent();
	/** */
	public MockEvent quitEvent = new MockEvent();
	/** */
	public MockEvent newRoundEvent = new MockEvent();
	/**	 */
	public MockEvent newGameEvent = new MockEvent();
	/**	 */
	public MockEvent menuNewGameEvent = new MockEvent();
	/**	 */
	public MockEvent menuQuitEvent = new MockEvent();
	/**	 */
	public MockEvent1<File> loadEvent = new MockEvent1<File>();
	/**	 */
	public MockEvent1<File> saveEvent = new MockEvent1<File>();
	/**	 */
	public MockEvent pauseEvent = new MockEvent();
	/**	 */
	public MockEvent endPauseEvent = new MockEvent();
	/** */
	public MockEvent networkGameEvent = new MockEvent();
	/** */
	public MockEvent acknowledgeInvalidEvent = new MockEvent();

	@Override
	public MockTablePanel getTablePanel() {
		return tablePanel;
	}

	@Override
	public MockPlayerPanel getPlayerPanel() {
		return playerPanel;
	}

	@Override
	public MockHandPanel getHandPanel() {
		return handPanel;
	}

	@Override
	public void setCurrentPlayerName(String playerName) {
		currentPlayerName = playerName;
	}

	@Override
	public void setSelectedStones(Collection<Stone> stones) {
		selectedStones = stones;
	}

	@Override
	public IEvent getStartTurnEvent() {
		return startTurnEvent;
	}

	@Override
	public IEvent getAcknowledgeInvalidEvent() {
		return acknowledgeInvalidEvent;
	}

	@Override
	public IEvent getEndProgramEvent() {
		return quitEvent;
	}

	@Override
	public IEvent getNewRoundEvent() {
		return newRoundEvent;
	}

	@Override
	public ISettingsPanel getSettingsPanel() {
		return settingsPanel;
	}

	@Override
	public void showSettingsPanel(boolean show) {
		isSettingsPanelVisible = show;
	}

	@Override
	public IScorePanel getScorePanel() {
		return scorePanel;
	}

	@Override
	public void showScorePanel(boolean show) {
		isScorePanelVisible = show;
	}

	@Override
	public void setCurrentPlayerColor(Color color) {
		// TODO Auto-generated method stub
	}

	@Override
	public void setCurrentPlayerHasLaidOut(boolean hasLaidOut) {
		// TODO Auto-generated method stub
	}

	@Override
	public IEvent getNewGameEvent() {
		return newGameEvent;
	}

	@Override
	public void setBottomPanel(BottomPanelType type) {
		bottomPanelType = type;
	}

	@Override
	public IEvent getMenuNewGameEvent() {
		return menuNewGameEvent;
	}

	@Override
	public IEvent getMenuQuitEvent() {
		return menuQuitEvent;
	}

	@Override
	public IEvent1<File> getLoadEvent() {
		return loadEvent;
	}

	@Override
	public IEvent1<File> getSaveEvent() {
		return saveEvent;
	}

	@Override
	public void clearView() {
	}

	@Override
	public void enablePauseMode(boolean enable) {
		// TODO Auto-generated method stub
	}

	@Override
	public IEvent getPauseEvent() {
		return pauseEvent;
	}

	@Override
	public IEvent getEndPauseEvent() {
		return endPauseEvent;
	}

	@Override
	public IEvent getNetworkGameEvent() {
		return networkGameEvent;
	}

	@Override
	public ILoginPanel getLoginPanel() {
		return loginPanel;
	}

	@Override
	public void showLoginPanel(boolean show) {
		isLoginPanelVisible = show;
	}

	@Override
	public void showGameListPanel(boolean show) {
		isGameListPanelVisible = show;
	}

	@Override
	public IGameListPanel getGameListPanel() {
		return gameListPanel;
	}

	@Override
	public void setInitialMeldError(int points) {
		// TODO Auto-generated method stub

	}

	@Override
	public void setStoneCollectionHidden(boolean enable) {
		// TODO Auto-generated method stub

	}

	@Override
	public void setInitialMeldFirstError() {
		// TODO Auto-generated method stub

	}

}