Added this also, but now I wonder what would happen if you provide a
LocalDate translator but no TypeCoercers. I had assumed the type of value
was Date but it's really unknown. Not sure this can be solved in a
generalized way. The code is only needed to support native date pickers so
perhaps it should fail more gracefully and warn you to provide a
TypeCoercer.


On Sun, Nov 24, 2013 at 11:48 PM, Geoff Callender <
geoff.callender.jumpst...@gmail.com> wrote:

> Cool.
>
> I tried to use date-picker with a LocalDate (from Joda Time) but got a
> class-cast exception. It was unaware that I had contributed TypeCoercers
> between LocalDate and Date (
> http://jumpstart.doublenegative.com.au/jumpstart/examples/lang/typecoercers).
>
> It's an easy fix that will allow the date picker to work with any class
> that is coerced to, and from, Date.
>
> Add this:
>
>         @Inject
>         private TypeCoercer coercer;
>
> and replace this:
>
>                 Date date = (Date) value;
>
> with this:
>
>                 Date date = coercer.coerce(value, Date.class);
>
> Cheers,
>
> Geoff
>
>
> On 24/11/2013, at 1:32 AM, Barry Books wrote:
>
> > Thanks,
> >
> > I added this to the code
> >
> >
> > On Wed, Nov 20, 2013 at 2:13 AM, Geoff Callender <
> > geoff.callender.jumpst...@gmail.com> wrote:
> >
> >> Very nice. But doesn't handle disabled. It's an easy fix:
> >>
> >> Instead of this:
> >>
> >> @InjectContainer
> >>
> >> private ClientElement clientElement;
> >>
> >> do this:
> >>
> >> @InjectContainer
> >>
> >> private TextField clientElement;
> >>
> >> and replace this:
> >>
> >> element.elementBefore("input", "value", formatedDate, "type", "hidden",
> >> "class", "form-control", "id", clientID);
> >>
> >> with this:
> >>
> >> Element dateField = element.elementBefore("input", "value",
> formatedDate,
> >> "type", "hidden", "class",
> >>
> >> "form-control", "id", clientID);
> >>
> >>
> >> if (clientElement.isDisabled()) {
> >>
> >> dateField.attribute("disabled", "disabled");
> >>
> >> }
> >>
> >> Cheers,
> >>
> >> Geoff
> >>
> >>
> >> On 9 October 2013 22:02, Barry Books <trs...@gmail.com> wrote:
> >>
> >>> I pushed a new snapshot. What documentation there is here
> >>>
> >>> https://github.com/trsvax/tapestry-datepicker
> >>>
> >>> This version allows overriding the location of the javascript and css
> for
> >>> the jquery date picker.
> >>>
> >>> The basic features are
> >>>
> >>> 1. Translators for textfield to validate date/calendar/timestamp entry
> >>> 2. A mixin that adds jQuery Calendar support to the textfield
> >>> 3. Native type="date" support (at least on the iPhone)
> >>> 4. BeanEdit support
> >>> 5. Ability to override css/javascript included by the jQuery mixin
> >>>
> >>> I think this makes it feature complete but at this point things are
> still
> >>> subject to change. I'm going to create some better docs and tests then
> >> I'll
> >>> push a version to maven central
> >>>
> >>> Thanks for the input so far
> >>>
> >>>
> >>>
> >>> On Tue, Oct 8, 2013 at 7:54 PM, Barry Books <trs...@gmail.com> wrote:
> >>>
> >>>> it's in the current one. I'll also be pushing up some fixes in the
> >>> morning.
> >>>>
> >>>>
> >>>> On Tue, Oct 8, 2013 at 5:53 PM, Lenny Primak <lpri...@hope.nyc.ny.us
> >>>> wrote:
> >>>>
> >>>>> Let us know when the beaneditor support is there.  I'll try it then
> >> and
> >>>>> give feedback
> >>>>> Thank you!
> >>>>>
> >>>>> On Oct 8, 2013, at 6:39 AM, Barry Books wrote:
> >>>>>
> >>>>>> https://oss.sonatype.org/content/repositories/snapshots/
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> <groupId>com.trsvax</groupId>
> >>>>>>
> >>>>>> <artifactId>tapestry-datepicker</artifactId>
> >>>>>>
> >>>>>> <version>0.0.1-SNAPSHOT</version>
> >>>>>>
> >>>>>>
> >>>>>> It's still a work in progress but I think it's starting to come
> >>>>> together.
> >>>>>> Being able to pass attributes from the translator into the html
> >> stream
> >>>>> is
> >>>>>> proving useful. For example you can do things such as
> >>>>>>
> >>>>>> placeholder="mm-dd-yyyy"
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Tue, Oct 8, 2013 at 4:33 AM, Geoff Callender <
> >>>>>> geoff.callender.jumpst...@gmail.com> wrote:
> >>>>>>
> >>>>>>> What's the artifact info?
> >>>>>>>
> >>>>>>> On 07/10/2013, at 10:26 PM, Barry Books wrote:
> >>>>>>>
> >>>>>>>> Snapshot 0.0.1-SNAPSHOT is available at
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> https://oss.sonatype.org/content/repositories/snapshots/
> >>>>>>>>
> >>>>>>>> I have a bit of cleanup and then I'll push a version to maven
> >>> central
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On Fri, Oct 4, 2013 at 3:33 PM, Barry Books <trs...@gmail.com>
> >>> wrote:
> >>>>>>>>
> >>>>>>>>> After much googling I think I've added iPhone type="date"
> >> support.
> >>> I
> >>>>> had
> >>>>>>>>> to make a few assumptions to get it to work.
> >>>>>>>>>
> >>>>>>>>> 1. The format for type="date" support is yyyy-mm-dd. This is what
> >>> the
> >>>>>>>>> iPhone appears to use and seems a reasonable choice.
> >>>>>>>>> 2. The best test I could find to indicate native support is
> >>>>>>>>>
> >>>>>>>>> *var* input = document.createElement('input');
> >>>>>>>>>
> >>>>>>>>> input.setAttribute('type', 'date');
> >>>>>>>>>
> >>>>>>>>> input.value = 'testing';
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> If the type is date and the value is not testing I'm assuming
> >>> native
> >>>>>>> date
> >>>>>>>>> support.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> What I ended up doing was adding a hidden element to support
> >> native
> >>>>> date
> >>>>>>>>> pickers. If I think there is support I hide the real one and turn
> >>> the
> >>>>>>>>> hidden one into a date. On a form submit I copy the data into the
> >>>>> real
> >>>>>>>>> element. This way I can support both date formats. It seems to
> >> work
> >>>>> on
> >>>>>>> my
> >>>>>>>>> iPhone but that's not a large sample.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> There is still work to be done but I think I should be able to
> >> meet
> >>>>> all
> >>>>>>>>> the requirements I've seen so far.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> On Thu, Oct 3, 2013 at 9:15 PM, Barry Books <trs...@gmail.com>
> >>>>> wrote:
> >>>>>>>>>
> >>>>>>>>>> Unfortunately modernizer does not really support that. From the
> >>> docs
> >>>>>>>>>>
> >>>>>>>>>> Modernizr cannot detect that date inputs create a datepicker,
> >>>>>>>>>>
> >>>>>>>>>> It is possible to detect if a browser support type="date" but
> >> that
> >>>>> does
> >>>>>>>>>> not mean it has a datepicker. I suspect I'm going to add an
> >> option
> >>>>> to
> >>>>>>> give
> >>>>>>>>>> it a try.
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> On Thu, Oct 3, 2013 at 8:12 PM, Geoff Callender <
> >>>>>>>>>> geoff.callender.jumpst...@gmail.com> wrote:
> >>>>>>>>>>
> >>>>>>>>>>> Sounds good, Barry.
> >>>>>>>>>>>
> >>>>>>>>>>> You mentioned earlier that you were "planing on using modernizr
> >>> to
> >>>>>>> detect
> >>>>>>>>>>> if type="date" is supported. " so that browsers with good HTML5
> >>>>> date
> >>>>>>>>>>> support (eg. iOS Safari, Chrome) are left alone. How did that
> >> go?
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> On 3 October 2013 12:08, Barry Books <trs...@gmail.com> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> I've uploaded the initial version to github
> >>>>>>>>>>>>
> >>>>>>>>>>>> https://github.com/trsvax/tapestry-datepicker
> >>>>>>>>>>>>
> >>>>>>>>>>>> I think I'm going to make this standalone project that only
> >>>>> contains
> >>>>>>>>>>> the
> >>>>>>>>>>>> datepicker. This will make it easier for other project to just
> >>>>>>> include
> >>>>>>>>>>> it.
> >>>>>>>>>>>> Currently to use it you will have to download and build it.
> >>> Here
> >>>>> is
> >>>>>>> an
> >>>>>>>>>>>> example usage
> >>>>>>>>>>>>
> >>>>>>>>>>>> <t:form>
> >>>>>>>>>>>>  <t:textfield value="date"
> >>> t:mixins="datefield/JQueryDatePicker"
> >>>>>>>>>>>> data-duration="slow"/>
> >>>>>>>>>>>>  <input type="submit"/>
> >>>>>>>>>>>> </t:form>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>> All that's required is the input type be a date which causes
> >>>>> Tapestry
> >>>>>>>>>>> to
> >>>>>>>>>>>> use a Date Translator to convert the data to/from a string.
> >> This
> >>>>> also
> >>>>>>>>>>>> creates the client side validation. The mixin adds the client
> >>> side
> >>>>>>>>>>>> interface. In this case the JQuery UI calendar.
> >>>>>>>>>>>>
> >>>>>>>>>>>> If you prefer you can create your own component and override
> >> the
> >>>>>>>>>>> Tapestry
> >>>>>>>>>>>> one.
> >>>>>>>>>>>>
> >>>>>>>>>>>> public class DateField extends TextField {
> >>>>>>>>>>>>
> >>>>>>>>>>>>  @Mixin
> >>>>>>>>>>>>  private JQueryDatePIcker mixin;
> >>>>>>>>>>>>
> >>>>>>>>>>>> }
> >>>>>>>>>>>>
> >>>>>>>>>>>> Questions, commets etc are welcome
> >>>>>>>>>>>>
> >>>>>>>>>>>> Barry
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >> ---------------------------------------------------------------------
> >>>>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> >>>>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
> >>>>>>>
> >>>>>>>
> >>>>>
> >>>>>
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> >>>>> For additional commands, e-mail: users-h...@tapestry.apache.org
> >>>>>
> >>>>>
> >>>>
> >>>
> >>
>
>

Reply via email to