| 
     
      
      
      From: <jde...@us...> - 2008-08-03 02:38:23
      
     
   | 
Revision: 7310
          http://pcgen.svn.sourceforge.net/pcgen/?rev=7310&view=rev
Author:   jdempsey
Date:     2008-08-03 02:38:32 +0000 (Sun, 03 Aug 2008)
Log Message:
-----------
FReq: REFRESH Button Should Reload All PCCs
Issue#: 1733856
Modified Paths:
--------------
    Trunk/pcgen/code/src/java/pcgen/gui/MainSource.java
    Trunk/pcgen/code/src/java/pcgen/persistence/lst/LstSystemLoader.java
Modified: Trunk/pcgen/code/src/java/pcgen/gui/MainSource.java
===================================================================
--- Trunk/pcgen/code/src/java/pcgen/gui/MainSource.java	2008-08-03 02:19:08 UTC (rev 7309)
+++ Trunk/pcgen/code/src/java/pcgen/gui/MainSource.java	2008-08-03 02:38:32 UTC (rev 7310)
@@ -319,6 +319,20 @@
 	public void refreshCampaigns()
 	{
 		PersistenceManager.getInstance().refreshCampaigns();
+		
+		// After the refresh the selected campaigns list needs to be updated with the new campaigns
+		List<Campaign> refreshedCamps = new ArrayList<Campaign>();
+		for (Campaign oldCamp : selectedCampaigns)
+		{
+			Campaign newCamp = Globals.getCampaignKeyed(oldCamp.getKeyName());
+			if (newCamp != null)
+			{
+				refreshedCamps.add(newCamp);
+			}
+		}
+		selectedCampaigns.clear();
+		selectedCampaigns.addAll(refreshedCamps);
+		
 		updateModels();
 	}
 
Modified: Trunk/pcgen/code/src/java/pcgen/persistence/lst/LstSystemLoader.java
===================================================================
--- Trunk/pcgen/code/src/java/pcgen/persistence/lst/LstSystemLoader.java	2008-08-03 02:19:08 UTC (rev 7309)
+++ Trunk/pcgen/code/src/java/pcgen/persistence/lst/LstSystemLoader.java	2008-08-03 02:38:32 UTC (rev 7310)
@@ -630,6 +630,18 @@
 			.getAbsolutePath());
 		loadPCCFilesInDirectory(SettingsHandler.getPcgenVendorDataDir()
 			.getAbsolutePath());
+
+		// Now that those are loaded, make sure to initialize the recursive campaigns
+		try
+		{
+			campaignLoader.initRecursivePccFiles();
+		}
+		catch (PersistenceLayerException e)
+		{
+			Logging.errorPrint("Failed to refresh campaigns", e);
+		}
+
+		Globals.sortPObjectListByName(Globals.getCampaignList());
 	}
 
 	/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |