org.flexdock.docking.defaults
public class DockableComponentWrapper extends Object implements Dockable
Dockable
implementation for wrapping a
Component
. It is essentially the simplest means to turning a generic
Component
into a Dockable
instance. Compound
Dockables
may have separate child components that are responsible for
drag initiation, whereas another component is the actual drag source. This is
shown in the manner that a JInternalFrame
would be a draggable
component, while the frame's title pane is the actual drag initiator.
The class, conversely, deals with the simple case, where a
Component
itself must be docking-enabled.
DockableComponentWrapper
wraps a Component
and implements the
Dockable
interface. Since the Component
itself is being
docking-enabled, it serves as both the drag source and drag initiator. Thus,
getComponent()
will return a reference to 'this'
and
getDragSources()
return a List
containing the same
self-reference Component
.
This class may be used by application code to enable docking capabilities on
a given Component
. However, it is recommended that
DockingManager.registerDockable(Component evtSrc, String desc)
be
used as a more automated, less invasive means of enabling docking on a
component.
DockingManager.registerDockable(Component evtSrc, String desc)
will
automatically create a DockableComponentWrapper
instance and register
the required drag listeners.
DockingListener.Stub
DOCKABLE_INDICATOR
Modifier and Type | Method and Description |
---|---|
void |
addDockingListener(DockingListener listener)
Adds a
DockingListener to observe docking events for this
Dockable . |
void |
addPropertyChangeListener(PropertyChangeListener listener)
Adds a PropertyChangeListener to the listener list.
|
static DockableComponentWrapper |
create(Component src,
String id,
String desc)
Creates a
DockableComponentWrapper instance using the specified
source component, persistent ID, and docking description. |
static DockableComponentWrapper |
create(DockingAdapter adapter) |
static DockableComponentWrapper |
create(DockingStub stub) |
boolean |
dock(Dockable dockable)
Provides the default
Dockable implementation of
dock(Dockable dockable) by calling and returning
DockingManager.dock(Dockable dockable, Dockable parent) . |
boolean |
dock(Dockable dockable,
String relativeRegion)
Provides the default
Dockable implementation of
dock(Dockable dockable, String relativeRegion) by calling and
returning
DockingManager.dock(Dockable dockable, Dockable parent, String region) . |
boolean |
dock(Dockable dockable,
String relativeRegion,
float ratio)
Provides the default
Dockable implementation of
dock(Dockable dockable, String relativeRegion, float ratio) by
calling and returning
DockingManager.dock(Dockable dockable, Dockable parent, String region, float proportion) . |
void |
dockingCanceled(DockingEvent evt)
No operation.
|
void |
dockingComplete(DockingEvent evt)
No operation.
|
void |
dragStarted(DockingEvent evt)
No operation.
|
void |
dropStarted(DockingEvent evt)
No operation.
|
Object |
getClientProperty(Object key)
Returns the value of the property with the specified key.
|
Component |
getComponent()
Returns the
Component used to create this
DockableComponentWrapper instance. |
DockingListener[] |
getDockingListeners()
Returns an array of all
DockingListeners added to this
Dockable . |
DockingPort |
getDockingPort()
Returns the
DockingPort within which this Dockable is
currently docked. |
DockablePropertySet |
getDockingProperties()
Returns a
DockablePropertySet instance associated with this
Dockable . |
List |
getDragSources()
Returns a
List of Components used to initiate
drag-to-dock operation. |
Set |
getFrameDragSources()
Returns a
HashSet of Components used as frame drag
sources when this Dockable is floating in a non-decorated
external dialog. |
String |
getPersistentId()
Returns the persistent ID of this
DockableComponentWrapper
instance provided when this object was instantiated. |
void |
putClientProperty(Object key,
Object value)
Adds an arbitrary key/value "client property" to this
Dockable . |
void |
removeDockingListener(DockingListener listener)
Removes the specified
DockingListener from this Dockable . |
void |
removePropertyChangeListener(PropertyChangeListener listener)
Removes a PropertyChangeListener from the listener list.
|
void |
undockingComplete(DockingEvent evt)
No operation.
|
void |
undockingStarted(DockingEvent evt)
No operation.
|
public static DockableComponentWrapper create(Component src, String id, String desc)
DockableComponentWrapper
instance using the specified
source component, persistent ID, and docking description. This method is
used to create Dockable
instances for simple Components
where the drag source and drag initiator are the same Component
.
If src
or id
are null
, then this method returns
a null
reference.
src
will be the Component
returned by invoking
getComponent()
on the resulting Dockable
and will be
included in the List
returned by getDragSources()
.
id
will be the value returned by invoking
getPersistentId()
on the resulting Dockable
.
desc
may be used by the Dockable
for descriptive purposes
(such as tab-text in a tabbed layout). It is not recommended to supply a
null
value for desc
, but doing so is not illegal.
src
- the source componentid
- the persistent ID for the Dockable instancedesc
- the docking descriptionDockableComponentWrapper
instanceDockable.getComponent()
,
Dockable.getDragSources()
,
Dockable.getPersistentId()
,
DockingManager.registerDockable(Component, String)
public static DockableComponentWrapper create(DockingStub stub)
public static DockableComponentWrapper create(DockingAdapter adapter)
public Component getComponent()
Component
used to create this
DockableComponentWrapper
instance.getComponent
in interface Dockable
Component
used to create this
DockableComponentWrapper
instance.Dockable.getComponent()
,
create(Component, String, String)
public List getDragSources()
List
of Components
used to initiate
drag-to-dock operation. By default, the returned List
contains
the Component
returned by getComponent()
.getDragSources
in interface Dockable
List
of Components
used to initiate
drag-to-dock operation.Dockable.getDragSources()
,
getComponent()
,
create(Component, String, String)
public String getPersistentId()
DockableComponentWrapper
instance provided when this object was instantiated.getPersistentId
in interface Dockable
DockableComponentWrapper
Dockable.getPersistentId()
,
create(Component, String, String)
public Set getFrameDragSources()
HashSet
of Components
used as frame drag
sources when this Dockable
is floating in a non-decorated
external dialog. The HashSet
returned by this method is initially
empty. Because it is mutable, however, new Components
may be
added to it.getFrameDragSources
in interface Dockable
HashSet
of Components
used as frame drag
sources when this Dockable
is floating in a non-decorated
external dialog.Dockable.getFrameDragSources()
public void addDockingListener(DockingListener listener)
DockingListener
to observe docking events for this
Dockable
. null
arguments are ignored.addDockingListener
in interface DockingMonitor
listener
- the DockingListener
to add to this Dockable
.getDockingListeners()
,
removeDockingListener(DockingListener)
public DockingListener[] getDockingListeners()
DockingListeners
added to this
Dockable
. If there are no listeners present for this
Dockable
, then a zero-length array is returned.getDockingListeners
in interface DockingMonitor
DockingListeners
added to this
Dockable
.addDockingListener(DockingListener)
,
removeDockingListener(DockingListener)
public void removeDockingListener(DockingListener listener)
DockingListener
from this Dockable
.
If the specified DockingListener
is null
, or the
listener has not previously been added to this Dockable
, then no
Exception
is thrown and no action is taken.removeDockingListener
in interface DockingMonitor
listener
- the DockingListener
to remove from this
Dockable
addDockingListener(DockingListener)
,
getDockingListeners()
public void dockingCanceled(DockingEvent evt)
DockingListener
interface contract.dockingCanceled
in interface DockingListener
evt
- the DockingEvent
to respond to.DockingListener.dockingCanceled(DockingEvent)
public void dockingComplete(DockingEvent evt)
DockingListener
interface contract.dockingComplete
in interface DockingListener
evt
- the DockingEvent
to respond to.DockingListener.dockingComplete(DockingEvent)
public void undockingComplete(DockingEvent evt)
DockingListener
interface contract.undockingComplete
in interface DockingListener
evt
- the DockingEvent
to respond to.DockingListener.undockingComplete(DockingEvent)
public void undockingStarted(DockingEvent evt)
DockingListener
interface contract.undockingStarted
in interface DockingListener
evt
- the DockingEvent
to respond to.DockingListener.undockingStarted(DockingEvent)
public void dragStarted(DockingEvent evt)
DockingListener
interface contract.dragStarted
in interface DockingListener
evt
- the DockingEvent
to respond to.DockingListener.dragStarted(DockingEvent)
public void dropStarted(DockingEvent evt)
DockingListener
interface contract.dropStarted
in interface DockingListener
evt
- the DockingEvent
to respond to.DockingListener.dropStarted(DockingEvent)
public Object getClientProperty(Object key)
putClientProperty
will return a non-null
value. If key
is null
, a null
reference is
returned.
If the Component
returned by getComponent()
is an
instance of JComponent
, then this method will dispatch to that
JComponent's
getClientProperty(Object, Object)
method.
Otherwise, this DockableComponentWrapper
will provide its own
internal mapping of client properties.
getClientProperty
in interface Dockable
key
- the key that is being queriednull
Dockable.getClientProperty(Object)
,
JComponent.getClientProperty(java.lang.Object)
public void putClientProperty(Object key, Object value)
Dockable
.
null
values are allowed. If key
is null
, then no
action is taken.
If the Component
returned by getComponent()
is an
instance of JComponent
, then this method will dispatch to that
JComponent's
putClientProperty(Object, Object)
method.
Otherwise, this DockableComponentWrapper
will provide its own
internal mapping of client properties.
putClientProperty
in interface Dockable
key
- the new client property keyvalue
- the new client property value; if null
this method
will remove the propertyDockable.putClientProperty(Object, Object)
,
JComponent.putClientProperty(java.lang.Object,
java.lang.Object)
public DockablePropertySet getDockingProperties()
DockablePropertySet
instance associated with this
Dockable
. This method returns the default implementation
supplied by the framework by invoking
getDockablePropertySet(Dockable dockable)
on
org.flexdock.docking.props.PropertyManager
and supplying an
argument of this
.getDockingProperties
in interface Dockable
DockablePropertySet
associated with this
Dockable
. This method will not return a null
reference.Dockable.getDockingProperties()
,
PropertyManager.getDockablePropertySet(Dockable)
public DockingPort getDockingPort()
DockingPort
within which this Dockable
is
currently docked. If not currently docked, this method will return
null
.
This method defers processing to
getDockingPort(Dockable dockable)
, passing an argument of
this
.
getDockingPort
in interface Dockable
DockingPort
within which this Dockable
is
currently docked.Dockable.getDockingPort()
,
DockingManager.getDockingPort(Dockable)
public boolean dock(Dockable dockable)
Dockable
implementation of
dock(Dockable dockable)
by calling and returning
DockingManager.dock(Dockable dockable, Dockable parent)
.
'this'
is passed as the parent
parameter.dock
in interface Dockable
dockable
- the Dockable
to dock relative to this Dockable
true
if the docking operation was successful;
false
otherwise.Dockable.dock(Dockable)
,
DockingManager.dock(Dockable, Dockable)
public boolean dock(Dockable dockable, String relativeRegion)
Dockable
implementation of
dock(Dockable dockable, String relativeRegion)
by calling and
returning
DockingManager.dock(Dockable dockable, Dockable parent, String region)
.
'this'
is passed as the parent
parameter.dock
in interface Dockable
dockable
- the Dockable
to dock relative to this Dockable
relativeRegion
- the docking region into which to dock the specified
Dockable
true
if the docking operation was successful;
false
otherwise.Dockable.dock(Dockable, String)
,
DockingManager.dock(Dockable, Dockable, String)
public boolean dock(Dockable dockable, String relativeRegion, float ratio)
Dockable
implementation of
dock(Dockable dockable, String relativeRegion, float ratio)
by
calling and returning
DockingManager.dock(Dockable dockable, Dockable parent, String region, float proportion)
.
'this'
is passed as the parent
parameter.dock
in interface Dockable
dockable
- the Dockable
to dock relative to this Dockable
relativeRegion
- the docking region into which to dock the specified
Dockable
ratio
- the proportion of available space in the resulting layout to
allot to the new sibling Dockable
.true
if the docking operation was successful;
false
otherwise.DockingManager.dock(Dockable, Dockable, String, float)
public void addPropertyChangeListener(PropertyChangeListener listener)
Dockable
If listener is null, no exception is thrown and no action is performed.
addPropertyChangeListener
in interface Dockable
listener
- the PropertyChangeListener to be addedDockable.removePropertyChangeListener(PropertyChangeListener)
public void removePropertyChangeListener(PropertyChangeListener listener)
Dockable
If listener is null, no exception is thrown and no action is performed.
removePropertyChangeListener
in interface Dockable
listener
- the PropertyChangeListener to be removedDockable.addPropertyChangeListener(java.beans.PropertyChangeListener)