ViewComponent
A Swing-embeddable view (complete with a picture, a ticking clock, event handlers, etc.). It works like a ViewFrame except that it’s a Swing component, not a standalone GUI frame. See ViewFrame for an overview.
Type parameters
- Model
-
the type of the states of the model
Parameters
- initialDelay
-
an additional delay in milliseconds between calling start and the clock starting (optional; defaults to 600)
- initialState
-
the initial state of the model to be displayed in the view (the only required parameter). This class has been designed to work conveniently with immutable model objects (cf. o1.gui.mutable.ViewComponent).
- refreshPolicy
-
a policy for how eagerly the view should try to update the graphical representation of its model (optional; changing this may improve efficiency in some circumstances)
- tickRate
-
the clock of the view will tick roughly this many times per second (optional; defaults to 24)
Attributes
- Graph
-
- Supertypes
- Known subtypes
-
class Traced[TraceData]
Members list
Type members
Classlikes
A view that wraps around another, collecting a log or trace of events while delegating its actual event-handling to the wrapped view. Provides additional methods for accessing such traces: trace, simulateAndGet, and startAndGet. A few examples of using these methods are given below.
A view that wraps around another, collecting a log or trace of events while delegating its actual event-handling to the wrapped view. Provides additional methods for accessing such traces: trace, simulateAndGet, and startAndGet. A few examples of using these methods are given below.
simulate
500 clock ticks on the trace-collecing view and print the trace of clock ticks accompanied by descriptions of the view’äs model
.
for (traceItem, traceEvent) <- myTracedView.simulateAndGet(500) do
println(traceEvent + ": " + traceItem)
Or, equivalently:
myTracedView.simulate(500)
for (traceItem, traceEvent) <- myTracedView.trace do
println(traceEvent + ": " + traceItem)
Alternatively, start the trace-collecting view and run it interactively until it is done or a tick limit is reached. Then print the trace of ticks and GUI events accompanied by descriptions of the view’s model
.
val futureTrace = myTracedView.startAndGet(tickLimit=100) recover {
case Aborted(message, partialTrace) => partialTrace
}
for trace <- futureTrace; (traceItem, traceEvent) <- trace do
println(traceEvent + ": " + traceItem)
Type parameters
- TraceData
-
the type of the model-state descriptions in the trace
Parameters
- extractTrace
-
a function that determines how to describe a model state in the generated trace
Attributes
Inherited classlikes
Value members
Concrete methods
Returns a view that collects of the ticks and GUI events that the View
’s event handlers process, using the given function to generate that trace. That trace-collecting view, which an instance of the Traced subclass, delegates the actual event handling to this original view but provides an additional interface for tracing.
Returns a view that collects of the ticks and GUI events that the View
’s event handlers process, using the given function to generate that trace. That trace-collecting view, which an instance of the Traced subclass, delegates the actual event handling to this original view but provides an additional interface for tracing.
Type parameters
- TraceData
-
the type of the model-state descriptions in the trace
Parameters
- extractTrace
-
a function that determines how to describe a model state in the generated trace
Attributes
- See also
Inherited methods
Sets a new tick rate for the view, replacing any previously set by the constructor or this method.
Sets a new tick rate for the view, replacing any previously set by the constructor or this method.
Attributes
- Inherited from:
- ViewComponentImpl
Attributes
- Inherited from:
- UIElement
Attributes
- Inherited from:
- UIElement
Attributes
- Inherited from:
- UIElement
Attributes
- Inherited from:
- UIElement
Installed reaction won't receive events from the given publisher anylonger.
Installed reaction won't receive events from the given publisher anylonger.
Attributes
- Inherited from:
- Reactor
Attributes
- Inherited from:
- UIElement
Compares the receiver object (this
) with the argument object (that
) for equivalence.
Compares the receiver object (this
) with the argument object (that
) for equivalence.
Any implementation of this method should be an equivalence relation:
- It is reflexive: for any instance
x
of typeAny
,x.equals(x)
should returntrue
. - It is symmetric: for any instances
x
andy
of typeAny
,x.equals(y)
should returntrue
if and only ify.equals(x)
returnstrue
. - It is transitive: for any instances
x
,y
, andz
of typeAny
ifx.equals(y)
returnstrue
andy.equals(z)
returnstrue
, thenx.equals(z)
should returntrue
.
If you override this method, you should verify that your implementation remains an equivalence relation. Additionally, when overriding this method it is usually necessary to override hashCode
to ensure that objects which are "equal" (o1.equals(o2)
returns true
) hash to the same scala.Int. (o1.hashCode.equals(o2.hashCode)
).
Parameters
- that
-
the object to compare against this object for equality.
Attributes
- Returns
-
true
if the receiver object is equivalent to the argument;false
otherwise. - Definition Classes
- Inherited from:
- Proxy
Attributes
- Inherited from:
- Component
Attributes
- Inherited from:
- UIElement
Attributes
- Inherited from:
- UIElement
Calculates a hash code value for the object.
Calculates a hash code value for the object.
The default hashing algorithm is platform dependent.
Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)
) yet not be equal (o1.equals(o2)
returns false
). A degenerate implementation could always return 0
. However, it is required that if two objects are equal (o1.equals(o2)
returns true
) that they have identical hash codes (o1.hashCode.equals(o2.hashCode)
). Therefore, when overriding this method, be sure to verify that the behavior is consistent with the equals
method.
Attributes
- Returns
-
the hash code value for this object.
- Definition Classes
- Inherited from:
- Proxy
Attributes
- Inherited from:
- UIElement
Attributes
- Inherited from:
- UIElement
Attributes
- Inherited from:
- Component
Determines if the given state is a “done state” for the view. By default, this is never the case, but that behavior can be overridden.
Determines if the given state is a “done state” for the view. By default, this is never the case, but that behavior can be overridden.
Once done, the view stops reacting to events and updating its graphics and may close its GUi window, depending on the constructor parameters of the view.
Parameters
- state
-
a state of the model (possibly a done state)
Attributes
- Definition Classes
- Inherited from:
- Controls
Indicates whether the view is paused. By default, always returns false
.
Indicates whether the view is paused. By default, always returns false
.
Attributes
- See also
- Definition Classes
- Inherited from:
- Controls
Listen to the given publisher as long as deafTo
isn't called for them.
Listen to the given publisher as long as deafTo
isn't called for them.
Attributes
- Inherited from:
- Reactor
Attributes
- Inherited from:
- UIElement
Attributes
- Inherited from:
- UIElement
Attributes
- Inherited from:
- UIElement
Attributes
- Inherited from:
- UIElement
Attributes
- Inherited from:
- UIElement
Determines what state should follow the given one when a mouse button is clicked (pressed+relesed, possibly multiple times in sequence) above the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when a mouse button is clicked (pressed+relesed, possibly multiple times in sequence) above the view. By default, just returns the unchanged state, but this can be overridden.
If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.
Parameters
- event
-
the GUI event that caused this handler to be called
- state
-
the state of the model at the time of the click event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when a mouse button is clicked (pressed+relesed, possibly multiple times in sequence) above the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when a mouse button is clicked (pressed+relesed, possibly multiple times in sequence) above the view. By default, just returns the unchanged state, but this can be overridden.
If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.
Parameters
- position
-
the position of the mouse cursor relative to the view’s top left-hand corner
- state
-
the state of the model at the time of the click event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when a key on the keyboard is pressed down while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when a key on the keyboard is pressed down while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.
If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.
Parameters
- event
-
the GUI event that caused this handler to be called
- state
-
the state of the model at the time of the keyboard event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when a key on the keyboard is pressed down while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when a key on the keyboard is pressed down while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.
If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.
Parameters
- key
-
the key that was pressed down
- state
-
the state of the model at the time of the keyboard event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when a key on the keyboard is released while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when a key on the keyboard is released while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.
If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.
Parameters
- event
-
the GUI event that caused this handler to be called
- state
-
the state of the model at the time of the keyboard event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when a key on the keyboard is released while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when a key on the keyboard is released while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.
If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.
Parameters
- key
-
the key that was released
- state
-
the state of the model at the time of the keyboard event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when a mouse button is pressed down above the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when a mouse button is pressed down above the view. By default, just returns the unchanged state, but this can be overridden.
If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.
Parameters
- event
-
the GUI event that caused this handler to be called
- state
-
the state of the model at the time of the mouse event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when a mouse button is pressed down above the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when a mouse button is pressed down above the view. By default, just returns the unchanged state, but this can be overridden.
If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.
Parameters
- position
-
the position of the mouse cursor relative to the view’s top left-hand corner
- state
-
the state of the model at the time of the mouse event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when the mouse cursor is dragged above the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when the mouse cursor is dragged above the view. By default, just returns the unchanged state, but this can be overridden.
If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.
Parameters
- event
-
the GUI event that caused this handler to be called
- state
-
the state of the model at the time of the drag event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when the mouse cursor is dragged above the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when the mouse cursor is dragged above the view. By default, just returns the unchanged state, but this can be overridden.
If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.
Parameters
- position
-
the position of the mouse cursor relative to the view’s top left-hand corner
- state
-
the state of the model at the time of the drag event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when the mouse cursor enters the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when the mouse cursor enters the view. By default, just returns the unchanged state, but this can be overridden.
Parameters
- event
-
the GUI event that caused this handler to be called
- state
-
the state of the model at the time of the mouse event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when the mouse cursor exits the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when the mouse cursor exits the view. By default, just returns the unchanged state, but this can be overridden.
Parameters
- event
-
the GUI event that caused this handler to be called
- state
-
the state of the model at the time of the mouse event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when the mouse cursor moves above the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when the mouse cursor moves above the view. By default, just returns the unchanged state, but this can be overridden.
If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.
Parameters
- event
-
the GUI event that caused this handler to be called
- state
-
the state of the model at the time of the move event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when the mouse cursor moves above the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when the mouse cursor moves above the view. By default, just returns the unchanged state, but this can be overridden.
If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.
Parameters
- position
-
the position of the mouse cursor relative to the view’s top left-hand corner
- state
-
the state of the model at the time of the move event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when a mouse button is released above the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when a mouse button is released above the view. By default, just returns the unchanged state, but this can be overridden.
If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.
Parameters
- event
-
the GUI event that caused this handler to be called
- state
-
the state of the model at the time of the mouse event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when a mouse button is released above the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when a mouse button is released above the view. By default, just returns the unchanged state, but this can be overridden.
If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.
Parameters
- position
-
the position of the mouse cursor relative to the view’s top left-hand corner
- state
-
the state of the model at the time of the mouse event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one on a tick of the view’s internal clock. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one on a tick of the view’s internal clock. By default, just returns the unchanged state, but this can be overridden.
If you don’t need the number of the clock tick, you may find it simpler to implement the other method of the same name instead of this one.
Parameters
- previousState
-
the state of the model before the clock tick
- time
-
the running number of the clock tick (the first tick being number 1, the second 2, etc.)
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one on a tick of the view’s internal clock. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one on a tick of the view’s internal clock. By default, just returns the unchanged state, but this can be overridden.
Parameters
- previousState
-
the state of the model before the clock tick
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when a key on the keyboard is typed (pressed+released) while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when a key on the keyboard is typed (pressed+released) while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.
If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.
Parameters
- event
-
the GUI event that caused this handler to be called
- state
-
the state of the model at the time of the keyboard event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when a key on the keyboard is typed (pressed+released) while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when a key on the keyboard is typed (pressed+released) while the view has the keyboard focus. By default, just returns the unchanged state, but this can be overridden.
If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.
Parameters
- character
-
the key that was typed
- state
-
the state of the model at the time of the keyboard event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when the mouse wheel is rotated above the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when the mouse wheel is rotated above the view. By default, just returns the unchanged state, but this can be overridden.
If you don’t need much information about the GUI event, you may find it simpler to implement the other method of the same name instead of this one.
Parameters
- event
-
the GUI event that caused this handler to be called
- state
-
the state of the model at the time of the wheel event
Attributes
- Inherited from:
- Controls
Determines what state should follow the given one when the mouse wheel is rotated above the view. By default, just returns the unchanged state, but this can be overridden.
Determines what state should follow the given one when the mouse wheel is rotated above the view. By default, just returns the unchanged state, but this can be overridden.
If the desired behavior depends on detailed information about the GUI event, you may want to implement the other method of the same name instead of this one.
Parameters
- rotation
-
the number of steps the wheel rotated (negative means up, positive down)
- state
-
the state of the model at the time of the wheel event
Attributes
- Inherited from:
- Controls
Attributes
- Inherited from:
- Component
Renders the view as a Java AWT BufferedImage
onto the component.
Renders the view as a Java AWT BufferedImage
onto the component.
Attributes
- Definition Classes
- Inherited from:
- ViewComponentImpl
Attributes
- Inherited from:
- UIElement
Attributes
- Inherited from:
- UIElement
Notify all registered reactions.
Programmatically requests an update to the graphics of the view (even though no clock tick or triggering GUI event occurred).
Programmatically requests an update to the graphics of the view (even though no clock tick or triggering GUI event occurred).
Attributes
- Inherited from:
- ViewComponentImpl
Attributes
- Inherited from:
- Component
Attributes
- Inherited from:
- Component
Attributes
- Inherited from:
- Component
Runs the view as if by calling start except that it runs “headless”, without expectation of being visible in a GUI and independently of a real-time clock. A number of simulated clock ticks are immediately sent to the view; this continues until either the view determines it is done or a predetermined maximum number of ticks has been reached.
Runs the view as if by calling start except that it runs “headless”, without expectation of being visible in a GUI and independently of a real-time clock. A number of simulated clock ticks are immediately sent to the view; this continues until either the view determines it is done or a predetermined maximum number of ticks has been reached.
Parameters
- tickLimit
-
the maximum number of ticks to simulate;
Int.MaxValue
(which is the default) means there is no such limit
Attributes
- Inherited from:
- ViewComponentImpl
Determines whether the view should play a sound, given a state of its model. By default, no sounds are played.
Determines whether the view should play a sound, given a state of its model. By default, no sounds are played.
Parameters
- state
-
a state of the model
Attributes
Starts the view: loads the model into the component and starts the clock. Cf. simulate.
Starts the view: loads the model into the component and starts the clock. Cf. simulate.
Attributes
- Inherited from:
- ViewComponentImpl
Stops the view: stops the clock and stops listening to events. A stopped view cannot be restarted.
Stops the view: stops the clock and stops listening to events. A stopped view cannot be restarted.
Attributes
- Inherited from:
- ViewComponentImpl
Attributes
- Definition Classes
- Inherited from:
- LazyPublisher (hidden)
Returns a brief textual description of the view.
Returns a brief textual description of the view.
Attributes
- Definition Classes
- Inherited from:
- ViewComponentImpl
Returns a View
that stores a trace of the ticks and GUI events that its event handlers process. This parameterless method stores, at each event, the (immutable) state of the View
’s model. This is equivalent to calling tracedWith and passing in identity
.
Returns a View
that stores a trace of the ticks and GUI events that its event handlers process. This parameterless method stores, at each event, the (immutable) state of the View
’s model. This is equivalent to calling tracedWith and passing in identity
.
Attributes
- Inherited from:
- Controls
Returns a View
that stores a pictorial trace of the ticks and GUI events that the View
’s event handlers process. This is equivalent to calling tracedWith and passing in the View
’s makePic
method.
Returns a View
that stores a pictorial trace of the ticks and GUI events that the View
’s event handlers process. This is equivalent to calling tracedWith and passing in the View
’s makePic
method.
Attributes
- Inherited from:
- Controls
Attributes
- Definition Classes
- Inherited from:
- LazyPublisher (hidden)
Used by certain layout managers, e.g., BoxLayout or OverlayLayout to align components relative to each other.
Used by certain layout managers, e.g., BoxLayout or OverlayLayout to align components relative to each other.
Attributes
- Inherited from:
- Component
Attributes
- Inherited from:
- Component
Attributes
- Inherited from:
- Component
Attributes
- Inherited from:
- Component
Inherited and Abstract methods
Returns a Pic that graphically represents the given state of the view’s model. This method is automatically invoked by the view after GUI events and clock ticks. Left abstract by this class so any concrete view needs to add a custom implementation.
Returns a Pic that graphically represents the given state of the view’s model. This method is automatically invoked by the view after GUI events and clock ticks. Left abstract by this class so any concrete view needs to add a custom implementation.
For best results, all invocations of this method on a single view object should return Pic
s of equal dimensions.
Parameters
- state
-
a state of the model to be displayed
Attributes
- Inherited from:
- Controls
Inherited fields
The underlying Swing peer.