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

112 lines
2.1 KiB
Plaintext

note
description: "[
Used with {EDITOR} classes to make EV_WIDGETs for displaying and
editting data which is a {YMD_TIME}
]"
date: "7 Mar 03"
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/controls/ymd_time_control.e $"
date: "$Date: 2012-03-16 14:05:07 -0400 (Fri, 16 Mar 2012) $"
revision: "$Revision: 7 $"
class
YMD_TIME_CONTROL
inherit
YMD_CONSTANTS
undefine
default_create,
is_equal,
copy
end
SPIN_CONTROL
redefine
create_interface_objects,
initialize,
value,
increment,
decrement
end
create
default_create,
make_from_field
feature {NONE} -- Initialization
create_interface_objects
-- Create objects to be used by `Current' in `initialize'
-- Implemented by descendants to create attached objects
-- in order to adhere to void-safety due to the implementation bridge pattern.
do
Precursor {SPIN_CONTROL}
set_delta (One_day)
end
initialize
-- Set up the control
do
Precursor {SPIN_CONTROL}
end
feature -- Access
value: YMD_TIME
-- A new object represented by the string in the display.
-- Redefine to convert the displayed string into the
-- desired type.
do
check attached {YMD_TIME} Precursor {SPIN_CONTROL} as c then
Result := c
end
end
delta: YMD_DURATION
-- The amount to change `value' when one of the buttons is pressed.
feature -- Element change
set_delta (a_delta: like delta)
-- Change `delta'
require
positive_delta: not a_delta.is_negative
do
delta := a_delta.twin
ensure
delta_assigned: equal (delta, a_delta)
end
feature -- Basic operations
increment
-- Increase the `value' by amount `step'.
do
Precursor {SPIN_CONTROL}
set_data (value + delta)
on_display_changed
end
decrement
-- Decrease the `value' by amount `step'.
do
Precursor {SPIN_CONTROL}
set_data (value - delta)
on_display_changed
end
feature {NONE} -- Implementation
default_field: YMD_TIME_FIELD
-- Dictates appearanced of current Control
do
create Result
end
end