private void restoreValues() {
        for (StorageKey key : StorageKey.values()) {
            if (!textFieldValues.containsKey(key)) {
                continue;
            }

            switch (key) {
                case WINDOW_X_POSITION:
                    String xPositionAsString = textFieldValues.get(key);

                    try {
                        int xPosition = Integer.parseInt(xPositionAsString);
                        setLocation(xPosition, getY());
                    } catch (NumberFormatException ex) {
                    }
                    break;
                case WINDOW_Y_POSITION:
                    String yPositionAsString = textFieldValues.get(key);

                    try {
                        int yPosition = Integer.parseInt(yPositionAsString);
                        setLocation(getX(), yPosition);
                    } catch (NumberFormatException ex) {
                    }
                    break;
                case LEARNING_PHASE:
                    boolean isLearningPhaseSelected = "true".equals(textFieldValues.get(key));
                    learningRadioButton.setSelected(isLearningPhaseSelected);

                    if (isLearningPhaseSelected) {
                        configureMovementLabelsForLearningPhase();
                    }
                    break;
                case EXECUTION_PHASE:
                    boolean isExecutionPhaseSelected = "true".equals(textFieldValues.get(key));
                    executionRadioButton.setSelected(isExecutionPhaseSelected);

                    if (isExecutionPhaseSelected) {
                        configureMovementLabelsForExecutionPhase();
                    }
                    break;
                case TARGET_CURVE_PATH:
                    trajectoryTextField.setText(textFieldValues.get(key));
                    Components.moveCurserToEndOfTextField(trajectoryTextField);
                    break;
                case MASS_POINTS_PATH:
                    massesTextField.setText(textFieldValues.get(key));
                    Components.moveCurserToEndOfTextField(massesTextField);
                    break;
                case CONNECTION_MAP_PATH:
                    connectionMapTextField.setText(textFieldValues.get(key));
                    Components.moveCurserToEndOfTextField(connectionMapTextField);
                    break;
                case MASS_COORDINATES_PATH:
                    springLengthsTextField.setText(textFieldValues.get(key));
                    Components.moveCurserToEndOfTextField(springLengthsTextField);
                    break;
                case WEIGHTS_FILE:
                    weightsTextField.setText(textFieldValues.get(key));
                    Components.moveCurserToEndOfTextField(weightsTextField);
                    break;
                case EXECUTABLE_FILE:
                    executableTextField.setText(textFieldValues.get(key));
                    Components.moveCurserToEndOfTextField(executableTextField);
                    break;
            }
        }
    }