public class DefaultFocusController extends AbstractFocusController
FocusController
.Constructor and Description |
---|
DefaultFocusController(DockController controller)
Creates a new focus-controller
|
Modifier and Type | Method and Description |
---|---|
protected Component |
accept(FocusRequest request,
Dockable dockable)
Decides whether to execute or to refuse
request . |
FocusVetoListener.FocusVeto |
checkFocusedDockable(DockElementRepresentative source)
Checks whether
source can be used to select the next focused Dockable . |
void |
ensureFocusSet(boolean dockableOnly)
Ensures that a title or a
Component of the currently
focused Dockable really
has the focus. |
protected void |
execute(FocusRequest request,
Dockable dockable,
Component component)
Called if
accept(FocusRequest, Dockable) accepted request . |
void |
focus(FocusRequest request)
Requests focus for the
Component that is described by request . |
Dockable |
getFocusedDockable()
Gets the
Dockable which is currently focused. |
boolean |
isOnFocusing()
Tells whether one of the methods which change the focus is currently
running, or not.
|
void |
onFocusRequestCompletion(Runnable run)
After the currently executed
FocusRequest is completed, or if there is currently no FocusRequest running,
run is executed. |
FocusVetoListener.FocusVeto |
setFocusedDockable(DockElementRepresentative source,
Component component,
boolean force,
boolean ensureFocusSet,
boolean ensureDockableFocused)
Sets the
Dockable which should have the focus. |
addDockableFocusListener, addVetoListener, dockableFocusListeners, fireDockableFocused, fireVetoDockable, fireVetoTitle, freezeFocus, getController, getStrategy, isFrozen, meltFocus, removeDockableFocusListener, removeVetoListener, setStrategy
public DefaultFocusController(DockController controller)
controller
- the owner of this controllerpublic boolean isOnFocusing()
FocusController
true
, noone should
change the focus.true
if the focus is currently changingpublic Dockable getFocusedDockable()
FocusController
Dockable
which is currently focused.null
public FocusVetoListener.FocusVeto checkFocusedDockable(DockElementRepresentative source)
FocusController
source
can be used to select the next focused Dockable
.source
- the element which may be focusednull
indicates that
source
does not represent a Dockable
public FocusVetoListener.FocusVeto setFocusedDockable(DockElementRepresentative source, Component component, boolean force, boolean ensureFocusSet, boolean ensureDockableFocused)
FocusController
Dockable
which should have the focus.source
- the item to focus, may be null
component
- the Component
which triggered this call for example because the user clicked with the mouse on it.
This method can assume that the focus will automatically be transfered to component
by the Swing framework itself.
Can be null
, in which case this method decides on its own which Component
to focus. This method may or may
not do sanity checks concerning component
. An invalid argument will silently be ignored and treated
as if it would be null
.force
- true
if this controller must ensure
that all properties are correct, false
if some
optimizations are allowed. Clients normally can set this argument
to false
.ensureFocusSet
- if true
, then this method should make sure that either focusedDockable
itself or one of its DockElementRepresentative
is the focus ownerensureDockableFocused
- if true
, then this method should make sure that focusedDockable
is the focus owner. This parameter is stronger that ensureFocusSet
null
indicates that FocusController.isOnFocusing()
returned
true
and the call was ignoredpublic void ensureFocusSet(boolean dockableOnly)
FocusController
Component
of the currently
focused Dockable
really
has the focus.dockableOnly
- if true
, then only the Dockable
itself
should be focusedpublic void focus(FocusRequest request)
Component
that is described by request
. The request is either
executed now (if delay
is 0) or in the near future. The request may be canceled either
because another request is executed first, because of a FocusVetoListener
, or because the request contains
invalid data.request
- the requestpublic void onFocusRequestCompletion(Runnable run)
FocusController
FocusRequest
is completed, or if there is currently no FocusRequest
running,
run
is executed. If this controller is frozen
, then run
is executed
Immediately.run
- some code to execute once a new Dockable
has been focusedFocusController.focus(FocusRequest)
protected Component accept(FocusRequest request, Dockable dockable)
request
.request
- the request to checkdockable
- the dockable that would receive the focus through this requestComponent
or null
if the
request is to be refusedprotected void execute(FocusRequest request, Dockable dockable, Component component)
accept(FocusRequest, Dockable)
accepted request
.request
- the request to executedockable
- the element that will receive the focuscomponent
- the Component
that is to be focused