Re: t5: autocomplete mixin gets autofocus on field. I don't want that.

2009-09-03 Thread Joachim Van der Auwera (PROGS bvba)

You can disable the autofocus handling in the form component.

Joachim

Britske wrote:
I have a textfield enriched with the autocomplete mixin. 


input class=search t:minChars=3 t:frequency=0.2 t:type=textfield
t:id=quickTextField t:mixins=autocompletearoer2 id=quickTextField
name=Best type=text value=quickTextValue /

This field always gets the focus even though it isn't the first field of the
form. 
Is there a way to disable this? 
I tried to circumvent this by having a javascript set the focus on another

field, but without success: the autcomplete field seems to get the focus
back automatically.

This is a problem since for instance alt-tabbing forth and back to the
browser set's off an ajax-call automatically since the focus is on the
autocomplete field. 

Any way to prevent this? 

Thanks, 
Geert-Jan
  



-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Tapestry-Spring and Spring 3.X

2009-09-03 Thread bestguy

Found a solution, upgrading to 3.0.0.M4 removes the use of the conflicting
antlr class.
You may need to do some creative maven excludes of antlr depending on what
other deps you use (hibernate in my case)


bestguy wrote:
 
 The only issue I came across is that T5.1 and Spring 3 are using two 
 incompatible versions of Antlr library
 
 Is there a workaround?  Pages will not load after startup due to this.
 Excluding one or the other antlr deps will cause an error in either
 Tapestry or Spring.
 
 
 
 Lubor Gajda wrote:
 
 Hi Geoffrey,
 
 I've tried T5.1.0.5 in combination with Spring 3.0.0.M3 and it works fine
 for me. The only issue I came across is that T5.1 and Spring 3 are using
 two
 incompatible versions of Antlr library, but injection of spring beans
 works
 fine for me.
 
 Could you please send us more information about your runtime environment
 (e.g. list of jars on your classpath, your web.xml configuration, what
 application server you are using, etc.)?
 
 Thanks,
 Lubor
 
 On Mon, Jun 29, 2009 at 2:48 PM, Geoffrey Wiseman 
 geoffrey.wise...@gmail.com wrote:
 
 On Mon, Jun 29, 2009 at 9:42 AM, Thiago H. de Paula Figueiredo 
 thiag...@gmail.com wrote:

  Was it already released? Is it backward-compatible with Spring 1 and
 2?
 

 Spring 3.0 is up to Milestone 3.X; I gather a release candidate is due
 in
 the near future, so it might be a good time to start looking at it if
 T5.1
 wants to be compatible at the time of release.

  - Geoffrey
 --
 Geoffrey Wiseman
 http://www.geoffreywiseman.ca/

 
 
 
 

-- 
View this message in context: 
http://www.nabble.com/Tapestry-Spring-and-Spring-3.X-tp24253883p25270757.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



RE: Supporting multiple devices, eg. browser + mobile + TV

2009-09-03 Thread Komiwes Robin
Hi,

We've done that here, and it wasn't a real pleasure party.

but yes, for each component and pages, we can use the same system than 
localization: i.e. : index.tml, index_fr.tml, index_iphone_fr.tml

You've got to decorate a lot of internals services (PagePool, 
ComponentTemplateSource), hack the locale and prey for no API changes in the 
future. :-)

I agree with others comments, a web for desktop browser should never be the 
same web than a web for SmartPhones. You should do a specific app/page for 
other devices.


Robin K.
- Atos Worldline


-Message d'origine-
De : Christian Edward Gruber [mailto:christianedwardgru...@gmail.com]
Envoyé : jeudi 3 septembre 2009 06:04
À : Tapestry users
Objet : Re: Supporting multiple devices, eg. browser + mobile + TV

I'd go further - interfaces for the blind, for the hard of hearing -
these are still more clients.  If the user experience is going to be
substantially altered, then you can convert from some meta-interface
and have everything automatically expressed, but that often requires
that the framework make trade-off choices that are better handled by a
good User Experience designer.  A lot of what makes a good iPhone-
ready application is a different user-flow that's consistent with the
device's unique properties.  Shoe-horning a normal web-interface will
often result in a bad iPhone experience (though better than WAP
phones, to be sure).

cheers,
Christian.

On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:

 Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick 
 alfie.kirkpatr...@ioko.com
  escreveu:

 So I think T5 helps separate concerns and assists in building
 multi-device apps (ie. it's a decent framework to do this in), but
 the
 framework itself could do more if this becomes something many web
 developers end up having to build for in future.

 What exactly could the framework do? There's a framework that does
 it: JSF. Then it got too complicated. Of course, we could be smarter
 than the JSF creators. :) But I agree with Howard: different devices
 with different capabilities, different frontends.

 --
 Thiago H. de Paula Figueiredo
 Independent Java consultant, developer, and instructor
 http://www.arsmachina.com.br/thiago

 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org


Christian Edward Gruber
e-mail: christianedwardgru...@gmail.com
weblog: http://www.geekinasuit.com/


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org




Ce message et les pièces jointes sont confidentiels et réservés à l'usage 
exclusif de ses destinataires. Il peut également être protégé par le secret 
professionnel. Si vous recevez ce message par erreur, merci d'en avertir 
immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant 
être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra 
être recherchée quant au contenu de ce message. Bien que les meilleurs efforts 
soient faits pour maintenir cette transmission exempte de tout virus, 
l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne 
saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for 
the addressee; it may also be privileged. If you receive this e-mail in error, 
please notify the sender immediately and destroy it. As its integrity cannot be 
secured on the Internet, the Atos Origin group liability cannot be triggered 
for the message content. Although the sender endeavours to maintain a computer 
virus-free network, the sender does not warrant that this transmission is 
virus-free and will not be liable for any damages resulting from any virus 
transmitted.


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Testify Base class com.formos.tapestry.testify.testng.TapestryTest is not in a controlled package

2009-09-03 Thread Paul Field
Hi Borut,
 
 thanks VERY much for the explanations.
 I refactored my code to almost match your recomendation (I did not put 
stuff
 from src/main/resources into src/main/java).

Putting the resources in the java tree was the most controversial 
suggestion :-) Definitely a personal preference. But useful for people to 
know that they do have that choice.


 When running mvn clean test I get:
 
 FAILED: testElementIsOnPage
 java.lang.RuntimeException: Request was not handled:
 'demo/DayMonthYearDateInputDemo' may not be a valid page name.
 at 
org.apache.tapestry5.test.PageTester.renderPage(PageTester.java:177)
 at
 test.si.najdi.tapestry.library.demo.components.
 DayMonthYearDateInputDemo.
 testElementIsOnPage(DayMonthYearDateInputDemo.java:14)
 at
 
org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:74)

What's interesting about this stack trace (reading from the bottom up) is 
that TestNG is calling:
 
test.si.najdi.tapestry.library.demo.components.DayMonthYearDateInputDemo.testElementIsOnPage
 


So TestNG is calling the demo page and the demo page contains the test... 
That's not right.

You need the demo page to just be a simple page providing enough 
infrastructure to exercise the component that you want to test.

The test method needs to move into:
 test.si.najdi.tapestry.library.components.DayMonthYearDateInputTest.java


So something like this:

DayMonthYearDateInputTest.java
==
package test.si.najdi.tapestry.library.components;

import org.apache.tapestry5.dom.Document;
import org.testng.Assert;
import org.testng.annotations.Test;

import 
test.si.najdi.tapestry.library.base.AbstractT5ComponentsLibraryTest;

public class DayMonthYearDateInputTest extends
AbstractT5ComponentsLibraryTest {

@Test
public void testElementIsOnPage() {
Document page = 
tester.renderPage(demo/DayMonthYearDateInputDemo);
Assert.assertNotNull(page.getElementById(h1));
}
}


DayMonthYearDateInputDemo.java
==
package test.si.najdi.tapestry.library.demo.components;

public class DayMonthYearDateInputDemo {
}


And you need to make TestNG run that test class (it was trying to run the 
page :-) ):

testng.xml

!DOCTYPE suite SYSTEM http://testng.org/testng-1.0.dtd;
suite name=Najdi.si Tapestry Components Suite parallel=false
thread-count=10 annotations=1.5 verbose=2
parameter name=tapestry.integration-webapp 
value=src/main/webapp/
test name=DayMonthYearDateInput
classes
class
name=test.si.najdi.tapestry.library.components.DayMonthYearDateInputTest/
/classes
/test
/suite


Hopefully that will do the trick.. but let me know if not.



Other things:

 Just prior to this error message a list of available components is also
 printed out on the console:
 ..
 demo/DayMonthYearDateInput:
 test.si.najdi.tapestry.library.demo.components.DayMonthYearDateInputDemo
 demo/DayMonthYearDateInputDemo:
 test.si.najdi.tapestry.library.demo.components.DayMonthYearDateInputDemo
 
 Why there are 2 demo components?

I'm guessing here but I think it because of Tapestry's clever naming 
system. The name of the page ends in Demo and the page is in a demo 
directory and Tapestry allows an abbreviated URL where the Demo can be 
ommitted (i.e. /demo/DayMonthYearDateInput). So my guess is that you are 
seeing Tapestry register the same page under two URLs: the long one and 
the abbreviated one.


 private static final TapestryTester SHARED_TESTER = new
 TapestryTester(demo, DemoModule.class);
 
 I tried instantiating TapestryTester with all kind of appPackage names I
 could think off.

You actually need to be a bit careful with the appPackage name. If you 
give it a name like app, Tapestry will look for AppModule in the 
modules package - now this might be OK for you, but also might build a 
complex IOC that you don't want just for unit testing. So personally, I 
prefer to use a nonsense name (like xxx), because the testing 
infrastructure will ignore that, and then I control exactly the set of 
modules that I want using the TapestryTester constructor. 

- Paul



---

This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and delete this e-mail. Any unauthorized copying, 
disclosure or distribution of the material in this e-mail is strictly forbidden.

Please refer to http://www.db.com/en/content/eu_disclosures.htm for additional 
EU corporate and regulatory disclosures.

Re: t5: autocomplete mixin gets autofocus on field. I don't want that.

2009-09-03 Thread Britske

Yeah thanks! totally missed that. 


Joachim Van der Auwera (PROGS bvba) wrote:
 
 You can disable the autofocus handling in the form component.
 
 Joachim
 
 Britske wrote:
 I have a textfield enriched with the autocomplete mixin. 

 input class=search t:minChars=3 t:frequency=0.2 t:type=textfield
 t:id=quickTextField t:mixins=autocompletearoer2 id=quickTextField
 name=Best type=text value=quickTextValue /

 This field always gets the focus even though it isn't the first field of
 the
 form. 
 Is there a way to disable this? 
 I tried to circumvent this by having a javascript set the focus on
 another
 field, but without success: the autcomplete field seems to get the focus
 back automatically.

 This is a problem since for instance alt-tabbing forth and back to the
 browser set's off an ajax-call automatically since the focus is on the
 autocomplete field. 

 Any way to prevent this? 

 Thanks, 
 Geert-Jan
   
 
 
 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org
 
 
 

-- 
View this message in context: 
http://www.nabble.com/t5%3A-autocomplete-mixin-gets-autofocus-on-field.-I-don%27t-want-that.-tp25255884p25271757.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Supporting multiple devices, eg. browser + mobile + TV

2009-09-03 Thread Sebastian Hennebrueder
The approach followed by Ramaze (a Ruby based framework) is to deliver 
different content depending on the suffix.


I like the approach but Tapestry probably doesn't fit in very well with 
such a concept as content is created by Java Code or templates both in 
pages and components.


The idea to setup a separate application introduces a lot of redundant code.

What about a shadow directory structure holding components and templates 
I would like to overwrite.


myapp/components // the ordinatry
myapp/wap/components / the wap overwrites
...
This allows to reuse what you can and replace what you need.

Depending on the request you dispatch to one namespace or another.


Best Regards / Viele Grüße

Sebastian Hennebrueder
-
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de



Komiwes Robin schrieb:

Hi,

We've done that here, and it wasn't a real pleasure party.

but yes, for each component and pages, we can use the same system than 
localization: i.e. : index.tml, index_fr.tml, index_iphone_fr.tml

You've got to decorate a lot of internals services (PagePool, 
ComponentTemplateSource), hack the locale and prey for no API changes in the 
future. :-)

I agree with others comments, a web for desktop browser should never be the 
same web than a web for SmartPhones. You should do a specific app/page for 
other devices.


Robin K.
- Atos Worldline


-Message d'origine-
De : Christian Edward Gruber [mailto:christianedwardgru...@gmail.com]
Envoyé : jeudi 3 septembre 2009 06:04
À : Tapestry users
Objet : Re: Supporting multiple devices, eg. browser + mobile + TV

I'd go further - interfaces for the blind, for the hard of hearing -
these are still more clients.  If the user experience is going to be
substantially altered, then you can convert from some meta-interface
and have everything automatically expressed, but that often requires
that the framework make trade-off choices that are better handled by a
good User Experience designer.  A lot of what makes a good iPhone-
ready application is a different user-flow that's consistent with the
device's unique properties.  Shoe-horning a normal web-interface will
often result in a bad iPhone experience (though better than WAP
phones, to be sure).

cheers,
Christian.

On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:


Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick 
alfie.kirkpatr...@ioko.com

escreveu:
So I think T5 helps separate concerns and assists in building
multi-device apps (ie. it's a decent framework to do this in), but
the
framework itself could do more if this becomes something many web
developers end up having to build for in future.

What exactly could the framework do? There's a framework that does
it: JSF. Then it got too complicated. Of course, we could be smarter
than the JSF creators. :) But I agree with Howard: different devices
with different capabilities, different frontends.

--
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Christian Edward Gruber
e-mail: christianedwardgru...@gmail.com
weblog: http://www.geekinasuit.com/


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org




Ce message et les pièces jointes sont confidentiels et réservés à l'usage 
exclusif de ses destinataires. Il peut également être protégé par le secret 
professionnel. Si vous recevez ce message par erreur, merci d'en avertir 
immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant 
être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra 
être recherchée quant au contenu de ce message. Bien que les meilleurs efforts 
soient faits pour maintenir cette transmission exempte de tout virus, 
l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne 
saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for 
the addressee; it may also be privileged. If you receive this e-mail in error, 
please notify the sender immediately and destroy it. As its integrity cannot be 
secured on the Internet, the Atos Origin group liability cannot be triggered 
for the message content. Although the sender endeavours to maintain a computer 
virus-free network, the sender does not warrant that this transmission is 
virus-free and will not be liable for any damages resulting from any virus 
transmitted.


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: 

t5: request count

2009-09-03 Thread Angelo Chen

Hi,

In tomcat manager, we can see:

 Request count: 1

is it equivalent to the request make to t5 pages?

Angelo
-- 
View this message in context: 
http://www.nabble.com/t5%3A-request-count-tp25272224p25272224.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Supporting multiple devices, eg. browser + mobile + TV

2009-09-03 Thread Robin K.

myapp/components // the ordinatry
myapp/wap/components / the wap overwrites

We also already test this solution. It can be done for pages with not so
much pain. For components it was a lot more complex. We finally abandonned
this solution.



Sebastian Hennebrueder wrote:
 
 The approach followed by Ramaze (a Ruby based framework) is to deliver 
 different content depending on the suffix.
 
 I like the approach but Tapestry probably doesn't fit in very well with 
 such a concept as content is created by Java Code or templates both in 
 pages and components.
 
 The idea to setup a separate application introduces a lot of redundant
 code.
 
 What about a shadow directory structure holding components and templates 
 I would like to overwrite.
 
 myapp/components // the ordinatry
 myapp/wap/components / the wap overwrites
 ...
 This allows to reuse what you can and replace what you need.
 
 Depending on the request you dispatch to one namespace or another.
 
 
 Best Regards / Viele Grüße
 
 Sebastian Hennebrueder
 -
 Software Developer and Trainer for Hibernate / Java Persistence
 http://www.laliluna.de
 
 
 
 Komiwes Robin schrieb:
 Hi,
 
 We've done that here, and it wasn't a real pleasure party.
 
 but yes, for each component and pages, we can use the same system than
 localization: i.e. : index.tml, index_fr.tml, index_iphone_fr.tml
 
 You've got to decorate a lot of internals services (PagePool,
 ComponentTemplateSource), hack the locale and prey for no API changes in
 the future. :-)
 
 I agree with others comments, a web for desktop browser should never be
 the same web than a web for SmartPhones. You should do a specific
 app/page for other devices.
 
 
 Robin K.
 - Atos Worldline
 
 
 -Message d'origine-
 De : Christian Edward Gruber [mailto:christianedwardgru...@gmail.com]
 Envoyé : jeudi 3 septembre 2009 06:04
 À : Tapestry users
 Objet : Re: Supporting multiple devices, eg. browser + mobile + TV
 
 I'd go further - interfaces for the blind, for the hard of hearing -
 these are still more clients.  If the user experience is going to be
 substantially altered, then you can convert from some meta-interface
 and have everything automatically expressed, but that often requires
 that the framework make trade-off choices that are better handled by a
 good User Experience designer.  A lot of what makes a good iPhone-
 ready application is a different user-flow that's consistent with the
 device's unique properties.  Shoe-horning a normal web-interface will
 often result in a bad iPhone experience (though better than WAP
 phones, to be sure).
 
 cheers,
 Christian.
 
 On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:
 
 Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick
 alfie.kirkpatr...@ioko.com
 escreveu:
 So I think T5 helps separate concerns and assists in building
 multi-device apps (ie. it's a decent framework to do this in), but
 the
 framework itself could do more if this becomes something many web
 developers end up having to build for in future.
 What exactly could the framework do? There's a framework that does
 it: JSF. Then it got too complicated. Of course, we could be smarter
 than the JSF creators. :) But I agree with Howard: different devices
 with different capabilities, different frontends.

 --
 Thiago H. de Paula Figueiredo
 Independent Java consultant, developer, and instructor
 http://www.arsmachina.com.br/thiago

 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org

 
 Christian Edward Gruber
 e-mail: christianedwardgru...@gmail.com
 weblog: http://www.geekinasuit.com/
 
 
 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org
 
 
 
 
 Ce message et les pièces jointes sont confidentiels et réservés à l'usage
 exclusif de ses destinataires. Il peut également être protégé par le
 secret professionnel. Si vous recevez ce message par erreur, merci d'en
 avertir immédiatement l'expéditeur et de le détruire. L'intégrité du
 message ne pouvant être assurée sur Internet, la responsabilité du groupe
 Atos Origin ne pourra être recherchée quant au contenu de ce message.
 Bien que les meilleurs efforts soient faits pour maintenir cette
 transmission exempte de tout virus, l'expéditeur ne donne aucune garantie
 à cet égard et sa responsabilité ne saurait être recherchée pour tout
 dommage résultant d'un virus transmis.
 
 This e-mail and the documents attached are confidential and intended
 solely for the addressee; it may also be privileged. If you receive this
 e-mail in error, please notify the sender immediately and destroy it. As
 its integrity cannot be secured on the Internet, the Atos Origin group
 liability cannot be triggered for the message content. Although the
 sender 

Reloading fails back to old version for nested components

2009-09-03 Thread Sebastian HennebrŸüder

I have the following use case
page A contains component B

I change something in B and redeploy the template of B.
Reloading works

Then I change something in the page and redeploy A. Suddenly the old 
version of B appears again.


Does anybody else experience this behaviour.
--
Best Regards / Viele Grüße

Sebastian Hennebrueder

-
http://www.laliluna.de
Laliluna.de, Berliner Strasse 22, 61118 Bad Vilbel, Germany

* Java Software Development, Support
* Training for Hibernate and Java Persistence
* Tutorials for JSP, JavaServer Faces, Struts, Hibernate and EJB




smime.p7s
Description: S/MIME Cryptographic Signature


Re: Can't get Testify JUnit 4 Mockito working

2009-09-03 Thread Mats Henricson
 Hi Mats,

Hi!

 I then have a subclass with the JUnit 4 test:

 public class GamesLauncherTest extends AbstractPageTest {

 @ForComponents @Mock
 private XyzManager xyzManager;

 @Mock
 private XyzConfig xyzConfig;


 What I get is runtime exceptions, such as this:

 Caused by: java.lang.RuntimeException: Service id 'xyzConfig' is
 not defined by any module.  Defined services: AccessDecisionManager,
 ... VirtualAssetStreamer.
 
 Something is trying to look up a service with id xyzConfig - using that 
 id. I assume you have something like this in your page:
 
@Inject
@Service(xyzConfig)
private XyzConfig config;
 
 If that's true then it might simply be that you haven't got a 
 @ForComponents annotation on your xyzConfig mock. Also, if you name the 
 service (using the @Service annotation) then you need to name it in the 
 @ForComponents too:
 
 public class GamesLauncherTest extends AbstractPageTest {
 
 @ForComponents @Mock
 private XyzManager xyzManager;
  
 @ForComponents(xyzConfig) @Mock
 private XyzConfig xyzConfig;

OK, I'll try that.

 We define our services in spring XML files, and @Inject them into our
 pages, and this worries me quite a bit, since I can't see any examples
 where Spring XML wiring has been mocked.
 
 If you are faking/mocking the services then there's no problem. However, 
 Testify and Tapestry's PageTester don't work with the tapestry-spring 
 integration so you can't rely on the real spring services for (for 
 example) integration tests.

Actually, I don't want the Spring wiring at all. I hope to be able
to use Mockito mocks all the way.

Mats


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Extending ActionLink

2009-09-03 Thread Sebastian Hennebrueder

Hello,
I try to extend ActionLink in order to get rendered the following code.

t:actionlink t:id=delete context=aModel.id
   img src=${context:images/delete.png} alt=Delete image 
title=message:icon_delete/

/t:actionlink

using something like this in my template

t:delete context=aModel.id/

My first try had the effect that the actionlink rendered  like this 
inside of a loop.

http://localhost:8080/content/editreadlist.delete_0.delete/$005bLjava.lang.Object$003b$00407369f6b9?t:ac=770671

Do you have any ideas, how I can achieve what I wanted?

I used the following class
public class Delete {

  
   @Parameter

   private Object[] context;

   public Object[] getContext() {
   return context;
   }


}
with the following template.
body xmlns=http://www.w3.org/1999/xhtml;
   xmlns:t=http://tapestry.apache.org/schema/tapestry_5_1_0.xsd;

t:actionlink t:id=delete context=${context}
   img src=${context:images/delete.png} alt=Delete image 
title=message:icon_delete/

/t:actionlink

/body

--
Best Regards / Viele Grüße

Sebastian Hennebrueder
-
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de




-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: t5: request count

2009-09-03 Thread Kristian Marinkovic
no, because css, js, images,... requests are counted as well 
- not every request is a page request 




Angelo Chen angelochen...@yahoo.com.hk 
03.09.2009 11:02
Bitte antworten an
Tapestry users users@tapestry.apache.org


An
users@tapestry.apache.org
Kopie

Thema
t5: request count








Hi,

In tomcat manager, we can see:

 Request count: 1

is it equivalent to the request make to t5 pages?

Angelo
-- 
View this message in context: 
http://www.nabble.com/t5%3A-request-count-tp25272224p25272224.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org




Re: Extending ActionLink

2009-09-03 Thread Kristian Marinkovic
what type is aModel.id?

maybe you have to register an own ValueEncoder to 
convert aModel.id to a valid client representation
and vice versa. 

just out of curiosity: why dont you define a .btn_delete
css class? should be easier.

g,
kris





Sebastian Hennebrueder use...@laliluna.de 
03.09.2009 11:39
Bitte antworten an
Tapestry users users@tapestry.apache.org


An
Tapestry users users@tapestry.apache.org
Kopie

Thema
Extending ActionLink







Hello,
I try to extend ActionLink in order to get rendered the following code.

t:actionlink t:id=delete context=aModel.id
img src=${context:images/delete.png} alt=Delete image 
title=message:icon_delete/
/t:actionlink

using something like this in my template

t:delete context=aModel.id/

My first try had the effect that the actionlink rendered  like this 
inside of a loop.
http://localhost:8080/content/editreadlist.delete_0.delete/$005bLjava.lang.Object$003b$00407369f6b9?t:ac=770671


Do you have any ideas, how I can achieve what I wanted?

I used the following class
public class Delete {

 
@Parameter
private Object[] context;

public Object[] getContext() {
return context;
}


}
with the following template.
body xmlns=http://www.w3.org/1999/xhtml;
xmlns:t=http://tapestry.apache.org/schema/tapestry_5_1_0.xsd


t:actionlink t:id=delete context=${context}
img src=${context:images/delete.png} alt=Delete image 
title=message:icon_delete/
/t:actionlink

/body

-- 
Best Regards / Viele Grüße

Sebastian Hennebrueder
-
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de




-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org




Re: Extending ActionLink

2009-09-03 Thread Sebastian Hennebrueder

Kristian Marinkovic schrieb:

what type is aModel.id?


aModel is a simple domain class, where as id is an Integer value

But I don't think that this is the problem.

maybe you have to register an own ValueEncoder to 
convert aModel.id to a valid client representation
and vice versa. 

no


just out of curiosity: why dont you define a .btn_delete
css class? should be easier.
The title of the image is used to show a help bubble and I want to show 
an ALT attribute to follow HTML standards as well.
I am not sure if an background image of the action link alines properly 
if I apply a hoover effect to it showing a thin border.


Best Regards

Sebastian Hennebrueder


g,
kris





Sebastian Hennebrueder use...@laliluna.de 
03.09.2009 11:39

Bitte antworten an
Tapestry users users@tapestry.apache.org


An
Tapestry users users@tapestry.apache.org
Kopie

Thema
Extending ActionLink







Hello,
I try to extend ActionLink in order to get rendered the following code.

t:actionlink t:id=delete context=aModel.id
img src=${context:images/delete.png} alt=Delete image 
title=message:icon_delete/

/t:actionlink

using something like this in my template

t:delete context=aModel.id/

My first try had the effect that the actionlink rendered  like this 
inside of a loop.

http://localhost:8080/content/editreadlist.delete_0.delete/$005bLjava.lang.Object$003b$00407369f6b9?t:ac=770671


Do you have any ideas, how I can achieve what I wanted?

I used the following class
public class Delete {

 
@Parameter

private Object[] context;

public Object[] getContext() {
return context;
}


}
with the following template.
body xmlns=http://www.w3.org/1999/xhtml;
xmlns:t=http://tapestry.apache.org/schema/tapestry_5_1_0.xsd


t:actionlink t:id=delete context=${context}
img src=${context:images/delete.png} alt=Delete image 
title=message:icon_delete/

/t:actionlink

/body





--
Best Regards / Viele Grüße

Sebastian Hennebrueder
-
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de



-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Extending ActionLink

2009-09-03 Thread Kristian Marinkovic
yes, you can do it with css! :) just apply an invisble border.
on hover you just set your color. this prevents layout to shake
(redraw)

you're right you don't need an ValueEncoder.a TypeCoercer is
used to convert the context type. it seems like your context object
is being serialized but i cannot find a TypeCoerceTuple doing
this. nor do i understand why it is doing that. i'll try it myself and 
report tomorrow





Sebastian Hennebrueder use...@laliluna.de 
03.09.2009 12:20
Bitte antworten an
Tapestry users users@tapestry.apache.org


An
Tapestry users users@tapestry.apache.org
Kopie

Thema
Re: Extending ActionLink







Kristian Marinkovic schrieb:
 what type is aModel.id?
 
aModel is a simple domain class, where as id is an Integer value

But I don't think that this is the problem.

 maybe you have to register an own ValueEncoder to 
 convert aModel.id to a valid client representation
 and vice versa. 
no
 
 just out of curiosity: why dont you define a .btn_delete
 css class? should be easier.
The title of the image is used to show a help bubble and I want to show 
an ALT attribute to follow HTML standards as well.
I am not sure if an background image of the action link alines properly 
if I apply a hoover effect to it showing a thin border.

Best Regards

Sebastian Hennebrueder
 
 g,
 kris
 
 
 
 
 
 Sebastian Hennebrueder use...@laliluna.de 
 03.09.2009 11:39
 Bitte antworten an
 Tapestry users users@tapestry.apache.org
 
 
 An
 Tapestry users users@tapestry.apache.org
 Kopie
 
 Thema
 Extending ActionLink
 
 
 
 
 
 
 
 Hello,
 I try to extend ActionLink in order to get rendered the following code.
 
 t:actionlink t:id=delete context=aModel.id
 img src=${context:images/delete.png} alt=Delete image 
 title=message:icon_delete/
 /t:actionlink
 
 using something like this in my template
 
 t:delete context=aModel.id/
 
 My first try had the effect that the actionlink rendered  like this 
 inside of a loop.
 
http://localhost:8080/content/editreadlist.delete_0.delete/$005bLjava.lang.Object$003b$00407369f6b9?t:ac=770671

 
 
 Do you have any ideas, how I can achieve what I wanted?
 
 I used the following class
 public class Delete {
 
 
 @Parameter
 private Object[] context;
 
 public Object[] getContext() {
 return context;
 }
 
 
 }
 with the following template.
 body xmlns=http://www.w3.org/1999/xhtml;
 xmlns:t=
http://tapestry.apache.org/schema/tapestry_5_1_0.xsd
 
 
 t:actionlink t:id=delete context=${context}
 img src=${context:images/delete.png} alt=Delete image 
 title=message:icon_delete/
 /t:actionlink
 
 /body
 



-- 
Best Regards / Viele Grüße

Sebastian Hennebrueder
-
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de



-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org




Re: Extending ActionLink

2009-09-03 Thread Felix Gonschorek

hi

Sebastian Hennebrueder schrieb:

t:actionlink t:id=delete context=${context}


shouldn't this be:

t:actionlink t:id=delete context=context

?

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Can't get Testify JUnit 4 Mockito working

2009-09-03 Thread Mats Henricson
 Caused by: java.lang.RuntimeException: Service id 'xyzConfig' is
 not defined by any module.  Defined services: AccessDecisionManager,
 ... VirtualAssetStreamer.
 Something is trying to look up a service with id xyzConfig - using that 
 id. I assume you have something like this in your page:

@Inject
@Service(xyzConfig)
private XyzConfig config;

 If that's true then it might simply be that you haven't got a 
 @ForComponents annotation on your xyzConfig mock. Also, if you name the 
 service (using the @Service annotation) then you need to name it in the 
 @ForComponents too:

 public class GamesLauncherTest extends AbstractPageTest {

 @ForComponents @Mock
 private XyzManager xyzManager;
  
 @ForComponents(xyzConfig) @Mock
 private XyzConfig xyzConfig;
 
 OK, I'll try that.

That didn't work either.

So now I've started out copy paste of example code to my code base,
to see if the MessagePage and ForComponentsJustMockTest examples
would work, and they don't. Same error message.

My current guess is that @ForComponents is pulling in and handling
binding from my real AppManager, even though it is in no way part
of the test.

Does anyone have a clue?

Mats


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



RE: Newbie questions

2009-09-03 Thread Martin Torre Castro

Thank you very much Thiago. 

EventContext is working ok when I'm sending data from the page to the same 
page. But if I send data from another page and I'm setting the EventContext 
parameters as before is show an error:

method onActivate signature: (Lorg/apache/tapestry/EventContext;)V) Illegal 
constant pool index


Do I have to set the onActivate parameters one by one as I usually did or is 
better to make a setContext method in the page receiving the data? If so, how 
do I implement the setter? With a constructor of ArrayEventContext? 


   Thank you very much again. I really aprecciate the help of all you guys. 
It's saving my life!

_
Con Vodafone disfruta de Hotmail gratis en tu móvil. ¡Pruébalo!
http://serviciosmoviles.es.msn.com/hotmail/vodafone.aspx

How do you pass a context to PageTester?

2009-09-03 Thread Mats Henricson
Hi!

Since Testify isn't working for me, I thought I'd look at
this page:

http://tapestry.apache.org/tapestry5.1/guide/unit-testing-pages.html

It has this example:

PageTester tester = new PageTester(appPackage, appName, ...);
Object[] context = new Object[]{ abc, 123 };
Document doc = tester.invoke(new ComponentInvocation(
  new PageLinkTarget(MyPage), context));

Unfortunately I can't find a PageTester.invoke() function
in T5.1. There isn't a ComponentInvocation class either.

So, how IS this supposed to work? And what exactly IS that
context? Is it possible to override the @Injected services
with mock services into my page this way?

Mats

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Supporting multiple devices, eg. browser + mobile + TV

2009-09-03 Thread Ben Gidley
We have had a solution that let us load different templates based on
arbitrary parameters. It would be possible to use this to  select a
different TML for the page.
This does require a some amount of overiding/hacking of internal services so
we never put it into production - but it is certainly feasible.

Ben Gidley

www.gidley.co.uk
b...@gidley.co.uk


On Thu, Sep 3, 2009 at 10:02 AM, Robin K. robin.komi...@atosorigin.comwrote:


 myapp/components // the ordinatry
 myapp/wap/components / the wap overwrites

 We also already test this solution. It can be done for pages with not so
 much pain. For components it was a lot more complex. We finally abandonned
 this solution.



 Sebastian Hennebrueder wrote:
 
  The approach followed by Ramaze (a Ruby based framework) is to deliver
  different content depending on the suffix.
 
  I like the approach but Tapestry probably doesn't fit in very well with
  such a concept as content is created by Java Code or templates both in
  pages and components.
 
  The idea to setup a separate application introduces a lot of redundant
  code.
 
  What about a shadow directory structure holding components and templates
  I would like to overwrite.
 
  myapp/components // the ordinatry
  myapp/wap/components / the wap overwrites
  ...
  This allows to reuse what you can and replace what you need.
 
  Depending on the request you dispatch to one namespace or another.
 
 
  Best Regards / Viele Grüße
 
  Sebastian Hennebrueder
  -
  Software Developer and Trainer for Hibernate / Java Persistence
  http://www.laliluna.de
 
 
 
  Komiwes Robin schrieb:
  Hi,
 
  We've done that here, and it wasn't a real pleasure party.
 
  but yes, for each component and pages, we can use the same system than
  localization: i.e. : index.tml, index_fr.tml, index_iphone_fr.tml
 
  You've got to decorate a lot of internals services (PagePool,
  ComponentTemplateSource), hack the locale and prey for no API changes in
  the future. :-)
 
  I agree with others comments, a web for desktop browser should never be
  the same web than a web for SmartPhones. You should do a specific
  app/page for other devices.
 
 
  Robin K.
  - Atos Worldline
 
 
  -Message d'origine-
  De : Christian Edward Gruber [mailto:christianedwardgru...@gmail.com]
  Envoyé : jeudi 3 septembre 2009 06:04
  À : Tapestry users
  Objet : Re: Supporting multiple devices, eg. browser + mobile + TV
 
  I'd go further - interfaces for the blind, for the hard of hearing -
  these are still more clients.  If the user experience is going to be
  substantially altered, then you can convert from some meta-interface
  and have everything automatically expressed, but that often requires
  that the framework make trade-off choices that are better handled by a
  good User Experience designer.  A lot of what makes a good iPhone-
  ready application is a different user-flow that's consistent with the
  device's unique properties.  Shoe-horning a normal web-interface will
  often result in a bad iPhone experience (though better than WAP
  phones, to be sure).
 
  cheers,
  Christian.
 
  On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:
 
  Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick
  alfie.kirkpatr...@ioko.com
  escreveu:
  So I think T5 helps separate concerns and assists in building
  multi-device apps (ie. it's a decent framework to do this in), but
  the
  framework itself could do more if this becomes something many web
  developers end up having to build for in future.
  What exactly could the framework do? There's a framework that does
  it: JSF. Then it got too complicated. Of course, we could be smarter
  than the JSF creators. :) But I agree with Howard: different devices
  with different capabilities, different frontends.
 
  --
  Thiago H. de Paula Figueiredo
  Independent Java consultant, developer, and instructor
  http://www.arsmachina.com.br/thiago
 
  -
  To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
  For additional commands, e-mail: users-h...@tapestry.apache.org
 
 
  Christian Edward Gruber
  e-mail: christianedwardgru...@gmail.com
  weblog: http://www.geekinasuit.com/
 
 
  -
  To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
  For additional commands, e-mail: users-h...@tapestry.apache.org
 
 
 
 
  Ce message et les pièces jointes sont confidentiels et réservés à
 l'usage
  exclusif de ses destinataires. Il peut également être protégé par le
  secret professionnel. Si vous recevez ce message par erreur, merci d'en
  avertir immédiatement l'expéditeur et de le détruire. L'intégrité du
  message ne pouvant être assurée sur Internet, la responsabilité du
 groupe
  Atos Origin ne pourra être recherchée quant au contenu de ce message.
  Bien que les meilleurs efforts soient faits pour maintenir cette
  transmission exempte de tout 

Re: Newbie questions

2009-09-03 Thread Thiago H. de Paula Figueiredo
Em Thu, 03 Sep 2009 08:40:53 -0300, Martin Torre Castro  
mad...@hotmail.com escreveu:



Thank you very much Thiago.


You're welcome!

EventContext is working ok when I'm sending data from the page to the  
same page. But if I send data from another page and I'm setting the  
EventContext parameters as before is show an error:


method onActivate signature: (Lorg/apache/tapestry/EventContext;)V)  
Illegal constant pool index


This is a compilation or class manipulation issue. Try recompiling your  
application.
It looks like you're trying to receive an array of EventContext in your  
onActivate method: that's not correct. It should be  
onActivate(EventContext context).
The context value can't be an EventContext (something I guess it's fixed  
in the next Tapestry version).


Do I have to set the onActivate parameters one by one as I usually did  
or is better to make a setContext method in the page receiving the data?


If you use a method other than onActivate to recevie data, it's a valid  
choice, but you're not using the activation context.


--
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Can't get Testify JUnit 4 Mockito working

2009-09-03 Thread Paul Field
Mats Henricson m...@henricson.se wrote on 03/09/2009 12:28:23:

 My current guess is that @ForComponents is pulling in and handling
 binding from my real AppManager, even though it is in no way part
 of the test.

In that case try creating the TapestryTester with a nonsense app name:

   private static final TapestryTester SHARED_TESTER
   = new TapestryTester(nonsense, MyModule.class);

That will make sure Tapestry/Testify are using only the modules you 
specify in the constructor.

Paul





---

This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and delete this e-mail. Any unauthorized copying, 
disclosure or distribution of the material in this e-mail is strictly forbidden.

Please refer to http://www.db.com/en/content/eu_disclosures.htm for additional 
EU corporate and regulatory disclosures.

Re: Can't get Testify JUnit 4 Mockito working

2009-09-03 Thread Peter Stavrinides
Hi Mats,

I have checked your configuration and it looks correct, I am using JUnit4 and 
have it working with this same setup... one thing to be conscious of is using 
the correct service scope... you are aware that you may not be using 
TestifyConstants.PERTEST if you source in from AppModule?

regards,
Peter


- Original Message -
From: Paul Field paul.fi...@db.com
To: Tapestry users users@tapestry.apache.org
Sent: Thursday, 3 September, 2009 14:54:55 GMT +02:00 Athens, Beirut, 
Bucharest, Istanbul
Subject: Re: Can't get Testify  JUnit 4  Mockito working

Mats Henricson m...@henricson.se wrote on 03/09/2009 12:28:23:

 My current guess is that @ForComponents is pulling in and handling
 binding from my real AppManager, even though it is in no way part
 of the test.

In that case try creating the TapestryTester with a nonsense app name:

   private static final TapestryTester SHARED_TESTER
   = new TapestryTester(nonsense, MyModule.class);

That will make sure Tapestry/Testify are using only the modules you 
specify in the constructor.

Paul





---

This e-mail may contain confidential and/or privileged information. If you are 
not the intended recipient (or have received this e-mail in error) please 
notify the sender immediately and delete this e-mail. Any unauthorized copying, 
disclosure or distribution of the material in this e-mail is strictly forbidden.

Please refer to http://www.db.com/en/content/eu_disclosures.htm for additional 
EU corporate and regulatory disclosures.

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



eJUG Tapestry presentation

2009-09-03 Thread Christian Köberl

Kristian Marinkovic present Tapestry IoC as a modular application development
solution (and Sam Brannen  Spring-DM) on the 17th September 06:30 - 8:30 pm
in Linz, Austria. This is a eJUG (enterprise Java User Group) Austria
seminar evening - so it will be in German.

More details here: 
http://www.ejug.at/node/25

I guess this will be an interesting evening.

-- 
Chris
-- 
View this message in context: 
http://n2.nabble.com/eJUG-Tapestry-presentation-tp3573019p3573019.html
Sent from the Tapestry Users mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Using object or id in Context

2009-09-03 Thread Mats Andersson

Why are most examples written as context=myObject.id?
Should not the best practice be to use the object directly? This way the 
handler method will be more type safe. Do you know of any good 
best-practices page for issues like this one?


/Tapestry learner


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Extending ActionLink

2009-09-03 Thread Sebastian Hennebrueder

Felix Gonschorek schrieb:

hi

Sebastian Hennebrueder schrieb:

t:actionlink t:id=delete context=${context}


shouldn't this be:

t:actionlink t:id=delete context=context

?

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Hello Felix,

the problem is not the encoded parameter, which is probably due to the 
fact that there is an Object array.


I just want to get the onActionFromDelete called and not an 
onActionFromDelete_0

--
Best Regards / Viele Grüße

Sebastian Hennebrueder
-
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de



-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Newbie questions

2009-09-03 Thread Madtyn
Hi. I made the mvn clean and tried again to run the app but the same
error keeps on.

/* on the FindSocios page */-

showSocios.setSocioSearchType(socioSearchType.toString());  //LINE 122
the stacktrace leads to here, the only hint I have
showSocios.setDateSearchType(dateSearchType.toString());
showSocios.setCatSearchType(catSearchType.toString());

switch(socioSearchType) {
   case ALL:
   return showSocios;
   case BYLOGIN:
   showSocios.setLogin(login);
   return showSocios;
   case BYDNI:
   showSocios.setDni(dni);
   return showSocios;

/* on the ShowSocios page*/--

The onActivate() signature when receiving is:





void onActivate(EventContext context) throws ParseException {

  this.idServ = context.get(Long.class, 3);
  this.login= context.get(String.class, 5);
  this.dni= context.get(String.class, 6);
...and so on
}

java.lang.VerifyError
(class: es/udc/madtyn/gimnasio/web/pages/show/ShowSocios, method:
onActivate signature: (Lorg/apache/tapestry5/EventContext;)V) Illegal
constant pool index
Stack trace:
org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.init(InternalComponentResourcesImpl.java:85)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.init(ComponentPageElementImpl.java:589)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.init(ComponentPageElementImpl.java:602)
org.apache.tapestry5.internal.services.PageElementFactoryImpl.newRootComponentElement(PageElementFactoryImpl.java:266)
org.apache.tapestry5.internal.services.PageLoaderProcessor.loadRootComponent(PageLoaderProcessor.java:412)
org.apache.tapestry5.internal.services.PageLoaderProcessor.loadPage(PageLoaderProcessor.java:390)
org.apache.tapestry5.internal.services.PageLoaderImpl.loadPage(PageLoaderImpl.java:59)
org.apache.tapestry5.internal.services.PagePoolCache.checkout(PagePoolCache.java:210)
org.apache.tapestry5.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:99)
org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:51)
org.apache.tapestry5.internal.services.ComponentSourceImpl.getPage(ComponentSourceImpl.java:79)
es.udc.madtyn.gimnasio.web.pages.find.FindSocios._$read_inject_page_showSocios(FindSocios.java)
es.udc.madtyn.gimnasio.web.pages.find.FindSocios.onSubmitFromBusquedaForm(FindSocios.java:122)

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Can't get Testify JUnit 4 Mockito working

2009-09-03 Thread Mats Henricson
 My current guess is that @ForComponents is pulling in and handling
 binding from my real AppManager, even though it is in no way part
 of the test.
 
 In that case try creating the TapestryTester with a nonsense app name:
 
private static final TapestryTester SHARED_TESTER
= new TapestryTester(nonsense, MyModule.class);
 
 That will make sure Tapestry/Testify are using only the modules you 
 specify in the constructor.

This seems to do the trick, actually! Much much thanks!

But now Acegi Security is kicking in, and I get:

   Can only process HttpServletRequest

Has anyone managed to mock it out of the picture?


Mats

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Can't get Testify JUnit 4 Mockito working

2009-09-03 Thread Peter Stavrinides
Hi Mats,

Yes, this is a question that has come up before, Paul provided the answer... 
you can do a google for the original post, but you will need to create a module 
with a contribution that ensures there are replacement HTTP request/response 
objects available for your tests, then use a mock to replace the request and 
response in your actual test.

This is the code Paul provided:
public static void
contributeRequestHandler(OrderedConfigurationRequestFilter config, final
RequestGlobals requestGlobals) {
RequestFilter filter = new RequestFilter() {
public boolean service(Request request, Response response,
RequestHandler handler) throws IOException {
requestGlobals.storeServletRequestResponse(mock
(HttpServletRequest.class), mock(HttpServletResponse.class));
return handler.service(request, response);
}
};
config.add(EnsureNonNullHttpRequestAndResponse, filter,
before:*);
}

Kind regards,
Peter


- Original Message -
From: Mats Henricson m...@henricson.se
To: Tapestry users users@tapestry.apache.org
Sent: Thursday, 3 September, 2009 16:30:10 GMT +02:00 Athens, Beirut, 
Bucharest, Istanbul
Subject: Re: Can't get Testify  JUnit 4  Mockito working

 My current guess is that @ForComponents is pulling in and handling
 binding from my real AppManager, even though it is in no way part
 of the test.
 
 In that case try creating the TapestryTester with a nonsense app name:
 
private static final TapestryTester SHARED_TESTER
= new TapestryTester(nonsense, MyModule.class);
 
 That will make sure Tapestry/Testify are using only the modules you 
 specify in the constructor.

This seems to do the trick, actually! Much much thanks!

But now Acegi Security is kicking in, and I get:

   Can only process HttpServletRequest

Has anyone managed to mock it out of the picture?


Mats

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Problem with OptimizedSessionPersistedObject not working in Tomcat Jetty

2009-09-03 Thread Blower, Andy
I don't know if anyone else has spotted this, and it may well be the case for 
other servlet containers as well, but we noticed that objects were being 
propagated across our cluster even when a page that only read the session 
object was just being refreshed.

This is a very serious issue, not quite a blocker because everything functions 
okay, but I really think this should be fixed and released as 5.1.0.6 as soon 
as possible. Please take a look at the bug and vote for it if you agree: 
https://issues.apache.org/jira/browse/TAP5-834

I've included a couple of suggestions of solutions, please comment if you thing 
there are any drawbacks or better ones.

Thanks,

Andy.


Re: Using object or id in Context

2009-09-03 Thread P . Stavrinides
Hi Mats,

 Should not the best practice be to use the object directly? 
Imho no, myObject.id is a bean for the page (object with empty constructor), 
which is less error prone. Its nearly always better to use a bean to seperate 
concerns for cleaner, more maintainable code. I.e.: you should not mix database 
access with view logic, instead use a single bean where possible per page and 
handle database access in your services (which makes things more testable and 
reusable)... so it has several advantages. 

The bean is like a glue layer (or the view layer in the MVC pattern). So 
following this pattern means myObject.id is no less type safe as myObject is 
never really going to be null in your page.

regards,
Peter


- Original Message -
From: Mats Andersson mats.anders...@ronsoft.se
To: Tapestry users users@tapestry.apache.org
Sent: Thursday, 3 September, 2009 15:58:20 GMT +02:00 Athens, Beirut, 
Bucharest, Istanbul
Subject: Using object or id in Context

Why are most examples written as context=myObject.id?
Should not the best practice be to use the object directly? This way the 
handler method will be more type safe. Do you know of any good 
best-practices page for issues like this one?

/Tapestry learner


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Using object or id in Context

2009-09-03 Thread Mats Andersson
Thanks Peter for the reply. I am starting to learning the concepts of 
Tapestry, but it takes time to be productive with it. This mailing list 
is a great resource and I hope that I will be able to contribute to it 
once I have learned more.


Regards,
Mats

p.stavrini...@albourne.com wrote:

Hi Mats,

  
Should not the best practice be to use the object directly? 

Imho no, myObject.id is a bean for the page (object with empty constructor), which is less error prone. Its nearly always better to use a bean to seperate concerns for cleaner, more maintainable code. I.e.: you should not mix database access with view logic, instead use a single bean where possible per page and handle database access in your services (which makes things more testable and reusable)... so it has several advantages. 


The bean is like a glue layer (or the view layer in the MVC pattern). So 
following this pattern means myObject.id is no less type safe as myObject is 
never really going to be null in your page.

regards,
Peter


- Original Message -
From: Mats Andersson mats.anders...@ronsoft.se
To: Tapestry users users@tapestry.apache.org
Sent: Thursday, 3 September, 2009 15:58:20 GMT +02:00 Athens, Beirut, 
Bucharest, Istanbul
Subject: Using object or id in Context

Why are most examples written as context=myObject.id?
Should not the best practice be to use the object directly? This way the 
handler method will be more type safe. Do you know of any good 
best-practices page for issues like this one?


/Tapestry learner


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

  


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: [ANN] JumpStart 4.4 released

2009-09-03 Thread Geoff Callender

Kalle,

I'm really glad you asked this question because it got me thinking,  
and I've realised I'm putting too much into onActivate(..). The  
problem is that onActivate() is called regardless of whether the user  
clicks on submit or an ActionLink. The database activity in  
onActivate() is not usually necessary for an ActionLink.


I think this is better...

*  Use onActivate() to read in the context and nothing more.

* Use setupRender() to set up display-only objects and fields. You can  
also use getters if they have low overhead or you take care to lazy- 
load.


* Use onPrepare() to set up editable objects and fields.  onPrepare()  
is triggered by form render and form submit. If there's more than one  
form then use multiple onPrepares, eg. onPrepareForFormX(),  
onPrepareForFormY().


So the examples become...

UserCreate.java:

void onPrepare() {
// Instantiate a User for the page data to overlay.
_user = new User();
_user.setActive(true);
}

UserEdit.java:

Long onPassivate() {
return _userId;
}

void onActivate(Long id) {
_userId = id;
}

void onPrepare() {
try {
_user = getSecurityFinderService().findUser(_userId);
}
catch (DoesNotExistException e) {
// Handle null user in the template
}
}

void setupRender() {
		_userRoles =  
getSecurityFinderService().findUserRolesShallowishByUser(_userId);

}

I've almost finished reworking JumpStart to suit this pattern and it  
works much better.  I'll release a few days from now as version 4.5.2.


The previous technique is a hangover from when I thought onActivate()  
should validate the context and throw an exception if it was invalid.   
I changed my mind on that quite a while ago and wrote this:



http://jumpstart.doublenegative.com.au:8080/jumpstart/examples/infrastructure/handlingabadcontext/1

Thanks again,

Geoff

On 03/09/2009, at 4:53 AM, Kalle Korhonen wrote:


Thanks Geoff, no can't see any major issues. Agree on the
initialization of roles in setupRender() since they really are used
for rendering only. Heavy use of lazy getter-based initialization has
gotten me into trouble before, but I may revisit my coding best
practice. And that's really the only thing I was after - to review my
understanding and practices against others'.

Kalle


On Wed, Sep 2, 2009 at 8:12 AM, Geoff
Callendergeoff.callender.jumpst...@gmail.com wrote:
To set the scene: in the EditUser example, the user is displayed in  
a form
and the user roles are displayed below it in a grid with  
ActionLinks for

View, Edit, and Delete on each row.

The reason it is OK to get the user roles in setupRender() is  
because they
are not editable - all we need is the id for the context of each  
ActionLink
in the row. If you come back to this screen and hit a link then it  
will

still work.

Actually, if the user roles were editable you'd probably get them in
onPrepare() rather than onActivate(), just as in the EditableLoop1  
example.
I can't recall why I preferred onPrepare() over onActivate() but I  
think it

was because it's called exactly as often as it is needed whereas
onActivate() is called often.

If a ValueEncoder is used with the loop then it becomes OK to get the
entities in setupRender() and encode them in onPrepare(). This is
demonstrated in EditableLoopUsingEncoder1.

Back in the user form, user.salutation is chosen from a Select  
list.  The

list doesn't need to be built in onActivate() either.  It's done in
getSalutations() and works just fine with the Back button.

Can you see a hole in this that I've missed?

Geoff
http://jumpstart.doublenegative.com.au:8080/jumpstart/

On 02/09/2009, at 11:56 PM, Kalle Korhonen wrote:


On Tue, Sep 1, 2009 at 11:30 PM, Geoff
Callendergeoff.callender.jumpst...@gmail.com wrote:


The key to it is this snippet: if the stuff you are setting up  
is not
needed for component event requests, consider putting it  
elsewhere. If I
understand your example correctly, the object you are creating IS  
needed

for
a component event request so DO put it in onActivate(...).


Yes, that's just the thing. Whether it's entities or translators or
anything, pretty much all of that stuff is needed for event
requests. Can you come up with a good example for initializing
something that is safe to do in setupRender()? Obviously if that
object is really needed just for rendering (as the operation name
suggests) then it's the right place for it, but those cases are few
and far between. Even in your example, the userRoles are most
certainly needed in event requests - obviously you can just return
error user doesn't have the proper role for the operation but it'd
be more usable to just do that in onActivate as well.

But with edit, if you want optimistic locking then you have to 

RE: Supporting multiple devices, eg. browser + mobile + TV

2009-09-03 Thread Alfie Kirkpatrick
I guess I'm voting to make this better supported, ie. a way to customise the 
way tml's are loaded under the control of the application, therefore not having 
to hack/subvert the existing locale support. It seems to me a few people have 
tried to do this and found it harder than maybe it should be...

I fully understand and appreciate all the comments about having separate apps 
though!

Regards, Alfie.

-Original Message-
From: Komiwes Robin [mailto:robin.komi...@atosorigin.com] 
Sent: 03 September 2009 08:31
To: Tapestry users
Subject: RE: Supporting multiple devices, eg. browser + mobile + TV

Hi,

We've done that here, and it wasn't a real pleasure party.

but yes, for each component and pages, we can use the same system than 
localization: i.e. : index.tml, index_fr.tml, index_iphone_fr.tml

You've got to decorate a lot of internals services (PagePool, 
ComponentTemplateSource), hack the locale and prey for no API changes in the 
future. :-)

I agree with others comments, a web for desktop browser should never be the 
same web than a web for SmartPhones. You should do a specific app/page for 
other devices.


Robin K.
- Atos Worldline


-Message d'origine-
De : Christian Edward Gruber [mailto:christianedwardgru...@gmail.com]
Envoyé : jeudi 3 septembre 2009 06:04
À : Tapestry users
Objet : Re: Supporting multiple devices, eg. browser + mobile + TV

I'd go further - interfaces for the blind, for the hard of hearing -
these are still more clients.  If the user experience is going to be
substantially altered, then you can convert from some meta-interface
and have everything automatically expressed, but that often requires
that the framework make trade-off choices that are better handled by a
good User Experience designer.  A lot of what makes a good iPhone-
ready application is a different user-flow that's consistent with the
device's unique properties.  Shoe-horning a normal web-interface will
often result in a bad iPhone experience (though better than WAP
phones, to be sure).

cheers,
Christian.

On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:

 Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick 
 alfie.kirkpatr...@ioko.com
  escreveu:

 So I think T5 helps separate concerns and assists in building
 multi-device apps (ie. it's a decent framework to do this in), but
 the
 framework itself could do more if this becomes something many web
 developers end up having to build for in future.

 What exactly could the framework do? There's a framework that does
 it: JSF. Then it got too complicated. Of course, we could be smarter
 than the JSF creators. :) But I agree with Howard: different devices
 with different capabilities, different frontends.

 --
 Thiago H. de Paula Figueiredo
 Independent Java consultant, developer, and instructor
 http://www.arsmachina.com.br/thiago

 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org


Christian Edward Gruber
e-mail: christianedwardgru...@gmail.com
weblog: http://www.geekinasuit.com/


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org




Ce message et les pièces jointes sont confidentiels et réservés à l'usage 
exclusif de ses destinataires. Il peut également être protégé par le secret 
professionnel. Si vous recevez ce message par erreur, merci d'en avertir 
immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant 
être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra 
être recherchée quant au contenu de ce message. Bien que les meilleurs efforts 
soient faits pour maintenir cette transmission exempte de tout virus, 
l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne 
saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for 
the addressee; it may also be privileged. If you receive this e-mail in error, 
please notify the sender immediately and destroy it. As its integrity cannot be 
secured on the Internet, the Atos Origin group liability cannot be triggered 
for the message content. Although the sender endeavours to maintain a computer 
virus-free network, the sender does not warrant that this transmission is 
virus-free and will not be liable for any damages resulting from any virus 
transmitted.



-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Marker for required fields on bean editor

2009-09-03 Thread Juan E. Maya
Hi all!

Is it possible to mark the required fields inside a beaneditor form as
valid? I know i could override the field declaration and put the
marker there but i would like to create something more generic.

I was thinking that a Mixin may get the beaneditor's form to get all
the components in the form, iterate over the validators and add the js
or mark to the ones with a required validator but i am not sure how to
accomplish this. Is it possible at all? Has anybody done such thing?

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Add yourself to the Tapestry Users Map

2009-09-03 Thread Howard Lewis Ship
I maintain a map of Google Map of Tapestry users:

http://maps.google.com/maps/ms?ie=UTF8hl=enmsa=0msid=106662057515738259524.0004696f8216ba268b74az=3

It's fun an informative for me, and for others, to see where the Tapestry
users are.  For instance, I can see that Germany is a real hot-bed of
Tapestry activity (a separate discussion would be why there as opposed to
elsewhere?).

Start by clicking the Edit button:

[image: map-edit.png]

Next, click the pushpin icon in the upper left corner of the map:

[image: map-toolbar.png]

Drag the push-pin to where you live:

[image: map-drop.png]

In the popup-bubble, set the Title to your name, add any extra details you
like,
and customize the push-pin icon if you like:

[image: map-details.png]


Click OK to dismiss the dialog, then click Done to save your new pushpin on
the global map:

[image: map-done.png]

-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to learn
how I can get you up and productive in Tapestry fast!


Re: Add yourself to the Tapestry Users Map

2009-09-03 Thread Joel Halbert
Wow, there are a couple of people who must live in the arctic circle.


-Original Message-
From: Howard Lewis Ship hls...@gmail.com
Reply-To: Tapestry users users@tapestry.apache.org
To: Tapestry users users@tapestry.apache.org
Subject: Add yourself to the Tapestry Users Map
Date: Thu, 3 Sep 2009 10:03:57 -0700

I maintain a map of Google Map of Tapestry users:

http://maps.google.com/maps/ms?ie=UTF8hl=enmsa=0msid=106662057515738259524.0004696f8216ba268b74az=3


It's fun an informative for me, and for others, to see where the
Tapestry users are.  For instance, I can see that Germany is a real
hot-bed of Tapestry activity (a separate discussion would be why there
as opposed to elsewhere?).


Start by clicking the Edit button:


map-edit.png



Next, click the pushpin icon in the upper left corner of the map:


map-toolbar.png



Drag the push-pin to where you live:


map-drop.png



In the popup-bubble, set the Title to your name, add any extra details
you like,
and customize the push-pin icon if you like:


map-details.png





Click OK to dismiss the dialog, then click Done to save your new pushpin
on the global map:


map-done.png


-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!





-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Marker for required fields on bean editor

2009-09-03 Thread Sebastian Hennebrueder

Juan E. Maya schrieb:

Hi all!

Is it possible to mark the required fields inside a beaneditor form as
valid? I know i could override the field declaration and put the
marker there but i would like to create something more generic.

I was thinking that a Mixin may get the beaneditor's form to get all
the components in the form, iterate over the validators and add the js
or mark to the ones with a required validator but i am not sure how to
accomplish this. Is it possible at all? Has anybody done such thing?

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



You are aware of @Validate?
http://tapestry.apache.org/tapestry5/guide/validation.html


--
Best Regards / Viele Grüße

Sebastian Hennebrueder
-
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de



-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Marker for required fields on bean editor

2009-09-03 Thread Juan E. Maya
Sorry Sebastian, i was not clear enough.
I want to change the markup of the label when the field has a required
validator. For example i want to add a CSS class required to the label
of the required field. or i want to add a * next to the label.

Thanks for ur answer :)

On Thu, Sep 3, 2009 at 7:40 PM, Sebastian
Hennebruederuse...@laliluna.de wrote:
 Juan E. Maya schrieb:

 Hi all!

 Is it possible to mark the required fields inside a beaneditor form as
 valid? I know i could override the field declaration and put the
 marker there but i would like to create something more generic.

 I was thinking that a Mixin may get the beaneditor's form to get all
 the components in the form, iterate over the validators and add the js
 or mark to the ones with a required validator but i am not sure how to
 accomplish this. Is it possible at all? Has anybody done such thing?

 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org


 You are aware of @Validate?
 http://tapestry.apache.org/tapestry5/guide/validation.html


 --
 Best Regards / Viele Grüße

 Sebastian Hennebrueder
 -
 Software Developer and Trainer for Hibernate / Java Persistence
 http://www.laliluna.de



 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org



-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



TapestryFilter question

2009-09-03 Thread Neo Anderson

I try a simall test using aspectj to capture the doFilter() execution of
TapestryFilter.java. The pointcut intends to caputre the doFilter method and
prints out some information in the e.g. catalina.out log file. The code
looks as below:

public aspect Test{
pointcut intercept(): execution(*
org.apache.tapestry5.services.TapestryFilter.doFilter(..));

void around() : intercept(){
System.out.println( .. test info );
logger.debug( . test info using slf4j); // configure log
properties already. 
proceed();
}
}

If I copy TapestryFilter.java to my own folder e.g. myproject/pkg/web/ and
rename it to e.g. MyTapestryFilter.java. When accessing from the brwoswer
http://localhost:8080/myproject. The log will show the debug information
printed in the catalina.out log file. However, if the web.xml filter class
switch back using TapestryFilter.java, then nothing happens.

I am just curious if Tapestry5 add any contract that prevents bytecode level
weaving? Or is there any source code as entry point I can start to have a
look (TapestryFilter.java looks like a normal Filter calss)? 

I appreciate any help.

Thank you.



-- 
View this message in context: 
http://n2.nabble.com/TapestryFilter-question-tp3574931p3574931.html
Sent from the Tapestry Users mailing list archive at Nabble.com.

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Substitution for Switch/Case/Block to embed components really dynamic ?

2009-09-03 Thread Stefan Schütz

Hi again,

i'm currently working on a solution to embed custom components really  
dynamic.


In short:
I have a page with a custom component with a specific parameter.
The component does nothing else than embedding (one) another custom  
component,
based upon the passed parameter value. (and doing some validation  
etc...)
Sounds simple and could be done with the already known switch/block  
construct.


But...

There will be up to 40+ (!) of these custom embedded components.
And now there are some problems:
- terrible maintenance / extension / changes
- too much hardcoded (at least for me)
- what's about performance issues/memory consumption?
	-The wrapper component need to have bindings to 40 all possible  
embeddable components. I think that could be problematic?


So i've tried it with some different approaches, dived into the API- 
Docs but found nothing really helpful.
Every time i will stuck on the problem that every component has to be  
known in the wrapper components template ...


Long speech, short sense:
Are there any ideas/solutions out there to embed components really  
dynamic?



Greets from Berlin,
Stefan

btw: i found a solution on T4 on the lists, but every used class/ 
service is'nt available in T5.


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: TapestryFilter question

2009-09-03 Thread Howard Lewis Ship
Nothing special in Tapestry ... most likely it's a classloader conflict
between AspectJ and Tomcat. Tomcat must not be loading the bytecode enhanced
version of TapestryFilter, instead loading the standard version.

On Thu, Sep 3, 2009 at 10:51 AM, Neo Anderson
javadeveloper...@yahoo.co.ukwrote:


 I try a simall test using aspectj to capture the doFilter() execution of
 TapestryFilter.java. The pointcut intends to caputre the doFilter method
 and
 prints out some information in the e.g. catalina.out log file. The code
 looks as below:

 public aspect Test{
pointcut intercept(): execution(*
 org.apache.tapestry5.services.TapestryFilter.doFilter(..));

void around() : intercept(){
System.out.println( .. test info );
logger.debug( . test info using slf4j); // configure log
 properties already.
proceed();
}
 }

 If I copy TapestryFilter.java to my own folder e.g. myproject/pkg/web/ and
 rename it to e.g. MyTapestryFilter.java. When accessing from the brwoswer
 http://localhost:8080/myproject. The log will show the debug information
 printed in the catalina.out log file. However, if the web.xml filter class
 switch back using TapestryFilter.java, then nothing happens.

 I am just curious if Tapestry5 add any contract that prevents bytecode
 level
 weaving? Or is there any source code as entry point I can start to have a
 look (TapestryFilter.java looks like a normal Filter calss)?

 I appreciate any help.

 Thank you.



 --
 View this message in context:
 http://n2.nabble.com/TapestryFilter-question-tp3574931p3574931.html
 Sent from the Tapestry Users mailing list archive at Nabble.com.

 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org




-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to learn
how I can get you up and productive in Tapestry fast!


Re: Extending ActionLink

2009-09-03 Thread Thiago H. de Paula Figueiredo
Em Thu, 03 Sep 2009 10:07:56 -0300, Sebastian Hennebrueder  
use...@laliluna.de escreveu:


the problem is not the encoded parameter, which is probably due to the  
fact that there is an Object array.


You should *never* use an expression (${}) when passing parameters to a  
component, as it cause its value to be coerced to a String before being  
passed to the component.


I just want to get the onActionFromDelete called and not an  
onActionFromDelete_0


In inside a loop or grid, there's no solution I can recall. If not, use  
EventLink instead.


--
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Using object or id in Context

2009-09-03 Thread Thiago H. de Paula Figueiredo
Em Thu, 03 Sep 2009 09:58:20 -0300, Mats Andersson  
mats.anders...@ronsoft.se escreveu:



Why are most examples written as context=myObject.id?
Should not the best practice be to use the object directly? This way the  
handler method will be more type safe. Do you know of any good  
best-practices page for issues like this one?


Because the object would be coerced to a String. Then you would need to  
get this String and get the original object back.


In Tapestry CRUD, an open source package I'm developing, there's an  
ActivationContextEncoder. It's similar to a ValueEncoder, but used  
specifically for activation context values. Then I have some components  
(ActivationContextPageLink, ActivationContextActionLink) that receives an  
Object and uses the corresponding ActivationContextEncoder to get the  
object's activation context value.


--
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



T5: Email-Component to send me current web page

2009-09-03 Thread Michael Capper

Hi,

I was wondering how to properly write a component for our site, which is
supposed to appear on any page, and enables the user to mail the current
content of the page he is viewing.

We've got our MailService up and running. Now I've been trying two ways of
getting to the HTML source of the last page's source.
One being by javascript, submitting all the current content when clicking on
the email-icon. Is supposed to capture the current state of our site, which
can be changed a bit by javascript while using it (Dragging a series of
images around etc). It also tries to embedd the current images and cut the
hrefs out, which seems to work alright in FF, not IE. 

The other is by an Action-Link on the email-icon, the onAction method then
fiddles around with the Request and lets a Handler render the request into a
ResponseWrapper (exposing the byte[] of the Response). This also gives me
the HTML source, and would be usable per se, but it throws an Exception when
popping an environment.

From what I've read, it's difficult to more or less properly style the html
in an email, as if Safari/FF/IE weren't hell enough... I am thinking about
copying all the .css-data into the header of the html-part of the mail.

The Images i either want to embed in the html, or with the multipart/inline
mime type. Well, it barely works, but it is still ugly.

Any recommondations on this topic for me?

Thanks for your time, 
Michael
-- 
View this message in context: 
http://www.nabble.com/T5%3A-Email-Component-to-send-me-current-web-page-tp25282810p25282810.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Supporting multiple devices, eg. browser + mobile + TV

2009-09-03 Thread Sebastian Hennebrueder

Robin K. schrieb:

myapp/components // the ordinatry
myapp/wap/components / the wap overwrites

We also already test this solution. It can be done for pages with not so
much pain. For components it was a lot more complex. We finally abandonned
this solution.



I assume that there are quite some things to do but wouldn't it be the 
cleanest approach with the maximum of reusability?
It might be naive but doesn't it only require to adapt the page and the 
component resolution? I can already overwrite default components so 
there needs to be a kind of hierachical resolution already.



--
Best Regards / Viele Grüße

Sebastian Hennebrueder
-
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de







Sebastian Hennebrueder wrote:
The approach followed by Ramaze (a Ruby based framework) is to deliver 
different content depending on the suffix.


I like the approach but Tapestry probably doesn't fit in very well with 
such a concept as content is created by Java Code or templates both in 
pages and components.


The idea to setup a separate application introduces a lot of redundant
code.

What about a shadow directory structure holding components and templates 
I would like to overwrite.


myapp/components // the ordinatry
myapp/wap/components / the wap overwrites
...
This allows to reuse what you can and replace what you need.

Depending on the request you dispatch to one namespace or another.


Best Regards / Viele Grüße

Sebastian Hennebrueder
-
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de



Komiwes Robin schrieb:

Hi,

We've done that here, and it wasn't a real pleasure party.

but yes, for each component and pages, we can use the same system than
localization: i.e. : index.tml, index_fr.tml, index_iphone_fr.tml

You've got to decorate a lot of internals services (PagePool,
ComponentTemplateSource), hack the locale and prey for no API changes in
the future. :-)

I agree with others comments, a web for desktop browser should never be
the same web than a web for SmartPhones. You should do a specific
app/page for other devices.


Robin K.
- Atos Worldline


-Message d'origine-
De : Christian Edward Gruber [mailto:christianedwardgru...@gmail.com]
Envoyé : jeudi 3 septembre 2009 06:04
À : Tapestry users
Objet : Re: Supporting multiple devices, eg. browser + mobile + TV

I'd go further - interfaces for the blind, for the hard of hearing -
these are still more clients.  If the user experience is going to be
substantially altered, then you can convert from some meta-interface
and have everything automatically expressed, but that often requires
that the framework make trade-off choices that are better handled by a
good User Experience designer.  A lot of what makes a good iPhone-
ready application is a different user-flow that's consistent with the
device's unique properties.  Shoe-horning a normal web-interface will
often result in a bad iPhone experience (though better than WAP
phones, to be sure).

cheers,
Christian.

On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:


Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick
alfie.kirkpatr...@ioko.com

escreveu:
So I think T5 helps separate concerns and assists in building
multi-device apps (ie. it's a decent framework to do this in), but
the
framework itself could do more if this becomes something many web
developers end up having to build for in future.

What exactly could the framework do? There's a framework that does
it: JSF. Then it got too complicated. Of course, we could be smarter
than the JSF creators. :) But I agree with Howard: different devices
with different capabilities, different frontends.

--
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org


Christian Edward Gruber
e-mail: christianedwardgru...@gmail.com
weblog: http://www.geekinasuit.com/




-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: T5: ServletRequestFilter and dependency injection

2009-09-03 Thread neo anderson

I follow this setting to add my own request filter. However, I notice that if
I, for instance, add 

public MyHttpServletRequestFilter(final FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}

in the constructor, when accessing to the url e.g.
http://localhost:8080/myproject. It will throw 

No service implements the interface javax.servlet.FilterConfig. (I search
wiki and mailing list, but do find solution related)

Is there any way I can access the FilterConfig from
HttpServletRequestFilter.service()? or what is the correct way if I want to
obtain FilterConfig?

Thanks.

The rootcause is as below:

java.lang.RuntimeException: No service implements the interface
javax.servlet.FilterConfig.

org.apache.tapestry5.ioc.internal.RegistryImpl.getService(RegistryImpl.java:560)

org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:44)

org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl$1.invoke(MasterObjectProviderImpl.java:56)

org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68)

org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)

org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941)

org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl.provide(MasterObjectProviderImpl.java:41)

$MasterObjectProvider_1238176ce8a.provide($MasterObjectProvider_1238176ce8a.java)

org.apache.tapestry5.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:696)

org.apache.tapestry5.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:49)

org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:209)

org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:43)

org.apache.tapestry5.ioc.internal.util.InternalUtils$2.invoke(InternalUtils.java:256)

org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68)

org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)

org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941)

org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:260)

org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParametersForConstructor(InternalUtils.java:227)

org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:56)

org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)

org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68)

org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)

org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941)

org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)

org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)

org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)

org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:60)

org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:52)

org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)

org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)

org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:68)

org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68)

org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:941)

org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)

org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:68)

org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:57)

$HttpServletRequestFilter_1238176ceaf.delegate($HttpServletRequestFilter_1238176ceaf.java)

$HttpServletRequestFilter_1238176ceaf.service($HttpServletRequestFilter_1238176ceaf.java)

$HttpServletRequestHandler_1238176ceb4.service($HttpServletRequestHandler_1238176ceb4.java)

org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:726)

$HttpServletRequestHandler_1238176ceb4.service($HttpServletRequestHandler_1238176ceb4.java)

$HttpServletRequestHandler_1238176ceae.service($HttpServletRequestHandler_1238176ceae.java)
org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127)







Robert Zeigler 

Re: kein Betreff

2009-09-03 Thread Sergey Didenko
Hi Oliver,

see https://issues.apache.org/jira/browse/TAP5-711

On Tue, Sep 1, 2009 at 10:25 AM, Oliver Baueroliver.bauer...@web.de wrote:
 Hello,

 i have some problems with the submit component and the parameter t:image.
 The following works fine with T5.1.0.5

 form t:type=form t:id=myform
  input type=submit t:type=submit t:id=viewselection title=View/
 /form

 and as expected the following methods are called

 @OnEvent(component=viewselection, value = EventConstants.SELECTED)
 void someMethodName() {
  logger.debug(With EventConstants);
 }
 void onSelectedFromViewselection() {
  logger.debug(With onSelectedFromId);
 }
 @OnEvent(value = selected, component = viewselection)
 void someOtherMethodName() {
  logger.debug(With @OnEvent);
 }

 but if i want to use an image for the submit none of those methods are called 
 (the image will be rendered correctly).
 I've used each of the following

 input type=submit t:type=submit t:id=viewselection title=View 
 t:image=context:images/view.png/
 input type=submit t:type=submit t:id=viewselection title=View 
 t:image=context:images/view.png/
 t:submit t:id=viewselection title=view 
 t:image=context:images/view.png/

 Whats wrong?

 TIA,
 Oliver
 
 Neu: WEB.DE Doppel-FLAT mit Internet-Flatrate + Telefon-Flatrate
 für nur 19,99 Euro/mtl.!* http://produkte.web.de/go/02/


 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org



-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: [ANN] JumpStart 4.5 released 1 September

2009-09-03 Thread Sergey Didenko
Thanks Geoff!

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Newbie questiones

2009-09-03 Thread Madtyn
   I'm experimenting and trying all kinds of things and I think the
problem I have is when passing Enums to the EventContext. Although I
do before the Enum - String conversion and then set the String value
in the destination page and return as a String  in the onPassivate,
when I get the String value before converting it to Enum again, this
makes something fail.

   I can't understand why it did work when I didn't used the
EventContext and why it does fail now.


   Anyone does know about an efficient way to pass the Enums from the
select component on the first page to the EventContext to the second
injected page?

   I know I could use a @Persist annotation, but it involves some
details I would prefer avoiding. Some sample code would be great.

Thanks to everyone

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Newbie questiones

2009-09-03 Thread Joshua Martin
Are you trying to pass the value of a Select to another page?


On Thu, Sep 3, 2009 at 5:14 PM, Madtyn mad...@gmail.com wrote:

   I'm experimenting and trying all kinds of things and I think the
 problem I have is when passing Enums to the EventContext. Although I
 do before the Enum - String conversion and then set the String value
 in the destination page and return as a String  in the onPassivate,
 when I get the String value before converting it to Enum again, this
 makes something fail.

   I can't understand why it did work when I didn't used the
 EventContext and why it does fail now.


   Anyone does know about an efficient way to pass the Enums from the
 select component on the first page to the EventContext to the second
 injected page?

   I know I could use a @Persist annotation, but it involves some
 details I would prefer avoiding. Some sample code would be great.

 Thanks to everyone

 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org




-- 
_

Joshua S. Martin


CONFIDENTIALITY NOTE: This e-mail message, including any attachment(s),
contains information that may be confidential, protected by the attorney
client or other legal privileges, and or proprietary non public information.
If you are not an intended recipient of this message or an authorized
assistant to an intended recipient, please notify the sender by replying to
this message and then delete it from your system. Use, dissemination,
distribution, or reproduction of this message and or any of its attachments
(if any) by unintended recipients is not authorized and may be unlawful.


Re: Newbie questions

2009-09-03 Thread Madtyn
   More than one select. The problem is that the model of the select
is an Enum made by myself. As I explained, when I did the conversion
to String and used the parameter by parameter onPassivate()-onActivate
way of doing it, it worked. But using the EventContext is going to get
me more than nervous :-(.




2009/9/3, Joshua Martin josmar52...@gmail.com:
 Are you trying to pass the value of a Select to another page?


 On Thu, Sep 3, 2009 at 5:14 PM, Madtyn mad...@gmail.com wrote:

   I'm experimenting and trying all kinds of things and I think the
 problem I have is when passing Enums to the EventContext. Although I
 do before the Enum - String conversion and then set the String value
 in the destination page and return as a String  in the onPassivate,
 when I get the String value before converting it to Enum again, this
 makes something fail.

   I can't understand why it did work when I didn't used the
 EventContext and why it does fail now.


   Anyone does know about an efficient way to pass the Enums from the
 select component on the first page to the EventContext to the second
 injected page?

   I know I could use a @Persist annotation, but it involves some
 details I would prefer avoiding. Some sample code would be great.

 Thanks to everyone

 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org




 --
 _

 Joshua S. Martin


 CONFIDENTIALITY NOTE: This e-mail message, including any attachment(s),
 contains information that may be confidential, protected by the attorney
 client or other legal privileges, and or proprietary non public information.
 If you are not an intended recipient of this message or an authorized
 assistant to an intended recipient, please notify the sender by replying to
 this message and then delete it from your system. Use, dissemination,
 distribution, or reproduction of this message and or any of its attachments
 (if any) by unintended recipients is not authorized and may be unlawful.


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Newbie questiones

2009-09-03 Thread Joshua Martin
Maybe this is a dumb question, but why can't you just pass the Enum instead
of converting to a String, then passing, the reconverting back to Enum?


On Thu, Sep 3, 2009 at 5:17 PM, Joshua Martin josmar52...@gmail.com wrote:

 Are you trying to pass the value of a Select to another page?



 On Thu, Sep 3, 2009 at 5:14 PM, Madtyn mad...@gmail.com wrote:

   I'm experimenting and trying all kinds of things and I think the
 problem I have is when passing Enums to the EventContext. Although I
 do before the Enum - String conversion and then set the String value
 in the destination page and return as a String  in the onPassivate,
 when I get the String value before converting it to Enum again, this
 makes something fail.

   I can't understand why it did work when I didn't used the
 EventContext and why it does fail now.


   Anyone does know about an efficient way to pass the Enums from the
 select component on the first page to the EventContext to the second
 injected page?

   I know I could use a @Persist annotation, but it involves some
 details I would prefer avoiding. Some sample code would be great.

 Thanks to everyone

 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org




 --
 _

 Joshua S. Martin


 CONFIDENTIALITY NOTE: This e-mail message, including any attachment(s),
 contains information that may be confidential, protected by the attorney
 client or other legal privileges, and or proprietary non public information.
 If you are not an intended recipient of this message or an authorized
 assistant to an intended recipient, please notify the sender by replying to
 this message and then delete it from your system. Use, dissemination,
 distribution, or reproduction of this message and or any of its attachments
 (if any) by unintended recipients is not authorized and may be unlawful.




-- 
_

Joshua S. Martin


CONFIDENTIALITY NOTE: This e-mail message, including any attachment(s),
contains information that may be confidential, protected by the attorney
client or other legal privileges, and or proprietary non public information.
If you are not an intended recipient of this message or an authorized
assistant to an intended recipient, please notify the sender by replying to
this message and then delete it from your system. Use, dissemination,
distribution, or reproduction of this message and or any of its attachments
(if any) by unintended recipients is not authorized and may be unlawful.


RE: Newbie questiones

2009-09-03 Thread Martin Torre Castro



   The more probable thing is that I am the dumb. When I tried before to do it, 
it was failing but maybe it was another thing and I got confused and thought 
that Enums couldn't be passed to another pages.

   I was thinking until this evening (I read something about it somewhere) that 
only primitive types, theirs wrappers and String could be passed and that you 
had to convert the Date, Calendar and Enum objects. By your answer, I guess I 
was wrong. Could you please confirm it to me? Which are the no-conversion-types 
and the another ones?


 From: josmar52...@gmail.com
 Date: Thu, 3 Sep 2009 17:45:31 -0400
 Subject: Re: Newbie questiones
 To: users@tapestry.apache.org
 
 Maybe this is a dumb question, but why can't you just pass the Enum instead
 of converting to a String, then passing, the reconverting back to Enum?
 
 
 On Thu, Sep 3, 2009 at 5:17 PM, Joshua Martin josmar52...@gmail.com wrote:
 
  Are you trying to pass the value of a Select to another page?
 
 
 
  On Thu, Sep 3, 2009 at 5:14 PM, Madtyn mad...@gmail.com wrote:
 
I'm experimenting and trying all kinds of things and I think the
  problem I have is when passing Enums to the EventContext. Although I
  do before the Enum - String conversion and then set the String value
  in the destination page and return as a String  in the onPassivate,
  when I get the String value before converting it to Enum again, this
  makes something fail.
 
I can't understand why it did work when I didn't used the
  EventContext and why it does fail now.
 
 
Anyone does know about an efficient way to pass the Enums from the
  select component on the first page to the EventContext to the second
  injected page?
 
I know I could use a @Persist annotation, but it involves some
  details I would prefer avoiding. Some sample code would be great.
 
  Thanks to everyone
 
  -
  To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
  For additional commands, e-mail: users-h...@tapestry.apache.org
 
 
 
 
  --
  _
 
  Joshua S. Martin
 
 
  CONFIDENTIALITY NOTE: This e-mail message, including any attachment(s),
  contains information that may be confidential, protected by the attorney
  client or other legal privileges, and or proprietary non public information.
  If you are not an intended recipient of this message or an authorized
  assistant to an intended recipient, please notify the sender by replying to
  this message and then delete it from your system. Use, dissemination,
  distribution, or reproduction of this message and or any of its attachments
  (if any) by unintended recipients is not authorized and may be unlawful.
 
 
 
 
 -- 
 _
 
 Joshua S. Martin
 
 
 CONFIDENTIALITY NOTE: This e-mail message, including any attachment(s),
 contains information that may be confidential, protected by the attorney
 client or other legal privileges, and or proprietary non public information.
 If you are not an intended recipient of this message or an authorized
 assistant to an intended recipient, please notify the sender by replying to
 this message and then delete it from your system. Use, dissemination,
 distribution, or reproduction of this message and or any of its attachments
 (if any) by unintended recipients is not authorized and may be unlawful.

_
Descárgate Internet Explorer 8 ¡Y gana gratis viajes con Spanair!
http://www.vivelive.com/spanair

Good news about Tapestry 5 in Google App Engine

2009-09-03 Thread Thiago H. de Paula Figueiredo

--- Mensagem encaminhada ---
De: codesite-nore...@google.com
Assunto: Issue 1277 in googleappengine: Add javax.xml.stream to whitelist
Data: Thu, 03 Sep 2009 19:34:42 -0300

Updates:
Status: Fixed
Labels: Version-1.2.5

Comment #12 on issue 1277 by sly...@google.com: Add javax.xml.stream to
whitelist
http://code.google.com/p/googleappengine/issues/detail?id=1277

This has been fixed in the 1.2.5 release.

http://code.google.com/p/googleappengine/wiki/SdkForJavaReleaseNotes

Support for the Stax API, javax.xml.stream. You can now use both the  
JDK's Stax parser as well as third-party Stax libraries like Woodstox.


Can anyone confirm that a vanilla Tapestry 5.1.0.5 works in GAE now?

--
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Substitution for Switch/Case/Block to embed components really dynamic ?

2009-09-03 Thread Thiago H. de Paula Figueiredo
BeanEditor and BeanEditForm use blocks from different pages to edit  
properties. Its something similar to what you want to do. Ultimately, they  
get a block from a given page using this code (adapted from  
BeanBlockOverrideSourceImpl.toBlock()):


Page page = pageCache.get(pageName);
return page.getRootElement().getBlock(blockId);

where pageCache is an instance of RequestPageCache.

--
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Reloading fails back to old version for nested components

2009-09-03 Thread Thiago H. de Paula Figueiredo
Em Thu, 03 Sep 2009 06:27:04 -0300, Sebastian HennebrŸüder  
hennebrue...@laliluna.de escreveu:



I have the following use case
page A contains component B
I change something in B and redeploy the template of B.
Reloading works
Then I change something in the page and redeploy A. Suddenly the old
version of B appears again.
Does anybody else experience this behaviour.


I've never experienced something like that.

--
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Marker for required fields on bean editor

2009-09-03 Thread DH
I've finished something like that before.
First create a mixin 'FieldDecorator', then need contribute to the 
BeanBlockOverrideSource.
Here is the sample code:
1.
@MixinAfter
public class FieldDecorator {

 @InjectContainer
 private AbstractField field;
 
 @Inject
private ComponentResources resources;
 
 void cleanupRender(MarkupWriter writer)
{
if (field.isRequired()) {
writer.element(font, color, red);
writer.writeRaw(nbsp;*nbsp;);
writer.end();
}
}

2. Contribution, override the default edit block in page 
PropertyEditBlocks.java.
public static void 
contributeBeanBlockOverrideSource(ConfigurationBeanBlockContribution 
configuration) {
 configuration.add(new BeanBlockContribution(text, CustomEditBlocks, 
text, true));
 }

You need write your own CustomEditBlocks.java and CustomEditBlocks.tml to do 
something like PropertyEditBlocks.java and PropertyEditBlocks.tml, then just 
put the mixin 'FieldDecorator' there.

DH
http://www.gaonline.com.cn

- Original Message - 
From: Juan E. Maya maya.j...@gmail.com
To: Tapestry users users@tapestry.apache.org
Sent: Friday, September 04, 2009 1:56 AM
Subject: Re: Marker for required fields on bean editor


Sorry Sebastian, i was not clear enough.
I want to change the markup of the label when the field has a required
validator. For example i want to add a CSS class required to the label
of the required field. or i want to add a * next to the label.

Thanks for ur answer :)

On Thu, Sep 3, 2009 at 7:40 PM, Sebastian
Hennebruederuse...@laliluna.de wrote:
 Juan E. Maya schrieb:

 Hi all!

 Is it possible to mark the required fields inside a beaneditor form as
 valid? I know i could override the field declaration and put the
 marker there but i would like to create something more generic.

 I was thinking that a Mixin may get the beaneditor's form to get all
 the components in the form, iterate over the validators and add the js
 or mark to the ones with a required validator but i am not sure how to
 accomplish this. Is it possible at all? Has anybody done such thing?

 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org


 You are aware of @Validate?
 http://tapestry.apache.org/tapestry5/guide/validation.html


 --
 Best Regards / Viele Grüße

 Sebastian Hennebrueder
 -
 Software Developer and Trainer for Hibernate / Java Persistence
 http://www.laliluna.de



 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org



-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: Good news about Tapestry 5 in Google App Engine

2009-09-03 Thread Jun Tsai
The ticket had been fixed.I had tested on GAE using 1.2.5 SDK. But when I
write simple pagelink t:pagelink page=about about/t:pagelink ,some
exception thrown.

java.lang.VerifyError: (class:
org/apache/tapestry5/internal/antlr/PropertyExpressionLexer, method:
mRANGEOP signature: ()V) Stack size too large
at 
org.apache.tapestry5.internal.services.PropertyConduitSourceImpl.parse(PropertyConduitSourceImpl.java:1229)
at 
org.apache.tapestry5.internal.services.PropertyConduitSourceImpl.build(PropertyConduitSourceImpl.java:1124)
at 
org.apache.tapestry5.internal.services.PropertyConduitSourceImpl.create(PropertyConduitSourceImpl.java:1080)


Who can give me  an idea about the exception.

thanks.


2009/9/4 Thiago H. de Paula Figueiredo thiag...@gmail.com

 --- Mensagem encaminhada ---
 De: codesite-nore...@google.com
 Assunto: Issue 1277 in googleappengine: Add javax.xml.stream to whitelist
 Data: Thu, 03 Sep 2009 19:34:42 -0300

 Updates:
Status: Fixed
Labels: Version-1.2.5

 Comment #12 on issue 1277 by sly...@google.com: Add javax.xml.stream to
 whitelist
 http://code.google.com/p/googleappengine/issues/detail?id=1277

 This has been fixed in the 1.2.5 release.

 http://code.google.com/p/googleappengine/wiki/SdkForJavaReleaseNotes

 Support for the Stax API, javax.xml.stream. You can now use both the JDK's
 Stax parser as well as third-party Stax libraries like Woodstox.

 Can anyone confirm that a vanilla Tapestry 5.1.0.5 works in GAE now?

 --
 Thiago H. de Paula Figueiredo
 Independent Java consultant, developer, and instructor
 http://www.arsmachina.com.br/thiago

 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org




-- 
regards,
Jun Tsai


Re: Contribute SymbolConstants.SUPPRESS_REDIRECT_FROM_ACTION_REQUESTS does not work

2009-09-03 Thread Xuan Tran Le
I found that I was wrong. I did not put the contribution right place. I did
place it in servlet module, so in portlet the contribution is useless. I
fixed by putting it to the portlet module, and now it runs properly.
I've modified the source that I download from
https://issues.apache.org/jira/browse/TAP5-78 and now I can run portlet with
tapestry version 5.0.18 and 5.1.0.5.

On Tue, Sep 1, 2009 at 8:18 AM, Xuan Tran Le lexuanttk...@gmail.com wrote:

 I did debug and found that AppModule is loaded and the contribution is
 called. It runs properly in servlet mode, but when run in portlet mode it
 doesn't.


 On Tue, Sep 1, 2009 at 5:29 AM, Howard Lewis Ship hls...@gmail.comwrote:

 The only explanation for this is that your AppModule is not being
 loaded; Tapestry sends debug output at startup to list modules that
 are loaded; that's the first step. For example, AppModule must be in
 the correct package for Tapestry to find it. The rules for all this
 are in the documentation.




Re: users Digest 3 Sep 2009 17:04:35 -0000 Issue 3798

2009-09-03 Thread akira

On Sep 4, 2009, at 2:04 AM, users-digest-h...@tapestry.apache.org wrote:


From: Howard Lewis Ship hls...@gmail.com
Date: September 4, 2009 2:03:57 AM GMT+09:00
To: Tapestry users users@tapestry.apache.org
Subject: Add yourself to the Tapestry Users Map


I maintain a map of Google Map of Tapestry users:

http://maps.google.com/maps/ms?ie=UTF8hl=enmsa=0msid=106662057515738259524.0004696f8216ba268b74az=3

It's fun an informative for me, and for others, to see where the  
Tapestry users are.  For instance, I can see that Germany is a real  
hot-bed of Tapestry activity (a separate discussion would be why  
there as opposed to elsewhere?).




Howard, here (in Japan) the adoption of technologies without native  
documentation is something that will never happen (yes, language is a  
great barrier for non eglish speak countries). Some years ago i was  
hired for a company just to wrap a middleware framework because the  
lack of docummentation in japanese (i was treated like a hero for the  
project manager, or like i was saving her job?). I was surprised when  
i came here and came to know the facts, project managers and the  
people who have decision roles (35 ~ 5x years old), will run like they  
are running from the devil when they have to use technologies that  
lacks docummentation in native language. Even Spring is outpassed here  
by another framework called Seasar (japanese framework) because  
language barriers.
I know that there are sourceforge localized sites (english, japanese  
etc), what i don't understand is why, on these days there are no  
localized sites for apache technologies? They are accessed all over  
the world.
I do believe that having the Tapestry site translated (as well as the  
awaited T5 book!) will help ease/boost Tapestry adoption.


Regards, Akira.