Geometry package and coordinates – MiG InfoCom MiG Calendar Tutorial User Manual

Page 19

Advertising
background image

MiG InfoCom AB

3. The

Command

or

CommandSet

that should be executed. E.g.

StartAnimation

.

A

Command

is a generic specification of an action that is to be taken

and what is the target. It can also be sub classes to support any action
that can be written in Java code, without the need for a specific

InteractionBroker

.

An

InteractionBroker

is an executor/interpreter of

Command

s.

A broker will normally handle a certain type of commands, for example
the

ActivityViewInteractionBroker

can handle commands

that will affect an

ActivityView

, it has specific knowledge on how

to manipulate it.

The

Interaction

framework is very loosely coupled. The different

parts, Interactor, Interaction, Command, Expression and
InteractionBroker have few demands on each other's types. This can
be confusing at first but is very powerful once understood. See the
examples in the AShape Tutorial for hints on how to use this powerful
and flexible framework.

One important functionality that the

Interactor

framework

supports is the notion of overriding attributes. If, for instance, an

AShape

's background color is normally blue, it can be overridden to

be yellow when the mouse is hovering over it. The original property of
the

AShape

is never actually changed, it is just exchanged for the

overridden value when the attribute is fetched, for instance during the
paint process. The

Interactor

keeps track of the overrides that is

currently active for its peer object, e.g. an

ActivityView

.

Geometry Package and Coordinates

Since the MiG Calendar requires a lot of flexibility when it comes to
positioning graphics on screen a new type of coordinates was
developed. All sub components within the component uses this
coordinating system. Classes that could denote statements like: '10
pixels from the end' and '20% in, but no less than 10 pixels from the
right edge'. These kind of statements is easy to do in Java code, but
quite hard to specify in a persistable object, such as a coordinate. The

util.gfx.geometry

packages has these main parts:

Numbers. A number can relate to 0, 1, or 2 other numbers. 0
means it is a value on it's own, such as an

Integer

normally is. 1

means it needs one reference value in order to produce a number,
for instance when a coordinate denotes an offset or percentage. 2

MiG Calendar Tutorial

Page 19 / 24

Advertising