private void login() {
		LoginPanel.this.setStatusText(null);
		
		Player player = new Player();
		player.setUsername(LoginPanel.this.getUsername());
		player.setPassword(LoginPanel.this.getPassword());

		if (this.areLoginCredentialsValid(player)) {
			LoginPanel.this.setStatusText(TextResources.LOGIN_PANEL_STATUS_WHILE_LOGIN);

			try {
				MinervaGUI.getEngine().login(player);
				
				player = MinervaGUI.getEngine().getClientPlayer();
			} catch (PlayerAlreadyLoggedInException e) {
				MMessageBox.show(e.getMessage());
			} catch (GameAlreadyStartedException e) {
				MMessageBox.show(e.getMessage());
			} catch (WrongPasswordException e) {
				MMessageBox.show(e.getMessage());
			} catch (PlayerDoesNotExistException e) {
				MMessageBox.show(e.getMessage());
			} catch (NoPlayerSlotAvailableException e) {
				MMessageBox.show(e.getMessage());
			} catch (DataAccessException e) {
				MMessageBox.show(e.getMessage());
				Runtime.getRuntime().exit(ERROR);
			}

			if (player.isLoggedIn()) {
				MinervaGUI.getInstance().changePanel(new GameInitPanel());
			}

			LoginPanel.this.setStatusText(null);
		}
	}