Issue #2954 - Handle missing scale files at cave startup.

Change-Id: I3f7159b7a48e74fc9ad7a4220d6c30b67240aca1

Former-commit-id: 9334bc2b00 [formerly 4b7a68aeca0346f41965b98626e2c728b1a0e532]
Former-commit-id: 372e9dc80f
This commit is contained in:
Mike Duff 2014-03-24 16:07:46 -05:00
parent 75504da2bc
commit 39cb0ac9e3

View file

@ -61,6 +61,7 @@ import com.raytheon.viz.ui.actions.LoadSerializedXml;
* Oct 08, 2013 mschenke Initial creation
* Oct 22, 2013 2491 bsteffen Change from SerializationUtil to
* ProcedureXmlManager
* Mar 24, 2014 2954 mpduff Check for missing map scale files and handle the situation.
*
* </pre>
*
@ -99,16 +100,22 @@ public class MapScalesManager {
private String bundleXml;
private boolean isCustom;
private final boolean isCustom;
private ManagedMapScale(String baseDir, MapScale scale)
throws SerializationException {
this.isCustom = false;
this.scaleFile = new AutoUpdatingLocalizationFile(
PathManagerFactory.getPathManager()
.getStaticLocalizationFile(
baseDir + IPathManager.SEPARATOR
+ scale.getFileName()));
LocalizationFile file = PathManagerFactory.getPathManager()
.getStaticLocalizationFile(
baseDir + IPathManager.SEPARATOR
+ scale.getFileName());
if (file == null || !file.exists()) {
throw new IllegalStateException(
"scalesInfo.xml references missing file "
+ scale.getFileName());
}
this.scaleFile = new AutoUpdatingLocalizationFile(file);
this.scaleFile.addListener(listener);
this.partIds = scale.getPartIds();
this.displayName = scale.getDisplayName();
@ -200,7 +207,7 @@ public class MapScalesManager {
// TODO: Need to figure out best way to create custom scales (depends on
// maps loaded so it can't be at the projection dialog level)
private Collection<ManagedMapScale> customScales = new ArrayList<ManagedMapScale>();
private final Collection<ManagedMapScale> customScales = new ArrayList<ManagedMapScale>();
/**
* Construct a MapScalesManager for the given scales file. File must be