private void changeCachedResource(SaveableCachedResource <T> newCachedResource) { if (currentCachedResource != null) { currentCachedResource.AllowClose = true; } currentCachedResource = newCachedResource; if (currentCachedResource != null) { currentCachedResource.AllowClose = false; } }
public T loadObject(String filename) { //Check the cahce SaveableCachedResource <T> cachedResource = EditorController.ResourceProvider.ResourceCache[filename] as SaveableCachedResource <T>; if (cachedResource == null) { //Missed open real file using (XmlTextReader xmlReader = new XmlTextReader(EditorController.ResourceProvider.openFile(filename))) { cachedResource = new SaveableTypeControllerCachedResource <T>(filename, (T)EditorController.XmlSaver.restoreObject(xmlReader), this); EditorController.ResourceProvider.ResourceCache.add(cachedResource); } } changeCachedResource(cachedResource); return(cachedResource.Saveable); }