# HG changeset patch # User Claus Gittinger # Date 951176084 -3600 # Node ID facab5c393b9244f8ac5631c15cdfc00dc8c504d # Parent e9bf01117ceab9253ccdd556c5bab6b5493cbd61 added #findComponentAt: - recursive search for a named component diff -r e9bf01117cea -r facab5c393b9 WindowBuilder.st --- a/WindowBuilder.st Mon Feb 21 16:50:55 2000 +0100 +++ b/WindowBuilder.st Tue Feb 22 00:34:44 2000 +0100 @@ -307,7 +307,7 @@ "/ cg the following code looks in any application- "/ or master applications builder for the component. - "/ This as an effect, if a subcanvases builder is asked for + "/ This has an effect, if a subcanvases builder is asked for "/ a component, which is actually held by the real-apps builder "/ (in case they have different builders). "/ For now, this code is disabled, since I dont know what effect this @@ -345,6 +345,25 @@ componentCreationHook := something.! +findComponentAt:name + "recursively search for a component identified by its name in myself + and all of my subApplications. + " + + |comp app b| + + (comp := self componentAt:name) notNil ifTrue:[^ comp]. + self window allSubViewsDo:[:v | + ((app := v application) notNil + and:[(b := app builder) notNil + and:[b ~~ self + and:[(comp := b componentAt:name) notNil]]]) ifTrue:[ + ^ comp + ] + ]. + ^ nil +! + focusSequence "return my focus sequence " @@ -1239,5 +1258,5 @@ !WindowBuilder class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libview2/WindowBuilder.st,v 1.87 2000-02-17 14:58:17 cg Exp $' + ^ '$Header: /cvs/stx/stx/libview2/WindowBuilder.st,v 1.88 2000-02-21 23:34:44 cg Exp $' ! !