On Jul 30, 2012, at 11:43 AM, Sr. Ângelo Andrade Cirino wrote:

> Dear Ramsey,
> 
> Thank you for your answer. I've watched your WOWODC presentation twice so 
> far, as well as David's presentation.
> 
>> 
>> Don't put the localized names directly in the nav plist. Localized strings 
>> go in the Localized.strings file. I've never tried accented characters in 
>> the nav plist, but I would suspect it fails because of the 
>> NSPropertyListSerialization parser, not the encoding. Use simple ascii 
>> characters as your item names, then localize those names in the localizable 
>> strings file:
>> 
>> plist contains
>>      {
>>              name = Reports;
>>              action = "session.navController.homeAction"; /* dummy action */
>>      },
>> 
>> Localizable.strings contains
>> 
>> "Nav.Reports" = "Relatórios";
>> 
> 
> Being able to use accents in the names of the menus would be a bonus. See, 
> for me the primary language is Portuguese, and if I localize for other 
> languages, I will surely use all the localization features available, It only 
> happens that I would really like to use the Portuguese names for everything. 
> All my Java classes, methods and properties names have accents with no 
> problem, as well file names (in the Mac) and so on. This was my first problem 
> with accents developing with Eclipse and WO on a Mac. Regarding your 
> recommendations, for instance, my Localizable.strings file contains these 
> strings among others:
> 
>  "Nav.Produtos" = "Products";
>  "Nav.Clientes" = "Customers";
> 
> As my primary aim is the Brazilian market, I do not want to do it the reverse 
> way, like
> 
> 
>  "Nav. Products" = "Produtos";
>  "Nav. Customers" = "Clientes";
> 
> So, lets abide to the NSPropertyListSerialization parser limitation and not 
> use accents in the names.

That should be fine. Or possibly, just wrapping the value in "" may work.

name="Relatórios";

I don't know for sure. I never used special characters in the nav menu plist.

> 
>>> 
>>> Finally, here follows two of the rules I set up in RuleModeler trying to 
>>> make the menu system work (as formatted by RuleModeler):
>>> 
>>>  {
>>>    "author" = "50"; 
>>>    "class" = "com.webobjects.directtoweb.Rule"; 
>>>    "documentation" = "Default tab state for products pages"; 
>>>    "lhs" = {
>>>      "class" = "com.webobjects.eocontrol.EOKeyValueQualifier"; 
>>>      "key" = "pageConfiguration"; 
>>>      "selectorName" = "isEqualTo"; 
>>>      "value" = "Produtos"; 
>>>    }; 
>>>    "rhs" = {
>>>      "class" = "com.webobjects.directtoweb.Assignment"; 
>>>      "keyPath" = "navigationState"; 
>>>      "value" = "Produtos"; 
>>>    }; 
>>>  }, 
>> 
>> This rule is wrong. PageConfigurations should be named something like 
>> EditProduct, CreateProduct, ListProduct. Not just Product.
>> 
>>>  {
>>>    "author" = "50"; 
>>>    "class" = "com.webobjects.directtoweb.Rule"; 
>>>    "lhs" = {
>>>      "class" = "com.webobjects.eocontrol.EOKeyValueQualifier"; 
>>>      "key" = "pageConfiguration"; 
>>>      "selectorName" = "isLike"; 
>>>      "value" = "*Pessoal*"; 
>>>    }; 
>>>    "rhs" = {
>>>      "class" = "com.webobjects.directtoweb.Assignment"; 
>>>      "keyPath" = "navigationState"; 
>>>      "value" = "Pessoal"; 
>>>    }; 
>>>  }, 
>> 
>> This rule looks like it should work, but the priority may be too low or the 
>> rule system is not seeing it. Try to right click refresh your rule file in 
>> eclipse to see if that makes a difference.  
>> 
> 
> Regarding the PageConfigurations, I meant to have the first layer of menu 
> items not as actions on themselves, but just as menu markers for the user to 
> select the specific submenu items, something like opening the Customer menu 
> and then selecting the submenu Newsletter to enter the interface for sending 
> the newsletter. In my application a Products menu item isn't meant to display 
> a list of products, but instead to display its submenus with options like 
> "List All", "Reports" and "Procurement".
> 
>> Are you using the standalone rule modeler app? If not I would strongly 
>> suggest you do so. It can refresh the rules whenever you make changes to 
>> them. I'm guessing you are not using the standalone app, because your rule 
>> is a plist when the standalone app produces an slightly more intelligible 
>> string.
>> 
>> If you are developing on a mac, get it and configure it correctly
>> 
>> http://wocommunity.org/documents/tools/RuleModeler-latest.tar.gz
>> 
>> http://wiki.wocommunity.org/display/documentation/Configuring+Rule+Modeler
>> 
>> Ramsey
>> 
> 
> I am indeed using RuleModeler, but I didn't pay attention to the specific 
> preference option to generate the rules in one line each.

Are you using an old version perhaps?  When I copy a rule from modeler it looks 
like

50 : pageConfiguration like '*Movie*' => navigationState = "Movie" 
[com.webobjects.directtoweb.Assignment]

No plist. The all rules in a single line is important when you need to read 
your commit history in the source repository.

> 
> Well, I simplified the menu to just one level with four items to experiment 
> with the rules. When selected, each menu is performing adequately, listing 
> the entities it is meant to, with the associated action and 
> D2W.factory().listPageForEntityNamed. But the menu system stubbornly do not 
> highlight the chosen menu option, Principal is locked to be the highlighted 
> menu. The menu and the associated rules are now these:
> 
> NavigationMenu.plist
> 
> (
>       {
>               name = Root;
>               children = (Principal,Pacotes,Clientes,Usuarios);
>       },
>       {
>               name = Principal;
>               action = "session.navController.homeAction";
>       },
>       {
>               name = Pacotes;
>               action = "session.navController.pacotesAction";
>       },
>       {
>               name = Clientes;
>               action = "session.navController.clientesAction";
>       },
>       {
>               name = Usuarios;
>               action = "session.navController.usuáriosAction";
>       }
> )
> 
> user.d2wmodel rules associated with the menu items
> 
> {"author" = "100"; "class" = "com.webobjects.directtoweb.Rule"; "lhs" = 
> {"class" = "com.webobjects.eocontrol.EOKeyValueQualifier"; "key" = 
> "pageConfiguration"; "selectorName" = "isLike"; "value" = "*Usuario*"; }; 
> "rhs" = {"class" = "com.webobjects.directtoweb.Assignment"; "keyPath" = 
> "navigationState"; "value" = "Usuarios"; }; }, 
>    {"author" = "100"; "class" = "com.webobjects.directtoweb.Rule"; "lhs" = 
> {"class" = "com.webobjects.eocontrol.EOKeyValueQualifier"; "key" = 
> "pageConfiguration"; "selectorName" = "isLike"; "value" = "*Produto*"; }; 
> "rhs" = {"class" = "com.webobjects.directtoweb.Assignment"; "keyPath" = 
> "navigationState"; "value" = "Produtos"; }; }, 
>    {"author" = "100"; "class" = "com.webobjects.directtoweb.Rule"; "lhs" = 
> {"class" = "com.webobjects.eocontrol.EOKeyValueQualifier"; "key" = 
> "pageConfiguration"; "selectorName" = "isLike"; "value" = "*Clientes*"; }; 
> "rhs" = {"class" = "com.webobjects.directtoweb.Assignment"; "keyPath" = 
> "navigationState"; "value" = "Clientes"; }; }, 
> 
> I can not see what I am doing wrong so that the navigation menu isn't 
> highlighting the selected option. But I also need to yet figure out how to 
> create and use submenus.
> 
> Thanks,
> 
> Angelo

That looks like it should work. You need to debug your rule firings to see why 
nothing is happening.

Ramsey


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to