19928/jj_vision/interface/fields/ymd_time_field.e
Jocelyn Fiat 6dde6425c2 init
2024-06-17 09:09:33 +02:00

83 lines
1.7 KiB
Plaintext

note
description: "[
A {FIELD} decribing the placement of a {YMD_TIME_CONTROL}
]"
author: "Jimmy J. Johnson"
copyright: "Copyright 2012, Jimmy J. Johnson"
license: "Eiffel Forum License v2 (see forum.txt)"
URL: "$URL: file:///F:/eiffel_repositories/jj_vision/trunk/interface/fields/ymd_time_field.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
YMD_TIME_FIELD
inherit
COMPARABLE_FIELD
redefine
is_valid_data,
string_to_type,
type_to_string
end
create
default_create
feature -- Access
Type: YMD_TIME
-- Implementation (and anchor) of `value'.
-- Redefined to change type.
once
create Result.set_now
end
is_valid_data (a_value: ANY): BOOLEAN
-- Is the value in `a_value' a valid representation
-- for the `Type' of the data.
local
f: YMD_TIME_FORMATTER
do
Result := Precursor {COMPARABLE_FIELD} (a_value)
if not Result then
-- It may be that `a_value' is a STRING representation
-- of a date, so check the string and convert it.
create f
if attached {STRING} a_value as s then
Result := f.is_valid (s)
end
end
end
string_to_type (a_string: STRING_32): like Type
-- Convert `a_string' to a YMD_TIME
local
f: YMD_TIME_FORMATTER
do
create f
Result := f.to_ymd_time (a_string)
end
type_to_string (a_value: ANY): STRING_32
-- The string representation of `a_value'.
local
f: YMD_TIME_FORMATTER
do
if attached {YMD_TIME} a_value as t then
create f
Result := f.to_string (t)
else
Result := Precursor {COMPARABLE_FIELD} (a_value)
end
end
feature -- Transformation
as_widget: YMD_TIME_CONTROL
do
create Result.make_from_field (Current)
end
end