public abstract class Widget extends java.lang.Object implements Adaptable
IMPORTANT: This class is intended to be subclassed only within the SWT implementation. However, it has not been marked final to allow those outside of the SWT development team to implement patched versions of the class in order to get around specific limitations in advance of when those limitations can be addressed by the team. Any class built using subclassing to access the internals of this class will likely fail to compile or run between releases and may be strongly platform specific. Subclassing should not be attempted without an intimate and detailed understanding of the workings of the hierarchy. No support is provided for user-written classes which are implemented as subclasses of this class.
Even though this class implements Adaptable
this interface
is not part of the RWT public API. It is only meant to be shared
within the packages provided by RWT and should never be accessed from
application code.
checkSubclass()
Constructor and Description |
---|
Widget(Widget parent,
int style)
Constructs a new instance of this class given its parent
and a style value describing its behavior and appearance.
|
Modifier and Type | Method and Description |
---|---|
void |
addDisposeListener(DisposeListener listener)
Adds the listener to the collection of listeners who will
be notified when the widget is disposed.
|
void |
addListener(int eventType,
Listener listener)
Adds the listener to the collection of listeners who will be notified when
an event of the given type occurs.
|
protected void |
checkSubclass()
Checks that this class can be subclassed.
|
protected void |
checkWidget()
Throws an
SWTException if the receiver can not
be accessed by the caller. |
void |
dispose()
Disposes of the operating system resources associated with
the receiver and all its descendents.
|
<T> T |
getAdapter(java.lang.Class<T> adapter)
Implementation of the
Adaptable interface. |
java.lang.Object |
getData()
Returns the application defined widget data associated
with the receiver, or null if it has not been set.
|
java.lang.Object |
getData(java.lang.String key)
Returns the application defined property of the receiver
with the specified name, or null if it has not been set.
|
Display |
getDisplay()
Returns the
Display that is associated with
the receiver. |
Listener[] |
getListeners(int eventType)
Returns an array of listeners who will be notified when an event
of the given type occurs.
|
int |
getStyle()
Returns the receiver's style information.
|
boolean |
isDisposed()
Returns
true if the widget has been disposed,
and false otherwise. |
boolean |
isListening(int eventType)
Returns
true if there are any listeners
for the specified event type associated with the receiver,
and false otherwise. |
void |
notifyListeners(int eventType,
Event event)
Notifies all of the receiver's listeners for events
of the given type that one such event has occurred by
invoking their
handleEvent() method. |
void |
removeDisposeListener(DisposeListener listener)
Removes the listener from the collection of listeners who will
be notified when the widget is disposed.
|
void |
removeListener(int eventType,
Listener listener)
Removes the listener from the collection of listeners who will be notified
when an event of the given type occurs.
|
protected void |
removeListener(int eventType,
SWTEventListener listener)
Removes the listener from the collection of listeners who will
be notified when an event of the given type occurs.
|
void |
reskin(int flags)
Marks the widget to be skinned.
|
void |
setData(java.lang.Object data)
Sets the application defined widget data associated
with the receiver to be the argument.
|
void |
setData(java.lang.String key,
java.lang.Object value)
Sets the application defined property of the receiver
with the specified name to the given value.
|
java.lang.String |
toString()
Returns a string containing a concise, human-readable
description of the receiver.
|
public Widget(Widget parent, int style)
The style value is either one of the style constants defined in
class SWT
which is applicable to instances of this
class, or must be built by bitwise OR'ing together
(that is, using the int
"|" operator) two or more
of those SWT
style constants. The class description
lists the style constants that are applicable to the class.
Style bits are also inherited from superclasses.
parent
- a widget which will be the parent of the new instance (cannot be null)style
- the style of widget to constructjava.lang.IllegalArgumentException
- SWTException
- SWT
,
checkSubclass()
,
getStyle()
public <T> T getAdapter(java.lang.Class<T> adapter)
Adaptable
interface.
IMPORTANT: This method is not part of the RWT public API. It is marked public only so that it can be shared within the packages provided by RWT. It should never be accessed from application code.
getAdapter
in interface Adaptable
adapter
- the lookup classnull
if
there is no adapter associated with the given class.public java.lang.Object getData()
Applications may put arbitrary objects in this field. If the object stored in the widget data needs to be notified when the widget is disposed of, it is the application's responsibility to hook the Dispose event on the widget and do so.
SWTException
- setData(Object)
public void setData(java.lang.Object data)
Applications may put arbitrary objects in this field. If the object stored in the widget data needs to be notified when the widget is disposed of, it is the application's responsibility to hook the Dispose event on the widget and do so.
data
- the widget dataSWTException
- getData()
public java.lang.Object getData(java.lang.String key)
Applications may have associated arbitrary objects with the receiver in this fashion. If the objects stored in the properties need to be notified when the widget is disposed of, it is the application's responsibility to hook the Dispose event on the widget and do so.
key
- the name of the propertyjava.lang.IllegalArgumentException
- SWTException
- setData(String, Object)
public void setData(java.lang.String key, java.lang.Object value)
Applications may associate arbitrary objects with the receiver in this fashion. If the objects stored in the properties need to be notified when the widget is disposed of, it is the application's responsibility to hook the Dispose event on the widget and do so.
key
- the name of the propertyvalue
- the new value for the propertyjava.lang.IllegalArgumentException
- SWTException
- getData(String)
public Display getDisplay()
Display
that is associated with
the receiver.
A widget's display is either provided when it is created
(for example, top level Shell
s) or is the
same as its parent's display.
SWTException
- public int getStyle()
Note that the value which is returned by this method may
not match the value which was provided to the constructor
when the receiver was created. This can occur when the underlying
operating system does not support a particular combination of
requested styles. For example, if the platform widget used to
implement a particular SWT widget always has scroll bars, the
result of calling this method would always have the
SWT.H_SCROLL
and SWT.V_SCROLL
bits set.
SWTException
- public void addDisposeListener(DisposeListener listener)
widgetDisposed()
message.listener
- the listener which should be notified when the receiver is disposedjava.lang.IllegalArgumentException
- SWTException
- DisposeListener
,
removeDisposeListener(org.eclipse.swt.events.DisposeListener)
public void removeDisposeListener(DisposeListener listener)
listener
- the listener which should no longer be notified when the receiver is disposedjava.lang.IllegalArgumentException
- SWTException
- DisposeListener
,
addDisposeListener(org.eclipse.swt.events.DisposeListener)
public void addListener(int eventType, Listener listener)
handleEvent()
message. The event type is one of the event constants defined in class
SWT
.eventType
- the type of event to listen forlistener
- the listener which should be notified when the event occursjava.lang.IllegalArgumentException
- SWTException
- Listener
,
SWT
,
removeListener(int, org.eclipse.swt.widgets.Listener)
,
notifyListeners(int, org.eclipse.swt.widgets.Event)
public void removeListener(int eventType, Listener listener)
SWT
.eventType
- the type of event to listen forlistener
- the listener which should no longer be notified when the
event occursjava.lang.IllegalArgumentException
- SWTException
- Listener
,
SWT
,
addListener(int, org.eclipse.swt.widgets.Listener)
,
notifyListeners(int, org.eclipse.swt.widgets.Event)
public void notifyListeners(int eventType, Event event)
handleEvent()
method. The
event type is one of the event constants defined in class
SWT
.eventType
- the type of event which has occurredevent
- the event dataSWTException
- SWT
,
addListener(int, org.eclipse.swt.widgets.Listener)
,
getListeners(int)
,
removeListener(int, Listener)
public boolean isListening(int eventType)
true
if there are any listeners
for the specified event type associated with the receiver,
and false
otherwise. The event type is one of
the event constants defined in class SWT
.eventType
- the type of eventSWTException
- SWT
public Listener[] getListeners(int eventType)
SWT
.eventType
- the type of event to listen forSWTException
- Listener
,
SWT
,
addListener(int, Listener)
,
removeListener(int, Listener)
,
notifyListeners(int, org.eclipse.swt.widgets.Event)
protected void removeListener(int eventType, SWTEventListener listener)
IMPORTANT: This method is not part of the SWT public API. It is marked public only so that it can be shared within the packages provided by SWT. It should never be referenced from application code.
eventType
- the type of event to listen forlistener
- the listener which should no longer be notifiedjava.lang.IllegalArgumentException
- SWTException
- Listener
,
addListener(int, org.eclipse.swt.widgets.Listener)
public void reskin(int flags)
The skin event is sent to the receiver's display when appropriate (usually before the next event
is handled). Widgets are automatically marked for skinning upon creation as well as when its skin
id or class changes. The skin id and/or class can be changed by calling Display.setData(String, Object)
with the keys SWT.SKIN_ID and/or SWT.SKIN_CLASS. Once the skin event is sent to a widget, it
will not be sent again unless reskin(int)
is called on the widget or on an ancestor
while specifying the SWT.ALL
flag.
The parameter flags
may be either:
flags
- the flags specifying how to reskinSWTException
- public java.lang.String toString()
toString
in class java.lang.Object
public void dispose()
true
when sent the message isDisposed()
.
Any internal connections between the widgets in the tree will
have been removed to facilitate garbage collection.
NOTE: This method is not called recursively on the descendents
of the receiver. This means that, widget implementers can not
detect when a widget is being disposed of by re-implementing
this method, but should instead listen for the Dispose
event.
SWTException
- addDisposeListener(org.eclipse.swt.events.DisposeListener)
,
removeDisposeListener(org.eclipse.swt.events.DisposeListener)
,
checkWidget()
public boolean isDisposed()
true
if the widget has been disposed,
and false
otherwise.
This method gets the dispose state for the widget. When a widget has been disposed, it is an error to invoke any other method using the widget.
true
when the widget is disposed and false
otherwiseprotected void checkSubclass()
The SWT class library is intended to be subclassed
only at specific, controlled points (most notably,
Composite
and Canvas
when
implementing new widgets). This method enforces this
rule unless it is overridden.
IMPORTANT: By providing an implementation of this method that allows a subclass of a class which does not normally allow subclassing to be created, the implementer agrees to be fully responsible for the fact that any such subclass will likely fail between SWT releases and will be strongly platform specific. No support is provided for user-written classes which are implemented in this fashion.
The ability to subclass outside of the allowed SWT classes is intended purely to enable those not on the SWT development team to implement patches in order to get around specific limitations in advance of when those limitations can be addressed by the team. Subclassing should not be attempted without an intimate and detailed understanding of the hierarchy.
SWTException
- protected void checkWidget()
SWTException
if the receiver can not
be accessed by the caller. This may include both checks on
the state of the receiver and more generally on the entire
execution context. This method should be called by
widget implementors to enforce the standard SWT invariants.
Currently, it is an error to invoke any method (other than
isDisposed()
) on a widget that has had its
dispose()
method called. It is also an error
to call widget methods from any thread that is different
from the thread that created the widget.
In future releases of SWT, there may be more or fewer error checks and exceptions may be thrown for different reasons.
SWTException
-
Copyright (c) EclipseSource and others 2002, 2020.
All rights reserved. This program and the accompanying materials
are made available under the terms of the
Eclipse Public License v1.0