public class InputHandler extends Object
agents()
, and an event dispatcher queue of
EventGrabberTuple
s (eventTupleQueue()
). Such tuple
represents a message passing to application objects, allowing an object to be
instructed to perform a particular user-defined action from a given
BogusEvent
. For an introduction to BIAS please refer to
this.
At runtime, the input handler should continuously run the two loops defined in
handle()
. Therefore, simply attach a call to handle()
at the end of
your main event (drawing) loop for that to take effect (like it's done in
dandelion by the AbstractScene.postDraw() method).
Constructor and Description |
---|
InputHandler() |
Modifier and Type | Method and Description |
---|---|
void |
addGrabber(Grabber grabber)
Calls
Agent.addGrabber(Grabber) on registered
agents() . |
List<Agent> |
agents()
Returns a list of the registered agents.
|
boolean |
enqueueEventTuple(EventGrabberTuple eventTuple)
Enqueues the eventTuple for later execution which happens at the end of
handle() . |
LinkedList<EventGrabberTuple> |
eventTupleQueue()
Returns the event tuple queue.
|
void |
handle()
Main handler method.
|
boolean |
hasGrabber(Grabber g)
|
boolean |
isAgentRegistered(Agent agent)
Returns true if the given agent is registered.
|
boolean |
isInputGrabber(Grabber g)
|
boolean |
registerAgent(Agent agent)
Registers the given agent.
|
void |
removeEventTuple(BogusEvent event)
Removes the given event from the event queue.
|
void |
removeEventTuples()
Clears the event queue.
|
void |
removeGrabber(Grabber grabber)
Calls
Agent.removeGrabber(Grabber) on registered
agents() . |
void |
removeGrabbers()
Calls
Agent.removeGrabbers() on registered
agents() . |
void |
resetTrackedGrabber()
Calls
Agent.resetTrackedGrabber() on registered
agents() . |
void |
setDefaultGrabber(Grabber grabber)
Calls
Agent.setDefaultGrabber(Grabber) on registered
agents() . |
void |
shiftDefaultGrabber(Grabber g1,
Grabber g2)
Calls
Agent.shiftDefaultGrabber(Grabber, Grabber) on
registered agents() . |
boolean |
unregisterAgent(Agent agent)
Unregisters the given agent.
|
void |
unregisterAgents()
Unregisters all agents from the handler.
|
public void handle()
The handle comprises the following two loops:
1. EventGrabberTuple
producer loop which for each
registered agent calls: a.
Agent.updateTrackedGrabber(BogusEvent)
; and, b.
Agent.handle(BogusEvent)
. Note that the bogus event are
obtained from the agents callback
Agent.updateTrackedGrabberFeed()
and
Agent.handleFeed()
methods, respectively. The bogus event
may also be obtained from Agent.handleFeed()
which may
replace both of the previous feeds when they are null.
2. User-defined action consumer loop: which for each
EventGrabberTuple
calls
EventGrabberTuple.perform()
.
public void addGrabber(Grabber grabber)
Agent.addGrabber(Grabber)
on registered
agents()
.public void removeGrabber(Grabber grabber)
Agent.removeGrabber(Grabber)
on registered
agents()
.public void removeGrabbers()
Agent.removeGrabbers()
on registered
agents()
.public void setDefaultGrabber(Grabber grabber)
Agent.setDefaultGrabber(Grabber)
on registered
agents()
.public void shiftDefaultGrabber(Grabber g1, Grabber g2)
Agent.shiftDefaultGrabber(Grabber, Grabber)
on
registered agents()
.public boolean isInputGrabber(Grabber g)
public boolean hasGrabber(Grabber g)
public void resetTrackedGrabber()
Agent.resetTrackedGrabber()
on registered
agents()
.public boolean registerAgent(Agent agent)
public boolean isAgentRegistered(Agent agent)
public boolean unregisterAgent(Agent agent)
public void unregisterAgents()
public LinkedList<EventGrabberTuple> eventTupleQueue()
public boolean enqueueEventTuple(EventGrabberTuple eventTuple)
handle()
. Returns true
if succeeded and false
otherwise.handle()
public void removeEventTuple(BogusEvent event)
event
- to be removed.public void removeEventTuples()
Processing Library proscene by Jean Pierre Charalambos. (c) 2014-2017 National University of Colombia