#BUGFIX by cg
authorClaus Gittinger <cg@exept.de>
Thu, 13 Dec 2018 13:24:53 +0100
changeset 8599 da233078d5a1
parent 8598 ce6df5ba954e
child 8600 c5f182d1cc3c
#BUGFIX by cg class: ResourcePack class added: #forPackage:resourceFileName:cached:defaultIfAbsent: changed: #forPackage:cached: #forPackage:resourceFileName:cached: care for missing resources.rs file (use lang/territory)
ResourcePack.st
--- a/ResourcePack.st	Thu Dec 06 04:35:46 2018 +0000
+++ b/ResourcePack.st	Thu Dec 13 13:24:53 2018 +0100
@@ -337,13 +337,30 @@
     "get the full resource definitions given a package id (such as stx:libbasic').
      Also optionally leave the resulting pack in the cache for faster access next time."
 
-    ^ self forPackage:package resourceFileName:'resources.rs' cached:cached
-
+    |pack lang territory|
+    
+    pack := self forPackage:package resourceFileName:'resources.rs' cached:cached defaultIfAbsent:false.
+    pack isNil ifTrue:[
+        lang := Smalltalk language.
+        territory := Smalltalk languageTerritory.
+        pack := self forPackage:package resourceFileName:(lang,'_',territory,'.rs') cached:cached defaultIfAbsent:false.
+        pack isNil ifTrue:[
+            pack := self forPackage:package resourceFileName:(lang,'.rs') cached:cached defaultIfAbsent:false.
+            pack isNil ifTrue:[
+                pack := self newDefaultResourcePackForPackage:package.
+                self addAdditionalSuperPacksForPackage:package to:pack.
+            ].
+        ]
+    ].
+    ^ pack
+    
     "
      ResourcePack forPackage:'stx:libbasic' cached:false
+     ResourcePack forPackage:'exept:expecco/plugin/windowsAutomation2' cached:false
     "
 
     "Modified: / 19-10-2006 / 23:18:28 / cg"
+    "Modified: / 13-12-2018 / 13:24:56 / Claus Gittinger"
 !
 
 forPackage:package resourceFileName:resourceFileName cached:cached
@@ -351,10 +368,35 @@
      Also optionally leave the resulting pack in the cache for faster access next time.
      Remember failed packs, to avoid retrying reading the file again and again"
 
+    ^ self
+        forPackage:package 
+        resourceFileName:resourceFileName 
+        cached:cached 
+        defaultIfAbsent:true
+
+    "
+     ResourcePack flushCachedResourcePacks.
+    
+     ResourcePack 
+        forPackage:'stx:libbasic' 
+        resourceFileName:'resources.rs' 
+        cached:false
+    "
+
+    "Modified: / 28-09-2011 / 15:55:30 / cg"
+    "Modified: / 13-12-2018 / 13:17:00 / Claus Gittinger"
+!
+
+forPackage:package resourceFileName:resourceFileName cached:cached defaultIfAbsent:defaultIfAbsentBoolean
+    "get the full resource definitions given a package id (such as stx:libbasic').
+     Also optionally leave the resulting pack in the cache for faster access next time.
+     Remember failed packs, to avoid retrying reading the file again and again"
+
     |fullName pack rsrcDir file|
 
     package isNil ifTrue:[
         '[ResourcePack] warning: nil package asking for resource file'.
+        defaultIfAbsentBoolean ifFalse:[^ nil].
         ^ self newDefaultResourcePackForPackage:package
     ].
     
@@ -366,6 +408,7 @@
 
         (FailedToLoadPacks includes:fullName) ifTrue:[
             "/ it already failed to load - do not try again
+            defaultIfAbsentBoolean ifFalse:[^ nil].
             pack := self newDefaultResourcePackForPackage:package.
             self addAdditionalSuperPacksForPackage:package to:pack.
             ^ pack
@@ -381,10 +424,12 @@
         "/ '3) rsrcDir -> ' print.
         "/ rsrcDir printCR.
         rsrcDir exists ifTrue:[
-            pack := self fromFile:resourceFileName directory:rsrcDir cached:cached.
-            pack packsPackage:package.
-            self addAdditionalSuperPacksForPackage:package to:pack.
-            ^ pack
+            (rsrcDir / resourceFileName) exists ifTrue:[
+                pack := self fromFile:resourceFileName directory:rsrcDir cached:cached.
+                pack packsPackage:package.
+                self addAdditionalSuperPacksForPackage:package to:pack.
+                ^ pack
+            ].
         ].
     ].        
         
@@ -398,6 +443,7 @@
     ].
     
     FailedToLoadPacks add:fullName.
+    defaultIfAbsentBoolean ifFalse:[^ nil].
     pack := self newDefaultResourcePackForPackage:package.
     self addAdditionalSuperPacksForPackage:package to:pack.
     ^ pack
@@ -411,8 +457,7 @@
         cached:false
     "
 
-    "Modified: / 28-09-2011 / 15:55:30 / cg"
-    "Modified: / 24-10-2018 / 18:06:02 / Claus Gittinger"
+    "Created: / 13-12-2018 / 13:16:36 / Claus Gittinger"
 !
 
 fromFile:aFileName