found the following solution to my problem...

my border component needs a list of pages. pages are needed to get i18n
which are only stored in the several libraries. for that purpose i wrote
a little inferface, which is implemented for every page which is
startpage of my plugins (libraries).

public interface ModuleMasterPage
{
        public String getModuleMessage();
        public int getPriority();
}

but how i get references to pages? there is a
applicationStateObject(this is injected by border component and holds
list of pages) which is created with the help of a factory. the factory
looks like this:

1. get all libraryIds with : this.getApplicationSource().getLibraryIds()
2. libraryId is used to create path: String path =
this.getApplicationSource().getLibrarySpecificationPath(libraryId);
3. path is used to create resource: ClasspathResource resource =
this.getResourceFactory().newResource(path);
4. parse specification ILibrarySpecification specification =
this.getSpecificationParser().parseLibrarySpecification(resource);
5. determine which page is startPage, this information is stored in meta
property: String moduleMasterPage =
specification.getProperty(MODULE_MASTER);
6. get page from requestcycle: IPage page =
this.getRequestCycle().getPage(libraryId + ":" + moduleMasterPage);
7. check if page is really a modulemaster page: if(page != null && page
instanceof ModuleMasterPage)
8. add page to list
9. return list (= ApplicationStateObject)

is there anything bad on my handling? would be thankful for any response.

[EMAIL PROTECTED] wrote:
> I see, but why can't you initialise all your plugin libs upon the first
> request?
> Does this really hurt a lot performance-wise? Sorry, but I'm just being
> curious ...
>  
> 
>> -----Original Message-----
>> From: Eckenfellner Klaus [mailto:[EMAIL PROTECTED] 
>> Sent: Friday, July 20, 2007 11:56 AM
>> To: users@tapestry.apache.org
>> Subject: Re: component export message properties to global / 
>> application catalog
>>
>> sorry my fault ....
>>
>>> you should be able to access your components msg-catalog from the 
>>> navigation/border-component via IComponent.getMessages() Does that 
>>> help?
>> plugins are realized as !!! component-libraries !!!. problem 
>> is that library-resources (library-global-catalog and 
>> specification)  are parsed the first time the library is used.
>>
>> but in my navigation solution i need the translation BEFORE 
>> any of my library-information is parsed, exceptionally the 
>> border-library which includes THE navigation logic.
>>
>> therefore IComponent.getMessages() doesn't work for me.
>>
>>> Also, you components/pages could be required to implement some 
>>> interface Named {getDisplayName(Locale);}
>> already done, but also not useful for this case ... reason see above.
>>
>> any other suggestions?
>>
>> ---
>>
>> [EMAIL PROTECTED] wrote:
>>> you should be able to access your components msg-catalog from the 
>>> navigation/border-component via IComponent.getMessages() Does that 
>>> help?
>>> Also, you components/pages could be required to implement some 
>>> interface Named {getDisplayName(Locale);}
>>>
>>>
>>>> -----Original Message-----
>>>> From: Eckenfellner Klaus [mailto:[EMAIL PROTECTED]
>>>> Sent: Friday, July 20, 2007 10:30 AM
>>>> To: users@tapestry.apache.org
>>>> Subject: component export message properties to global / 
>> application 
>>>> catalog
>>>>
>>>> hi everybody!
>>>>
>>>> short description of my application:
>>>> my application uses tapestry components to create some 
>> dynamic plugin 
>>>> behavior. tapestry components can be plugged in and are registered 
>>>> with the help of a configuration-point (hint from marcus schulte 
>>>> thx).
>>>>
>>>> every plugin / component contribute to configuration-point 
>> a pageName 
>>>> and displayName of page. another component (most called border) 
>>>> injects information of configuration point and renders 
>> some kind of 
>>>> navigation bar.
>>>>
>>>> and here is my problem....
>>>>
>>>> the attribute displayName tells me how the page is called. 
>>>> this value is
>>>>    key for i18n - message. problem is, that only the components, 
>>>> which contribute to configuration-point, knows the 
>> translation. for 
>>>> example:
>>>> only the login component know how login is called in EN / 
>> DE / FR ....
>>>> but the message information of the specific component (for example
>>>> login) is not available for the border component (which renders 
>>>> navigation).
>>>>
>>>> I need some mechanism to export messages to Application Catalog.
>>>> does anybody have any idea?
>>>>
>>>> thx
>>>>
>>>>
>>>>
>>>>
>>>>
>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>
>>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to