Almost, processSubmission creates a flexdate from the date and sticks that into the parameter "flexDate" of FlexDateEditor." My bean has FlexDate properties, 4 of them. That causes the FlexDateEditor to be shown via the AppPropertyEditBlock. The datefield gets date1 as a property, which comes from the flexDate parameter (See first code listing below). Then in FlexDateEditor's processSubmission method, date1 is used to construct a new FlexDate for the FlexDate property of the bean. You're right, Howard, that it's the datefield negotiating the controlName. That's where the hangup is. Peter's approach gets the base name right, but its appended with "_0", "_1", etc.
>From FlexDateEditor: void beginRender () { _flexDate = _flexDate == null ? new FlexDate( DateSpecificityEnum.EXACT, DatePrecisionEnum.DAY, new Date(), null ) :_flexDate; _date1 = new Date(); } Here's code from AppPropertyEditBlocks.java @Component (parameters= { "flexDate=context.propertyValue", "label=prop:context.label", "validate=prop:flexDateValidator", "clientId=prop:context.propertyId"}) private FlexDateEditor _flexDateEditor; Here's processSubmission of FlexDateEditor: protected void processSubmission (String elementName) { String date1Str = _request.getParameter( elementName ); Date date1 = null; try { DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); date1 = df.parse(date1Str); } catch (ParseException e) { throw new RuntimeException (e); } _flexDate = new FlexDate( DateSpecificityEnum.EXACT, DatePrecisionEnum.DAY, date1, null ); } On Wed, Apr 16, 2008 at 6:21 PM, Howard Lewis Ship <[EMAIL PROTECTED]> wrote: > Hard to tell without checking the code, but: looks like the > FlexDataEditor delegates all its behavior to the built-in DateField > component, right? > > So the DateField is the component that (at render) negotiates an > control name (i.e., FormSupport.allocateControlName() ), and then > pushes the parsed and validated date back up. You should see this in > the HTML and form submission, a component whose client element has a > name like "datefield" (or "datefield_0", etc.). > > Presumable the DateField is tied to a property of the FlexDateEditor, > and that property is tied eventually up to your bean. > > On Wed, Apr 16, 2008 at 3:42 PM, Bill Holloway <[EMAIL PROTECTED]> wrote: > > I've got a custom data type called FlexDate, and I've made a simple > > <t:flexdateeditor> component for it which (for now) just holds a date > > field. It will get more complex later. I put this editor into my > > AppPropertyEditBlocks.tml. Code is below. Then I have a data object > with > > an instance var of FlexDate type. I pump this into a beanformeditor. > The > > problem is that the elementName arg of processSubmission (in > > FlexDateEditor.java) never seems to be in my > _request.getParameterNames() so > > I can extract the date! Help? > > > > FlexDateEditor.tml: > > > > <div class="flexDateEditor" xmlns:t=" > > http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> > > > > <t:dateField value="date1" /> > > > > </div> > > > > Date1 is defined in FlexDateEditor.java and evaluated to new Date() > during > > beginRender(). > > > > AppPropertyEditBlocks.tml (snippet): > > > > <t:block t:id="flexDate"> > > > > <t:label for="flexDateEditor" /> > > <t:flexDateEditor t:id="flexDateEditor" /> > > > > </t:block> > > > > The elementName arg of processSubmission in FlexDateEditor.java is > always > > the name of the instance variable in my data object that goes into > > beanformeditor. Grr. How can I get the fields of the datefield to be > named > > that way so I can extract the value? > > > > -- > > Bill @ PeoplePad > > > > > > -- > Howard M. Lewis Ship > > Creator Apache Tapestry and Apache HiveMind > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Bill @ PeoplePad