Sorry, for sure I am missing something but...

if the prim-key is
     <prim-key field="userLoginId"/>
     <prim-key field="userPrefTypeId"/>
and we want to use:

userLoginId -> to specify the user the setting belongs to (i.e. admin)
userPrefTypeId -> to specify the screen setting name (i.e.
ProductKeywordsPanel_collapsed)
userPrefGroupTypeId -> to specify the screen where the settings
belongs to, how can we have two settings (i.e. keywordsearchbox)

how can I have two different settings with the same name but different
screen, that is what the change is all about?

-Bruno

2009/12/8 Adrian Crum <adri...@hlmksw.com>:
> No. The userPrefGroupTypeId field is optional, therefore it cannot be part
> of the primary key. Use the user preference services to get preference
> groups.
>
> I believe most (if not all) widget model classes have a getName() method.
>
> -Adrian
>
> Bruno Busco wrote:
>>
>> Hi Adrian,
>> I am trying to implement as you suggested but I found two difficulties:
>>
>> 1) the entity UserPreference has the following prim-key:
>>      <prim-key field="userLoginId"/>
>>      <prim-key field="userPrefTypeId"/>
>>
>> while it should be
>>      <prim-key field="userLoginId"/>
>>      <prim-key field="userPrefGroupTypeId"/>
>>      <prim-key field="userPrefTypeId"/>
>>
>> to do what you propose. Should we change it?
>>
>> 2) how to retrieve the screen name from a screenlet widget rendering code?
>> I mean I need to pass the screen name to the ftl macro in the
>> MacroScreenRendered.java like this:
>> ...
>>        StringWriter sr = new StringWriter();
>>        sr.append("<@renderScreenletBegin ");
>>        sr.append("screenName=\"");
>>        sr.append(screen.name);
>>        sr.append("\" id=\"");
>>        sr.append(screenlet.getId(context));
>>        sr.append("\" title=\"");
>>        sr.append(title);
>>        sr.append("\" collapsible=");
>>        sr.append(Boolean.toString(collapsible));
>> ...
>> but how to retrieve the screen.name ?
>>
>> Many thanks for any help.
>> -Bruno
>>
>> 2009/12/7 Adrian Crum <adri...@hlmksw.com>:
>>>
>>> Then do the same thing in the model widget code.
>>>
>>> -Adrian
>>>
>>> Bruno Busco wrote:
>>>>
>>>> This would mean to change all the screens! :-(
>>>>
>>>> 2009/12/7 Adrian Crum <adri...@hlmksw.com>:
>>>>>
>>>>> <screen name="MyScreen">
>>>>>  <section>
>>>>>      <actions>
>>>>>          <service service-name="getUserPreferenceGroup">
>>>>>              <field-map field-name="userPrefGroupTypeId"
>>>>> value="MyScreen"/>
>>>>>          </service>
>>>>>          <set field="screenSettings" from-field="userPrefMap"/>
>>>>>      </actions>
>>>>>      ...
>>>>>  </section>
>>>>> </screen>
>>>>>
>>>>>
>>>>> Bruno Busco wrote:
>>>>>>
>>>>>> Adrian,
>>>>>> sorry for the bad sentence, I couldn't even read myself.
>>>>>> I meant that GLOBAL_PREFERENCES gets already loaded in the
>>>>>> ApplicationDecorator.
>>>>>>
>>>>>> So now we have two options to have screenlets with the same id saved
>>>>>> indipendently:
>>>>>> 1) Use a screen related userPrefGroupTypeId.
>>>>>> 2) Combine the screen name for the preference key
>>>>>>
>>>>>> I will work on it...
>>>>>>
>>>>>> Thank you,
>>>>>> -Bruno
>>>>>>
>>>>>>
>>>>>> 2009/12/7 Bilgin Ibryam <bibr...@gmail.com>:
>>>>>>>
>>>>>>> Bruno Busco wrote:
>>>>>>>>
>>>>>>>> Thank you Adrian,
>>>>>>>> but then how to the theme loaded easily? The global ones are already
>>>>>>>> loaded along the selected theme etc.
>>>>>>>>
>>>>>>>> -Bruno
>>>>>>>>
>>>>>>> Or you can combine the screen name and sceenlet id for the preference
>>>>>>> key,
>>>>>>> instead of  (screenlet.id+"_collapsed" )
>>>>>>>
>>>>>>> Bilgin
>>>>>>>
>>>>>>>
>>
>

Reply via email to