You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Gary Kind <ga...@oracle.com> on 2007/08/27 19:20:38 UTC

[Fwd: Re: [Fwd: Re: [Trinidad] XMLMenuModel bug]]


-------- Original Message --------
Subject: 	Re: [Fwd: Re: [Trinidad] XMLMenuModel bug]
Date: 	Mon, 27 Aug 2007 10:03:14 -0700
From: 	Jeanne Waldman <je...@oracle.com>
To: 	Gary Kind <ga...@oracle.com>
References: 	<46...@oracle.com> <46...@oracle.com>



Hey, don't tell me, tell the list. :)

Gary Kind wrote:
> This is not a bug.  The "action" attribute does not perform 
> navigation.   The value, or the value returned by an EL expression, 
> for the action attribute must be a string that matches a 
> navigation-case from-outcome in your faces-config.xml.  THAT is what 
> does the navigation.
>
> Actually, the XMLMenuModel, although it can work for Menus, was meant 
> for tabbed navigation.  It really is a navigation model.
>
> Here is what Luka has done:
>
> > WorkingTaskAdmin:
> >
> > public String addNewWorkingTask(){
> >        sessionBean.addNewWorkingTask();
> >        return "*service:workingTaskWizard"; -- invoking in 
> > tr:commandMenuItem  act as where "return null;*"
> >    }
> >
> > menu-model.xml:
> >
> > <itemNode id="menu241" label="#{mnl.newWorkingTask}" 
> > action="*#{WorkingTaskAdmin.addNewWorkingTask}*" 
> > focusViewId="/service/workingTaskWizard.xhtml" />
>   
> The string returned (in bold) is certainly NOT a navigation-case 
> from-outcome.   Luka should have a navigation-case in his 
> faces-config.xml that resembles this:
>
> <navigation-rule>
>   <navigation-case>
>     <from-outcome>goToWorkingWizard</from-outcome>
>     <to-view-id>/service/workingTaskWizard.*jspx*</to-view-id>
>   </navigation-case>
>        .
>        .
>        .
> </navigation-rule>
>
> His Bean should look like this:
>
> WorkingTaskAdmin:
>
> public  String addNewWorkingTask()
> { 
>   sessionBean.addNewWorkingTask();
>   return "goToWorkingWizard";
> }
>
> and his menu-model.xml itemNode should look like this:
>
> <itemNode id="menu241" label="#{mnl.newWorkingTask}" 
>           action="#{WorkingTaskAdmin.addNewWorkingTask}" 
>           focusViewId="/service/workingTaskWizard.*jspx*" />
>   
>
>
>
>
> Jeanne Waldman wrote:
>> FYI, in case you missed it.
>>
>> -------- Original Message --------
>> Subject: 	Re: [Trinidad] XMLMenuModel bug
>> Date: 	Fri, 24 Aug 2007 13:03:54 +0200
>> From: 	Luka Surija <lu...@iytim.hr> <ma...@iytim.hr>
>> Reply-To: 	MyFaces Discussion <us...@myfaces.apache.org> 
>> <ma...@myfaces.apache.org>
>> To: 	MyFaces Discussion <us...@myfaces.apache.org> 
>> <ma...@myfaces.apache.org>
>> References: 	<46...@iytim.hr> 
>> <ma...@iytim.hr>
>>
>>
>>
>> Actually nothing happens, I've found that Firebug is displaying this 
>> error message:
>>
>> validatorArray has no properties:
>>
>> _multiValidate(form#j_id1 index.xhtml, "j_id5:0:j_id6", ["j_id28", 0, 
>> undefined, 17 more...])Common1_0_3.js (line 5248)
>> _validateInline(form#j_id1 index.xhtml, "j_id5:0:j_id6", ["j_id28", 0, 
>> undefined, 17 more...])Common1_0_3.js (line 4589)
>> _j_id1Validator(form#j_id1 index.xhtml, "j_id5:0:j_id6")index.xhtml 
>> (line 245)
>> _validateForm(form#j_id1 index.xhtml, "j_id5:0:j_id6")Common1_0_3.js 
>> (line 4508)
>> submitForm(form#j_id1 index.xhtml, 1, Object source=j_id5:0:j_id6, 
>> undefined)Common1_0_3.js (line 4765)
>> onclick(click clientX=0, clientY=0)index.xhtml (line 1)
>> for(var j=0;j<validatorArray.length;j=j+1)
>>
>>
>>
>> Luka Surija wrote:
>> > If found pretty dummy bug in XMLMenuModel.
>> >
>> > If I call an action method trough XMLMenuModel then the method is 
>> > executed, but no navigation is executed.
>> >
>> >
>> > WorkingTaskAdmin:
>> >
>> > public String addNewWorkingTask(){
>> >        sessionBean.addNewWorkingTask();
>> >        return "service:workingTaskWizard"; -- invoking in 
>> > tr:commandMenuItem  act as where "return null;"
>> >    }
>> >
>> > menu-model.xml:
>> >
>> > <itemNode id="menu241" label="#{mnl.newWorkingTask}" 
>> > action="#{WorkingTaskAdmin.addNewWorkingTask}" 
>> > focusViewId="/service/workingTaskWizard.xhtml" />
>> >
>> >
>> > but if i press this button then everything works as expected.
>> > <tr:commandButton text="#{msg.new_label}" 
>> > action="#{WorkingTaskAdmin.addNewWorkingTask}" />
>> >
>> >
>> > I'm using trinidad 1.0.3-core trunk.
>> >
>>
>>
>>   

Re: [Fwd: Re: [Fwd: Re: [Trinidad] XMLMenuModel bug]]

Posted by Luka Surija <lu...@iytim.hr>.
I think that you didn't read carefully my first post. Maybe I give you 
to little information. Here are some additional infos:

If I call my action by tr:commandButton everything works (navigation + 
internal code execution). It doesn't work only in XMLMenuModel. Of 
course I've setup my navigation in this way:
<navigation-rule>
<navigation-case>
<from-outcome>*service:workingTaskWizard*</from-outcome>
<to-view-id>/service/workingTaskWizard.*jspx*</to-view-id>
</navigation-case>
.
.
.
</navigation-rule>

I have more than 30 item nodes in my menu-model.xml, but all other are 
hard-coded navigation strings:

for example:

 <itemNode id="menu240" label="#{mnl.workingTasks}" 
 action="*service:workingTasks*" 
 focusViewId="/service/workingTasks.xhtml" />


If press this navigation button (it is in level 2) then it jumps to 
desidered page, but invoking this action doesn't work. I know that I 
should do it with actionListener, but I was lazy to create another 
method, so I did for testing purpose put my code in this method to act 
like navigation method, but it looks like something is wrong and I can't 
figure what.

public String addNewWorkingTask(){
        sessionBean.addNewWorkingTask();
        return "*service:workingTaskWizard"; -- invoking in 
 tr:commandMenuItem  act as where "return null;*"
    }



The same odd thing I have with dialog framework. I call an dialog on 
this way than it works:

<tr:commandButton action="dialog:popup" useWindow="true" /> ---> new 
popup window is shown, but
<tr:commandButton action="PopupMB.showPopup" useWindow="true" /> --> 
nothing is happening

public String showPopup(){
return "dialog:popup";
}


Of course for all other cases (navigation trough EL expression) it works 
fine.

I don't know it this has something to do that I'm using following 
configuration:

facelets 1.1.12
trinidad 1.0.3-core trunk
JSF RI 1.2
glassfish v2 b50

Regards
Luka


Gary Kind wrote:
>
>
> -------- Original Message --------
> Subject: 	Re: [Fwd: Re: [Trinidad] XMLMenuModel bug]
> Date: 	Mon, 27 Aug 2007 10:03:14 -0700
> From: 	Jeanne Waldman <je...@oracle.com>
> To: 	Gary Kind <ga...@oracle.com>
> References: 	<46...@oracle.com> <46...@oracle.com>
>
>
>
> Hey, don't tell me, tell the list. :)
>
> Gary Kind wrote:
>> This is not a bug. The "action" attribute does not perform 
>> navigation. The value, or the value returned by an EL expression, for 
>> the action attribute must be a string that matches a navigation-case 
>> from-outcome in your faces-config.xml. THAT is what does the navigation.
>>
>> Actually, the XMLMenuModel, although it can work for Menus, was meant 
>> for tabbed navigation. It really is a navigation model.
>>
>> Here is what Luka has done:
>>
>> > WorkingTaskAdmin:
>> >
>> > public String addNewWorkingTask(){
>> >        sessionBean.addNewWorkingTask();
>> >        return "*service:workingTaskWizard"; -- invoking in 
>> > tr:commandMenuItem  act as where "return null;*"
>> >    }
>> >
>> > menu-model.xml:
>> >
>> > <itemNode id="menu241" label="#{mnl.newWorkingTask}" 
>> > action="*#{WorkingTaskAdmin.addNewWorkingTask}*" 
>> > focusViewId="/service/workingTaskWizard.xhtml" />
>>   
>> The string returned (in bold) is certainly NOT a navigation-case 
>> from-outcome. Luka should have a navigation-case in his 
>> faces-config.xml that resembles this:
>>
>> <navigation-rule>
>> <navigation-case>
>> <from-outcome>goToWorkingWizard</from-outcome>
>> <to-view-id>/service/workingTaskWizard.*jspx*</to-view-id>
>> </navigation-case>
>> .
>> .
>> .
>> </navigation-rule>
>>
>> His Bean should look like this:
>>
>> WorkingTaskAdmin:
>>
>> public String addNewWorkingTask()
>> {
>> sessionBean.addNewWorkingTask();
>> return "goToWorkingWizard";
>> }
>>
>> and his menu-model.xml itemNode should look like this:
>>
>> <itemNode id="menu241" label="#{mnl.newWorkingTask}" 
>>           action="#{WorkingTaskAdmin.addNewWorkingTask}" 
>>           focusViewId="/service/workingTaskWizard.*jspx*" />
>>   
>>
>>
>>
>>
>> Jeanne Waldman wrote:
>>> FYI, in case you missed it.
>>>
>>> -------- Original Message --------
>>> Subject: 	Re: [Trinidad] XMLMenuModel bug
>>> Date: 	Fri, 24 Aug 2007 13:03:54 +0200
>>> From: 	Luka Surija <lu...@iytim.hr> <ma...@iytim.hr>
>>> Reply-To: 	MyFaces Discussion <us...@myfaces.apache.org> 
>>> <ma...@myfaces.apache.org>
>>> To: 	MyFaces Discussion <us...@myfaces.apache.org> 
>>> <ma...@myfaces.apache.org>
>>> References: 	<46...@iytim.hr> 
>>> <ma...@iytim.hr>
>>>
>>>
>>>
>>> Actually nothing happens, I've found that Firebug is displaying this 
>>> error message:
>>>
>>> validatorArray has no properties:
>>>
>>> _multiValidate(form#j_id1 index.xhtml, "j_id5:0:j_id6", ["j_id28", 0, 
>>> undefined, 17 more...])Common1_0_3.js (line 5248)
>>> _validateInline(form#j_id1 index.xhtml, "j_id5:0:j_id6", ["j_id28", 0, 
>>> undefined, 17 more...])Common1_0_3.js (line 4589)
>>> _j_id1Validator(form#j_id1 index.xhtml, "j_id5:0:j_id6")index.xhtml 
>>> (line 245)
>>> _validateForm(form#j_id1 index.xhtml, "j_id5:0:j_id6")Common1_0_3.js 
>>> (line 4508)
>>> submitForm(form#j_id1 index.xhtml, 1, Object source=j_id5:0:j_id6, 
>>> undefined)Common1_0_3.js (line 4765)
>>> onclick(click clientX=0, clientY=0)index.xhtml (line 1)
>>> for(var j=0;j<validatorArray.length;j=j+1)
>>>
>>>
>>>
>>> Luka Surija wrote:
>>> > If found pretty dummy bug in XMLMenuModel.
>>> >
>>> > If I call an action method trough XMLMenuModel then the method is 
>>> > executed, but no navigation is executed.
>>> >
>>> >
>>> > WorkingTaskAdmin:
>>> >
>>> > public String addNewWorkingTask(){
>>> >        sessionBean.addNewWorkingTask();
>>> >        return "service:workingTaskWizard"; -- invoking in 
>>> > tr:commandMenuItem  act as where "return null;"
>>> >    }
>>> >
>>> > menu-model.xml:
>>> >
>>> > <itemNode id="menu241" label="#{mnl.newWorkingTask}" 
>>> > action="#{WorkingTaskAdmin.addNewWorkingTask}" 
>>> > focusViewId="/service/workingTaskWizard.xhtml" />
>>> >
>>> >
>>> > but if i press this button then everything works as expected.
>>> > <tr:commandButton text="#{msg.new_label}" 
>>> > action="#{WorkingTaskAdmin.addNewWorkingTask}" />
>>> >
>>> >
>>> > I'm using trinidad 1.0.3-core trunk.
>>> >
>>>
>>>
>>>   


-- 
Luka Ĺ urija
luka.surija@iytim.hr
+385 98 434 061

I.Y. tim d.o.o.
www.iytim.hr
info@iytim.hr