Re: [T5] Application Message Catalog not read

2008-12-10 Thread Borut Bolčina
Just a follow up for those who don't read the jira thread. The problem is in
BOM (Byte Order Mark). If a property file is made with BOM included, then
the localization fails.

A cite from wikipedia (http://en.wikipedia.org/wiki/Byte-order_mark):

"While UTF-8  does not have byte order
issues, a BOM encoded in UTF-8 may nonetheless be encountered, though the
Unicode standard does not recommend using
it[1].
It only identifies a file as UTF-8 and does not state anything about byte
order.[2]Many
Windows  programs (including
Windows Notepad ) add BOM's to UTF-8
files."

Cheers,
Borut

2008/12/10 Borut Bolčina <[EMAIL PROTECTED]>

> I just found out why the translation does not work. If all property files
> are in ANSI (ISO-8859-1) encoding then everything works as advertised. If
> default file, for example app.properties is in ANSI and the
> app_sl_SI.properties is in utf8, then the localization breaks. If all
> property files are in UTF-8 then I get [[missing key: key1]] if preffered
> language is [sl].
>
> I created both property files in Eclipse and then converted encodings in
> Notepad++ with Format/Convert to ANSI/UTF-8. I verified the encodings in
> Eclipse under Properties/Resource/Text file encoding.
>
> Index.tml
> http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
> 
> locale-not-working Start Page ${message:key1}
> 
> 
> locale-not-working Start Page ${message:key2}
>
>  This is the start page for this application, a good place to
> start your modifications.
> Just to prove this is live: 
>
>  The current time is: ${currentTime}. 
>
>
> 
> [refresh]
> 
> 
> 
>
>
> Index.properties
> key1=value1
> key2=value2
>
> Index_sl_SI.properties
> key1=value1-translated
> key2=value2-translated
>
>
> I will attach a test project to the jira issue. Using Tapestry 5.0.17.
>
> Regards,
> Borut
>
> 2008/12/10 SergeEby <[EMAIL PROTECTED]>
>
>
>> Hi,
>>
>> I have a sample application supporting multiple languages which doesn't
>> exhibit this behavior:
>> http://code.google.com/p/tapestry5-appfuse/
>>
>> You may have something else going on.
>>
>> /Serge
>>
>>
>> bbcooper wrote:
>> >
>> > I found a bug. First entry in properties file is never used. I tried
>> > reordering entries and the first entry never gets "translated". I used T
>> > 5.0.15, 5.0.16 and 5.0.17. This applies not only for application wide
>> > catalog but also for page catalogs.
>> >
>> > I am filing a bug report at
>> > https://issues.apache.org/jira/browse/TAP5-409.
>> >
>> > Regards,
>> > Borut
>> >
>> > 2008/12/4 Howard Lewis Ship <[EMAIL PROTECTED]>
>> >
>> >> Nothing there has changed; it's still based on the filter name.
>> >>
>> >> On Thu, Dec 4, 2008 at 6:02 AM, Stephane Decleire
>> >> <[EMAIL PROTECTED]> wrote:
>> >> > Since 5.0.17, my localized messages are not read anymore from the
>> >> > application message catalog.
>> >> > My application message catalog is named backoffice.properties because
>> >> my
>> >> > filter in web.xml is called backoffice and this file is located in
>> the
>> >> > WEB-INF directory as explained in tapestry localization tutorial
>> >> > (http://tapestry.apache.org/tapestry5/guide/localization.html).
>> >> > I've change nothing since my last tapestry upgrade from
>> 5.0.16-SNAPSHOT
>> >> > and it was working.
>> >> > Has something been modified regarding the application message catalog
>> >> or
>> >> > the localization process ? I can't find any change in the nightly
>> >> > documentation ...
>> >> >
>> >> > Thanks in advance.
>> >> >
>> >> > Stephane
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Howard M. Lewis Ship
>> >>
>> >> Creator Apache Tapestry and Apache HiveMind
>> >>
>> >> -
>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/-T5--Application-Message-Catalog-not-read-tp20833984p20934027.html
>> Sent from the Tapestry - User mailing list archive at Nabble.com.
>>
>>
>> -
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>


Re: Redirect before page render

2008-12-10 Thread Allex Juang

Thanks Peter, It works.

Allex J.

Peter Stavrinides 提到:

Use an application state object (it is session scoped), so on your login page 
you could have:

@ApplicationState
private UserStateTracker stateTracker;

@InjectPage
private Home homePage;

Object onActivate(){
 if(stateTracker.isSignedIn()){
  //user is already signed in so redirect
  return homePage;
 }
}


If you need something slightly more complex (i.e.:filtering per request) then 
you need to implement a request filter and do the checking there:

public class PageAccessController implements RequestFilter {

  public PageAccessController(ApplicationStateManager asm) {
asm_ = asm;
  }

  public boolean service(Request request, Response response,
RequestHandler handler) throws IOException {
   
   UserStateTracker stateTracker = asm_.get(UserStateTracker.class);


   if(!stateTracker.isSignedIn())
   //user is not signed in so redirect him to the login page

  }


}

You also will need a contribution in your AppModule:
public static void contributeRequestHandler(
OrderedConfiguration configuration,
			@InjectService("TimingFilter") RequestFilter filter, 
			@InjectService("PageAccessController") RequestFilter pageAccessController) {

configuration.add("Timing", filter);
configuration.add("PageAccessController", pageAccessController,
"before:PageRender");
}

cheers,
Peter

- Original Message -
From: "Allex Juang" <[EMAIL PROTECTED]>
To: "Tapestry users" 
Sent: Wednesday, 10 December, 2008 9:31:29 AM GMT +02:00 Athens, Beirut, 
Bucharest, Istanbul
Subject: Redirect before page render

Hi,

I have a Login page, and user will navigate to, say, Work page after 
success authenticate process.
But when an authenticated user access Login page, I wish to just 
redirect to Work page.

How can I do that?

Allex J.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


__ NOD32 3680 (20081210) Information __

This message was checked by NOD32 antivirus system.
http://www.eset.com



  



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Entities referencing domain style Entities

2008-12-10 Thread Luther Baker
I have an entity that contains another entity - but this time, the contained
entity table is quite finite - say, 10 rows.

public class Category
{
  private String name;
}

public class User
{
   private String firstName;
   private String lastName;
   private Category category;
}

and in this case, I'd like to render firstName, lastName and a DROP DOWN or
some type of picker from existing Categories.

Would I need to create my own t:form ... and possibly use a t:BeanEditor
with a custom drop down/picker -- or is this type of idiom encapsulated in a
Tapestry component already?

Thanks much,

-Luther


Rendering Nested Entities

2008-12-10 Thread Luther Baker
Is there a relatively clean way to use a BeanEditForm and get a nested
Entities properties to show up as inputs.

public class Address
{
private String street;
...
}

public class User
{
private String firstName;
private String lastName;
private Address address;
...
}

Where firstname, lastName, and street would all be text inputs?

Thanks,

-Luther


Re: [T5] 5.0.17 URLEncoderImpl.decode error

2008-12-10 Thread Martijn Brinkers
I guess the URL is generated outside of Tapestry? because if you
passivate or create a link from Tapestry the parameters are encoded with
the Tapestry 'special' encoding.

You can probably use the default encoder implementation if you want to
encode from outside of Tapestry: 

org.apache.tapestry5.internal.services.URLEncoderImpl 

Martijn Brinkers


On Wed, 2008-12-10 at 23:43 +0100, Leon Derks wrote:
> Hi Martijn,
> 
> Thanks!
> Yes,  http://localhost:8090/tapestry/test/user/user$0040company.com 
> works, when I change the @ into $0040 manually.
> 
> But how can I automatically translate @ into $0040, because my code 
> still generates the '@' character in the url.
> 
> greetz,
> Leon
> 
> 
> Martijn Brinkers wrote:
> > The URL encoder has been changed. 
> >
> > @ for example is now encoded as $0040
> >
> > See https://issues.apache.org/jira/browse/TAP5-302
> >
> >
> > Search the archive for what and why things have changed
> > http://tapestry.markmail.org
> >
> > Martijn Brinkers
> >
> >
> >
> > On Wed, 2008-12-10 at 23:19 +0100, Leon Derks wrote:
> >   
> >> Hello
> >> This evening I tried tapestry 5.0.17
> >>
> >> When I type in the following url in my application:
> >> http://localhost:8090/tapestry/test/user/[EMAIL PROTECTED]
> >>
> >> I do get an java.lang.IllegalArgumentException
> >> It says: "Input string '[EMAIL PROTECTED]' is not valid; the character 
> >> '@' at position 5 is not valid."
> >> Stacktrace:
> >> 
> >> org.apache.tapestry5.internal.services.URLEncoderImpl.decode(URLEncoderImpl.java:143)
> >> 
> >> org.apache.tapestry5.internal.services.ContextPathEncoderImpl.decodePath(ContextPathEncoderImpl.java:70)
> >> 
> >> org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:88)
> >> 
> >> org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:71)
> >> 
> >> org.apache.tapestry5.services.TapestryModule$17.service(TapestryModule.java:1029)
> >>
> >> I didn't had this problem in tapestry 5.0.14.
> >> I searched in the changes, but couldn't find a change that would cause 
> >> this error.
> >>
> >> Any ideas?
> >>
> >> Leon
> >>
> >> -
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >> 
> >
> >
> > -
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> > __ NOD32 3682 (20081210) Informatie __
> >
> > Dit bericht is gecontroleerd door het NOD32 Antivirus Systeem.
> > http://www.nod32.nl
> >
> >
> >
> >   
> 
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [T5] 5.0.17 URLEncoderImpl.decode error

2008-12-10 Thread Leon Derks

Hi Martijn,

Thanks!
Yes,  http://localhost:8090/tapestry/test/user/user$0040company.com 
works, when I change the @ into $0040 manually.


But how can I automatically translate @ into $0040, because my code 
still generates the '@' character in the url.


greetz,
Leon


Martijn Brinkers wrote:
The URL encoder has been changed. 


@ for example is now encoded as $0040

See https://issues.apache.org/jira/browse/TAP5-302


Search the archive for what and why things have changed
http://tapestry.markmail.org

Martijn Brinkers



On Wed, 2008-12-10 at 23:19 +0100, Leon Derks wrote:
  

Hello
This evening I tried tapestry 5.0.17

When I type in the following url in my application:
http://localhost:8090/tapestry/test/user/[EMAIL PROTECTED]

I do get an java.lang.IllegalArgumentException
It says: "Input string '[EMAIL PROTECTED]' is not valid; the character 
'@' at position 5 is not valid."

Stacktrace:

org.apache.tapestry5.internal.services.URLEncoderImpl.decode(URLEncoderImpl.java:143)

org.apache.tapestry5.internal.services.ContextPathEncoderImpl.decodePath(ContextPathEncoderImpl.java:70)

org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:88)

org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:71)

org.apache.tapestry5.services.TapestryModule$17.service(TapestryModule.java:1029)


I didn't had this problem in tapestry 5.0.14.
I searched in the changes, but couldn't find a change that would cause 
this error.


Any ideas?

Leon

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


__ NOD32 3682 (20081210) Informatie __

Dit bericht is gecontroleerd door het NOD32 Antivirus Systeem.
http://www.nod32.nl



  



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [T5] 5.0.17 URLEncoderImpl.decode error

2008-12-10 Thread Martijn Brinkers
The URL encoder has been changed. 

@ for example is now encoded as $0040

See https://issues.apache.org/jira/browse/TAP5-302


Search the archive for what and why things have changed
http://tapestry.markmail.org

Martijn Brinkers



On Wed, 2008-12-10 at 23:19 +0100, Leon Derks wrote:
> Hello
> This evening I tried tapestry 5.0.17
> 
> When I type in the following url in my application:
> http://localhost:8090/tapestry/test/user/[EMAIL PROTECTED]
> 
> I do get an java.lang.IllegalArgumentException
> It says: "Input string '[EMAIL PROTECTED]' is not valid; the character 
> '@' at position 5 is not valid."
> Stacktrace:
> 
> org.apache.tapestry5.internal.services.URLEncoderImpl.decode(URLEncoderImpl.java:143)
> 
> org.apache.tapestry5.internal.services.ContextPathEncoderImpl.decodePath(ContextPathEncoderImpl.java:70)
> 
> org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:88)
> 
> org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:71)
> 
> org.apache.tapestry5.services.TapestryModule$17.service(TapestryModule.java:1029)
> 
> I didn't had this problem in tapestry 5.0.14.
> I searched in the changes, but couldn't find a change that would cause 
> this error.
> 
> Any ideas?
> 
> Leon
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [T5] 5.0.17 URLEncoderImpl.decode error

2008-12-10 Thread Thiago H. de Paula Figueiredo
Em Wed, 10 Dec 2008 19:19:44 -0300, Leon Derks <[EMAIL PROTECTED]>  
escreveu:



Hello


Hi!


I do get an java.lang.IllegalArgumentException
It says: "Input string '[EMAIL PROTECTED]' is not valid; the character  
'@' at position 5 is not valid."

I didn't had this problem in tapestry 5.0.14.
I searched in the changes, but couldn't find a change that would cause  
this error.


That's here: https://issues.apache.org/jira/browse/TAP5-302. Look at the  
last comment. The default URL encoding used by Tapestry was changed in  
5.0.16.


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

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[T5] 5.0.17 URLEncoderImpl.decode error

2008-12-10 Thread Leon Derks

Hello
This evening I tried tapestry 5.0.17

When I type in the following url in my application:
http://localhost:8090/tapestry/test/user/[EMAIL PROTECTED]

I do get an java.lang.IllegalArgumentException
It says: "Input string '[EMAIL PROTECTED]' is not valid; the character 
'@' at position 5 is not valid."

Stacktrace:
   
org.apache.tapestry5.internal.services.URLEncoderImpl.decode(URLEncoderImpl.java:143)
   
org.apache.tapestry5.internal.services.ContextPathEncoderImpl.decodePath(ContextPathEncoderImpl.java:70)
   
org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:88)
   
org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:71)
   
org.apache.tapestry5.services.TapestryModule$17.service(TapestryModule.java:1029)


I didn't had this problem in tapestry 5.0.14.
I searched in the changes, but couldn't find a change that would cause 
this error.


Any ideas?

Leon

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Weird T5 behaviour with forms

2008-12-10 Thread superoverdrive
I have placed a form with a text-input and submit button on a page and it all 
worked.

Then I have added a second form with another text-input and a submit button on 
the same page.

When I click on the second textfield to enter a value, the form is submitted on 
the "onfocus" event.

The methods are:

void onSelectedFromAddCategory()

and

void onSelectedFromAddValue()


The HTML:

 
  
  
New category:


  
  
  


 
  
  
New 
value:

  
  
  

Why does this happen?

Thanks!

Toby

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [T5] Application Message Catalog not read

2008-12-10 Thread Borut Bolčina
I just found out why the translation does not work. If all property files
are in ANSI (ISO-8859-1) encoding then everything works as advertised. If
default file, for example app.properties is in ANSI and the
app_sl_SI.properties is in utf8, then the localization breaks. If all
property files are in UTF-8 then I get [[missing key: key1]] if preffered
language is [sl].

I created both property files in Eclipse and then converted encodings in
Notepad++ with Format/Convert to ANSI/UTF-8. I verified the encodings in
Eclipse under Properties/Resource/Text file encoding.

Index.tml
http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>

locale-not-working Start Page ${message:key1}


locale-not-working Start Page ${message:key2}

 This is the start page for this application, a good place to
start your modifications.
Just to prove this is live: 

 The current time is: ${currentTime}. 



[refresh]





Index.properties
key1=value1
key2=value2

Index_sl_SI.properties
key1=value1-translated
key2=value2-translated


I will attach a test project to the jira issue. Using Tapestry 5.0.17.

Regards,
Borut

2008/12/10 SergeEby <[EMAIL PROTECTED]>

>
> Hi,
>
> I have a sample application supporting multiple languages which doesn't
> exhibit this behavior:
> http://code.google.com/p/tapestry5-appfuse/
>
> You may have something else going on.
>
> /Serge
>
>
> bbcooper wrote:
> >
> > I found a bug. First entry in properties file is never used. I tried
> > reordering entries and the first entry never gets "translated". I used T
> > 5.0.15, 5.0.16 and 5.0.17. This applies not only for application wide
> > catalog but also for page catalogs.
> >
> > I am filing a bug report at
> > https://issues.apache.org/jira/browse/TAP5-409.
> >
> > Regards,
> > Borut
> >
> > 2008/12/4 Howard Lewis Ship <[EMAIL PROTECTED]>
> >
> >> Nothing there has changed; it's still based on the filter name.
> >>
> >> On Thu, Dec 4, 2008 at 6:02 AM, Stephane Decleire
> >> <[EMAIL PROTECTED]> wrote:
> >> > Since 5.0.17, my localized messages are not read anymore from the
> >> > application message catalog.
> >> > My application message catalog is named backoffice.properties because
> >> my
> >> > filter in web.xml is called backoffice and this file is located in the
> >> > WEB-INF directory as explained in tapestry localization tutorial
> >> > (http://tapestry.apache.org/tapestry5/guide/localization.html).
> >> > I've change nothing since my last tapestry upgrade from
> 5.0.16-SNAPSHOT
> >> > and it was working.
> >> > Has something been modified regarding the application message catalog
> >> or
> >> > the localization process ? I can't find any change in the nightly
> >> > documentation ...
> >> >
> >> > Thanks in advance.
> >> >
> >> > Stephane
> >> >
> >> >
> >>
> >>
> >>
> >> --
> >> Howard M. Lewis Ship
> >>
> >> Creator Apache Tapestry and Apache HiveMind
> >>
> >> -
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/-T5--Application-Message-Catalog-not-read-tp20833984p20934027.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


Re: How can my RequestExceptionHandler distinguish event requests from page requests?

2008-12-10 Thread Franz Amador

Thanks, Peter.  I do know about request.isXHR(), but it's actually more 
important to me to know whether the request is an event request (as opposed to 
a page request) than if it's an Ajax request.  Also, can a service inject the 
request object?


Franz




From: Peter Stavrinides (via Nabble) <[EMAIL PROTECTED]>
To: Franz Amador <[EMAIL PROTECTED]>
Sent: Wednesday, December 10, 2008 12:57:15 AM
Subject: Re: How can my RequestExceptionHandler distinguish event requests from 
page requests?

You can use: request.isXHR() which checks against a header "X-Requested-With" 
set by the prototype library for AJAX calls. If you write your own AJAX stuff 
then request.isXHR() probably won't be set so you will have to set it yourself. 

Cheers 
Peter 


-- 
If you are not an intended recipient of this e-mail, please notify the sender, 
delete it and do not read, act upon, print, disclose, copy, retain or 
redistribute it. Please visit http://www.albourne.com/email.html for important 
additional terms relating to this e-mail. 

- Original Message - 
From: "Franz Amador" <[EMAIL PROTECTED]> 
To: [EMAIL PROTECTED] 
Sent: Tuesday, 9 December, 2008 9:10:14 PM GMT +02:00 Athens, Beirut, 
Bucharest, Istanbul 
Subject: How can my RequestExceptionHandler distinguish event requests from 
page requests? 


My app responds to Ajax event requests with JSON.  If the event handler 
throws an exception, I'd like to return a special JSON response with the 
error text.  Can I decorate RequestExceptionHandler for this?  To do so, I'd 
need to be able to tell that the request is an Ajax event request; if it 
isn't, I'll delegate to the default RequestExceptionHandler.  Is there a 
service I can use in my RequestExceptionHandler that'll tell me whether the 
request is an event request and not, say, a page request? 
-- 
View this message in context: 
http://n2.nabble.com/How-can-my-RequestExceptionHandler-distinguish-event-requests-from-page-requests--tp1635333p1635333.html
Sent from the Tapestry Users mailing list archive at Nabble.com. 


- 
To unsubscribe, e-mail: [EMAIL PROTECTED] 
For additional commands, e-mail: [EMAIL PROTECTED] 


- 
To unsubscribe, e-mail: [EMAIL PROTECTED] 
For additional commands, e-mail: [EMAIL PROTECTED] 




 
This email is a reply to your post @ 
http://n2.nabble.com/How-can-my-RequestExceptionHandler-distinguish-event-requests-from-page-requests--tp1635333p1637872.html
You can reply by email or by visting the link above.
-- 
View this message in context: 
http://n2.nabble.com/How-can-my-RequestExceptionHandler-distinguish-event-requests-from-page-requests--tp1635333p1639644.html
Sent from the Tapestry Users mailing list archive at Nabble.com.


Re: ValueEncoder stopped working in 5.017

2008-12-10 Thread yosemite

Hello,
I have resolved by rebuilding the project using Maven, probably was a
classpath issue, no sure, glad it works now :-)
Karel


yosemite wrote:
> 
> Hello,
> the attached code worked fine in 5.011 but in 5.017 it blows up saying:
> Render queue error in BeforeRenderTemplate[Index:select]: Failure reading
> parameter 'encoder' of component Index:select: Could not find a coercion
> from type org.example.myapp.util.IntegerEncoder to type
> org.apache.tapestry5.ValueEncoder. Maybe I missed in version 5.017 the
> encoder works different?
> Any help really appreciated
> Karel
> ---
> index.tml:
> http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
> myapp Start Page
> 
> 
>   myapp Start Page
>This is the start page for this application, a good place to
> start your modifications.
>   Just to prove this is live: 
>The current time is: ${currentTime}. 
>   
>   [refresh]
>   
>t:encoder="encoder" />
> 
> 
> 
> ---
> package org.example.myapp.pages;
> import java.util.Calendar;
> import java.util.Date;
> import org.apache.tapestry5.SelectModel;
> import org.apache.tapestry5.ValueEncoder;
> import org.apache.tapestry5.annotations.Component;
> import org.apache.tapestry5.corelib.components.Form;
> import org.example.myapp.util.IntegerEncoder;
> import org.example.myapp.util.IntegerSelectModel;
> public class Index {
>   @Component
> private Form form;
>   private Calendar c = Calendar.getInstance();
>   public Date getCurrentTime() {
>   return new Date();
>   }
>   public int getYear() {
>   return c.get(Calendar.YEAR);
>   }
>   public SelectModel getYearModel() {
>   return (SelectModel) new IntegerSelectModel(1900, 2010);
>   }
>   public ValueEncoder getEncoder() {
>   return (ValueEncoder) new IntegerEncoder();
>   }
> }
> ---
> package org.example.myapp.services;
> import java.io.IOException;
> import org.apache.tapestry5.ioc.ServiceBinder;
> import org.apache.tapestry5.services.Request;
> import org.apache.tapestry5.services.RequestFilter;
> import org.apache.tapestry5.services.RequestHandler;
> import org.apache.tapestry5.services.Response;
> import org.slf4j.Logger;
> public class AppModule {
>   public static void bind(ServiceBinder binder) {}
>   public RequestFilter buildTimingFilter(final Logger log) {
>   return new RequestFilter() {
>   public boolean service(Request request, Response 
> response,
>   RequestHandler handler) throws 
> IOException {
>   long startTime = System.currentTimeMillis();
>   try {
>   return handler.service(request, 
> response);
>   } finally {
>   long elapsed = 
> System.currentTimeMillis() - startTime;
>   log.info(String.format("Request time: 
> %d ms", elapsed));
>   }
>   }
>   };
>   }
> }
> ---
> package org.example.myapp.util;
> import org.apache.tapestry5.ValueEncoder;
> public class IntegerEncoder implements ValueEncoder {
>   public String toClient(Object i) {
>   return i.toString();
>   }
>   public Object toValue(String s) {
>   return new Integer(s);
>   }
> }
> ---
> package org.example.myapp.util;
> import java.util.Map;
> import org.apache.tapestry5.OptionModel;
> public class IntegerOptionModel implements OptionModel {
>   private Number number;
>   public IntegerOptionModel(Number num) {
> number = num;
>   }
>   public Map getAttributes() {
> return null;
>   }
>   public String getLabel() {
> return "" + number;
>   }
>   public Object getValue() {
> return number;
>   }
>   public boolean isDisabled() {
> return false;
>   }
> }
> ---
> package org.example.myapp.util;
> import java.util.ArrayList;
> import java.util.List;
> import org.apache.tapestry5.OptionGroupModel;
> import org.apache.tapestry5.OptionModel;
> import org.apache.tapestry5.util.AbstractSelectModel;
> public class IntegerSelectModel extends AbstractSelectModel {
>   private List options = new ArrayList();
>   public IntegerSelectModel(int numFrom, int numTo) {
>   int increment = numTo > numFrom ? 1 : -1;
>   for (int i = numFrom; i <= numTo; i += increment) {
>   options.add(new IntegerOptionModel(i));
>   }
>   }
>   public List getOptionGroups() {
>   return null;
>   }
>   public List getOptions() {
>   return options;
>   }
> }
> ---
> web.xml:
> 
>  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
> 

[T5] Problem with custom control not changing position when sorted

2008-12-10 Thread Charles Mason
Hi All,

I am having a strange problem with Tapestry's Grid component.
Basically its a set of data from a DB with one column overridden with
a custom select control on it. It all works fine until the user sorts
it. Then all the conventional cells are drawn in the correct order but
the custom one with the select control are drawn in the original order
thus making them out of sync with the rest of the data.


 




This happens if the inPlace attribute is set to true or false. Have I
missed something important about sorting custom grid columns?

Any help would be greatly appreacted.


Charlie M

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: What's the easiest way to implement two dependent select lists ?

2008-12-10 Thread Hugo Palma
>>> select list i want to update is calculated server-side i need to pass
>>>>> it
>>>>>
>>>>>
>>>> in
>>>>
>>>>
>>>>> json to the client, parse it again in javascript and then update the
>>>>>
>>>>>
>>>> select
>>>>
>>>>
>>>>> input. This does work but i feel that there should be a simpler way of
>>>>>
>>>>>
>>>> doing
>>>>
>>>>
>>>>> this, maybe using zones.
>>>>>
>>>>> thermus wrote:
>>>>>
>>>>> I'm a Tapestry novice, but you may want to have a look at
>>>>>
>>>>>
>>>> http://code.google.com/p/tapestry5-components/ t5components .  It
>>>> allows
>>>> you
>>>>
>>>>
>>>>> to add a mixin to components to respond to an OnChange event with AJAX
>>>>>
>>>>>
>>>> (see: http://87.193.218.134:8080/t5c-demo/oneventpage this  and
>>>>
>>>> http://87.193.218.134:8080/t5components/t5c-commons/ref/org/apache/tapestry/commons/mixins/OnEvent.html
>>>>
>>>>
>>>>> this  for details).  You could then change the data model for the other
>>>>> select component with a tiny bit of JavaScript in the
>>>>> onCompleteCallback
>>>>> function.
>>>>>
>>>>> I'm curious how a Tapestry expert would handle it.
>>>>>
>>>>>
>>>>> HugoPalma wrote:
>>>>>
>>>>>
>>>>>  I have a very usual use where in a form i have two selects, and when
>>>>> the
>>>>> user selects a value on one the values on the second should be filtered
>>>>> accordingly.
>>>>> As the Select component doesn't support ajax out-of.the-box i see
>>>>> myself
>>>>> forced to implement a lot of plumbing and javascript stuff.
>>>>>
>>>>> Still, i feel that this kind of use case should be much easier to
>>>>> implement.
>>>>> Maybe i'm missing something.
>>>>> I'd like to hear some ideas about how u would handle this.
>>>>>
>>>>> Thanks.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>> __ NOD32 3680 (20081210) Informatie __
>>
>> Dit bericht is gecontroleerd door het NOD32 Antivirus Systeem.
>> http://www.nod32.nl
>>
>>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


Re: What's the easiest way to implement two dependent select lists ?

2008-12-10 Thread Leon Derks

Indeed I agree with Hugo.
I had this use case a couple of times and solved it in the same way as 
Hugo did.


I also hoped there is an easier way to implement dependable selects, 
using zones...


Also filling selects with objects is not really easy. I need to 
implement a selection model and a value encoder.

I have the feeling that things are more complicated than they should be.

For example, it would be easier to add a select into my page and bind a 
list with objects to it with setting the labelField and idField to 
object properties.

So like this;
labelField="name", idField="id" value="selectedProduct" />


I get the feeling that sometimes tapestry 5 is doing things to complicated.

Leon



Hugo Palma wrote:
Everything i used in the example is built into Tapestry except the 
OnEvent mixin that is provided by the library 
t5-components(http://87.193.218.134:8080/t5components/index.html).
The javascript stuff is part of prototype that is already bundled with 
Tapestry.


James Hillyerd wrote:

Hugo,

That's a great example.  I think this belongs on the Wiki!

Is the JSON stuff built into Tapestry, or do I need a third party 
library

for that?

-james

On Tue, Dec 9, 2008 at 10:17 AM, Hugo Palma <[EMAIL PROTECTED]> 
wrote:


 

Here's how i'm doing this now:

On the source select i'm using the OnEvent mixin to fire the change 
event:




The event listener method is then responsible for querying the 
database for

the value to be set in the destination select:

@OnEvent(component = "operator", value = "change")
   public JSONArray onChangeOperatorEvent(String value) {
   JSONArray jsonArray = new JSONArray();

   for (Plaza plaza : getDestinationSelectValues(value)) {
   JSONObject jsonObject = new JSONObject();
   jsonObject.put("value", plaza.getId());
   jsonObject.put("label", plaza.getDescription());

   jsonArray.put(jsonObject);
   }

   return jsonArray;
   }

Finally, the onCompleteOperatorChange javascript function has to 
parse the

return JSON and update the select input options:

function onCompleteOperatorChange(response) {
   selectElement = $("entryPlaza");
   responseJSON = response.evalJSON();

   while (selectElement .options.length > 0) {
   selectElement .options[0] = null;
   }

   for (index = 0; index < responseJSON .length; index++) {
   selectElement.options[index] = new Option(responseJSON
[index].label, responseJSON [index].value);
   }

   Tapestry.ElementEffect.highlight($("entryPlaza"));
   }

It would make things a little easier if the selects weren't inside a 
form
because then my event listener method could return the component 
instance

itself and then on the client i would just have to replace the current
element with the new rendered one.

On Sun, Dec 7, 2008 at 10:46 PM, Hugo Palma <[EMAIL PROTECTED]>
wrote:

   
 I'm already using the OnEvent component. Still, because the model 
of the
select list i want to update is calculated server-side i need to 
pass it
  

in
   

json to the client, parse it again in javascript and then update the
  

select
   

input. This does work but i feel that there should be a simpler way of
  

doing
   

this, maybe using zones.

thermus wrote:

I'm a Tapestry novice, but you may want to have a look at
  
http://code.google.com/p/tapestry5-components/ t5components .  It 
allows

you
   

to add a mixin to components to respond to an OnChange event with AJAX
  

(see: http://87.193.218.134:8080/t5c-demo/oneventpage this  and
http://87.193.218.134:8080/t5components/t5c-commons/ref/org/apache/tapestry/commons/mixins/OnEvent.html 

   
this  for details).  You could then change the data model for the 
other
select component with a tiny bit of JavaScript in the 
onCompleteCallback

function.

I'm curious how a Tapestry expert would handle it.


HugoPalma wrote:


 I have a very usual use where in a form i have two selects, and 
when the
user selects a value on one the values on the second should be 
filtered

accordingly.
As the Select component doesn't support ajax out-of.the-box i see 
myself

forced to implement a lot of plumbing and javascript stuff.

Still, i feel that this kind of use case should be much easier to
implement.
Maybe i'm missing something.
I'd like to hear some ideas about how u would handle this.

Thanks.





  




  




__ NOD32 3680 (20081210) Informatie __

Dit bericht is gecontroleerd door het NOD32 Antivirus Systeem.
http://www.nod32.nl




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



AW: Very strange problem with expansion of ${name}

2008-12-10 Thread Maximilian Weißböck
Oh, I see... yes, its Maven...
Thanks, Max

> -Ursprüngliche Nachricht-
> Von: Andreas Andreou [mailto:[EMAIL PROTECTED]
> Gesendet: Mittwoch, 10. Dezember 2008 13:51
> An: Tapestry users
> Betreff: Re: Very strange problem with expansion of ${name}
> 
> are you running this with maven? If you've set it to filter the
> resources, that may be the cause.
> 
> On Wed, Dec 10, 2008 at 2:28 PM, Maximilian Weißböck
> <[EMAIL PROTECTED]> wrote:
> > Is there a special meaning to the expansion of ${name} ?
> >
> > Cause I have a very strange problem.
> >
> > If I use ${getNode().getName()} in my template, all is ok.
> > If I use ${node.getName()} in my template, all is ok.
> >
> > If I use ${node.name} I do not get the expected value, instead
> > the name of the application as it is defined in pom.xml is displayed!
> >
> > I even can write ${name}, even if there is no property name
> > in my page class - again the name of the application is displayed!
> >
> > Now I'm very confused...
> > Is there something special about ${name} ???
> > And if yes, how can I turn it of?
> >
> > Tested on 5.0.16 and 5.0.17
> >
> > Thanks, Max
> >
> >
> > -
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> 
> 
> --
> Andreas Andreou - [EMAIL PROTECTED] - http://blog.andyhot.gr
> Tapestry / Tacos developer
> Open Source / JEE Consulting
> 
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Very strange problem with expansion of ${name}

2008-12-10 Thread Joakim Olsson
> Is there a special meaning to the expansion of ${name} ?
>
> Cause I have a very strange problem.
>
> If I use ${getNode().getName()} in my template, all is ok.
> If I use ${node.getName()} in my template, all is ok.
>
> If I use ${node.name} I do not get the expected value, instead
> the name of the application as it is defined in pom.xml is displayed!
>
> I even can write ${name}, even if there is no property name
> in my page class - again the name of the application is displayed!
>
> Now I'm very confused...
> Is there something special about ${name} ???
> And if yes, how can I turn it of?
>
> Tested on 5.0.16 and 5.0.17
>
> Thanks, Max
>

I have seen the same behaviour in a Maven-based Struts2 project so it's
nothing Tapestry-specific.

Regards,
Joakim



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



[T5.1] Doctype disappearing when deployed on production server

2008-12-10 Thread Joost Schouten (mailing lists)
Hi,

I've got the strange problem of my DOCTYPE disappearing when I depoly
my war (using T5.1.0.0-SNAPSHOT) on a Fedora Core box running resin.
Locally all is fine on OSX and jetty. They both run with
tapestry.production-mode=false. The component defining the doctype
(HtmlHeadBody.tml) is as follows (simplified):

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>

${title}






Is this a tapestry setting I am missing or is there another problem
playing here? Any clues would be highly appreciated.

Regards and happy coding,
Joost

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Very strange problem with expansion of ${name}

2008-12-10 Thread Andreas Andreou
are you running this with maven? If you've set it to filter the
resources, that may be the cause.

On Wed, Dec 10, 2008 at 2:28 PM, Maximilian Weißböck
<[EMAIL PROTECTED]> wrote:
> Is there a special meaning to the expansion of ${name} ?
>
> Cause I have a very strange problem.
>
> If I use ${getNode().getName()} in my template, all is ok.
> If I use ${node.getName()} in my template, all is ok.
>
> If I use ${node.name} I do not get the expected value, instead
> the name of the application as it is defined in pom.xml is displayed!
>
> I even can write ${name}, even if there is no property name
> in my page class - again the name of the application is displayed!
>
> Now I'm very confused...
> Is there something special about ${name} ???
> And if yes, how can I turn it of?
>
> Tested on 5.0.16 and 5.0.17
>
> Thanks, Max
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
Andreas Andreou - [EMAIL PROTECTED] - http://blog.andyhot.gr
Tapestry / Tacos developer
Open Source / JEE Consulting

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Very strange problem with expansion of ${name}

2008-12-10 Thread Maximilian Weißböck
Is there a special meaning to the expansion of ${name} ?

Cause I have a very strange problem.

If I use ${getNode().getName()} in my template, all is ok.
If I use ${node.getName()} in my template, all is ok.

If I use ${node.name} I do not get the expected value, instead 
the name of the application as it is defined in pom.xml is displayed!

I even can write ${name}, even if there is no property name
in my page class - again the name of the application is displayed!

Now I'm very confused...
Is there something special about ${name} ???
And if yes, how can I turn it of?

Tested on 5.0.16 and 5.0.17

Thanks, Max


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [T5] Application Message Catalog not read

2008-12-10 Thread SergeEby

Hi,

I have a sample application supporting multiple languages which doesn't
exhibit this behavior:
http://code.google.com/p/tapestry5-appfuse/

You may have something else going on.

/Serge


bbcooper wrote:
> 
> I found a bug. First entry in properties file is never used. I tried
> reordering entries and the first entry never gets "translated". I used T
> 5.0.15, 5.0.16 and 5.0.17. This applies not only for application wide
> catalog but also for page catalogs.
> 
> I am filing a bug report at
> https://issues.apache.org/jira/browse/TAP5-409.
> 
> Regards,
> Borut
> 
> 2008/12/4 Howard Lewis Ship <[EMAIL PROTECTED]>
> 
>> Nothing there has changed; it's still based on the filter name.
>>
>> On Thu, Dec 4, 2008 at 6:02 AM, Stephane Decleire
>> <[EMAIL PROTECTED]> wrote:
>> > Since 5.0.17, my localized messages are not read anymore from the
>> > application message catalog.
>> > My application message catalog is named backoffice.properties because
>> my
>> > filter in web.xml is called backoffice and this file is located in the
>> > WEB-INF directory as explained in tapestry localization tutorial
>> > (http://tapestry.apache.org/tapestry5/guide/localization.html).
>> > I've change nothing since my last tapestry upgrade from 5.0.16-SNAPSHOT
>> > and it was working.
>> > Has something been modified regarding the application message catalog
>> or
>> > the localization process ? I can't find any change in the nightly
>> > documentation ...
>> >
>> > Thanks in advance.
>> >
>> > Stephane
>> >
>> >
>>
>>
>>
>> --
>> Howard M. Lewis Ship
>>
>> Creator Apache Tapestry and Apache HiveMind
>>
>> -
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/-T5--Application-Message-Catalog-not-read-tp20833984p20934027.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [T5] Application Message Catalog not read

2008-12-10 Thread Borut Bolčina
I found a bug. First entry in properties file is never used. I tried
reordering entries and the first entry never gets "translated". I used T
5.0.15, 5.0.16 and 5.0.17. This applies not only for application wide
catalog but also for page catalogs.

I am filing a bug report at https://issues.apache.org/jira/browse/TAP5-409.

Regards,
Borut

2008/12/4 Howard Lewis Ship <[EMAIL PROTECTED]>

> Nothing there has changed; it's still based on the filter name.
>
> On Thu, Dec 4, 2008 at 6:02 AM, Stephane Decleire
> <[EMAIL PROTECTED]> wrote:
> > Since 5.0.17, my localized messages are not read anymore from the
> > application message catalog.
> > My application message catalog is named backoffice.properties because my
> > filter in web.xml is called backoffice and this file is located in the
> > WEB-INF directory as explained in tapestry localization tutorial
> > (http://tapestry.apache.org/tapestry5/guide/localization.html).
> > I've change nothing since my last tapestry upgrade from 5.0.16-SNAPSHOT
> > and it was working.
> > Has something been modified regarding the application message catalog or
> > the localization process ? I can't find any change in the nightly
> > documentation ...
> >
> > Thanks in advance.
> >
> > Stephane
> >
> >
>
>
>
> --
> Howard M. Lewis Ship
>
> Creator Apache Tapestry and Apache HiveMind
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


Re: How can my RequestExceptionHandler distinguish event requests from page requests?

2008-12-10 Thread Peter Stavrinides
You can use: request.isXHR() which checks against a header "X-Requested-With" 
set by the prototype library for AJAX calls. If you write your own AJAX stuff 
then request.isXHR() probably won't be set so you will have to set it yourself.

Cheers
Peter


-- 
If you are not an intended recipient of this e-mail, please notify the sender, 
delete it and do not read, act upon, print, disclose, copy, retain or 
redistribute it. Please visit http://www.albourne.com/email.html for important 
additional terms relating to this e-mail.

- Original Message -
From: "Franz Amador" <[EMAIL PROTECTED]>
To: users@tapestry.apache.org
Sent: Tuesday, 9 December, 2008 9:10:14 PM GMT +02:00 Athens, Beirut, 
Bucharest, Istanbul
Subject: How can my RequestExceptionHandler distinguish event requests from 
page requests?


My app responds to Ajax event requests with JSON.  If the event handler
throws an exception, I'd like to return a special JSON response with the
error text.  Can I decorate RequestExceptionHandler for this?  To do so, I'd
need to be able to tell that the request is an Ajax event request; if it
isn't, I'll delegate to the default RequestExceptionHandler.  Is there a
service I can use in my RequestExceptionHandler that'll tell me whether the
request is an event request and not, say, a page request?
-- 
View this message in context: 
http://n2.nabble.com/How-can-my-RequestExceptionHandler-distinguish-event-requests-from-page-requests--tp1635333p1635333.html
Sent from the Tapestry Users mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Redirect before page render

2008-12-10 Thread Peter Stavrinides
Use an application state object (it is session scoped), so on your login page 
you could have:

@ApplicationState
private UserStateTracker stateTracker;

@InjectPage
private Home homePage;

Object onActivate(){
 if(stateTracker.isSignedIn()){
  //user is already signed in so redirect
  return homePage;
 }
}


If you need something slightly more complex (i.e.:filtering per request) then 
you need to implement a request filter and do the checking there:

public class PageAccessController implements RequestFilter {

  public PageAccessController(ApplicationStateManager asm) {
asm_ = asm;
  }

  public boolean service(Request request, Response response,
RequestHandler handler) throws IOException {
   
   UserStateTracker stateTracker = asm_.get(UserStateTracker.class);

   if(!stateTracker.isSignedIn())
   //user is not signed in so redirect him to the login page

  }


}

You also will need a contribution in your AppModule:
public static void contributeRequestHandler(
OrderedConfiguration configuration,
@InjectService("TimingFilter") RequestFilter filter, 
@InjectService("PageAccessController") RequestFilter 
pageAccessController) {
configuration.add("Timing", filter);
configuration.add("PageAccessController", pageAccessController,
"before:PageRender");
}

cheers,
Peter

- Original Message -
From: "Allex Juang" <[EMAIL PROTECTED]>
To: "Tapestry users" 
Sent: Wednesday, 10 December, 2008 9:31:29 AM GMT +02:00 Athens, Beirut, 
Bucharest, Istanbul
Subject: Redirect before page render

Hi,

I have a Login page, and user will navigate to, say, Work page after 
success authenticate process.
But when an authenticated user access Login page, I wish to just 
redirect to Work page.
How can I do that?

Allex J.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]