'From Moshi of 3 March 2007 [latest update: #1646] on 14 October 2010 at 3:33:09 pm'!"Change Set:		LAlignHandler-yoDate:			14 October 2010Author:			Yoshiki OhshimaIntroduces a handler to align a part in its owner.  We probably should extend it to use #moveToMatchWith: so that regardless the containment structure between owner and target and whole, it just works.ll := LesserphicMorph new openInWorld.a := LBox new.b := LBox extent: 10@10 color: Color green.(LAlignHandler new location: 0.5@1.0; target: a) installTo: b.a addAsParts: b.ll window add: a.LBoxHandleInvoker installTo: a.a on: LGeometryChanged to: b."!LUserEventHandler subclass: #LAlignHandler	instanceVariableNames: 'location'	classVariableNames: ''	poolDictionaries: ''	category: 'LObjects'!!LAlignHandler methodsFor: 'all' stamp: 'yo 10/14/2010 15:30'!listensTo	^ #(LGeometryChanged) asListensArray! !!LAlignHandler methodsFor: 'all' stamp: 'yo 10/14/2010 15:25'!location: aPoint	location := aPoint.! !!LAlignHandler methodsFor: 'all' stamp: 'yo 10/14/2010 15:27'!receive: anAnnouncement from: anObject	(anAnnouncement isKindOf: LGeometryChanged) ifTrue: [		anAnnouncement object = target ifTrue: [			whole pivotPosition: (target extent * location)		].	].! !LAlignHandler removeSelector: #newLocation:!!LAlignHandler reorganize!('worlds-accessors' wiv666location wiv666location:)('all' listensTo location: receive:from:)!