package { import flash.events.*; import flash.display.*; import interactiveThumbnail.*; import textFieldfact.*; public class CompositeViewWithFactory extends CompositeView { private var lastLookup:XML; private var factory:ExternalImageCreator; private var tfFactory:TextFieldCreator; private var myXML:XML; public function CompositeViewWithFactory(aModel:Object,aController:Object = null) { super(aModel,aController); factory = new ThumbnailCreator(); tfFactory = new TextFieldCreatorConcrete(); } private function displayXML():void { this.removeAll(); myXML = (model as IModel).getXml(); var counter:int = 0; for each(var item:XML in myXML.link) { factory.addThumb(model,controller,item,100,200 * counter,this); tfFactory.addTf(model,controller,item,100,150+200 * counter,this); counter++; } } override public function update(event:Event = null):void { if((model as IModel).getXml() != this.myXML) { displayXML(); } this.updateChildren(); } } }