@Override
	public MultiMenuPlaceStartingForcesChoices doSelection(Factory factory) {
		updateState();
		while (state != -1) {
			Menu<?> menu = getMenu(state, factory);

			switch (state) {
			case 1:
				unitPlaceRemoveChoice = (StaticChoice) menu.selectChoice(false);
				break;
			case 2:
				chosenUnit = (Unit) menu.selectChoice(true);
				break;
			case 3:
				chosenArea = (Area) menu.selectChoice(true);
				break;
			case 4:
				chosenUnit = (Unit) menu.selectChoice(true);
				break;
			case 5:
				chosenRoute = (Route) menu.selectChoice(true);
				break;
			case 6:
				chosenRoute = (Route) menu.selectChoice(true);
				break;
			default:
				throw new IllegalStateException("This state shouldn't happen.");
			}
			updateState();
		}

		return choices;
	}