|
View:
New views
13 Messages
—
Rating Filter:
Alert me
|
|
|
JavaZone presentation, feedback wantedHi,
I've just begin to work on my presentation on Wicket for JavaZone (I'm replacing Eelco), and I'd like to get some feedback about the agenda I plan to follow. The description of the talk is the following: "In this session, I will show you how you can use Apache Wicket to develop web applications with Just Java and Just HTML. I'll talk a bit about Wicket's philosophy and why it's developers believe it is important to take a novel approach. And then, because only code really talks, we'll take a deep dive to look at how to develop some custom, reusable components." Hence here's the agenda I'm considering: •Introduction 5 min •What is Wicket 10 min •Core concepts of Wicket 15 min •Developing a custom component 20 min •Q&A 10 min For the two first topic I'll take inspiration from Martjin's presentation at TSSJS europe last year, but in a much more condensed way to keep enough time to talk about developing custom components with real world example and demo. About the custom components, I think I will only demonstrate one example, since 20 minutes is very short. My idea is to demonstrate how to create a password field with a password strength indicator, where the password strength is computed on the server by an Ajax call when the user stop typing (the event will be triggered by a behavior inspired by Nathan work in databinder, I don't plan to explain it). Here's the Java code for the component: --------------8<--------------------- public class PasswordField extends Panel { public final static String WEAK = "weak"; public final static String MEDIUM = "medium"; public final static String STRONG = "strong"; public PasswordField(String id, IModel/*<String>*/ model) { super(id, model); PasswordTextField passwordTextField = new PasswordTextField("password", model); add(passwordTextField); final Label strength = new Label("strength", ""); add(strength); strength.add(new AttributeModifier("class", true, new Model() { public Object getObject() { return getPasswordStrength((String)PasswordField.this.getModelObject()); } })); strength.setOutputMarkupId(true); passwordTextField.add(new OnKeyPausedAjaxBehavior() { protected void onUpdate(AjaxRequestTarget target) { target.addComponent(strength); } }); } /** * Returns a String representing the strength of a password. * <p> * The String returned is one of: * <ul> * <li>{@link #WEAK}</li> * <li>{@link #MEDIUM}</li> * <li>{@link #STRONG}</li> * </ul> * * @param password the password to evaluate * @return a String representing the evaluated password strength */ protected String getPasswordStrength(String password) { // this could involve some complex calculation based on a dictionary for instance // here for simplicity reason we only use the password length if (password == null || password.length() <= 3) { return WEAK; } if (password.length() <= 5) { return MEDIUM; } return STRONG; } } --------------8<--------------------- And here is the html: --------------8<--------------------- <html> <head> <wicket:head> <wicket:link> <link rel="stylesheet" type="text/css" href="PasswordField.css"/> </wicket:link> </wicket:head> </head> <body> <wicket:panel> <input wicket:id="password" type="password" /> <span wicket:id="strength"></span> </wicket:panel> <hr/> Examples:<br/> <input type="password" /> <span class="weak"></span> (weak)<br/> <input type="password" /> <span class="medium"></span> (medium)<br/> <input type="password" /> <span class="strong"></span> (strong)<br/> </body> </html> --------------8<--------------------- A css is used to change the background image of the password strength meter depending on the span class set by the attribute modifier. So, what do you think about the agenda? Do you think the time planned for each item is well thought? And about the custom component, do you think it's a good example? Do you have some suggestions to make for the code? Any feedback is appreciated! Xavier -- Xavier Hanin - Independent Java Consultant http://xhab.blogspot.com/ http://incubator.apache.org/ivy/ http://www.xoocode.org/ |
|
|
Re: JavaZone presentation, feedback wantedLooks good to me Xavier. A danger about the example is that it would
probably be easy to be focussed on determining the password strength rather than how to create a custom component, but then again, the example by itself is nice, and can't just be found in the examples projects. The kind of example I was thinking about for my presentation would probably try to show off the fact that Wicket components are stateful and that the component hierarchy is flexible (Al's talk points that out nicely for instance). Eelco On 8/21/07, Xavier Hanin <xavier.hanin@...> wrote: > Hi, > > I've just begin to work on my presentation on Wicket for JavaZone (I'm > replacing Eelco), and I'd like to get some feedback about the agenda I > plan to follow. The description of the talk is the following: > "In this session, I will show you how you can use Apache Wicket to > develop web applications with Just Java and Just HTML. I'll talk a bit > about Wicket's philosophy and why it's developers believe it is > important to take a novel approach. And then, because only code really > talks, we'll take a deep dive to look at how to develop some custom, > reusable components." > > Hence here's the agenda I'm considering: > •Introduction 5 min > •What is Wicket 10 min > •Core concepts of Wicket 15 min > •Developing a custom component 20 min > •Q&A 10 min > > For the two first topic I'll take inspiration from Martjin's > presentation at TSSJS europe last year, but in a much more condensed > way to keep enough time to talk about developing custom components > with real world example and demo. > > About the custom components, I think I will only demonstrate one > example, since 20 minutes is very short. My idea is to demonstrate how > to create a password field with a password strength indicator, where > the password strength is computed on the server by an Ajax call when > the user stop typing (the event will be triggered by a behavior > inspired by Nathan work in databinder, I don't plan to explain it). > > Here's the Java code for the component: > --------------8<--------------------- > public class PasswordField extends Panel { > public final static String WEAK = "weak"; > public final static String MEDIUM = "medium"; > public final static String STRONG = "strong"; > > public PasswordField(String id, IModel/*<String>*/ model) { > super(id, model); > PasswordTextField passwordTextField = new > PasswordTextField("password", model); > add(passwordTextField); > > final Label strength = new Label("strength", ""); > add(strength); > strength.add(new AttributeModifier("class", true, new Model() { > public Object getObject() { > return > getPasswordStrength((String)PasswordField.this.getModelObject()); > } > })); > > strength.setOutputMarkupId(true); > passwordTextField.add(new OnKeyPausedAjaxBehavior() { > protected void onUpdate(AjaxRequestTarget target) { > target.addComponent(strength); > } > }); > } > > /** > * Returns a String representing the strength of a password. > * <p> > * The String returned is one of: > * <ul> > * <li>{@link #WEAK}</li> > * <li>{@link #MEDIUM}</li> > * <li>{@link #STRONG}</li> > * </ul> > * > * @param password the password to evaluate > * @return a String representing the evaluated password strength > */ > protected String getPasswordStrength(String password) { > // this could involve some complex calculation based on a > dictionary for instance > // here for simplicity reason we only use the password length > if (password == null || password.length() <= 3) { > return WEAK; > } > if (password.length() <= 5) { > return MEDIUM; > } > return STRONG; > } > > } > --------------8<--------------------- > > And here is the html: > --------------8<--------------------- > <html> > <head> > <wicket:head> > <wicket:link> > <link rel="stylesheet" type="text/css" href="PasswordField.css"/> > </wicket:link> > </wicket:head> > </head> > <body> > <wicket:panel> > <input wicket:id="password" type="password" /> <span > wicket:id="strength"></span> > </wicket:panel> > <hr/> > Examples:<br/> > <input type="password" /> <span class="weak"></span> (weak)<br/> > <input type="password" /> <span class="medium"></span> (medium)<br/> > <input type="password" /> <span class="strong"></span> (strong)<br/> > </body> > </html> > --------------8<--------------------- > > A css is used to change the background image of the password strength > meter depending on the span class set by the attribute modifier. > > So, what do you think about the agenda? Do you think the time planned > for each item is well thought? And about the custom component, do you > think it's a good example? Do you have some suggestions to make for > the code? Any feedback is appreciated! > > Xavier > -- > Xavier Hanin - Independent Java Consultant > http://xhab.blogspot.com/ > http://incubator.apache.org/ivy/ > http://www.xoocode.org/ > |
|
|
Re: JavaZone presentation, feedback wantedOn 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote:
> > Looks good to me Xavier. A danger about the example is that it would > probably be easy to be focussed on determining the password strength > rather than how to create a custom component, That's why I provide only a very simple implementation. It could even be delegated to another service, I think audience can understand that. but then again, the > example by itself is nice, and can't just be found in the examples > projects. > > The kind of example I was thinking about for my presentation would > probably try to show off the fact that Wicket components are stateful > and that the component hierarchy is flexible (Al's talk points that > out nicely for instance). Are you referring to his talk on bean editor? Maybe you could give me an example of component you were thinking about? Xavier Eelco > > > On 8/21/07, Xavier Hanin <xavier.hanin@...> wrote: > > Hi, > > > > I've just begin to work on my presentation on Wicket for JavaZone (I'm > > replacing Eelco), and I'd like to get some feedback about the agenda I > > plan to follow. The description of the talk is the following: > > "In this session, I will show you how you can use Apache Wicket to > > develop web applications with Just Java and Just HTML. I'll talk a bit > > about Wicket's philosophy and why it's developers believe it is > > important to take a novel approach. And then, because only code really > > talks, we'll take a deep dive to look at how to develop some custom, > > reusable components." > > > > Hence here's the agenda I'm considering: > > •Introduction 5 min > > •What is Wicket 10 min > > •Core concepts of Wicket 15 min > > •Developing a custom component 20 min > > •Q&A 10 min > > > > For the two first topic I'll take inspiration from Martjin's > > presentation at TSSJS europe last year, but in a much more condensed > > way to keep enough time to talk about developing custom components > > with real world example and demo. > > > > About the custom components, I think I will only demonstrate one > > example, since 20 minutes is very short. My idea is to demonstrate how > > to create a password field with a password strength indicator, where > > the password strength is computed on the server by an Ajax call when > > the user stop typing (the event will be triggered by a behavior > > inspired by Nathan work in databinder, I don't plan to explain it). > > > > Here's the Java code for the component: > > --------------8<--------------------- > > public class PasswordField extends Panel { > > public final static String WEAK = "weak"; > > public final static String MEDIUM = "medium"; > > public final static String STRONG = "strong"; > > > > public PasswordField(String id, IModel/*<String>*/ model) { > > super(id, model); > > PasswordTextField passwordTextField = new > > PasswordTextField("password", model); > > add(passwordTextField); > > > > final Label strength = new Label("strength", ""); > > add(strength); > > strength.add(new AttributeModifier("class", true, new Model() { > > public Object getObject() { > > return > > getPasswordStrength((String)PasswordField.this.getModelObject()); > > } > > })); > > > > strength.setOutputMarkupId(true); > > passwordTextField.add(new OnKeyPausedAjaxBehavior() { > > protected void onUpdate(AjaxRequestTarget target) { > > target.addComponent(strength); > > } > > }); > > } > > > > /** > > * Returns a String representing the strength of a password. > > * <p> > > * The String returned is one of: > > * <ul> > > * <li>{@link #WEAK}</li> > > * <li>{@link #MEDIUM}</li> > > * <li>{@link #STRONG}</li> > > * </ul> > > * > > * @param password the password to evaluate > > * @return a String representing the evaluated password strength > > */ > > protected String getPasswordStrength(String password) { > > // this could involve some complex calculation based on a > > dictionary for instance > > // here for simplicity reason we only use the password length > > if (password == null || password.length() <= 3) { > > return WEAK; > > } > > if (password.length() <= 5) { > > return MEDIUM; > > } > > return STRONG; > > } > > > > } > > --------------8<--------------------- > > > > And here is the html: > > --------------8<--------------------- > > <html> > > <head> > > <wicket:head> > > <wicket:link> > > <link rel="stylesheet" type="text/css" href=" > PasswordField.css"/> > > </wicket:link> > > </wicket:head> > > </head> > > <body> > > <wicket:panel> > > <input wicket:id="password" type="password" /> > <span > > wicket:id="strength"></span> > > </wicket:panel> > > <hr/> > > Examples:<br/> > > <input type="password" /> <span class="weak"></span> > (weak)<br/> > > <input type="password" /> <span class="medium"></span> > (medium)<br/> > > <input type="password" /> <span class="strong"></span> > (strong)<br/> > > </body> > > </html> > > --------------8<--------------------- > > > > A css is used to change the background image of the password strength > > meter depending on the span class set by the attribute modifier. > > > > So, what do you think about the agenda? Do you think the time planned > > for each item is well thought? And about the custom component, do you > > think it's a good example? Do you have some suggestions to make for > > the code? Any feedback is appreciated! > > > > Xavier > > -- > > Xavier Hanin - Independent Java Consultant > > http://xhab.blogspot.com/ > > http://incubator.apache.org/ivy/ > > http://www.xoocode.org/ > > > -- Xavier Hanin - Independent Java Consultant http://xhab.blogspot.com/ http://incubator.apache.org/ivy/ http://www.xoocode.org/ |
|
|
Re: JavaZone presentation, feedback wantedOn 8/22/07, Xavier Hanin <xavier.hanin@...> wrote:
> On 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote: > > > > Looks good to me Xavier. A danger about the example is that it would > > probably be easy to be focussed on determining the password strength > > rather than how to create a custom component, > > > That's why I provide only a very simple implementation. It could even be > delegated to another service, I think audience can understand that. True. Don't get me wrong, I think it could be a very nice example. > but then again, the > > example by itself is nice, and can't just be found in the examples > > projects. > > > > The kind of example I was thinking about for my presentation would > > probably try to show off the fact that Wicket components are stateful > > and that the component hierarchy is flexible (Al's talk points that > > out nicely for instance). > > > Are you referring to his talk on bean editor? Maybe you could give me an > example of component you were thinking about? I wasn't done with the thinking tbh... But for instance a simple bean editor would have a big cool factor. Though you example would score high on that as it uses Ajax :) I think both would be good examples, and the advantage of your idea is that it wouldn't be too much code, so that you can focus on your story. Eelco |
|
|
Re: JavaZone presentation, feedback wantedA first version of the presentation slides is available here:
http://people.apache.org/~xavier/wicket-javazone-07.ppt The section about custom component doesn't have much slides, but I will spend most of the time demonstrating stuff with eclipse and firefox, so the slides are mainly there as a backup and to give an idea of what I'll talk about. Do you see anything wrong in these slides? Any idea of improvements? Any feedback is welcome! Xavier On 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote: > > On 8/22/07, Xavier Hanin <xavier.hanin@...> wrote: > > On 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote: > > > > > > Looks good to me Xavier. A danger about the example is that it would > > > probably be easy to be focussed on determining the password strength > > > rather than how to create a custom component, > > > > > > That's why I provide only a very simple implementation. It could even be > > delegated to another service, I think audience can understand that. > > True. Don't get me wrong, I think it could be a very nice example. > > > but then again, the > > > example by itself is nice, and can't just be found in the examples > > > projects. > > > > > > The kind of example I was thinking about for my presentation would > > > probably try to show off the fact that Wicket components are stateful > > > and that the component hierarchy is flexible (Al's talk points that > > > out nicely for instance). > > > > > > Are you referring to his talk on bean editor? Maybe you could give me an > > example of component you were thinking about? > > I wasn't done with the thinking tbh... But for instance a simple bean > editor would have a big cool factor. Though you example would score > high on that as it uses Ajax :) I think both would be good examples, > and the advantage of your idea is that it wouldn't be too much code, > so that you can focus on your story. > > Eelco > -- Xavier Hanin - Independent Java Consultant http://xhab.blogspot.com/ http://incubator.apache.org/ivy/ http://www.xoocode.org/ |
|
|
Re: JavaZone presentation, feedback wantedhere are some notes:
under integration mention: guice components and markup: borders also have their own markup files is it possible on behaviors page to subclass simpleattributemodifier and move that %2 logic into it, i think that will make it clearer what behaviors are all about. models: "models are the brains of your app", i wouldnt go that far, you shouldnt have business logic in the models "Solution: OGNL dynamic expressions" - i wouldnt mention ognl because we do not depend on it. i would say ognl/el-like property path expressions example:password strength: you can put a preview into the spaen tag so something like <span wicket:id="strength">[[strength bar]]</span> so it at least shows that in the preview. instead of strength.add(new attributemodifier() might be better to do strength.add(new abstractbehavior() { oncomponenttag(tag) { tag.put("class", PasswordField.this.getModelObjectAsString()); } it ties into the behaviors which you have explained which means one less concept and its more transparent then an attributemodifier. -igor On 8/23/07, Xavier Hanin <xavier.hanin@...> wrote: > > A first version of the presentation slides is available here: > http://people.apache.org/~xavier/wicket-javazone-07.ppt > > The section about custom component doesn't have much slides, but I will > spend most of the time demonstrating stuff with eclipse and firefox, so > the > slides are mainly there as a backup and to give an idea of what I'll talk > about. > > Do you see anything wrong in these slides? Any idea of improvements? Any > feedback is welcome! > > Xavier > > On 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote: > > > > On 8/22/07, Xavier Hanin <xavier.hanin@...> wrote: > > > On 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote: > > > > > > > > Looks good to me Xavier. A danger about the example is that it would > > > > probably be easy to be focussed on determining the password strength > > > > rather than how to create a custom component, > > > > > > > > > That's why I provide only a very simple implementation. It could even > be > > > delegated to another service, I think audience can understand that. > > > > True. Don't get me wrong, I think it could be a very nice example. > > > > > but then again, the > > > > example by itself is nice, and can't just be found in the examples > > > > projects. > > > > > > > > The kind of example I was thinking about for my presentation would > > > > probably try to show off the fact that Wicket components are > stateful > > > > and that the component hierarchy is flexible (Al's talk points that > > > > out nicely for instance). > > > > > > > > > Are you referring to his talk on bean editor? Maybe you could give me > an > > > example of component you were thinking about? > > > > I wasn't done with the thinking tbh... But for instance a simple bean > > editor would have a big cool factor. Though you example would score > > high on that as it uses Ajax :) I think both would be good examples, > > and the advantage of your idea is that it wouldn't be too much code, > > so that you can focus on your story. > > > > Eelco > > > > > > -- > Xavier Hanin - Independent Java Consultant > http://xhab.blogspot.com/ > http://incubator.apache.org/ivy/ > http://www.xoocode.org/ > |
|
|
Re: JavaZone presentation, feedback wantedThanks for your feedback Igor!
On 8/23/07, Igor Vaynberg <igor.vaynberg@...> wrote: > > here are some notes: > > under integration mention: guice will do components and markup: borders also have their own markup files indeed is it possible on behaviors page to subclass simpleattributemodifier and > move that %2 logic into it, i think that will make it clearer what > behaviors > are all about. it makes sense models: > > "models are the brains of your app", i wouldnt go that far, you shouldnt > have business logic in the models I picked this up from martjin's presentation, Ibut I agree it goes too far "Solution: OGNL dynamic expressions" - i wouldnt mention ognl because we do > not depend on it. i would say ognl/el-like property path expressions Indeed, this is something that has changed since Martjin's talk. I'll update it accordingly example:password strength: you can put a preview into the spaen tag so > something like <span wicket:id="strength">[[strength bar]]</span> so it at > least shows that in the preview. makes sense instead of strength.add(new attributemodifier() might be better to do > strength.add(new abstractbehavior() { oncomponenttag(tag) { tag.put > ("class", > PasswordField.this.getModelObjectAsString()); } > > it ties into the behaviors which you have explained which means one less > concept and its more transparent then an attributemodifier. I think the attribute modifier is pretty obvious to understand, and there's already an example with AttributeModifier when talking about Behaviors. But I like your code too, it makes more obvious there's a lot more you can do with a behavior than modifying an attribute. So there's pros and cons for both IMO, I'll see if I can show the two (one when talking about behaviors, one in the example). Thanks again for your valuable input, Xavier -igor > > On 8/23/07, Xavier Hanin <xavier.hanin@...> wrote: > > > > A first version of the presentation slides is available here: > > http://people.apache.org/~xavier/wicket-javazone-07.ppt > > > > The section about custom component doesn't have much slides, but I will > > spend most of the time demonstrating stuff with eclipse and firefox, so > > the > > slides are mainly there as a backup and to give an idea of what I'll > talk > > about. > > > > Do you see anything wrong in these slides? Any idea of improvements? Any > > feedback is welcome! > > > > Xavier > > > > On 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote: > > > > > > On 8/22/07, Xavier Hanin <xavier.hanin@...> wrote: > > > > On 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote: > > > > > > > > > > Looks good to me Xavier. A danger about the example is that it > would > > > > > probably be easy to be focussed on determining the password > strength > > > > > rather than how to create a custom component, > > > > > > > > > > > > That's why I provide only a very simple implementation. It could > even > > be > > > > delegated to another service, I think audience can understand that. > > > > > > True. Don't get me wrong, I think it could be a very nice example. > > > > > > > but then again, the > > > > > example by itself is nice, and can't just be found in the examples > > > > > projects. > > > > > > > > > > The kind of example I was thinking about for my presentation would > > > > > probably try to show off the fact that Wicket components are > > stateful > > > > > and that the component hierarchy is flexible (Al's talk points > that > > > > > out nicely for instance). > > > > > > > > > > > > Are you referring to his talk on bean editor? Maybe you could give > me > > an > > > > example of component you were thinking about? > > > > > > I wasn't done with the thinking tbh... But for instance a simple bean > > > editor would have a big cool factor. Though you example would score > > > high on that as it uses Ajax :) I think both would be good examples, > > > and the advantage of your idea is that it wouldn't be too much code, > > > so that you can focus on your story. > > > > > > Eelco > > > > > > > > > > > -- > > Xavier Hanin - Independent Java Consultant > > http://xhab.blogspot.com/ > > http://incubator.apache.org/ivy/ > > http://www.xoocode.org/ > > > -- Xavier Hanin - Independent Java Consultant http://xhab.blogspot.com/ http://incubator.apache.org/ivy/ http://www.xoocode.org/ |
|
|
Re: JavaZone presentation, feedback wantedI've updated the presentation according to the your remarks Igor and
uploaded to the same location, if any of you have any further comments, let me know. I'll send this presentation to the javazone committee this afternoon. Thank you for your help, Xavier On 8/23/07, Xavier Hanin <xavier.hanin@...> wrote: > > Thanks for your feedback Igor! > > On 8/23/07, Igor Vaynberg <igor.vaynberg@...> wrote: > > > > here are some notes: > > > > under integration mention: guice > > > will do > > components and markup: borders also have their own markup files > > > indeed > > is it possible on behaviors page to subclass simpleattributemodifier and > > move that %2 logic into it, i think that will make it clearer what > > behaviors > > are all about. > > > it makes sense > > models: > > > > "models are the brains of your app", i wouldnt go that far, you shouldnt > > > > have business logic in the models > > > I picked this up from martjin's presentation, Ibut I agree it goes too far > > > "Solution: OGNL dynamic expressions" - i wouldnt mention ognl because we > > do > > not depend on it. i would say ognl/el-like property path expressions > > > Indeed, this is something that has changed since Martjin's talk. I'll > update it accordingly > > example:password strength: you can put a preview into the spaen tag so > > something like <span wicket:id="strength">[[strength bar]]</span> so it > > at > > least shows that in the preview. > > > makes sense > > instead of strength.add(new attributemodifier() might be better to do > > strength.add(new abstractbehavior() { oncomponenttag(tag) { tag.put > > ("class", > > PasswordField.this.getModelObjectAsString()); } > > > > it ties into the behaviors which you have explained which means one less > > > > concept and its more transparent then an attributemodifier. > > > I think the attribute modifier is pretty obvious to understand, and > there's already an example with AttributeModifier when talking about > Behaviors. But I like your code too, it makes more obvious there's a lot > more you can do with a behavior than modifying an attribute. So there's pros > and cons for both IMO, I'll see if I can show the two (one when talking > about behaviors, one in the example). > > Thanks again for your valuable input, > > Xavier > > -igor > > > > On 8/23/07, Xavier Hanin < xavier.hanin@...> wrote: > > > > > > A first version of the presentation slides is available here: > > > http://people.apache.org/~xavier/wicket-javazone-07.ppt<http://people.apache.org/%7Exavier/wicket-javazone-07.ppt> > > > > > > The section about custom component doesn't have much slides, but I > > will > > > spend most of the time demonstrating stuff with eclipse and firefox, > > so > > > the > > > slides are mainly there as a backup and to give an idea of what I'll > > talk > > > about. > > > > > > Do you see anything wrong in these slides? Any idea of improvements? > > Any > > > feedback is welcome! > > > > > > Xavier > > > > > > On 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote: > > > > > > > > On 8/22/07, Xavier Hanin < xavier.hanin@...> wrote: > > > > > On 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote: > > > > > > > > > > > > Looks good to me Xavier. A danger about the example is that it > > would > > > > > > probably be easy to be focussed on determining the password > > strength > > > > > > rather than how to create a custom component, > > > > > > > > > > > > > > > That's why I provide only a very simple implementation. It could > > even > > > be > > > > > delegated to another service, I think audience can understand > > that. > > > > > > > > True. Don't get me wrong, I think it could be a very nice example. > > > > > > > > > but then again, the > > > > > > example by itself is nice, and can't just be found in the > > examples > > > > > > projects. > > > > > > > > > > > > The kind of example I was thinking about for my presentation > > would > > > > > > probably try to show off the fact that Wicket components are > > > stateful > > > > > > and that the component hierarchy is flexible (Al's talk points > > that > > > > > > out nicely for instance). > > > > > > > > > > > > > > > Are you referring to his talk on bean editor? Maybe you could give > > me > > > an > > > > > example of component you were thinking about? > > > > > > > > I wasn't done with the thinking tbh... But for instance a simple > > bean > > > > editor would have a big cool factor. Though you example would score > > > > high on that as it uses Ajax :) I think both would be good examples, > > > > and the advantage of your idea is that it wouldn't be too much code, > > > > > > so that you can focus on your story. > > > > > > > > Eelco > > > > > > > > > > > > > > > > -- > > > Xavier Hanin - Independent Java Consultant > > > http://xhab.blogspot.com/ > > > http://incubator.apache.org/ivy/ > > > http://www.xoocode.org/ > > > > > > > > > -- > Xavier Hanin - Independent Java Consultant > http://xhab.blogspot.com/ > http://incubator.apache.org/ivy/ > http://www.xoocode.org/ > -- Xavier Hanin - Independent Java Consultant http://xhab.blogspot.com/ http://incubator.apache.org/ivy/ http://www.xoocode.org/ |
|
|
Re: JavaZone presentation, feedback wantedA small detail:
On your fourth slide there is a small typo saying Apache Sofware Foundation. regards, Guðmundur Bjarni Ólafsson On 8/24/07, Xavier Hanin <xavier.hanin@...> wrote: > > I've updated the presentation according to the your remarks Igor and > uploaded to the same location, if any of you have any further comments, > let > me know. > > I'll send this presentation to the javazone committee this afternoon. > > Thank you for your help, > > Xavier > > On 8/23/07, Xavier Hanin <xavier.hanin@...> wrote: > > > > Thanks for your feedback Igor! > > > > On 8/23/07, Igor Vaynberg <igor.vaynberg@...> wrote: > > > > > > here are some notes: > > > > > > under integration mention: guice > > > > > > will do > > > > components and markup: borders also have their own markup files > > > > > > indeed > > > > is it possible on behaviors page to subclass simpleattributemodifier and > > > move that %2 logic into it, i think that will make it clearer what > > > behaviors > > > are all about. > > > > > > it makes sense > > > > models: > > > > > > "models are the brains of your app", i wouldnt go that far, you > shouldnt > > > > > > have business logic in the models > > > > > > I picked this up from martjin's presentation, Ibut I agree it goes too > far > > > > > > "Solution: OGNL dynamic expressions" - i wouldnt mention ognl because we > > > do > > > not depend on it. i would say ognl/el-like property path expressions > > > > > > Indeed, this is something that has changed since Martjin's talk. I'll > > update it accordingly > > > > example:password strength: you can put a preview into the spaen tag so > > > something like <span wicket:id="strength">[[strength bar]]</span> so > it > > > at > > > least shows that in the preview. > > > > > > makes sense > > > > instead of strength.add(new attributemodifier() might be better to do > > > strength.add(new abstractbehavior() { oncomponenttag(tag) { tag.put > > > ("class", > > > PasswordField.this.getModelObjectAsString()); } > > > > > > it ties into the behaviors which you have explained which means one > less > > > > > > concept and its more transparent then an attributemodifier. > > > > > > I think the attribute modifier is pretty obvious to understand, and > > there's already an example with AttributeModifier when talking about > > Behaviors. But I like your code too, it makes more obvious there's a lot > > more you can do with a behavior than modifying an attribute. So there's > pros > > and cons for both IMO, I'll see if I can show the two (one when talking > > about behaviors, one in the example). > > > > Thanks again for your valuable input, > > > > Xavier > > > > -igor > > > > > > On 8/23/07, Xavier Hanin < xavier.hanin@...> wrote: > > > > > > > > A first version of the presentation slides is available here: > > > > http://people.apache.org/~xavier/wicket-javazone-07.ppt< > http://people.apache.org/%7Exavier/wicket-javazone-07.ppt> > > > > > > > > > The section about custom component doesn't have much slides, but I > > > will > > > > spend most of the time demonstrating stuff with eclipse and firefox, > > > so > > > > the > > > > slides are mainly there as a backup and to give an idea of what I'll > > > talk > > > > about. > > > > > > > > Do you see anything wrong in these slides? Any idea of improvements? > > > Any > > > > feedback is welcome! > > > > > > > > Xavier > > > > > > > > On 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote: > > > > > > > > > > On 8/22/07, Xavier Hanin < xavier.hanin@...> wrote: > > > > > > On 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote: > > > > > > > > > > > > > > Looks good to me Xavier. A danger about the example is that it > > > would > > > > > > > probably be easy to be focussed on determining the password > > > strength > > > > > > > rather than how to create a custom component, > > > > > > > > > > > > > > > > > > That's why I provide only a very simple implementation. It could > > > even > > > > be > > > > > > delegated to another service, I think audience can understand > > > that. > > > > > > > > > > True. Don't get me wrong, I think it could be a very nice example. > > > > > > > > > > > but then again, the > > > > > > > example by itself is nice, and can't just be found in the > > > examples > > > > > > > projects. > > > > > > > > > > > > > > The kind of example I was thinking about for my presentation > > > would > > > > > > > probably try to show off the fact that Wicket components are > > > > stateful > > > > > > > and that the component hierarchy is flexible (Al's talk points > > > that > > > > > > > out nicely for instance). > > > > > > > > > > > > > > > > > > Are you referring to his talk on bean editor? Maybe you could > give > > > me > > > > an > > > > > > example of component you were thinking about? > > > > > > > > > > I wasn't done with the thinking tbh... But for instance a simple > > > bean > > > > > editor would have a big cool factor. Though you example would > score > > > > > high on that as it uses Ajax :) I think both would be good > examples, > > > > > and the advantage of your idea is that it wouldn't be too much > code, > > > > > > > > so that you can focus on your story. > > > > > > > > > > Eelco > > > > > > > > > > > > > > > > > > > > > -- > > > > Xavier Hanin - Independent Java Consultant > > > > http://xhab.blogspot.com/ > > > > http://incubator.apache.org/ivy/ > > > > http://www.xoocode.org/ > > > > > > > > > > > > > > > -- > > Xavier Hanin - Independent Java Consultant > > http://xhab.blogspot.com/ > > http://incubator.apache.org/ivy/ > > http://www.xoocode.org/ > > > > > > > -- > Xavier Hanin - Independent Java Consultant > http://xhab.blogspot.com/ > http://incubator.apache.org/ivy/ > http://www.xoocode.org/ > |
|
|
Re: JavaZone presentation, feedback wantedI notice the web.xml uses the servlet and not filter approach - which is the
'preferred' option these days? Any reason to use one over the other? And if not - maybe mention the filter in the talk and why you might want that. On 8/26/07, Guðmundur Bjarni Ólafsson <aquatopia@...> wrote: > > A small detail: > On your fourth slide there is a small typo saying Apache Sofware > Foundation. > > |
|
|
Re: JavaZone presentation, feedback wantedOn 8/26/07, Mark Derricutt <mark@...> wrote:
> I notice the web.xml uses the servlet and not filter approach - which is the > 'preferred' option these days? Any reason to use one over the other? And > if not - maybe mention the filter in the talk and why you might want that. The filter is preferred as it handles applications mapped to the root well. Eelco |
|
|
Re: JavaZone presentation, feedback wantedOn 8/25/07, Guðmundur Bjarni Ólafsson <aquatopia@...> wrote:
> > A small detail: > On your fourth slide there is a small typo saying Apache Sofware > Foundation. Fixed, thanks! Xavier regards, > Guðmundur Bjarni Ólafsson > > On 8/24/07, Xavier Hanin <xavier.hanin@...> wrote: > > > > I've updated the presentation according to the your remarks Igor and > > uploaded to the same location, if any of you have any further comments, > > let > > me know. > > > > I'll send this presentation to the javazone committee this afternoon. > > > > Thank you for your help, > > > > Xavier > > > > On 8/23/07, Xavier Hanin <xavier.hanin@...> wrote: > > > > > > Thanks for your feedback Igor! > > > > > > On 8/23/07, Igor Vaynberg <igor.vaynberg@...> wrote: > > > > > > > > here are some notes: > > > > > > > > under integration mention: guice > > > > > > > > > will do > > > > > > components and markup: borders also have their own markup files > > > > > > > > > indeed > > > > > > is it possible on behaviors page to subclass simpleattributemodifier > and > > > > move that %2 logic into it, i think that will make it clearer what > > > > behaviors > > > > are all about. > > > > > > > > > it makes sense > > > > > > models: > > > > > > > > "models are the brains of your app", i wouldnt go that far, you > > shouldnt > > > > > > > > have business logic in the models > > > > > > > > > I picked this up from martjin's presentation, Ibut I agree it goes too > > far > > > > > > > > > "Solution: OGNL dynamic expressions" - i wouldnt mention ognl because > we > > > > do > > > > not depend on it. i would say ognl/el-like property path expressions > > > > > > > > > Indeed, this is something that has changed since Martjin's talk. I'll > > > update it accordingly > > > > > > example:password strength: you can put a preview into the spaen tag so > > > > something like <span wicket:id="strength">[[strength bar]]</span> so > > it > > > > at > > > > least shows that in the preview. > > > > > > > > > makes sense > > > > > > instead of strength.add(new attributemodifier() might be better to do > > > > strength.add(new abstractbehavior() { oncomponenttag(tag) { tag.put > > > > ("class", > > > > PasswordField.this.getModelObjectAsString()); } > > > > > > > > it ties into the behaviors which you have explained which means one > > less > > > > > > > > concept and its more transparent then an attributemodifier. > > > > > > > > > I think the attribute modifier is pretty obvious to understand, and > > > there's already an example with AttributeModifier when talking about > > > Behaviors. But I like your code too, it makes more obvious there's a > lot > > > more you can do with a behavior than modifying an attribute. So > there's > > pros > > > and cons for both IMO, I'll see if I can show the two (one when > talking > > > about behaviors, one in the example). > > > > > > Thanks again for your valuable input, > > > > > > Xavier > > > > > > -igor > > > > > > > > On 8/23/07, Xavier Hanin < xavier.hanin@...> wrote: > > > > > > > > > > A first version of the presentation slides is available here: > > > > > http://people.apache.org/~xavier/wicket-javazone-07.ppt< > > http://people.apache.org/%7Exavier/wicket-javazone-07.ppt> > > > > > > > > > > > > The section about custom component doesn't have much slides, but I > > > > will > > > > > spend most of the time demonstrating stuff with eclipse and > firefox, > > > > so > > > > > the > > > > > slides are mainly there as a backup and to give an idea of what > I'll > > > > talk > > > > > about. > > > > > > > > > > Do you see anything wrong in these slides? Any idea of > improvements? > > > > Any > > > > > feedback is welcome! > > > > > > > > > > Xavier > > > > > > > > > > On 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote: > > > > > > > > > > > > On 8/22/07, Xavier Hanin < xavier.hanin@...> wrote: > > > > > > > On 8/22/07, Eelco Hillenius <eelco.hillenius@...> wrote: > > > > > > > > > > > > > > > > Looks good to me Xavier. A danger about the example is that > it > > > > would > > > > > > > > probably be easy to be focussed on determining the password > > > > strength > > > > > > > > rather than how to create a custom component, > > > > > > > > > > > > > > > > > > > > > That's why I provide only a very simple implementation. It > could > > > > even > > > > > be > > > > > > > delegated to another service, I think audience can understand > > > > that. > > > > > > > > > > > > True. Don't get me wrong, I think it could be a very nice > example. > > > > > > > > > > > > > but then again, the > > > > > > > > example by itself is nice, and can't just be found in the > > > > examples > > > > > > > > projects. > > > > > > > > > > > > > > > > The kind of example I was thinking about for my presentation > > > > would > > > > > > > > probably try to show off the fact that Wicket components are > > > > > stateful > > > > > > > > and that the component hierarchy is flexible (Al's talk > points > > > > that > > > > > > > > out nicely for instance). > > > > > > > > > > > > > > > > > > > > > Are you referring to his talk on bean editor? Maybe you could > > give > > > > me > > > > > an > > > > > > > example of component you were thinking about? > > > > > > > > > > > > I wasn't done with the thinking tbh... But for instance a simple > > > > bean > > > > > > editor would have a big cool factor. Though you example would > > score > > > > > > high on that as it uses Ajax :) I think both would be good > > examples, > > > > > > and the advantage of your idea is that it wouldn't be too much > > code, > > > > > > > > > > so that you can focus on your story. > > > > > > > > > > > > Eelco > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > Xavier Hanin - Independent Java Consultant > > > > > http://xhab.blogspot.com/ > > > > > http://incubator.apache.org/ivy/ > > > > > http://www.xoocode.org/ > > > > > > > > > > > > > > > > > > > > > -- > > > Xavier Hanin - Independent Java Consultant > > > http://xhab.blogspot.com/ > > > http://incubator.apache.org/ivy/ > > > http://www.xoocode.org/ > > > > > > > > > > > > > -- > > Xavier Hanin - Independent Java Consultant > > http://xhab.blogspot.com/ > > http://incubator.apache.org/ivy/ > > http://www.xoocode.org/ > > > -- Xavier Hanin - Independent Java Consultant http://xhab.blogspot.com/ http://incubator.apache.org/ivy/ http://www.xoocode.org/ |
|
|
Re: JavaZone presentation, feedback wantedOn 8/26/07, Mark Derricutt <mark@...> wrote:
> > I notice the web.xml uses the servlet and not filter approach - which is > the > 'preferred' option these days? Any reason to use one over the other? And > if not - maybe mention the filter in the talk and why you might want that. No reason, this slide was borrowed from Martjin's presentation at TSSJS last year, and I forgot to update it. I've changed the slide to use the preferred option. Thanks for your feedback. Xavier On 8/26/07, Guðmundur Bjarni Ólafsson <aquatopia@...> wrote: > > > > A small detail: > > On your fourth slide there is a small typo saying Apache Sofware > > Foundation. > > > > > -- Xavier Hanin - Independent Java Consultant http://xhab.blogspot.com/ http://incubator.apache.org/ivy/ http://www.xoocode.org/ |
| Free embeddable forum powered by Nabble | Forum Help |