()
| 742 | } |
| 743 | |
| 744 | boolean showSavePartyChooser() |
| 745 | { |
| 746 | PartyFacade party = CharacterManager.getCharacters(); |
| 747 | PCGenSettings context = PCGenSettings.getInstance(); |
| 748 | String parentPath = context.getProperty(PCGenSettings.PCP_SAVE_PATH); |
| 749 | File oldFile = party.getFileRef().get(); |
| 750 | |
| 751 | |
| 752 | FileChooser fileChooser = new FileChooser(); |
| 753 | fileChooser.setTitle("Save PCGen Party"); |
| 754 | fileChooser.setInitialDirectory(new File(parentPath)); |
| 755 | |
| 756 | FileChooser.ExtensionFilter extensionFilter = new FileChooser.ExtensionFilter( |
| 757 | "party files only", "*.pcp" |
| 758 | ); |
| 759 | fileChooser.getExtensionFilters().add(extensionFilter); |
| 760 | fileChooser.setSelectedExtensionFilter(extensionFilter); |
| 761 | if (oldFile != null) |
| 762 | { |
| 763 | fileChooser.setInitialFileName(oldFile.getName()); |
| 764 | } |
| 765 | |
| 766 | File file = GuiUtility.runOnJavaFXThreadNow(() -> |
| 767 | fileChooser.showSaveDialog(null)); |
| 768 | |
| 769 | if (file == null) |
| 770 | { |
| 771 | return false; |
| 772 | } |
| 773 | if (file.exists()) |
| 774 | { |
| 775 | boolean overwrite = |
| 776 | showWarningConfirm( |
| 777 | LanguageBundle.getFormattedString("in_savePcConfirmOverTitle", file.getName()), //$NON-NLS-1$ |
| 778 | LanguageBundle.getFormattedString("in_savePcConfirmOverMsg", file.getName())); //$NON-NLS-1$ |
| 779 | if (!overwrite) |
| 780 | { |
| 781 | return showSavePartyChooser(); |
| 782 | } |
| 783 | } |
| 784 | party.setFile(file); |
| 785 | context.setProperty(PCGenSettings.PCP_SAVE_PATH, file.getParent()); |
| 786 | if (!saveAllCharacters()) |
| 787 | { |
| 788 | showErrorMessage(LanguageBundle.getString("in_savePartyFailTitle"), //$NON-NLS-1$ |
| 789 | LanguageBundle.getString("in_savePartyFailMsg")); //$NON-NLS-1$ |
| 790 | return false; |
| 791 | } |
| 792 | if (!CharacterManager.saveCurrentParty()) |
| 793 | { |
| 794 | return showSavePartyChooser(); |
| 795 | } |
| 796 | return true; |
| 797 | } |
| 798 | |
| 799 | boolean saveAllCharacters() |
| 800 | { |
no test coverage detected