On Friday 10 September 2004 18:07, Stephen McConnell wrote: > > -----Original Message----- > > From: Rajamani Saravanan [mailto:[EMAIL PROTECTED] > > It will be really simple if I can do this without embedding Merlin > > into my application and instead asking it to simply launch all blocks > > found in a folder - BUT AFTER login is through... > > No problem - to do this what you want is a "facility". Instead of > embedding Merlin (and worrying about all of that stuff) just create a > component that request the containing component model via context. For > example - you facility would be the only component within the initial > block but with a reference to the enclosing containment model you can > dynamically populate your container with anything you want based on > whatever logic you want.
> With a reference to the containment model - you're in business. Except he might not know what the business is... What Steve is trying to say; :o) 1. Get the reference to the <container> where the "start" component is located by, /** @avalon.entry key="urn:composition:containment.model" * type="org.apache.avalon.composition.model.ContainmentModel" */ public void contextualize( Context ctx ) { m_Model = (ContainmentModel) ctx.get( "urn:composition:containment.model" ); } Technically (probably considered bad practice) you can also retrieve any container within the application, by getModel(), for instance getModel( "/" ), returns the root container (although it might be the root application container in the future). 2. Any point later in time, you can "load" another container/block dynamically by doing; m_Model.addContainmentModel( blockUrl ); or m_Model.addContainmentModel( blockUrl, configUrl ); This will behave as if those blocks were "launched" at Merlin startup. 3. And you can equally do the opposite, remove the block later. Cheers Niclas -- +------//-------------------+ / http://www.bali.ac / / http://niclas.hedhman.org / +------//-------------------+ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]