/* * Copyright (C) NetStruxr, Inc. All rights reserved. * * This software is published under the terms of the NetStruxr * Public Software License version 0.5, a copy of which has been * included with this distribution in the LICENSE.NPL file. */ package er.directtoweb.components.dates; import java.util.TimeZone; import com.webobjects.appserver.WOContext; import com.webobjects.appserver.WORequest; import com.webobjects.foundation.NSTimestamp; import com.webobjects.foundation.NSValidation; /////////////////////////////////////////////////////////////////////////////////////////////////////// // Important D2W Keys: // editTime - 0 || 1 denotes whether to show the time aspect of the component. // yearRangeTop - specifies the upper limit for year to be displayed. // yearRangeBottom - specifies the lower limit for year to be displayed /////////////////////////////////////////////////////////////////////////////////////////////////////// /** * Edits dates with popup lists. * * @binding yearRangeBottom * @binding yearRangeTop * @binding extraBindings * @binding object * @binding key */ public class ERDEditDatePopup extends ERDEditDatePopupCommon { /** * Do I need to update serialVersionUID? * See section 5.6 <cite>Type Changes Affecting Serialization</cite> on page 51 of the * <a href="http://java.sun.com/j2se/1.4/pdf/serial-spec.pdf">Java Object Serialization Spec</a> */ private static final long serialVersionUID = 1L; public ERDEditDatePopup(WOContext context) { super(context); } public Object timeZoneString() { return TimeZone.getDefault().getDisplayName(true, TimeZone.SHORT); } @Override public void takeValuesFromRequest (WORequest request, WOContext context) { super.takeValuesFromRequest (request,context); NSTimestamp date = null; try { if (time==null || time.length()!=5) date = (NSTimestamp)ALL_FORMAT.parseObject(day+" "+month+" "+year); else date = (NSTimestamp)ALL_FORMAT_AND_TIME.parseObject(day+" "+month+" "+year+" "+time); object().validateTakeValueForKeyPath(date, key()); } catch (NSValidation.ValidationException v) { parent().validationFailedWithException(v,date,key()); } catch(Exception e) { parent().validationFailedWithException(e,date,key()); } } }