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 <[email protected]>:
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 <[email protected]>:
<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 <[email protected]>:
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