public class BasicButtonModel extends Object
DockAction
.JComponent
which uses this
as argument for the constructor of the model. The component can use a subclass
of the model to override changed()
, which is invoked every time when
a property of this model changes. The model will add some listeners to
the button and update its properties when necessary.Constructor and Description |
---|
BasicButtonModel(JComponent owner,
BasicTrigger trigger,
BasicResourceInitializer initializer)
Creates a new model.
|
BasicButtonModel(JComponent owner,
BasicTrigger trigger,
BasicResourceInitializer initializer,
boolean createListener)
Creates a new model.
|
Modifier and Type | Method and Description |
---|---|
void |
addListener(BasicButtonModelListener listener)
Adds a listener to this model.
|
void |
changed()
Called whenever a property of the model has been changed.
|
void |
clearIcons()
Removes any icon that was ever set by
setIcon(ActionContentModifier, Icon) . |
DockAction |
getAction()
Gets the
DockAction which is handled by this model. |
BackgroundPaint |
getBackground()
Gets the algorithm which should be used to paint the background of components.
|
BackgroundComponent |
getBackgroundComponent()
Gets the source of
getBackground() . |
BorderModifier |
getBorder(String key)
Gets the border which is used for the state
key . |
Dockable |
getDockable()
Gets the
Dockable for which the button is shown. |
ActionContentModifier[] |
getIconContexts()
Gets all the
ActionContentModifier s for which an icon is set. |
Dimension |
getMaxIconSize()
Gets the maximum size the icons need.
|
DockTitle.Orientation |
getOrientation()
Gets the orientation of the
DockTitle on which the view of
this model is displayed. |
JComponent |
getOwner()
Gets the view which paints the properties of this model.
|
Icon |
getPaintIcon()
Gets the icon which should be painted on the view.
|
Icon |
getPaintIcon(boolean enabled)
Gets the icon which should be painted on the view.
|
String |
getText()
Gets the text of this button.
|
boolean |
isEnabled()
Tells whether this model reacts on mouse-clicks or not.
|
boolean |
isMouseInside()
Tells whether the mouse currently is inside the
owner
or not. |
boolean |
isMousePressed()
Tells whether the left mouse button is currently pressed or not.
|
boolean |
isSelected()
Tells whether this model is selected or not.
|
protected List<Triple<KeyStroke,String,Action>> |
listActions()
|
protected BasicButtonModelListener[] |
listeners()
Gets all the listeners that are known to this model.
|
void |
removeListener(BasicButtonModelListener listener)
Removes a listener from this model.
|
void |
setBackground(BackgroundPaint background,
BackgroundComponent backgroundComponent)
Sets the algorithm which should be used to paint the background of the owner.
|
void |
setBorder(String key,
BorderModifier border)
Sets the border for some state of the component that displays this model.
|
void |
setController(DockController controller)
Informs this model about the
DockController in whose realm it is used. |
void |
setDockableRepresentative(Dockable dockable)
Sets the
Dockable for which a DockElementRepresentative has to be installed. |
void |
setEnabled(boolean enabled)
Sets the
enabled property of this model. |
void |
setIcon(ActionContentModifier modifier,
Icon icon)
Sets the icon which is normally shown on the view.
|
protected void |
setMouseInside(boolean mouseInside)
Changes the
mouseInside property. |
protected void |
setMousePressed(boolean mousePressed)
Changes the
mousePressed property. |
void |
setOrientation(DockTitle.Orientation orientation)
Tells this model which orientation the
DockTitle has, on which
the view of this model is displayed. |
void |
setSelected(boolean selected)
Sets the
selected property. |
void |
setText(String text)
Sets the text of this button, some button implementations may ignore the text.
|
void |
setToolTipText(String tooltip)
Sets the text which should be used as tooltip.
|
protected void |
trigger()
|
public BasicButtonModel(JComponent owner, BasicTrigger trigger, BasicResourceInitializer initializer)
owner
- the view of this modeltrigger
- the callback used when the user clicks on the viewinitializer
- a strategy to lazily initialize resources, can be null
public BasicButtonModel(JComponent owner, BasicTrigger trigger, BasicResourceInitializer initializer, boolean createListener)
owner
- the view of this modeltrigger
- the callback used when the user clicks on the viewinitializer
- a strategy to lazily initialize resources, can be null
createListener
- whether to create and add a MouseListener
and
a MouseMotionListener
to owner
. If this argument
is false
, then the client is responsible to update all
properties of this model.protected List<Triple<KeyStroke,String,Action>> listActions()
KeyStroke
s, String keys and Action
s which
are to be applied to the owner
of this model.public void addListener(BasicButtonModelListener listener)
listener
- the new listenerpublic void setController(DockController controller)
DockController
in whose realm it is used.controller
- the realm in which this model workspublic void removeListener(BasicButtonModelListener listener)
listener
- the listener to removeprotected BasicButtonModelListener[] listeners()
public JComponent getOwner()
public void setBackground(BackgroundPaint background, BackgroundComponent backgroundComponent)
background
- the background algorithm, can be null
backgroundComponent
- the source of background
. Must not be null
if
background
is not null
, must represents getOwner()
as Component
.public BackgroundPaint getBackground()
null
public BackgroundComponent getBackgroundComponent()
getBackground()
.null
if getBackground()
returns null
public DockAction getAction()
DockAction
which is handled by this model. This method may return null
because not every button actually is connected to a DockAction
.null
public Dockable getDockable()
Dockable
for which the button is shown. This method may return null
because not every button is connected to a Dockable
.null
public void setBorder(String key, BorderModifier border)
key
are actually used depends on that component.key
- the key of the borderborder
- the new border or null
public BorderModifier getBorder(String key)
key
. The exact value of
key depends on the component which shows this model.key
- the key for some bordernull
if not foundpublic void clearIcons()
setIcon(ActionContentModifier, Icon)
.public ActionContentModifier[] getIconContexts()
ActionContentModifier
s for which an icon is set.public void setText(String text)
text
- the new text, can be null
public String getText()
null
public void setIcon(ActionContentModifier modifier, Icon icon)
modifier
- the context in which to use the icon, not null
icon
- the new icon, can be null
public void setSelected(boolean selected)
selected
property. The view may be painted in
a different way dependent on this value.selected
- the new valuepublic boolean isSelected()
public void setEnabled(boolean enabled)
enabled
property of this model. A model will not
react on a mouse-click if it is not enabled.enabled
- the valuepublic boolean isEnabled()
public void setToolTipText(String tooltip)
owner
of this model using
setToolTipText
.tooltip
- the text, can be null
public void setOrientation(DockTitle.Orientation orientation)
DockTitle
has, on which
the view of this model is displayed.orientation
- the orientation, not null
public void setDockableRepresentative(Dockable dockable)
Dockable
for which a DockElementRepresentative
has to be installed.dockable
- the dockable to monitor, can be null
public DockTitle.Orientation getOrientation()
DockTitle
on which the view of
this model is displayed.setOrientation(DockTitle.Orientation)
public void changed()
public Dimension getMaxIconSize()
public Icon getPaintIcon()
null
public Icon getPaintIcon(boolean enabled)
enabled
- whether the enabled or the disabled version of the
icon is requested.null
protected void setMouseInside(boolean mouseInside)
mouseInside
property. The property tells whether
the mouse is currently inside the border of the owner
or not. Clients should not call this method unless they handle all
mouse events.mouseInside
- whether the mouse is insidepublic boolean isMouseInside()
owner
or not.true
if the mouse is insideprotected void setMousePressed(boolean mousePressed)
mousePressed
property. The property tells
whether the left mouse button is currently pressed or not. Clients
should not invoke this method unless they handle all mouse events.mousePressed
- whether button 1 is pressedpublic boolean isMousePressed()
true
if the button is pressedprotected void trigger()