# HG changeset patch # User Claus Gittinger # Date 904479075 -7200 # Node ID 43d5982823b99fc7aa9d90f7d2e5d007e8c4d1f6 # Parent 59d86476798aa8a046067208399fa53d1cf1b444 ResourceRetriever moved to libview2 diff -r 59d86476798a -r 43d5982823b9 Make.proto --- a/Make.proto Sat Aug 29 17:58:49 1998 +0200 +++ b/Make.proto Sun Aug 30 14:11:15 1998 +0200 @@ -38,7 +38,6 @@ FontMenu.$(O) \ MenuEditor.$(O) \ ImageEditor.$(O) \ - ResourceRetriever.$(O) \ DataSetBuilder.$(O) \ UIGalleryView.$(O) \ UIHelpTool.$(O) \ @@ -80,7 +79,6 @@ FileSelectionBrowser.$(O): FileSelectionBrowser.st $(STCHDR) FontMenu.$(O): FontMenu.st $(STCHDR) MenuEditor.$(O): MenuEditor.st $(STCHDR) -ResourceRetriever.$(O): ResourceRetriever.st $(STCHDR) ResourceSelectionBrowser.$(O): ResourceSelectionBrowser.st $(STCHDR) SelectionBrowser.$(O): SelectionBrowser.st $(STCHDR) UIGalleryView.$(O): UIGalleryView.st $(STCHDR) diff -r 59d86476798a -r 43d5982823b9 ResourceRetriever.st --- a/ResourceRetriever.st Sat Aug 29 17:58:49 1998 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,291 +0,0 @@ -" - COPYRIGHT (c) 1997 by eXept Software AG - All Rights Reserved - - This software is furnished under a license and may be used - only in accordance with the terms of that license and with the - inclusion of the above copyright notice. This software may not - be provided or otherwise made available to, or used by, any - other person. No title to or ownership of the software is - hereby transferred. -" - - - - -Object subclass:#ResourceRetriever - instanceVariableNames:'className resourceOwner selector labelText' - classVariableNames:'' - poolDictionaries:'' - category:'Interface-Support-UI' -! - -ResourceRetriever class instanceVariableNames:'LabelResources' - -" - The following class instance variables are inherited by this class: - - Object - -" -! - -!ResourceRetriever class methodsFor:'documentation'! - -copyright -" - COPYRIGHT (c) 1997 by eXept Software AG - All Rights Reserved - - This software is furnished under a license and may be used - only in accordance with the terms of that license and with the - inclusion of the above copyright notice. This software may not - be provided or otherwise made available to, or used by, any - other person. No title to or ownership of the software is - hereby transferred. -" - - - -! - -documentation -" - ST80 compatibility class. - - The class is not completed yet and certainly not bug free. - Also, it is not guaranteed that all winSpecs are understood. - - Notice: - this class was implemented using protocol information - from alpha testers, literature and by reading public domain code - - it may not be complete or compatible to - the corresponding ST-80 class. - If you encounter any incompatibilities, please forward a note - describing the incompatibility verbal (i.e. no code) to the ST/X team. - - [author:] - Claus Atzkern - - [see also:] - Application - Menu - MenuItem -" - - - -! ! - -!ResourceRetriever class methodsFor:'accessing resource'! - -findResourceLabel: label in: aResourceOwner - "look for a string - in aResourceOwner, - in class of aResourceOwner, - in resources of class of aResourceOwner, - and finally in my label resources - " - - aResourceOwner isNil ifTrue: [^label]. - - label isSymbol - ifTrue: - [ - (aResourceOwner respondsTo: label) - ifTrue: - [ - ^aResourceOwner perform: label - ]. - - (aResourceOwner isClass not and: [aResourceOwner class respondsTo: label]) - ifTrue: - [ - ^aResourceOwner perform: label - ]. - ]. - - ((aResourceOwner isKindOf: ApplicationModel) or: - [aResourceOwner isKindOf: SimpleView]) - ifTrue: - [ - ^aResourceOwner resources string: label - ]. - - ((aResourceOwner isSubclassOf: ApplicationModel) or: - [aResourceOwner isSubclassOf: SimpleView]) - ifTrue: - [ - ^aResourceOwner resources string: label - ]. - - ^self labelResources string:label - -! - -labelResources - "if not already loaded, get the common label resourcePack - and return it" - - LabelResources isNil ifTrue:[ - LabelResources := ResourcePack for:self. - ]. - ^ LabelResources -! ! - -!ResourceRetriever methodsFor:'accessing'! - -className - "return the value of the instance variable 'className' (automatically generated)" - - ^ className! - -className:something - "set the class which provides the resources - " - className := something. - resourceOwner := nil. -! - -labelText - ^ labelText -! - -labelText:aText - labelText := aText -! - -selector - "return the value of the instance variable 'selector' (automatically generated)" - - ^ selector! - -selector:something - "set the value of the instance variable 'selector' (automatically generated)" - - selector := something. -! - -value - "returns the value assigned to resource or nil - " - |resource| - - (resource := self resource) isNil ifTrue:[ - ^ labelText - ]. - - (labelText notNil and:[resource isImage]) ifTrue:[ - ^ LabelAndIcon icon:resource string:labelText - ]. - ^ resource - - "Modified: / 31.10.1997 / 12:10:05 / cg" -! ! - -!ResourceRetriever methodsFor:'accessing resource'! - -findGuiResourcesIn:aResourceContainer - "setup a resource owner - " - className isNil ifTrue:[ - resourceOwner := aResourceContainer - ]. -! - -resource - "returns a form assigned to resource or nil - " - |img cls| - - selector isNil ifTrue:[ - ^nil - ]. - - resourceOwner isNil ifTrue:[ - (resourceOwner := Smalltalk resolveName:className inClass:self class) isNil ifTrue:[ - ^ nil - ] - ]. - - (resourceOwner respondsTo:#visualFor:) ifTrue:[ - (img := resourceOwner visualFor:selector) notNil ifTrue:[ - ^ img - ] - ]. - - (resourceOwner respondsTo:selector) ifTrue:[ - ^ resourceOwner perform:selector - ]. - - resourceOwner isClass ifFalse:[ - cls := resourceOwner class. - - (cls respondsTo:selector) ifTrue:[ - ^ cls perform:selector - ] - ]. - ^ nil - - "Modified: / 31.10.1997 / 12:09:52 / cg" -! ! - -!ResourceRetriever methodsFor:'converting'! - -fromLiteralArrayEncoding:anArray - "read my values from an encoding. - " - className := anArray at: 2. - selector := anArray at: 3. - - anArray size == 4 ifTrue:[ - labelText := anArray at:4 - ]. - resourceOwner := nil. - -! - -literalArrayEncoding - "encode myself as an array, from which a copy of the receiver can be - reconstructed with #decodeAsLiteralArray. - - The encoding is: - (#ResourceRetriever className selector) - - or if labelText not nil: - (#ResourceRetriever className selector labelText) - " - |myClassName| - - myClassName := self class name. - labelText isNil ifTrue:[ - ^ Array with:myClassName with:className with:selector - ] ifFalse:[ - ^ Array with:myClassName with:className with:selector with:labelText - ]. - - "Modified: / 26.1.1998 / 13:52:43 / cg" -! ! - -!ResourceRetriever methodsFor:'testing'! - -isDefined - "returns true if resource exists - " - selector notNil ifTrue:[ - ^ (resourceOwner notNil or:[className notNil]) - ]. - ^ false -! - -notDefined - "returns false if resource is not defined - " - self isDefined ifTrue:[^ false ] - ifFalse:[^ true ] -! ! - -!ResourceRetriever class methodsFor:'documentation'! - -version - ^ '$Header$' -! !