/** * Creates a new object of the same class as this object. * @return a clone of this instance. * @exception CloneNotSupportedException if the object's class does not support the <code>Cloneable</code> interface. * @see java.lang.Cloneable */ public Object clone() throws CloneNotSupportedException { BaseField field = new DateTimeField(null, m_strFieldName, m_iMaxLength, m_strFieldDesc, null); field.setRecord(m_record); // Set table without adding to table field list return field; } /**
/** * Set the date field to the current time. * Also make sure the time is not the same as it is currently. */ public void setTheDate() { boolean[] rgbEnabled = m_field.setEnableListeners(false); Calendar calAfter = m_field.getCalendar(); Calendar calBefore = m_field.getCalendar(); m_field.setValue(DateTimeField.currentTime(), DBConstants.DISPLAY, DBConstants.SCREEN_MOVE); // File written or updated, set the update date calAfter = m_field.getCalendar(); if (calBefore != null) if (calAfter.before(calBefore)) calAfter = calBefore; // If this was set with a different computer (clock), make sure it always increases! if (calAfter != null) if (calAfter.equals(calBefore)) { calAfter.add(Calendar.SECOND, 1); // Can't be the same as last time. m_field.setCalendar(calAfter, DBConstants.DISPLAY, DBConstants.SCREEN_MOVE); } Utility.getLogger().info("Set date: " + m_field.toString()); m_field.setEnableListeners(rgbEnabled); } /**
/** * Called when a valid record is read from the table/query. * @param bDisplayOption If true, display any changes. */ public void doValidRecord(boolean bDisplayOption) { super.doValidRecord(bDisplayOption); Date dateSrc = m_fldSourceDate.getDateTime(); Date dateDest = this.calcDate(dateSrc); m_fldDestDate.setDateTime(dateDest, bDisplayOption, DBConstants.SCREEN_MOVE); }
/** * Bump time field by a second. * @param fieldTarget * @return */ public Date bumpTime(DateTimeField fieldTarget) { Date dateBefore = fieldTarget.getDateTime(); Calendar calTarget = fieldTarget.getCalendar(); calTarget.add(Calendar.SECOND, 1); fieldTarget.setCalendar(calTarget, DBConstants.DISPLAY, DBConstants.SCREEN_MOVE); return dateBefore; } }
/** * Change the date and time of day. * @param date The date to set. * @param bDisplayOption Display changed fields if true. * @param iMoveMode The move mode. * @return The error code (or NORMAL_RETURN). */ public int setDateTime(java.util.Date date, boolean bDisplayOption, int iMoveMode) { if (date != null) return this.setValue(date.getTime(), bDisplayOption, iMoveMode); else return this.setData(null, bDisplayOption, iMoveMode); } /**
/** * Move the physical binary data to this SQL parameter row. * This method uses the getTimestamp resultset method. * @param resultset The resultset to get the SQL data from. * @param iColumn the column in the resultset that has my data. * @exception SQLException From SQL calls. */ public void moveSQLToField(ResultSet resultset, int iColumn) throws SQLException { java.util.Date dateResult = resultset.getTimestamp(iColumn); if (resultset.wasNull()) this.setString(Constants.BLANK, false, DBConstants.READ_MOVE); // Null value else this.setValue((double)dateResult.getTime(), false, DBConstants.READ_MOVE); } /**
if (m_fldStartDate != null) if ((m_fldStartDate.isNull()) || (m_fldStartDate.getDateTime().getTime() == 0)) return this.getOwner().setData(null, bDisplayOption, iMoveMode); time = m_fldStartDate.getDateTime(); return ((DateTimeField)this.getOwner()).setDateTime(newTime, bDisplayOption, iMoveMode); calendar.add(Calendar.MONTH, m_lMonths); calendar.add(Calendar.DATE, m_lDays); return ((DateTimeField)this.getOwner()).setCalendar(calendar, bDisplayOption, iMoveMode);
Calendar depositDate = ((DateTimeField)this.getField(Booking.BOOKING_DATE)).getCalendar(); Calendar finalDate = ((DateTimeField)recTour.getField(Tour.DEPARTURE_DATE)).getCalendar(); if (finalDate.before(calCurrentTime)) finalDate = calCurrentTime; ((DateTimeField)this.getField(Booking.FINAL_PAYMENT_DUE_DATE)).setCalendar(finalDate, DBConstants.DISPLAY, DBConstants.SCREEN_MOVE); if (depositDate.after(finalDate)) depositDate = finalDate; ((DateTimeField)this.getField(Booking.DEPOSIT_DUE_DATE)).setCalendar(depositDate, DBConstants.DISPLAY, DBConstants.SCREEN_MOVE);
((DateTimeField)this.getScreenRecord().getField(ApReportScreenRecord.START_DATE)).setDate(new Date(), false, DBConstants.INIT_MOVE); Calendar cal = ((DateTimeField)this.getScreenRecord().getField(ApReportScreenRecord.START_DATE)).getCalendar(); cal.add(Calendar.MONTH, -6); cal.set(Calendar.DAY_OF_YEAR, 1); ((DateTimeField)this.getScreenRecord().getField(ApReportScreenRecord.START_DATE)).setCalendar(cal, true, DBConstants.INIT_MOVE); cal.add(Calendar.YEAR, 1); cal.add(Calendar.DAY_OF_YEAR, -1); ((DateTimeField)this.getScreenRecord().getField(ApReportScreenRecord.END_DATE)).setCalendar(cal, true, DBConstants.INIT_MOVE);
/** * FieldChanged Method. */ public int fieldChanged(boolean bDisplayOption, int iMoveMode) { BaseField fldDays = this.getOwner(); BookingCar recBookingCar = (BookingCar)fldDays.getRecord(); DateTimeField fldStartDate = (DateTimeField)recBookingCar.getField(BookingCar.DETAIL_DATE); if ((!fldStartDate.isNull()) && (fldDays.getValue() > 0)) { Date dateStart = fldStartDate.getDateTime(); float fDays = (float)fldDays.getValue(); Date dateEnd = new Date(dateStart.getTime() + (long)(fDays * DBConstants.KMS_IN_A_DAY)); Calendar calendar = DateTimeField.m_calendar; calendar.setTime(dateEnd); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); dateEnd = calendar.getTime(); DateTimeField fldEndDate = (DateTimeField)recBookingCar.getField(BookingCar.DETAIL_END_DATE); return fldEndDate.setDateTime(dateEnd, bDisplayOption, iMoveMode); } return super.fieldChanged(bDisplayOption, iMoveMode); }
/** * This method gets called when a bound property is changed. * This is required to listen to changes by the date popup control. * @param evt A PropertyChangeEvent object describing the event source and the property that has changed. */ public void propertyChange(PropertyChangeEvent evt) { if (JCalendarPopup.DATE_PARAM.equalsIgnoreCase(evt.getPropertyName())) if (evt.getNewValue() instanceof java.util.Date) this.setDateTime((java.util.Date)evt.getNewValue(), true, DBConstants.SCREEN_MOVE); } }
/** * Called when a change is the record status is about to happen/has happened. * This method sets the field to the current time on an add or update. * @param field If this file change is due to a field, this is the field. * @param iChangeType The type of change that occurred. * @param bDisplayOption If true, display any changes. * @return an error code. */ public int doRecordChange(FieldInfo field, int iChangeType, boolean bDisplayOption) { // Write/Update a record switch (iChangeType) { case DBConstants.REFRESH_TYPE: case DBConstants.ADD_TYPE: case DBConstants.UPDATE_TYPE: DateTimeField thisField = m_field; if (m_field == null) thisField = (DateTimeField)this.getOwner().getField(m_iMainFilesFieldSeq); boolean[] rgbEnabled = thisField.setEnableListeners(false); thisField.setValue(DateTimeField.currentTime(), bDisplayOption, DBConstants.SCREEN_MOVE); // File written or updated, set the update date thisField.setEnableListeners(rgbEnabled); break; } return super.doRecordChange(field, iChangeType, bDisplayOption); // Initialize the record } }
/** * Get the start date and time for this product. * Return null if there is no date and time. */ public Date getStartDate() { return ((DateTimeField)this.getField(BookingDetail.DETAIL_DATE)).getDateTime(); } /**
/** * Move the date field (or the current time) to the target date field. */ public void moveDateToTarget() { DateTimeField fldHistoryDateTarget = (DateTimeField)this.getHistoryRecord().getField(m_iHistoryDateSeq); if ((this.getHistorySourceDate() != null) && (!this.getHistorySourceDate().isNull())) fldHistoryDateTarget.moveFieldToThis(this.getHistorySourceDate()); else fldHistoryDateTarget.setDateTime(new Date(), DBConstants.DISPLAY, DBConstants.SCREEN_MOVE); // Need seconds } /**
dateStart = ((DateTimeField)recTour.getField(Tour.DEPARTURE_DATE)).getDateTime(); calendar.setTime(dateStart); calendar.set(Calendar.HOUR_OF_DAY, 0); timeDetail = ((DateTimeField)recTourHeaderDetail.getField(TourHeaderDetail.ETD)).getDateTime(); // Start time bSetTime = true; // Use this time! dateStart = ((DateTimeField)this.getField(BookingDetail.DETAIL_DATE)).getDateTime(); // Don't change date (change time only if 0 or 12) if (dateStart != null) ((DateTimeField)this.getField(BookingDetail.DETAIL_DATE)).setDate(dateStart, DBConstants.DISPLAY, DBConstants.SCREEN_MOVE); if (timeDetail != null) ((DateTimeField)this.getField(BookingDetail.DETAIL_DATE)).setTime(timeDetail, DBConstants.DISPLAY, DBConstants.SCREEN_MOVE); this.getField(BookingDetail.DETAIL_DATE).setEnableListeners(rgbEnabled); return ((DateTimeField)this.getField(BookingDetail.DETAIL_DATE)).getDateTime();
/** * SetValue in current calendar. * @param value The date (as a calendar value) to set (only time portion is used). * @param bDisplayOption Display changed fields if true. * @param iMoveMode The move mode. * @return The error code (or NORMAL_RETURN). */ public int setCalendar(Calendar value, boolean bDisplayOption, int moveMode) { // Set this field's value if (value != null) { value.set(Calendar.YEAR, DBConstants.FIRST_YEAR); value.set(Calendar.MONTH, Calendar.JANUARY); value.set(Calendar.DATE, 1); } return super.setCalendar(value, bDisplayOption, moveMode); } /**
if (this.isNull()) if ((!this.isNullable()) || (iType == DBConstants.SQL_SELECT_TYPE) || (DBConstants.FALSE.equals(this.getRecord().getTable().getDatabase().getProperties().get(SQLParams.NULL_TIMESTAMP_SUPPORTED)))) // HACK for Access java.util.Date time = (java.util.Date)this.getData(); Converter.initGlobals(); Converter.gCalendar.setTime(time);
/** * Add button(s) to the toolbar. */ public void addToolbarButtons(ToolScreen toolScreen) { m_fldModuleStart = new DateTimeField(null, BookingAnswerGridScreen.MODULE_START_DATE, Constants.DEFAULT_FIELD_LENGTH, this.getMainRecord().getString(BookingAnswerGridScreen.MODULE_START_DATE), null); new SCannedBox(toolScreen.getNextLocation(ScreenConstants.NEXT_LOGICAL, ScreenConstants.SET_ANCHOR), toolScreen, null, ScreenConstants.DEFAULT_DISPLAY, null, MenuConstants.FORMDETAIL, MenuConstants.FORMDETAIL, MenuConstants.FORMDETAIL, null); TourHeader recTourHeader = this.restoreTheProperties(); if (recTourHeader.getRecordOwner() == this) { recTourHeader.getField(TourHeader.DESCRIPTION).setupDefaultView(toolScreen.getNextLocation(ScreenConstants.NEXT_INPUT_LOCATION, ScreenConstants.ANCHOR_DEFAULT), toolScreen, ScreenConstants.DEFAULT_DISPLAY); recTourHeader.getField(TourHeader.DESCRIPTION).setEnabled(false); m_fldModuleStart.setupDefaultView(toolScreen.getNextLocation(ScreenConstants.NEXT_INPUT_LOCATION, ScreenConstants.ANCHOR_DEFAULT), toolScreen, ScreenConstants.DEFAULT_DISPLAY); m_fldModuleStart.setEnabled(false); } } /**
int iRefundPendingTrxStatus = recTrxStatus.getTrxStatusID(TransactionType.ACCTREC, ArTrx.AR_TRX_FILE, ArTrx.REFUND_SUBMITTED); int iCancelTrxStatus = recTrxStatus.getTrxStatusID(TransactionType.ACCTREC, ArTrx.AR_TRX_FILE, ArTrx.CANCELLATION_CHARGE); double dDate = DateTimeField.currentTime(); ((DateTimeField)recArTrx.getField(ArTrx.TRX_DATE)).setValue(dDate); recArTrx.getField(ArTrx.TRX_STATUS_ID).setValue(iInvoiceModification); recArTrx.getField(ArTrx.COMMENTS).moveFieldToThis(((ReferenceField)recArTrx.getField(ArTrx.TRX_STATUS_ID)).getReference().getField(TrxStatus.STATUS_DESC)); recArTrx.getField(ArTrx.AMOUNT).setValue(dCancellationCharge); dDate = dDate + 1000; // One second later ((DateTimeField)recArTrx.getField(ArTrx.TRX_DATE)).setValue(dDate); recArTrx.getField(ArTrx.TRX_STATUS_ID).setValue(iCancelTrxStatus); recArTrx.getField(ArTrx.COMMENTS).moveFieldToThis(((ReferenceField)recArTrx.getField(ArTrx.TRX_STATUS_ID)).getReference().getField(TrxStatus.STATUS_DESC)); recArTrx.getField(ArTrx.AMOUNT).setValue(dRefund); dDate = dDate + 1000; // One second later ((DateTimeField)recArTrx.getField(ArTrx.TRX_DATE)).setValue(dDate); recArTrx.getField(ArTrx.TRX_STATUS_ID).setValue(iRefundPendingTrxStatus); recArTrx.getField(ArTrx.COMMENTS).moveFieldToThis(((ReferenceField)recArTrx.getField(ArTrx.TRX_STATUS_ID)).getReference().getField(TrxStatus.STATUS_DESC));
this.getField(ProductPricing.RATE_ID).setValue(iRateTypeID); this.getField(ProductPricing.CLASS_ID).setValue(iRateClassID); ((DateTimeField)this.getField(ProductPricing.END_DATE)).setDate(dateStart, DBConstants.DISPLAY, DBConstants.SCREEN_MOVE); FileListener listener = null; try {