MCPcopy Create free account
hub / github.com/PCGen/pcgen / showSaveCharacterChooser

Method showSaveCharacterChooser

code/src/java/pcgen/gui2/PCGenFrame.java:823–894  ·  view source on GitHub ↗

This brings up a file chooser allows the user to select the location that a character should be saved to. @param character the character to be saved

(CharacterFacade character)

Source from the content-addressed store, hash-verified

821 * @param character the character to be saved
822 */
823 boolean showSaveCharacterChooser(CharacterFacade character)
824 {
825 PCGenSettings context = PCGenSettings.getInstance();
826 String parentPath = lastCharacterPath;
827 if (parentPath == null)
828 {
829 parentPath = context.getProperty(PCGenSettings.PCG_SAVE_PATH);
830 }
831
832 FileChooser fileChooser = new FileChooser();
833 fileChooser.setTitle("Save PCGen Character File");
834 FileChooser.ExtensionFilter extensionFilter = new FileChooser.ExtensionFilter(
835 "character files only", '*' + Constants.EXTENSION_CHARACTER_FILE
836 );
837 fileChooser.getExtensionFilters().add(extensionFilter);
838 fileChooser.setSelectedExtensionFilter(extensionFilter);
839
840 File prevFile = character.getFileRef().get();
841 if (prevFile == null || StringUtils.isEmpty(prevFile.getName()))
842 {
843 fileChooser.setInitialDirectory(new File(parentPath));
844 fileChooser.setInitialFileName(character.getNameRef().get() + Constants.EXTENSION_CHARACTER_FILE);
845 }
846
847 File file = GuiUtility.runOnJavaFXThreadNow(() ->
848 fileChooser.showSaveDialog(null));
849
850 if (file != null)
851 {
852 UIDelegate delegate = character.getUIDelegate();
853 if (file.isDirectory())
854 {
855 delegate.showErrorMessage(Constants.APPLICATION_NAME,
856 LanguageBundle.getString("in_savePcDirOverwrite")); //$NON-NLS-1$
857 return showSaveCharacterChooser(character);
858 }
859
860 if (file.exists() && (prevFile == null || !file.getName().equals(prevFile.getName())))
861 {
862 boolean overwrite = delegate.showWarningConfirm(
863 LanguageBundle.getFormattedString("in_savePcConfirmOverTitle", //$NON-NLS-1$
864 file.getName()),
865 LanguageBundle.getFormattedString("in_savePcConfirmOverMsg", //$NON-NLS-1$
866 file.getName()));
867
868 if (!overwrite)
869 {
870 return showSaveCharacterChooser(character);
871 }
872 }
873
874 try
875 {
876 character.setFile(file);
877 prepareForSave(character, false);
878 if (!reallySaveCharacter(character))
879 {
880 return showSaveCharacterChooser(character);

Callers 4

saveCharacterMethod · 0.95
prepareForSaveMethod · 0.95
saveAllCharactersMethod · 0.95
actionPerformedMethod · 0.80

Calls 15

getInstanceMethod · 0.95
runOnJavaFXThreadNowMethod · 0.95
showErrorMessageMethod · 0.95
getStringMethod · 0.95
showWarningConfirmMethod · 0.95
getFormattedStringMethod · 0.95
prepareForSaveMethod · 0.95
reallySaveCharacterMethod · 0.95
errorPrintMethod · 0.95
setTitleMethod · 0.65
addMethod · 0.65
getMethod · 0.65

Tested by

no test coverage detected