From: <cpm...@us...> - 2011-11-14 03:53:02
|
Revision: 15527 http://pcgen.svn.sourceforge.net/pcgen/?rev=15527&view=rev Author: cpmeister Date: 2011-11-14 03:52:55 +0000 (Mon, 14 Nov 2011) Log Message: ----------- Fixed errors that occurred when opening characters while loading sources at the same time Modified Paths: -------------- sandbox/uisync/code/src/java/pcgen/gui2/PCGenFrame.java sandbox/uisync/code/src/java/pcgen/gui2/PCGenMenuBar.java Modified: sandbox/uisync/code/src/java/pcgen/gui2/PCGenFrame.java =================================================================== --- sandbox/uisync/code/src/java/pcgen/gui2/PCGenFrame.java 2011-11-14 03:45:42 UTC (rev 15526) +++ sandbox/uisync/code/src/java/pcgen/gui2/PCGenFrame.java 2011-11-14 03:52:55 UTC (rev 15527) @@ -488,21 +488,30 @@ * are being loaded any calls to this method are ignored until * sources are finished loading. * @param sources a SourceSelectionFacade specifying the sources to load + * @return true if the sources are loaded or are loading */ - public void loadSourceSelection(SourceSelectionFacade sources) + public boolean loadSourceSelection(SourceSelectionFacade sources) { - if (sources == null - || (sourceLoader != null && sourceLoader.isAlive()) - || checkSourceEquality(sources, currentSourceSelection.getReference())) + if (sources == null) { - return; + return false; } + if (sourceLoader != null && sourceLoader.isAlive()) + { + return checkSourceEquality(sources, sourceLoader.sources); + } + if (checkSourceEquality(sources, currentSourceSelection.getReference())) + { + return true; + } //make sure all characters are closed before loading new sources. if (closeAllCharacters()) { sourceLoader = new SourceLoadWorker(sources); sourceLoader.start(); + return true; } + return false; } private boolean checkSourceEquality(SourceSelectionFacade source1, SourceSelectionFacade source2) @@ -799,8 +808,7 @@ } else if (!sources.getCampaigns().isEmpty()) { - loadSourceSelection(sources); - if (sourceLoader != null) + if(loadSourceSelection(sources)) { new Thread() { @@ -828,6 +836,12 @@ }.start(); } + else + { + JOptionPane.showMessageDialog(this, + "Non-compatable sources are being loaded", + "Unable To Load Character", JOptionPane.ERROR_MESSAGE); + } } else { @@ -842,7 +856,7 @@ */ private void updateTitle() { - StringBuffer title = new StringBuffer(); + StringBuilder title = new StringBuilder(); File characterFile = null; String characterFileName = null; String sourceName = null; @@ -1125,7 +1139,7 @@ statusBar.setSourceLoadErrors(worker.get()); //now that the SourceFileLoader has finished //handle licenses and whatnot - StringBuffer sec15 = new StringBuffer(" "); + StringBuilder sec15 = new StringBuilder(" "); sec15.append(readTextFromFile(ConfigurationSettings.getSystemsDir() + File.separator + "opengaminglicense.10a.txt")); sec15.append(loader.getOGL()); Modified: sandbox/uisync/code/src/java/pcgen/gui2/PCGenMenuBar.java =================================================================== --- sandbox/uisync/code/src/java/pcgen/gui2/PCGenMenuBar.java 2011-11-14 03:45:42 UTC (rev 15526) +++ sandbox/uisync/code/src/java/pcgen/gui2/PCGenMenuBar.java 2011-11-14 03:52:55 UTC (rev 15527) @@ -257,8 +257,10 @@ if (e.getStateChange() == ItemEvent.SELECTED) { Object item = e.getItemSelectable().getSelectedObjects()[0]; - frame.loadSourceSelection((SourceSelectionFacade) item); - setSelectedItem(frame.getCurrentSourceSelectionRef().getReference()); + if (frame.loadSourceSelection((SourceSelectionFacade) item)) + { + setSelectedItem(frame.getCurrentSourceSelectionRef().getReference()); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |