Re: T5: onActivate woes
Yes it does, if the onActivate() methods are in different places. There's a very explicit order, base classes handle events before subclasses. Within a class, its handled alphabetically (ascending) and by parameter count (descending, for a single method name with multiple overrides). What you may be seeing is onActivate() in the parent class being invoked before the child class. Ooops ... I was going to point you at the docs, but this is not documented (outside of JavaDoc). The rules are pretty much the same as for render phase methods: http://tapestry.apache.org/tapestry5/tapestry-core/guide/rendering.html But even that doc is out of date slightly (I need to update the comment about ordering by number of parameters). On Nov 26, 2007 4:38 PM, Andy Huhn [EMAIL PROTECTED] wrote: Howard, I'm on 5.0.6. I'll try to boil this down to a simple test case and file a JIRA. It might have something to do with the page inheritance I'm using? ThisPage - EditBasePage - BasePage. The onActivate() and onActivate(Integer) methods are on ThisPage. Would this make a difference? Thanks, Andy On Sat, 2007-11-24 at 17:00 -0800, Howard Lewis Ship wrote: You are using 5.0.5? I believe 5.0.6 has a fix for this, wherein the method invocation order is by number of parameters, decreasing. You may have to do: Object onActivate(Object[] context) { ... } And check the context count explicitly, and convert the context values explicitly, if you are on 5.0.5. On Nov 24, 2007 11:37 AM, Andy Huhn [EMAIL PROTECTED] wrote: Hello, I'm having a problem with onActivate(). Here are my questions: 1) Why is onActivate() called when a context variable is included in the URL? 2) Is there a way to prevent onActivate() from being called until AFTER onActivate(Integer prmPrimaryKey) is called? Here's my dilemma: I want to use one detail page to handle inserts and updates. So I have written an onActivate(Integer prmPrimaryKey) handler to initialize the page for an update; and another onActivate() handler to initialize the page for an insert. Each onActivate() handler checks to see if the user is allowed to access this page. If the user is not allowed to access, the onActivate() handler generates a Link with the current page's context, uses that Link to set a Session state variable, and then returns a Login page. Once the user logs in, the Session state variable is checked to see if it has been set; if so, the user is taken back to that page. My problem is that when the page is accessed with a context variable (thus, to handle an UPDATE), onActivate() is being called before onActivate(Integer prmPrimaryKey). Thus, the entity ID of the page isn't being set before the Link is generated and added to the session state. The Link that is being generated, then, doesn't have any context included, so when the user finishes logging in, the user is taken back to the page, with no context. Is this a Tapestry bug, or is there a better way of handling this? Thanks, Andy - 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] -- Howard M. Lewis Ship Partner and Senior Architect at Feature50 Creator Apache Tapestry and Apache HiveMind - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: onActivate woes
Howard, I'm on 5.0.6. I'll try to boil this down to a simple test case and file a JIRA. It might have something to do with the page inheritance I'm using? ThisPage - EditBasePage - BasePage. The onActivate() and onActivate(Integer) methods are on ThisPage. Would this make a difference? Thanks, Andy On Sat, 2007-11-24 at 17:00 -0800, Howard Lewis Ship wrote: You are using 5.0.5? I believe 5.0.6 has a fix for this, wherein the method invocation order is by number of parameters, decreasing. You may have to do: Object onActivate(Object[] context) { ... } And check the context count explicitly, and convert the context values explicitly, if you are on 5.0.5. On Nov 24, 2007 11:37 AM, Andy Huhn [EMAIL PROTECTED] wrote: Hello, I'm having a problem with onActivate(). Here are my questions: 1) Why is onActivate() called when a context variable is included in the URL? 2) Is there a way to prevent onActivate() from being called until AFTER onActivate(Integer prmPrimaryKey) is called? Here's my dilemma: I want to use one detail page to handle inserts and updates. So I have written an onActivate(Integer prmPrimaryKey) handler to initialize the page for an update; and another onActivate() handler to initialize the page for an insert. Each onActivate() handler checks to see if the user is allowed to access this page. If the user is not allowed to access, the onActivate() handler generates a Link with the current page's context, uses that Link to set a Session state variable, and then returns a Login page. Once the user logs in, the Session state variable is checked to see if it has been set; if so, the user is taken back to that page. My problem is that when the page is accessed with a context variable (thus, to handle an UPDATE), onActivate() is being called before onActivate(Integer prmPrimaryKey). Thus, the entity ID of the page isn't being set before the Link is generated and added to the session state. The Link that is being generated, then, doesn't have any context included, so when the user finishes logging in, the user is taken back to the page, with no context. Is this a Tapestry bug, or is there a better way of handling this? Thanks, Andy - 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: onActivate woes
Please add to JIRA. On Nov 24, 2007 9:09 PM, Andy Huhn [EMAIL PROTECTED] wrote: Hi Howard, I am on 5.0.6. The behavior you described here is what I expected to see (I have onActivate() with one parameter, and onActivate() with 0 parameters, and I expected to see onActivate() with one parameter executed first...but that was not the case). Should I file a JIRA? It sounds like this is the expected behavior. Thanks, Andy On Sat, 2007-11-24 at 17:00 -0800, Howard Lewis Ship wrote: You are using 5.0.5? I believe 5.0.6 has a fix for this, wherein the method invocation order is by number of parameters, decreasing. You may have to do: Object onActivate(Object[] context) { ... } And check the context count explicitly, and convert the context values explicitly, if you are on 5.0.5. On Nov 24, 2007 11:37 AM, Andy Huhn [EMAIL PROTECTED] wrote: Hello, I'm having a problem with onActivate(). Here are my questions: 1) Why is onActivate() called when a context variable is included in the URL? 2) Is there a way to prevent onActivate() from being called until AFTER onActivate(Integer prmPrimaryKey) is called? Here's my dilemma: I want to use one detail page to handle inserts and updates. So I have written an onActivate(Integer prmPrimaryKey) handler to initialize the page for an update; and another onActivate() handler to initialize the page for an insert. Each onActivate() handler checks to see if the user is allowed to access this page. If the user is not allowed to access, the onActivate() handler generates a Link with the current page's context, uses that Link to set a Session state variable, and then returns a Login page. Once the user logs in, the Session state variable is checked to see if it has been set; if so, the user is taken back to that page. My problem is that when the page is accessed with a context variable (thus, to handle an UPDATE), onActivate() is being called before onActivate(Integer prmPrimaryKey). Thus, the entity ID of the page isn't being set before the Link is generated and added to the session state. The Link that is being generated, then, doesn't have any context included, so when the user finishes logging in, the user is taken back to the page, with no context. Is this a Tapestry bug, or is there a better way of handling this? Thanks, Andy - 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] -- Howard M. Lewis Ship Partner and Senior Architect at Feature50 Creator Apache Tapestry and Apache HiveMind - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
T5: onActivate woes
Hello, I'm having a problem with onActivate(). Here are my questions: 1) Why is onActivate() called when a context variable is included in the URL? 2) Is there a way to prevent onActivate() from being called until AFTER onActivate(Integer prmPrimaryKey) is called? Here's my dilemma: I want to use one detail page to handle inserts and updates. So I have written an onActivate(Integer prmPrimaryKey) handler to initialize the page for an update; and another onActivate() handler to initialize the page for an insert. Each onActivate() handler checks to see if the user is allowed to access this page. If the user is not allowed to access, the onActivate() handler generates a Link with the current page's context, uses that Link to set a Session state variable, and then returns a Login page. Once the user logs in, the Session state variable is checked to see if it has been set; if so, the user is taken back to that page. My problem is that when the page is accessed with a context variable (thus, to handle an UPDATE), onActivate() is being called before onActivate(Integer prmPrimaryKey). Thus, the entity ID of the page isn't being set before the Link is generated and added to the session state. The Link that is being generated, then, doesn't have any context included, so when the user finishes logging in, the user is taken back to the page, with no context. Is this a Tapestry bug, or is there a better way of handling this? Thanks, Andy - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: onActivate woes
You are using 5.0.5? I believe 5.0.6 has a fix for this, wherein the method invocation order is by number of parameters, decreasing. You may have to do: Object onActivate(Object[] context) { ... } And check the context count explicitly, and convert the context values explicitly, if you are on 5.0.5. On Nov 24, 2007 11:37 AM, Andy Huhn [EMAIL PROTECTED] wrote: Hello, I'm having a problem with onActivate(). Here are my questions: 1) Why is onActivate() called when a context variable is included in the URL? 2) Is there a way to prevent onActivate() from being called until AFTER onActivate(Integer prmPrimaryKey) is called? Here's my dilemma: I want to use one detail page to handle inserts and updates. So I have written an onActivate(Integer prmPrimaryKey) handler to initialize the page for an update; and another onActivate() handler to initialize the page for an insert. Each onActivate() handler checks to see if the user is allowed to access this page. If the user is not allowed to access, the onActivate() handler generates a Link with the current page's context, uses that Link to set a Session state variable, and then returns a Login page. Once the user logs in, the Session state variable is checked to see if it has been set; if so, the user is taken back to that page. My problem is that when the page is accessed with a context variable (thus, to handle an UPDATE), onActivate() is being called before onActivate(Integer prmPrimaryKey). Thus, the entity ID of the page isn't being set before the Link is generated and added to the session state. The Link that is being generated, then, doesn't have any context included, so when the user finishes logging in, the user is taken back to the page, with no context. Is this a Tapestry bug, or is there a better way of handling this? Thanks, Andy - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Howard M. Lewis Ship Partner and Senior Architect at Feature50 Creator Apache Tapestry and Apache HiveMind - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: T5: onActivate woes
Hi Howard, I am on 5.0.6. The behavior you described here is what I expected to see (I have onActivate() with one parameter, and onActivate() with 0 parameters, and I expected to see onActivate() with one parameter executed first...but that was not the case). Should I file a JIRA? It sounds like this is the expected behavior. Thanks, Andy On Sat, 2007-11-24 at 17:00 -0800, Howard Lewis Ship wrote: You are using 5.0.5? I believe 5.0.6 has a fix for this, wherein the method invocation order is by number of parameters, decreasing. You may have to do: Object onActivate(Object[] context) { ... } And check the context count explicitly, and convert the context values explicitly, if you are on 5.0.5. On Nov 24, 2007 11:37 AM, Andy Huhn [EMAIL PROTECTED] wrote: Hello, I'm having a problem with onActivate(). Here are my questions: 1) Why is onActivate() called when a context variable is included in the URL? 2) Is there a way to prevent onActivate() from being called until AFTER onActivate(Integer prmPrimaryKey) is called? Here's my dilemma: I want to use one detail page to handle inserts and updates. So I have written an onActivate(Integer prmPrimaryKey) handler to initialize the page for an update; and another onActivate() handler to initialize the page for an insert. Each onActivate() handler checks to see if the user is allowed to access this page. If the user is not allowed to access, the onActivate() handler generates a Link with the current page's context, uses that Link to set a Session state variable, and then returns a Login page. Once the user logs in, the Session state variable is checked to see if it has been set; if so, the user is taken back to that page. My problem is that when the page is accessed with a context variable (thus, to handle an UPDATE), onActivate() is being called before onActivate(Integer prmPrimaryKey). Thus, the entity ID of the page isn't being set before the Link is generated and added to the session state. The Link that is being generated, then, doesn't have any context included, so when the user finishes logging in, the user is taken back to the page, with no context. Is this a Tapestry bug, or is there a better way of handling this? Thanks, Andy - 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]