Re: Get link to the page that contains custom component

Mats Andersson <[email protected]> Sat, 27 Oct 2018 13:48:24 +0200
Newsgroups gmane.comp.java.tapestry.user
Message-ID <[email protected]>
What do you think about passing the model as a component argument 
instead? That way you are not depending on the order of the calls. See 
also: 
http://jumpstart.doublenegative.com.au/jumpstart6/examples/navigation/whatiscalledandwhen 
for an explanation.


-- 
---------------------- Mats Andersson | Ronsoft AB | +46(0)73 368 79 82


On 2018-10-27 05:00, abangkis wrote:
> Sorry, still having some problems with custom component. I need to pass a
> logged in user object to the component.
>
> So I push the wrapper class from the page to the environment
>
> @BeginRender
> void beginRender() {
>    LoanBundleModel model = new LoanBundleModel();
>    model.setUserId(getCurrentUser().getId());
>    environment.push(LoanBundleModel.class, model);
> }
> And then retrieve it in the component by using environmental
>
> @Environmental
> private LoanBundleModel model;
>
> And use it in a method like this:
> @CommitAfter
> @OnEvent("DeleteDoc")
> void deleteDoc(Long loanDocumentId) {
>    User user = userManager.get(model.getUserId());
>    String message =
> loanDocumentService.deleteLoanApplicationDoc(loanDocumentId, user);
>      if (message != null) {
>        validationTracker.recordError(message);
>      }
> }
>
> But i keep getting. No object of type
> net.mreunionlabs.gri.server.compmodel.gri.LoanBundleModel is available from
> the Environment.
>
> What did I do wrong?
>
> Thanks
>
> On Sat, Oct 27, 2018 at 7:02 AM abangkis <[email protected]> wrote:
>
>> I see. Thanks Dmitry.
>>
>> On Sat, Oct 27, 2018 at 12:23 AM Dmitry Gusev <[email protected]>
>> wrote:
>>
>>> For forms you can use:
>>>
>>>      @Environmental
>>>      private ValidationTracker validationTracker;
>>>
>>> and then
>>>
>>>      validationTracker.recordError(...)
>>>
>>>
>>> On Fri, Oct 26, 2018 at 6:45 PM abangkis <[email protected]> wrote:
>>>
>>>> Thanks a lot Dmitry. It's working great.
>>>>
>>>> There's another thing. If the custom component inside a form and like to
>>>> set some error message.
>>>> If it's a page we can do something like:
>>>>
>>>> @InjectComponent
>>>> private Form form;
>>>>
>>>> form.recordError(message);
>>>>
>>>> How to do something like that in a component?
>>>>
>>>> Thanks a lot.
>>>>
>>>>
>>>>
>>>> On Fri, Oct 26, 2018 at 7:59 PM Dmitry Gusev <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I would try something like this:
>>>>>
>>>>> @Inject ComponentResources resources;
>>>>>
>>>>> and then
>>>>>
>>>>> pageRenderLinkSource.createPageRenderLink(resources.getPageName());
>>>>>
>>>>> On Fri, Oct 26, 2018 at 2:07 PM abangkis <[email protected]> wrote:
>>>>>
>>>>>> Hi guys. I'm moving parts of of my page to a custom component. In
>>> the
>>>>> page
>>>>>> there's a method that will go to another page and go back to the
>>>> original
>>>>>> page when finished. Here's the code:
>>>>>>
>>>>>> @OnEvent("AddDoc")
>>>>>> Object addDoc() {
>>>>>> Link thisPage =
>>>>> pageRenderLinkSource.createPageRenderLink(this.getClass());
>>>>>> addLoanDocPage.setLoanApplicationId(loanApplication.getId());
>>>>>> addLoanDocPage.setLinkBack(thisPage);
>>>>>> return addLoanDocPage;
>>>>>> }
>>>>>>
>>>>>> I'm moving that method to the custom component. How can  the
>>> component
>>>>>> generate the Link to the page that contains it?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> --
>>>>>> http://www.mreunionlabs.net/ <http://www.mreunion-labs.net/>
>>>>>> twitter : @mreunionlabs @abangkis
>>>>>> page : https://plus.google.com/104168782385184990771
>>>>>>
>>>>>
>>>>> --
>>>>> Dmitry Gusev
>>>>>
>>>>> AnjLab Team
>>>>> http://anjlab.com
>>>>>
>>>>
>>>> --
>>>> http://www.mreunionlabs.net/ <http://www.mreunion-labs.net/>
>>>> twitter : @mreunionlabs @abangkis
>>>> page : https://plus.google.com/104168782385184990771
>>>>
>>>
>>> --
>>> Dmitry Gusev
>>>
>>> AnjLab Team
>>> http://anjlab.com
>>>
>>
>> --
>> http://www.mreunionlabs.net/ <http://www.mreunion-labs.net/>
>> twitter : @mreunionlabs @abangkis
>> page : https://plus.google.com/104168782385184990771
>>
>