private void onOK() { if (!isValidInput()) { return; } dispose(); String firstName = firstNameField.getText().trim(); String lastName = lastNameField.getText().trim(); String emailAddress = emailAddressField.getText().trim(); SexOfPerson sexOfPerson; if (femaleRadioButton.isSelected()) { sexOfPerson = SexOfPerson.FEMALE; } else { sexOfPerson = SexOfPerson.MALE; } String country = (String) countryComboBox.getSelectedObject(); Integer birthdayYear = (Integer) birthdayYearComboBox.getSelectedItem(); Month birthdayMonth = (Month) birthdayMonthComboBox.getSelectedItem(); Integer birthdayDay = (Integer) birthdayDayComboBox.getSelectedItem(); char[] passwordArr = passwordField.getPassword(); String password = new String(passwordArr); Arrays.fill(passwordArr, (char) 0); Image profilePicture = null; if (imageFromFileRadioButton.isSelected()) { if (fileSelector.getFilePath() != null) { profilePicture = new FileImage(fileSelector.getFilePath()); } } Request request = new CreateUserRequest( communicator.getHttpClient(), frame, firstName, lastName, emailAddress, sexOfPerson, country, birthdayYear, birthdayMonth, birthdayDay, password, profilePicture) { @Override protected void onCreateUser(String status, Person person) { if (status.equals("INVALID_PROFILE_PICTURE")) { communicator.promptForCreateAccount("Invalid profile picture"); } else if (status.equals("ERROR_CREATING_USER")) { communicator.promptForCreateAccount("Error creating user"); } else if (status.equals("CONNECTION_ERROR")) { communicator.promptForCreateAccount("Error connecting to Modeling Commons"); } else if (status.equals("SUCCESS")) { communicator.setPerson(person); communicator.promptForUpload(); } else { communicator.promptForCreateAccount("Unknown server error"); } } }; request.execute(); }