i would skip the #getCategory part for now. it's very similar to the type-safe message-payload used in codi and those parts are quite special already.
regards, gerhard 2012/10/6 Mark Struberg <[email protected]> > I agree with Christian. From a developer perspective you will just use > some abstract "{PAGEX_USER_NOT_ALLOWED}" and define the parameters. The > developer usually doesn't care about the exact wording anyway ;) > > For the 3.) I think you should just use 2 different message template > identifiers. > > LieGrue, > strub > > > > > ----- Original Message ----- > > From: Christian Kaltepoth <[email protected]> > > To: [email protected] > > Cc: Mark Struberg <[email protected]> > > Sent: Saturday, October 6, 2012 11:42 AM > > Subject: Re: proposal for JSF Messages > > > > Hey Bernard, > > > > I think the user shouldn't actually care about 1) and 2). IMHO the main > > point is to hide these details from the actual business code. In your > code > > you just say "send message X to the user". If summary and details are > > the > > same or not shouldn't be relevant at this point. > > > > Just my feelings regarding this. :) > > > > Christian > > > > > > 2012/10/6 Bernard Łabno <[email protected]> > > > >> Mark, > >> > >> As I've cited > >> hello_you = Hello You > >> hello_you.detail = Good evening Ladies and Gentlemen! > >> > >> Imagine i'm user. Now i have such questions: > >> 1) Does msg.addError().userNotAllowed(loggedInUser) set summary or > details? > >> 2) Hm i've set summary, how do I set details? The API doesn't tell > > me this, > >> I have to reference some manuals to learn how to set details. > >> 3) What if (in one case in entire app) I want to set summary with key > >> {hello_you} and details from {goodbye_you}? In the rest of app I could > use > >> approach as you've proposed, but this once i want to do custom? > >> > >> Please, do not take this as criticism, it's just my gut feeling. > >> > >> 2012/10/6 Mark Struberg <[email protected]> > >> > >> > Hi Bernard! > >> > > >> > which part of it do you consider as magic? > >> > > >> > I think the Message.getCategory(String) is fine (feel free to suggest > > a > >> > better name for the method) > >> > A category is just a different resource pattern for the same > > parameters. > >> > Like short text and long text of the same message. > >> > > >> > Imagine a user makes > >> > > >> > @Inject JsfMessage<MyCheckMessages> msg; > >> > > >> > > >> > msg.addError().userNotAllowed(loggedInUser); > >> > > >> > which would automatically use the property without as fallback and > the > >> > categories 'summary' and 'detail' for creating the > > FacesMessage. > >> > Those 2 categories are of course a contract of the JsfMessage > >> > implementation. > >> > > >> > > >> > But even for non JSF messages it would make sense. > >> > > >> > @Inject MyCheckMessages msg; > >> > > >> > msg.userNotAllowed(loggedInUser).getCategory('shortText'); > >> > > >> > The category String should be a well documented final static String > >> > somewhere of course. > >> > > >> > LieGrue, > >> > strub > >> > > >> > > >> > > >> > > >> > > >> > > >> > >________________________________ > >> > > From: Bernard Łabno <[email protected]> > >> > >To: [email protected]; Mark Struberg < > >> [email protected] > >> > > > >> > >Sent: Saturday, October 6, 2012 8:49 AM > >> > >Subject: Re: proposal for JSF Messages > >> > > > >> > > > >> > >Mark, > >> > > > >> > >Most of ideas are great, but I think that following will be > > considered > >> as > >> > "magic" (too magic) by users. > >> > > > >> > > > >> > >for a "{hello_you}" you can have entries in your > > properties file > >> > >> > >> > >>hello_you = Hello You > >> > >>hello_you.detail = Good evening Ladies and Gentlemen! > >> > >> > >> > > > >> > > > >> > >2012/10/5 Mark Struberg <[email protected]> > >> > > > >> > >Yes, that was the final idea. > >> > >> > >> > >>I originally thought about extending the @MessageBundle and > > let the > >> > interface optionally return a String[]. But I think this is too > > complex > >> to > >> > get right > >> > >> > >> > >>Instead I'd rather introduce a > >> > >>Message#toString(String category); and > >> > >> > >> > >>Message#toString(MessageContext context, String category); > >> > >> > >> > >>for a "{hello_you}" you can have entries in your > > properties file > >> > >> > >> > >>hello_you = Hello You > >> > >>hello_you.detail = Good evening Ladies and Gentlemen! > >> > >> > >> > >> > >> > >>If a user just returns a String in his interface, then both > > detail and > >> > summary will be set with the same text > >> > >>If a user returns a Message, then we can look deeper. > >> > >> > >> > >>LieGrue, > >> > >>strub > >> > >> > >> > >> > >> > >> > >> > >> > >> > >>----- Original Message ----- > >> > >>> From: Gerhard Petracek <[email protected]> > >> > >>> To: [email protected] > >> > >>> Cc: > >> > >>> Sent: Friday, October 5, 2012 9:57 PM > >> > >>> Subject: Re: proposal for JSF Messages > >> > >>> > >> > >>>t he example provided by mark could add a global message > > with the same > >> > >> > >> > >>> summary- and detail-message. > >> > >>> -> we just need those methods with additional > > parameters. > >> > >>> > >> > >>> regards, > >> > >>> gerhard > >> > >>> > >> > >>> > >> > >>> > >> > >>> 2012/10/5 Ken Finnigan <[email protected]> > >> > >>> > >> > >>>> Some additional plans for messages that may be > > relevant to JSF have > >> > been > >> > >>>> documented in [1]. > >> > >>>> > >> > >>>> In Seam 3 International we had some ideas around > > targeting a > >> message > >> > at a > >> > >>>> specific component which are noted here [2]. > >> > >>>> > >> > >>>> Ken > >> > >>>> > >> > >>>> [1] > >> > >>>> > >> > >>>> > >> > >>> > >> > > >> > > > https://cwiki.apache.org/confluence/display/DeltaSpike/Message+Module+Drafts > >> > >>>> [2] > >> > >>>> > >> > >>>> > >> > >>> > >> > > >> > > > https://issues.jboss.org/browse/SEAMINTL-7?focusedCommentId=12562378&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-12562378 > >> > >>>> > >> > >>>> On Fri, Oct 5, 2012 at 3:18 PM, Gerhard Petracek > > < > >> > >>>> [email protected] > >> > >>>> > wrote: > >> > >>>> > >> > >>>> > hi jason, > >> > >>>> > > >> > >>>> > that's for sure just a first idea. > >> > >>>> > e.g. we also need the possibility to add > > messages for a specific > >> > >>>> component. > >> > >>>> > > >> > >>>> > regards, > >> > >>>> > gerhard > >> > >>>> > > >> > >>>> > > >> > >>>> > > >> > >>>> > 2012/10/5 Jason Porter > > <[email protected]> > >> > >>>> > > >> > >>>> > > On Fri, Oct 5, 2012 at 11:24 AM, Mark > > Struberg > >> > >>> <[email protected]> > >> > >>>> > wrote: > >> > >>>> > > > >> > >>>> > > > Hi folks! > >> > >>>> > > > > >> > >>>> > > > I thought quite some time about how > > we could do the typesafe > >> > >>> messging > >> > >>>> > for > >> > >>>> > > > JSF. Today I had the following idea. > >> > >>>> > > > > >> > >>>> > > > > >> > >>>> > > > Imagine a typesafe message > >> > >>>> > > > > >> > >>>> > > > @MessageBundle > >> > >>>> > > > public interface SimpleMessage > >> > >>>> > > > { > >> > >>>> > > > @MessageTemplate("Welcome to > > %s") > >> > >>>> > > > Message welcomeTo(String name); > >> > >>>> > > > } > >> > >>>> > > > > >> > >>>> > > > This is nice but it's hard to use > > it for creating > >> > >>> FacesMessages that > >> > >>>> > way. > >> > >>>> > > > > >> > >>>> > > > Now imagine the following > >> > >>>> > > > > >> > >>>> > > > @Inject > >> > >>>> > > > JsfMessage<SimpleMessge> > > message; > >> > >>>> > > > > >> > >>>> > > > ... > >> > >>>> > > > > >> > >>>> > > > > > message.addInfo().welcomeTo("DeltaSpike); > >> > >>>> > > > > >> > >>>> > > > > >> > >>>> > > > > >> > >>>> > > > public interface JsfMessage<T> > > { > >> > >>>> > > > T addInfo(); > >> > >>>> > > > T addWarning(); > >> > >>>> > > > T addError(); > >> > >>>> > > > void clear(); > >> > >>>> > > > } > >> > >>>> > > > > >> > >>>> > > > > >> > >>>> > > > I think it is possible to implement > > this, right? > >> > >>>> > > > > >> > >>>> > > > Wdyt from a users perspective? > >> > >>>> > > > > >> > >>>> > > > LieGrue, > >> > >>>> > > > strub > >> > >>>> > > > > >> > >>>> > > > > >> > >>>> > > This looks like a great start. In IRC we > > discovered we need to > >> > >>>> determine > >> > >>>> > if > >> > >>>> > > the text goes to the summary or detail. We > > already have the > >> > >>> severity > >> > >>>> with > >> > >>>> > > the methods. I'd suggest having each > > of those methods take an > >> > >>> enum > >> > >>>> > (DETAIL, > >> > >>>> > > SUMMARY, BOTH or similar). One drawback I > > see about this is you > >> > >>> can't > >> > >>>> > > define a different message for the detail > > and the summary on > >> one > >> > >>> line, > >> > >>>> > but > >> > >>>> > > that may not be the end of the world. > >> > >>>> > > > >> > >>>> > > -- > >> > >>>> > > Jason Porter > >> > >>>> > > http://lightguard-jp.blogspot.com > >> > >>>> > > http://twitter.com/lightguardjp > >> > >>>> > > > >> > >>>> > > Software Engineer > >> > >>>> > > Open Source Advocate > >> > >>>> > > Author of Seam Catch - Next Generation > > Java Exception Handling > >> > >>>> > > > >> > >>>> > > PGP key id: 926CCFF5 > >> > >>>> > > PGP key available at: keyserver.net, > > pgp.mit.edu > >> > >>>> > > > >> > >>>> > > >> > >>>> > >> > >>> > >> > >> > >> > > > >> > > > >> > > > >> > > >> > > > > > > > > -- > > Christian Kaltepoth > > Blog: http://chkal.blogspot.com/ > > Twitter: http://twitter.com/chkal > > >
