From: <jde...@us...> - 2010-10-20 11:46:18
|
Revision: 13512 http://pcgen.svn.sourceforge.net/pcgen/?rev=13512&view=rev Author: jdempsey Date: 2010-10-20 11:46:10 +0000 (Wed, 20 Oct 2010) Log Message: ----------- Fix bug: Initiative Tool - Duplicate PC function fails with " character has already been loaded" error Issue#: CODE-127 Modified Paths: -------------- branches/5.16.x/pcgen/code/src/java/pcgen/gui/PCGen_Frame1.java branches/5.16.x/pcgen/code/src/java/plugin/initiative/gui/Initiative.java Modified: branches/5.16.x/pcgen/code/src/java/pcgen/gui/PCGen_Frame1.java =================================================================== --- branches/5.16.x/pcgen/code/src/java/pcgen/gui/PCGen_Frame1.java 2010-10-20 05:10:23 UTC (rev 13511) +++ branches/5.16.x/pcgen/code/src/java/pcgen/gui/PCGen_Frame1.java 2010-10-20 11:46:10 UTC (rev 13512) @@ -751,7 +751,7 @@ public PlayerCharacter loadPCFromFile(File file) { - return loadPCFromFile(file, false); + return loadPCFromFile(file, false, false); } /** @@ -811,23 +811,27 @@ * @param file The PCG file containing the PC * @param blockLoadedMessage Whether we block the message that the PC is loaded * to the GMGen plugin system + * @param allowDuplicates Should we allow the user to load the same character multiple times? * @return the PC */ - public PlayerCharacter loadPCFromFile(File file, boolean blockLoadedMessage) + public PlayerCharacter loadPCFromFile(File file, boolean blockLoadedMessage, boolean allowDuplicates) { PlayerCharacter aPC; // Fix for bug 1082786 - loading duplicate pcg files - for (PlayerCharacter possibleDuplicate : Globals.getPCList()) + if (!allowDuplicates) { - if (file.getAbsolutePath().equals(possibleDuplicate.getFileName())) + for (PlayerCharacter possibleDuplicate : Globals.getPCList()) { - // TODO Internationalise - ShowMessageDelegate.showMessageDialog( - "This character has already been loaded from: " - + file.getAbsolutePath(), "Error", MessageType.ERROR); - Logging.errorPrint("The character was already loaded"); - return null; + if (file.getAbsolutePath().equals(possibleDuplicate.getFileName())) + { + // TODO Internationalise + ShowMessageDelegate.showMessageDialog( + "This character has already been loaded from: " + + file.getAbsolutePath(), "Error", MessageType.ERROR); + Logging.errorPrint("The character was already loaded"); + return null; + } } } @@ -2199,7 +2203,7 @@ if (PCGFile.isPCGenCharacterFile(pcFile)) { message.setPlayerCharacter(loadPCFromFile(pcFile, message - .blockLoadedMessage())); + .blockLoadedMessage(), false)); } else if (PCGFile.isPCGenPartyFile(pcFile)) { Modified: branches/5.16.x/pcgen/code/src/java/plugin/initiative/gui/Initiative.java =================================================================== --- branches/5.16.x/pcgen/code/src/java/plugin/initiative/gui/Initiative.java 2010-10-20 05:10:23 UTC (rev 13511) +++ branches/5.16.x/pcgen/code/src/java/plugin/initiative/gui/Initiative.java 2010-10-20 11:46:10 UTC (rev 13512) @@ -1455,19 +1455,9 @@ if (toPaste instanceof PcgCombatant) { PcgCombatant cb = (PcgCombatant) toPaste; - if (PCGen_Frame1.getInst().loadPCFromFile( - new File(cb.getPC().getFileName())) != null) - { - // - } - /*PcgCombatant newCbt; - - PcgCombatant cb = (PcgCombatant) toPaste; - SystemInitiative init = cb.getInitiative(); - SystemHP hitPoints = cb.getHP(); - String name = initList.getUniqueName(cb.getName()); - newCbt = new PcgCombatant(cb.getPC()); - initList.add(newCbt);*/ + PCGen_Frame1.getInst().loadPCFromFile( + new File(cb.getPC().getFileName()), false, true); + // As character exists in pcgen it is automatically added in to the init list } refreshTable(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |