O1Library Docs
Fall 2023
Docs API

# ViewComponent

o1.gui.immutable$.ViewComponent
abstract class ViewComponent[Model <: Matchable](initialState: Model, tickRate: Double, initialDelay: Int, refreshPolicy: RefreshPolicy) extends ViewComponentImpl[Model], Controls[Model]

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
  trait Controls[Model]
  trait Fast
  class ViewComponentImpl[Model]
  class Component
  trait UIElement
  trait Publisher
  trait Reactor
  trait Proxy
  class Object
  trait Matchable
  class Any
  Show all
Known subtypes
  class Traced[TraceData]

## Members list

### Type members

#### Classlikes

final class Traced[TraceData](val extractTrace: Model => TraceData) extends ViewComponent[Model], 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

## Parameters

extractTrace

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

## Attributes

Supertypes
  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
  Show all

#### Inherited classlikes

object keys extends Publisher

## Attributes

Inherited from:
  Component
Supertypes
  trait Publisher
  trait Reactor
  class Object
  trait Matchable
  class Any

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.

## Attributes

Inherited from:
  Component
Supertypes
  class Object
  trait Matchable
  class Any

### Value members

#### Concrete methods

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

## Parameters

extractTrace

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

## Attributes

See also

  traced, tracedPics

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

## Attributes

Inherited from:
  ViewComponentImpl

def background: Color

## Attributes

Inherited from:
  UIElement

def background_=(c: Color): Unit

## Attributes

Inherited from:
  UIElement

def border: Border

## Attributes

Inherited from:
  Component

def border_=(b: Border): Unit

## Attributes

Inherited from:
  Component

def bounds: Rectangle

## Attributes

Inherited from:
  UIElement

def componentOrientation: ComponentOrientation

## Attributes

Inherited from:
  UIElement

def componentOrientation_=(x: ComponentOrientation): Unit

## Attributes

Inherited from:
  UIElement

def cursor: Cursor

## Attributes

Inherited from:
  UIElement

def cursor_=(c: Cursor): Unit

## Attributes

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.

## Attributes

Inherited from:
  Reactor

def displayable: Boolean

## Attributes

Inherited from:
  UIElement

def enabled: Boolean

## Attributes

Inherited from:
  Component

def enabled_=(b: Boolean): Unit

## Attributes

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

## 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
  Proxy -> Any
Inherited from:
  Proxy

def focusable: Boolean

## Attributes

Inherited from:
  Component

def focusable_=(b: Boolean): Unit

## Attributes

Inherited from:
  Component

def font: Font

## Attributes

Inherited from:
  UIElement

def font_=(f: Font): Unit

## Attributes

Inherited from:
  UIElement

def foreground: Color

## Attributes

Inherited from:
  UIElement

def foreground_=(c: Color): Unit

## Attributes

Inherited from:
  UIElement

def hasFocus: Boolean

## Attributes

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.

## Attributes

Returns

  the hash code value for this object.

Definition Classes
  Proxy -> Any
Inherited from:
  Proxy

def ignoreRepaint: Boolean

## Attributes

Inherited from:
  UIElement

def ignoreRepaint_=(b: Boolean): Unit

## Attributes

Inherited from:
  UIElement

def inputVerifier: Component => Boolean

## Attributes

Inherited from:
  Component

def inputVerifier_=(v: Component => Boolean): Unit

## Attributes

Inherited from:
  Component

override def isDone(state: Model): Boolean

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
  Controls -> Controls
Inherited from:
  Controls

override def isPaused: Boolean

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

  HasPauseToggle

Definition Classes
  Controls -> Controls
Inherited from:
  Controls

def listenTo(ps: Publisher*): Unit

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

def locale: Locale

## Attributes

Inherited from:
  UIElement

def location: Point

## Attributes

Inherited from:
  UIElement

def locationOnScreen: Point

## Attributes

Inherited from:
  UIElement

def makePic(state: Model): Pic

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

def maximumSize: Dimension

## Attributes

Inherited from:
  UIElement

def maximumSize_=(x: Dimension): Unit

## Attributes

Inherited from:
  UIElement

def minimumSize: Dimension

## Attributes

Inherited from:
  UIElement

def minimumSize_=(x: Dimension): Unit

## Attributes

Inherited from:
  UIElement

def name: String

## Attributes

Inherited from:
  Component

def name_=(s: String): Unit

## Attributes

Inherited from:
  Component

def onClick(state: Model, event: MouseClicked): Model

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

def onClick(state: Model, position: Pos): Model

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

def onKeyDown(state: Model, event: KeyPressed): Model

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

def onKeyDown(state: Model, key: Key): Model

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

def onKeyUp(state: Model, event: KeyReleased): Model

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

def onKeyUp(state: Model, key: Key): Model

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

def onMouseDown(state: Model, event: MousePressed): Model

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

def onMouseDown(state: Model, position: Pos): Model

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

def onMouseDrag(state: Model, event: MouseDragged): Model

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

def onMouseDrag(state: Model, position: Pos): Model

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

def onMouseEnter(state: Model, event: MouseEntered): Model

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

def onMouseExit(state: Model, event: MouseExited): Model

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

def onMouseMove(state: Model, event: MouseMoved): Model

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

def onMouseMove(state: Model, position: Pos): Model

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

def onMouseUp(state: Model, event: MouseReleased): Model

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

def onMouseUp(state: Model, position: Pos): Model

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

override def onStop(): Unit

Causes an additional effect when the view is stopped (with `stop()`). By default, this method does nothing.

Causes an additional effect when the view is stopped (with `stop()`). By default, this method does nothing.

## Attributes

Definition Classes
  Controls -> Controls
Inherited from:
  Controls

def onTick(previousState: Model, time: Long): Model

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

def onTick(previousState: Model): Model

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

def onType(state: Model, event: KeyTyped): Model

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

def onType(state: Model, character: Char): Model

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

def onWheel(state: Model, event: MouseWheelMoved): Model

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

def onWheel(state: Model, rotation: Int): Model

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

def opaque: Boolean

## Attributes

Inherited from:
  Component

def opaque_=(b: Boolean): Unit

## Attributes

Inherited from:
  Component

def paint(g: Graphics2D): Unit

## Attributes

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.

## Attributes

Definition Classes
  ViewComponentImpl -> Component
Inherited from:
  ViewComponentImpl

def preferredSize: Dimension

## Attributes

Inherited from:
  UIElement

def preferredSize_=(x: Dimension): Unit

## Attributes

Inherited from:
  UIElement

def publish(e: Event): Unit

Notify all registered reactions.

Notify all registered reactions.

## Attributes

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

## Attributes

Inherited from:
  ViewComponentImpl

def repaint(rect: Rectangle): Unit

## Attributes

Inherited from:
  UIElement

def repaint(): Unit

## Attributes

Inherited from:
  UIElement

def requestFocus(): Unit

## Attributes

Inherited from:
  Component

def requestFocusInWindow(): Boolean

## Attributes

Inherited from:
  Component

def revalidate(): Unit

## Attributes

Inherited from:
  Component

def self: Any

## Attributes

Inherited from:
  UIElement

def showing: Boolean

## Attributes

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.

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

def size: Dimension

## Attributes

Inherited from:
  UIElement

override def sound(state: Model): Option[Sound]

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

Returns

  a Sound that the view should play; `None` if no sound is appropriate for the given state

Definition Classes
  Controls -> Controls
Inherited from:
  Controls

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.

## Attributes

Inherited from:
  ViewComponentImpl

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.

## Attributes

Inherited from:
  ViewComponentImpl

override def subscribe(listener: Reaction): Unit

## Attributes

Definition Classes
  LazyPublisher -> Publisher
Inherited from:
  LazyPublisher (hidden)

override def toString: String

Returns a brief textual description of the view.

Returns a brief textual description of the view.

## Attributes

Definition Classes
  ViewComponentImpl -> Component -> Proxy -> Any
Inherited from:
  ViewComponentImpl

def toolkit: Toolkit

## Attributes

Inherited from:
  UIElement

def tooltip: String

## Attributes

Inherited from:
  Component

def tooltip_=(t: String): Unit

## Attributes

Inherited from:
  Component

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

## Attributes

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.

## Attributes

Inherited from:
  Controls

override def unsubscribe(listener: Reaction): Unit

## Attributes

Definition Classes
  LazyPublisher -> Publisher
Inherited from:
  LazyPublisher (hidden)

def validate(): Unit

## Attributes

Inherited from:
  UIElement

def visible: Boolean

## Attributes

Inherited from:
  UIElement

def visible_=(b: Boolean): Unit

## Attributes

Inherited from:
  UIElement

def xLayoutAlignment: Double

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

def xLayoutAlignment_=(x: Double): Unit

## Attributes

Inherited from:
  Component

def yLayoutAlignment: Double

## Attributes

Inherited from:
  Component

def yLayoutAlignment_=(y: Double): Unit

## Attributes

Inherited from:
  Component

#### Inherited fields

protected val listeners: RefSet[Reaction]

## Attributes

Inherited from:
  Publisher

lazy override val peer: JComponent

The underlying Swing peer.

The underlying Swing peer.

## Attributes

Inherited from:
  Component

val reactions: Reactions

All reactions of this reactor.

All reactions of this reactor.

## Attributes

Inherited from:
  Reactor