Traced

final class Traced[TraceData](val extractTrace: Model => TraceData) extends ViewComponent[Model] with TraceGeneratingView[Model, TraceData]

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 with 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

Value parameters:
extractTrace

a function that determines how to describe a model state in the generated trace

trait TraceGeneratingView[Model, TraceData]
trait GeneratesTrace[Model, TraceData]
class ViewComponent[Model]
trait Controls[Model]
trait Fast
class ViewComponentImpl[Model]
class Component
trait UIElement
trait Publisher
trait Reactor
trait Proxy
class Object
trait Matchable
class Any

Type members

Inherited classlikes

final class Traced[TraceData](val extractTrace: Model => TraceData) extends ViewComponent[Model] with TraceGeneratingView[Model, TraceData]

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 with 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

Value parameters:
extractTrace

a function that determines how to describe a model state in the generated trace

Inherited from:
ViewComponent
object keys extends Publisher
Inherited from:
Component
object mouse

Contains publishers for various mouse events. They are separated for efficiency reasons.

Contains publishers for various mouse events. They are separated for efficiency reasons.

Inherited from:
Component

Value members

Inherited methods

final def adjustSpeed(newTickRate: Double): Unit

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.

Inherited from:
ViewComponentImpl
Inherited from:
UIElement
Inherited from:
UIElement
Inherited from:
Component
Inherited from:
Component
Inherited from:
UIElement
Inherited from:
UIElement
Inherited from:
UIElement
def deafTo(ps: Publisher*): Unit

Installed reaction won't receive events from the given publisher anylonger.

Installed reaction won't receive events from the given publisher anylonger.

Inherited from:
Reactor
Inherited from:
UIElement
Inherited from:
Component
Inherited from:
Component
override def equals(that: Any): Boolean

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 type Any, x.equals(x) should return true.
  • It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any instances x, y, and z of type Any if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.

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)).

Value parameters:
that

the object to compare against this object for equality.

Returns:

true if the receiver object is equivalent to the argument; false otherwise.

Definition Classes
Inherited from:
Proxy
Inherited from:
Component
Inherited from:
Component
def font: Font
Inherited from:
UIElement
def font_=(f: Font): Unit
Inherited from:
UIElement
Inherited from:
UIElement
Inherited from:
UIElement
Inherited from:
Component
override def hashCode(): Int

Calculate a hash code value for the object.

Calculate 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.

Returns:

the hash code value for this object.

Definition Classes
Inherited from:
Proxy
Inherited from:
UIElement
Inherited from:
UIElement
Inherited from:
Component
override def isDone(state: Model): Boolean

Determines if the given state is a “done state” for the view. This implementation delegates to the underlying View that is being traced.

Determines if the given state is a “done state” for the view. This implementation delegates to the underlying View that is being traced.

Value parameters:
state

a state of the model (possibly a done state)

Definition Classes
Inherited from:
TraceGeneratingView
final override def isPaused: Boolean

Indicates whether the view is paused. This implementation delegates to the underlying View that is being traced.

Indicates whether the view is paused. This implementation delegates to the underlying View that is being traced.

Definition Classes
Inherited from:
GeneratesTrace

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.

Inherited from:
Reactor
Inherited from:
UIElement
Inherited from:
UIElement
Inherited from:
UIElement
def makePic(state: Model): Pic

Returns a Pic that graphically represents the current state of the view’s model object. This implementation delegates to the underlying View that is being traced.

Returns a Pic that graphically represents the current state of the view’s model object. This implementation delegates to the underlying View that is being traced.

Value parameters:
state

a state of the model to be displayed

Inherited from:
TraceGeneratingView
Inherited from:
UIElement
Inherited from:
UIElement
Inherited from:
UIElement
Inherited from:
UIElement
Inherited from:
Component
def name_=(s: String): Unit
Inherited from:
Component
override def onClick(state: Model, event: MouseClicked): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onClick(state: Model, position: Pos): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onKeyDown(state: Model, event: KeyPressed): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onKeyDown(state: Model, key: Key): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onKeyUp(state: Model, event: KeyReleased): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onKeyUp(state: Model, key: Key): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onMouseDown(state: Model, event: MousePressed): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onMouseDown(state: Model, position: Pos): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onMouseDrag(state: Model, event: MouseDragged): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onMouseDrag(state: Model, position: Pos): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onMouseEnter(state: Model, event: MouseEntered): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onMouseExit(state: Model, event: MouseExited): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onMouseMove(state: Model, event: MouseMoved): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onMouseMove(state: Model, position: Pos): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onMouseUp(state: Model, event: MouseReleased): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onMouseUp(state: Model, position: Pos): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
final override def onStop(): Unit

Causes an additional effect when the view is stopped (with stop()). This implementation delegates to the underlying View that is being traced. In addition, if the traced view had been started with startAndGet and reaches its tick limit before being done, this method causes the returned future to complete with a failure.

Causes an additional effect when the view is stopped (with stop()). This implementation delegates to the underlying View that is being traced. In addition, if the traced view had been started with startAndGet and reaches its tick limit before being done, this method causes the returned future to complete with a failure.

Definition Classes
Inherited from:
GeneratesTrace
override def onTick(previousState: Model, time: Long): Model

Handles a clock tick and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a clock tick and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onTick(previousState: Model): Model

Handles a clock tick and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a clock tick and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onType(state: Model, event: KeyTyped): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onType(state: Model, character: Char): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onWheel(state: Model, event: MouseWheelMoved): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
override def onWheel(state: Model, rotation: Int): Model

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Handles a GUI event and adds it to the view’s trace. Delegates the actual event-handling to the corresponding method on the underlying View that is being traced.

Definition Classes
Inherited from:
TraceGeneratingView
Inherited from:
Component
Inherited from:
Component
Inherited from:
Component
final override def paintComponent(myGraphics: Graphics2D): Unit

Renders the view as a Java AWT BufferedImage onto the component.

Renders the view as a Java AWT BufferedImage onto the component.

Definition Classes
Inherited from:
ViewComponentImpl
Inherited from:
UIElement
Inherited from:
UIElement
def publish(e: Event): Unit

Notify all registered reactions.

Notify all registered reactions.

Inherited from:
Publisher
final def refresh(): Unit

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).

Inherited from:
ViewComponentImpl
def repaint(rect: Rectangle): Unit
Inherited from:
UIElement
def repaint(): Unit
Inherited from:
UIElement
Inherited from:
Component
Inherited from:
Component
def self: Any
Inherited from:
UIElement
Inherited from:
UIElement
final def simulate(tickLimit: Int): Unit

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.

Value parameters:
tickLimit

the maximum number of ticks to simulate; Int.MaxValue (which is the default) means there is no such limit

Inherited from:
ViewComponentImpl
final def simulateAndGet(tickLimit: Int): Seq[(TraceData, TraceEvent)]

Simulates this trace-generating view with simulate and returns the resulting trace. This is equivalent to calling first simulate, then trace. See also startAndGet.

Simulates this trace-generating view with simulate and returns the resulting trace. This is equivalent to calling first simulate, then trace. See also startAndGet.

Value parameters:
tickLimit

the maximum number of ticks to simulate; Int.MaxValue (which is the default) means there is no such limit

Inherited from:
GeneratesTrace
Inherited from:
UIElement
override def sound(state: Model): Option[Sound]

Determines whether the view should play a sound, given a state of its model. This implementation delegates to the underlying underlying View that is being traced.

Determines whether the view should play a sound, given a state of its model. This implementation delegates to the underlying underlying View that is being traced.

Value parameters:
state

a state of the model

Definition Classes
Inherited from:
TraceGeneratingView
final def start(): Unit

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.

Inherited from:
ViewComponentImpl
final def startAndGet(tickLimit: Long): Future[Seq[(TraceData, TraceEvent)]]

Starts this trace-generating view with start and returns a Future that evaluates to the resulting trace. The Future succeeds when the view is done; if the view isn’t done after a given number of clock ticks, the Future fails with TraceAborted, producing a partial trace. See also simulateAndGet.

Starts this trace-generating view with start and returns a Future that evaluates to the resulting trace. The Future succeeds when the view is done; if the view isn’t done after a given number of clock ticks, the Future fails with TraceAborted, producing a partial trace. See also simulateAndGet.

Value parameters:
tickLimit

the maximum number of ticks to process before the future completes with a failure; defaults to Long.MaxValue

Inherited from:
GeneratesTrace
final def stop(): Unit

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.

Inherited from:
ViewComponentImpl
override def subscribe(listener: Reaction): Unit
Definition Classes
Inherited from:
LazyPublisher (hidden)
final override def toString: String

Returns a brief textual description of the view.

Returns a brief textual description of the view.

Definition Classes
Inherited from:
GeneratesTrace
Inherited from:
UIElement
Inherited from:
Component
Inherited from:
Component
final def trace: Seq[(TraceData, TraceEvent)]

Returns a trace of the events processed by this view. The trace comes in a collection of pairs, each of which is composed of a TraceData value that describes at the time of the event and a TraceEvent value that describes the event itself.

Returns a trace of the events processed by this view. The trace comes in a collection of pairs, each of which is composed of a TraceData value that describes at the time of the event and a TraceEvent value that describes the event itself.

Inherited from:
GeneratesTrace
final def traced: Traced[Model]

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.

Inherited from:
Controls
final def tracedPics: Traced[Pic]

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.

Inherited from:
Controls
final def tracedWith[TraceData](extractTrace: Model => TraceData): Traced[TraceData]

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

Value parameters:
extractTrace

a function that determines how to describe a model state in the generated trace

See also:
Inherited from:
ViewComponent
override def unsubscribe(listener: Reaction): Unit
Definition Classes
Inherited from:
LazyPublisher (hidden)
def validate(): Unit
Inherited from:
UIElement
Inherited from:
UIElement
Inherited from:
UIElement

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.

Inherited from:
Component
Inherited from:
Component
Inherited from:
Component
Inherited from:
Component

Inherited fields

protected val listeners: RefSet[Reaction]
Inherited from:
Publisher
lazy override val peer: JComponent

The underlying Swing peer.

The underlying Swing peer.

Inherited from:
Component

All reactions of this reactor.

All reactions of this reactor.

Inherited from:
Reactor