summaryrefslogtreecommitdiffstats
path: root/awt/java/awt/Component.java
diff options
context:
space:
mode:
Diffstat (limited to 'awt/java/awt/Component.java')
-rw-r--r--awt/java/awt/Component.java6020
1 files changed, 0 insertions, 6020 deletions
diff --git a/awt/java/awt/Component.java b/awt/java/awt/Component.java
deleted file mode 100644
index c52a9f4..0000000
--- a/awt/java/awt/Component.java
+++ /dev/null
@@ -1,6020 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package java.awt;
-
-//import java.awt.dnd.DropTarget;
-import java.awt.event.ComponentEvent;
-import java.awt.event.ComponentListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
-import java.awt.event.HierarchyBoundsListener;
-import java.awt.event.HierarchyEvent;
-import java.awt.event.HierarchyListener;
-import java.awt.event.InputMethodEvent;
-import java.awt.event.InputMethodListener;
-import java.awt.event.InvocationEvent;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.MouseEvent;
-import java.awt.event.MouseListener;
-import java.awt.event.MouseMotionListener;
-import java.awt.event.MouseWheelEvent;
-import java.awt.event.MouseWheelListener;
-import java.awt.event.PaintEvent;
-import java.awt.event.WindowEvent;
-import java.awt.im.InputContext;
-import java.awt.im.InputMethodRequests;
-import java.awt.image.BufferStrategy;
-import java.awt.image.BufferedImage;
-import java.awt.image.ColorModel;
-import java.awt.image.ImageObserver;
-import java.awt.image.ImageProducer;
-import java.awt.image.VolatileImage;
-import java.awt.image.WritableRaster;
-import java.awt.peer.ComponentPeer;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.io.Serializable;
-import java.lang.reflect.Array;
-import java.lang.reflect.Method;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.EventListener;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-//???AWT
-//import javax.accessibility.Accessible;
-//import javax.accessibility.AccessibleComponent;
-//import javax.accessibility.AccessibleContext;
-//import javax.accessibility.AccessibleRole;
-//import javax.accessibility.AccessibleState;
-//import javax.accessibility.AccessibleStateSet;
-
-import org.apache.harmony.awt.ClipRegion; //import org.apache.harmony.awt.FieldsAccessor;
-import org.apache.harmony.awt.gl.MultiRectArea;
-import org.apache.harmony.awt.internal.nls.Messages;
-import org.apache.harmony.awt.state.State; //import org.apache.harmony.awt.text.TextFieldKit;
-//import org.apache.harmony.awt.text.TextKit;
-import org.apache.harmony.awt.wtk.NativeWindow;
-import org.apache.harmony.luni.util.NotImplementedException;
-
-/**
- * The abstract Component class specifies an object with a graphical
- * representation that can be displayed on the screen and that can interact with
- * the user (for example: scrollbars, buttons, checkboxes).
- *
- * @since Android 1.0
- */
-public abstract class Component implements ImageObserver, MenuContainer, Serializable {
-
- /**
- * The Constant serialVersionUID.
- */
- private static final long serialVersionUID = -7644114512714619750L;
-
- /**
- * The Constant TOP_ALIGNMENT indicates the top alignment of the component.
- */
- public static final float TOP_ALIGNMENT = 0.0f;
-
- /**
- * The Constant CENTER_ALIGNMENT indicates the center alignment of the
- * component.
- */
- public static final float CENTER_ALIGNMENT = 0.5f;
-
- /**
- * The Constant BOTTOM_ALIGNMENT indicates the bottom alignment of the
- * component.
- */
- public static final float BOTTOM_ALIGNMENT = 1.0f;
-
- /**
- * The Constant LEFT_ALIGNMENT indicates the left alignment of the
- * component.
- */
- public static final float LEFT_ALIGNMENT = 0.0f;
-
- /**
- * The Constant RIGHT_ALIGNMENT indicates the right alignment of the
- * component.
- */
- public static final float RIGHT_ALIGNMENT = 1.0f;
-
- /**
- * The Constant childClassesFlags.
- */
- private static final Hashtable<Class<?>, Boolean> childClassesFlags = new Hashtable<Class<?>, Boolean>();
-
- /**
- * The Constant peer.
- */
- private static final ComponentPeer peer = new ComponentPeer() {
- };
-
- /**
- * The Constant incrementalImageUpdate.
- */
- private static final boolean incrementalImageUpdate;
-
- /**
- * The toolkit.
- */
- final transient Toolkit toolkit = Toolkit.getDefaultToolkit();
-
- // ???AWT
- /*
- * protected abstract class AccessibleAWTComponent extends AccessibleContext
- * implements Serializable, AccessibleComponent { private static final long
- * serialVersionUID = 642321655757800191L; protected class
- * AccessibleAWTComponentHandler implements ComponentListener { protected
- * AccessibleAWTComponentHandler() { } public void
- * componentHidden(ComponentEvent e) { if (behaviour.isLightweight()) {
- * return; } firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
- * AccessibleState.VISIBLE, null); } public void
- * componentMoved(ComponentEvent e) { } public void
- * componentResized(ComponentEvent e) { } public void
- * componentShown(ComponentEvent e) { if (behaviour.isLightweight()) {
- * return; } firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
- * null, AccessibleState.VISIBLE); } } protected class
- * AccessibleAWTFocusHandler implements FocusListener { public void
- * focusGained(FocusEvent e) { if (behaviour.isLightweight()) { return; }
- * firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY, null,
- * AccessibleState.FOCUSED); } public void focusLost(FocusEvent e) { if
- * (behaviour.isLightweight()) { return; }
- * firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
- * AccessibleState.FOCUSED, null); } } protected ComponentListener
- * accessibleAWTComponentHandler; protected FocusListener
- * accessibleAWTFocusHandler;
- */
- /*
- * Number of registered property change listeners.
- */
- /*
- * int listenersCount; public void addFocusListener(FocusListener l) {
- * Component.this.addFocusListener(l); }
- * @Override public void addPropertyChangeListener(PropertyChangeListener
- * listener) { toolkit.lockAWT(); try {
- * super.addPropertyChangeListener(listener); listenersCount++; if
- * (accessibleAWTComponentHandler == null) { accessibleAWTComponentHandler =
- * new AccessibleAWTComponentHandler();
- * Component.this.addComponentListener(accessibleAWTComponentHandler); } if
- * (accessibleAWTFocusHandler == null) { accessibleAWTFocusHandler = new
- * AccessibleAWTFocusHandler();
- * Component.this.addFocusListener(accessibleAWTFocusHandler); } } finally {
- * toolkit.unlockAWT(); } } public boolean contains(Point p) {
- * toolkit.lockAWT(); try { return Component.this.contains(p); } finally {
- * toolkit.unlockAWT(); } } public Accessible getAccessibleAt(Point arg0) {
- * toolkit.lockAWT(); try { return null; } finally { toolkit.unlockAWT(); }
- * } public Color getBackground() { toolkit.lockAWT(); try { return
- * Component.this.getBackground(); } finally { toolkit.unlockAWT(); } }
- * public Rectangle getBounds() { toolkit.lockAWT(); try { return
- * Component.this.getBounds(); } finally { toolkit.unlockAWT(); } } public
- * Cursor getCursor() { toolkit.lockAWT(); try { return
- * Component.this.getCursor(); } finally { toolkit.unlockAWT(); } } public
- * Font getFont() { toolkit.lockAWT(); try { return
- * Component.this.getFont(); } finally { toolkit.unlockAWT(); } } public
- * FontMetrics getFontMetrics(Font f) { toolkit.lockAWT(); try { return
- * Component.this.getFontMetrics(f); } finally { toolkit.unlockAWT(); } }
- * public Color getForeground() { toolkit.lockAWT(); try { return
- * Component.this.getForeground(); } finally { toolkit.unlockAWT(); } }
- * public Point getLocation() { toolkit.lockAWT(); try { return
- * Component.this.getLocation(); } finally { toolkit.unlockAWT(); } } public
- * Point getLocationOnScreen() { toolkit.lockAWT(); try { return
- * Component.this.getLocationOnScreen(); } finally { toolkit.unlockAWT(); }
- * } public Dimension getSize() { toolkit.lockAWT(); try { return
- * Component.this.getSize(); } finally { toolkit.unlockAWT(); } } public
- * boolean isEnabled() { toolkit.lockAWT(); try { return
- * Component.this.isEnabled(); } finally { toolkit.unlockAWT(); } } public
- * boolean isFocusTraversable() { toolkit.lockAWT(); try { return
- * Component.this.isFocusTraversable(); } finally { toolkit.unlockAWT(); } }
- * public boolean isShowing() { toolkit.lockAWT(); try { return
- * Component.this.isShowing(); } finally { toolkit.unlockAWT(); } } public
- * boolean isVisible() { toolkit.lockAWT(); try { return
- * Component.this.isVisible(); } finally { toolkit.unlockAWT(); } } public
- * void removeFocusListener(FocusListener l) {
- * Component.this.removeFocusListener(l); }
- * @Override public void removePropertyChangeListener(PropertyChangeListener
- * listener) { toolkit.lockAWT(); try {
- * super.removePropertyChangeListener(listener); listenersCount--; if
- * (listenersCount > 0) { return; } // if there are no more listeners,
- * remove handlers:
- * Component.this.removeFocusListener(accessibleAWTFocusHandler);
- * Component.this.removeComponentListener(accessibleAWTComponentHandler);
- * accessibleAWTComponentHandler = null; accessibleAWTFocusHandler = null; }
- * finally { toolkit.unlockAWT(); } } public void requestFocus() {
- * toolkit.lockAWT(); try { Component.this.requestFocus(); } finally {
- * toolkit.unlockAWT(); } } public void setBackground(Color color) {
- * toolkit.lockAWT(); try { Component.this.setBackground(color); } finally {
- * toolkit.unlockAWT(); } } public void setBounds(Rectangle r) {
- * toolkit.lockAWT(); try { Component.this.setBounds(r); } finally {
- * toolkit.unlockAWT(); } } public void setCursor(Cursor cursor) {
- * toolkit.lockAWT(); try { Component.this.setCursor(cursor); } finally {
- * toolkit.unlockAWT(); } } public void setEnabled(boolean enabled) {
- * toolkit.lockAWT(); try { Component.this.setEnabled(enabled); } finally {
- * toolkit.unlockAWT(); } } public void setFont(Font f) { toolkit.lockAWT();
- * try { Component.this.setFont(f); } finally { toolkit.unlockAWT(); } }
- * public void setForeground(Color color) { toolkit.lockAWT(); try {
- * Component.this.setForeground(color); } finally { toolkit.unlockAWT(); } }
- * public void setLocation(Point p) { toolkit.lockAWT(); try {
- * Component.this.setLocation(p); } finally { toolkit.unlockAWT(); } }
- * public void setSize(Dimension size) { toolkit.lockAWT(); try {
- * Component.this.setSize(size); } finally { toolkit.unlockAWT(); } } public
- * void setVisible(boolean visible) { toolkit.lockAWT(); try {
- * Component.this.setVisible(visible); } finally { toolkit.unlockAWT(); } }
- * @Override public Accessible getAccessibleParent() { toolkit.lockAWT();
- * try { Accessible aParent = super.getAccessibleParent(); if (aParent !=
- * null) { return aParent; } Container parent = getParent(); return (parent
- * instanceof Accessible ? (Accessible) parent : null); } finally {
- * toolkit.unlockAWT(); } }
- * @Override public Accessible getAccessibleChild(int i) {
- * toolkit.lockAWT(); try { return null; } finally { toolkit.unlockAWT(); }
- * }
- * @Override public int getAccessibleChildrenCount() { toolkit.lockAWT();
- * try { return 0; } finally { toolkit.unlockAWT(); } }
- * @Override public AccessibleComponent getAccessibleComponent() { return
- * this; }
- * @Override public String getAccessibleDescription() { return
- * super.getAccessibleDescription(); // why override? }
- * @Override public int getAccessibleIndexInParent() { toolkit.lockAWT();
- * try { if (getAccessibleParent() == null) { return -1; } int count = 0;
- * Container parent = getParent(); for (int i = 0; i <
- * parent.getComponentCount(); i++) { Component aComp =
- * parent.getComponent(i); if (aComp instanceof Accessible) { if (aComp ==
- * Component.this) { return count; } ++count; } } return -1; } finally {
- * toolkit.unlockAWT(); } }
- * @Override public AccessibleRole getAccessibleRole() { toolkit.lockAWT();
- * try { return AccessibleRole.AWT_COMPONENT; } finally {
- * toolkit.unlockAWT(); } }
- * @Override public AccessibleStateSet getAccessibleStateSet() {
- * toolkit.lockAWT(); try { AccessibleStateSet set = new
- * AccessibleStateSet(); if (isEnabled()) {
- * set.add(AccessibleState.ENABLED); } if (isFocusable()) {
- * set.add(AccessibleState.FOCUSABLE); } if (hasFocus()) {
- * set.add(AccessibleState.FOCUSED); } if (isOpaque()) {
- * set.add(AccessibleState.OPAQUE); } if (isShowing()) {
- * set.add(AccessibleState.SHOWING); } if (isVisible()) {
- * set.add(AccessibleState.VISIBLE); } return set; } finally {
- * toolkit.unlockAWT(); } }
- * @Override public Locale getLocale() throws IllegalComponentStateException
- * { toolkit.lockAWT(); try { return Component.this.getLocale(); } finally {
- * toolkit.unlockAWT(); } } }
- */
- /**
- * The BltBufferStrategy class provides opportunity of blitting offscreen
- * surfaces to a component. For more information on blitting, see <a
- * href="http://en.wikipedia.org/wiki/Bit_blit">Bit blit</a>.
- *
- * @since Android 1.0
- */
- protected class BltBufferStrategy extends BufferStrategy {
-
- /**
- * The back buffers.
- */
- protected VolatileImage[] backBuffers;
-
- /**
- * The caps.
- */
- protected BufferCapabilities caps;
-
- /**
- * The width.
- */
- protected int width;
-
- /**
- * The height.
- */
- protected int height;
-
- /**
- * The validated contents.
- */
- protected boolean validatedContents;
-
- /**
- * Instantiates a new BltBufferStrategy buffer strategy.
- *
- * @param numBuffers
- * the number of buffers.
- * @param caps
- * the BufferCapabilities.
- * @throws NotImplementedException
- * the not implemented exception.
- */
- protected BltBufferStrategy(int numBuffers, BufferCapabilities caps)
- throws org.apache.harmony.luni.util.NotImplementedException {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- }
-
- /**
- * Returns true if the drawing buffer has been lost since the last call
- * to getDrawGraphics.
- *
- * @return true if the drawing buffer has been lost since the last call
- * to getDrawGraphics, false otherwise.
- * @see java.awt.image.BufferStrategy#contentsLost()
- */
- @Override
- public boolean contentsLost() {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- return false;
- }
-
- /**
- * Returns true if the drawing buffer has been restored from a lost
- * state and reinitialized to the default background color.
- *
- * @return true if the drawing buffer has been restored from a lost
- * state and reinitialized to the default background color,
- * false otherwise.
- * @see java.awt.image.BufferStrategy#contentsRestored()
- */
- @Override
- public boolean contentsRestored() {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- return false;
- }
-
- /**
- * Creates the back buffers.
- *
- * @param numBuffers
- * the number of buffers.
- */
- protected void createBackBuffers(int numBuffers) {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- }
-
- /**
- * Returns the BufferCapabilities of the buffer strategy.
- *
- * @return the BufferCapabilities.
- * @see java.awt.image.BufferStrategy#getCapabilities()
- */
- @Override
- public BufferCapabilities getCapabilities() {
- return (BufferCapabilities)caps.clone();
- }
-
- /**
- * Gets Graphics of current buffer strategy.
- *
- * @return the Graphics of current buffer strategy.
- * @see java.awt.image.BufferStrategy#getDrawGraphics()
- */
- @Override
- public Graphics getDrawGraphics() {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- return null;
- }
-
- /**
- * Revalidates the lost drawing buffer.
- */
- protected void revalidate() {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- }
-
- /**
- * Shows the next available buffer.
- *
- * @see java.awt.image.BufferStrategy#show()
- */
- @Override
- public void show() {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * The FlipBufferStrategy class is for flipping buffers on a component.
- *
- * @since Android 1.0
- */
- protected class FlipBufferStrategy extends BufferStrategy {
-
- /**
- * The Buffer Capabilities.
- */
- protected BufferCapabilities caps;
-
- /**
- * The drawing buffer.
- */
- protected Image drawBuffer;
-
- /**
- * The drawing VolatileImage buffer.
- */
- protected VolatileImage drawVBuffer;
-
- /**
- * The number of buffers.
- */
- protected int numBuffers;
-
- /**
- * The validated contents indicates if the drawing buffer is restored
- * from lost state.
- */
- protected boolean validatedContents;
-
- /**
- * Instantiates a new flip buffer strategy.
- *
- * @param numBuffers
- * the number of buffers.
- * @param caps
- * the BufferCapabilities.
- * @throws AWTException
- * if the capabilities supplied could not be supported or
- * met.
- */
- protected FlipBufferStrategy(int numBuffers, BufferCapabilities caps) throws AWTException {
- // ???AWT
- /*
- * if (!(Component.this instanceof Window) && !(Component.this
- * instanceof Canvas)) { // awt.14B=Only Canvas or Window is allowed
- * throw new ClassCastException(Messages.getString("awt.14B"));
- * //$NON-NLS-1$ }
- */
- // TODO: throw new AWTException("Capabilities are not supported");
- this.numBuffers = numBuffers;
- this.caps = (BufferCapabilities)caps.clone();
- }
-
- /**
- * Returns true if the drawing buffer has been lost since the last call
- * to getDrawGraphics.
- *
- * @return true if the drawing buffer has been lost since the last call
- * to getDrawGraphics, false otherwise.
- * @see java.awt.image.BufferStrategy#contentsLost()
- */
- @Override
- public boolean contentsLost() {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- return false;
- }
-
- /**
- * Returns true if the drawing buffer has been restored from a lost
- * state and reinitialized to the default background color.
- *
- * @return true if the drawing buffer has been restored from a lost
- * state and reinitialized to the default background color,
- * false otherwise.
- * @see java.awt.image.BufferStrategy#contentsRestored()
- */
- @Override
- public boolean contentsRestored() {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- return false;
- }
-
- /**
- * Creates flipping buffers with the specified buffer capabilities.
- *
- * @param numBuffers
- * the number of buffers.
- * @param caps
- * the BufferCapabilities.
- * @throws AWTException
- * if the capabilities could not be supported or met.
- */
- protected void createBuffers(int numBuffers, BufferCapabilities caps) throws AWTException {
- if (numBuffers < 2) {
- // awt.14C=Number of buffers must be greater than one
- throw new IllegalArgumentException(Messages.getString("awt.14C")); //$NON-NLS-1$
- }
- if (!caps.isPageFlipping()) {
- // awt.14D=Buffer capabilities should support flipping
- throw new IllegalArgumentException(Messages.getString("awt.14D")); //$NON-NLS-1$
- }
- if (!Component.this.behaviour.isDisplayable()) {
- // awt.14E=Component should be displayable
- throw new IllegalStateException(Messages.getString("awt.14E")); //$NON-NLS-1$
- }
- // TODO: throw new AWTException("Capabilities are not supported");
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- }
-
- /**
- * Destroy buffers.
- */
- protected void destroyBuffers() {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- }
-
- /**
- * Flips the contents of the back buffer to the front buffer.
- *
- * @param flipAction
- * the flip action.
- */
- protected void flip(BufferCapabilities.FlipContents flipAction) {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- }
-
- /**
- * Gets the back buffer as Image.
- *
- * @return the back buffer as Image.
- */
- protected Image getBackBuffer() {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- return null;
- }
-
- /**
- * Returns the BufferCapabilities of the buffer strategy.
- *
- * @return the BufferCapabilities.
- * @see java.awt.image.BufferStrategy#getCapabilities()
- */
- @Override
- public BufferCapabilities getCapabilities() {
- return (BufferCapabilities)caps.clone();
- }
-
- /**
- * Gets Graphics of current buffer strategy.
- *
- * @return the Graphics of current buffer strategy.
- * @see java.awt.image.BufferStrategy#getDrawGraphics()
- */
- @Override
- public Graphics getDrawGraphics() {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- return null;
- }
-
- /**
- * Revalidates the lost drawing buffer.
- */
- protected void revalidate() {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- }
-
- /**
- * Shows the next available buffer.
- *
- * @see java.awt.image.BufferStrategy#show()
- */
- @Override
- public void show() {
- if (true) {
- throw new RuntimeException("Method is not implemented"); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * The internal component's state utilized by the visual theme.
- */
- class ComponentState implements State {
-
- /**
- * The default minimum size.
- */
- private Dimension defaultMinimumSize = new Dimension();
-
- /**
- * Checks if the component is enabled.
- *
- * @return true, if the component is enabled.
- */
- public boolean isEnabled() {
- return enabled;
- }
-
- /**
- * Checks if the component is visible.
- *
- * @return true, if the component is visible.
- */
- public boolean isVisible() {
- return visible;
- }
-
- /**
- * Checks if is focused.
- *
- * @return true, if is focused.
- */
- public boolean isFocused() {
- // ???AWT: return isFocusOwner();
- return false;
- }
-
- /**
- * Gets the font.
- *
- * @return the font.
- */
- public Font getFont() {
- return Component.this.getFont();
- }
-
- /**
- * Checks if the font has been set.
- *
- * @return true, if the font has been set.
- */
- public boolean isFontSet() {
- return font != null;
- }
-
- /**
- * Gets the background color.
- *
- * @return the background color.
- */
- public Color getBackground() {
- Color c = Component.this.getBackground();
- return (c != null) ? c : getDefaultBackground();
- }
-
- /**
- * Checks if the background is set.
- *
- * @return true, if the background is set.
- */
- public boolean isBackgroundSet() {
- return backColor != null;
- }
-
- /**
- * Gets the text color.
- *
- * @return the text color.
- */
- public Color getTextColor() {
- Color c = getForeground();
- return (c != null) ? c : getDefaultForeground();
- }
-
- /**
- * Checks if the text color is set.
- *
- * @return true, if the text color is set.
- */
- public boolean isTextColorSet() {
- return foreColor != null;
- }
-
- /**
- * Gets the font metrics.
- *
- * @return the font metrics.
- */
- @SuppressWarnings("deprecation")
- public FontMetrics getFontMetrics() {
- return toolkit.getFontMetrics(Component.this.getFont());
- }
-
- /**
- * Gets the bounding rectangle.
- *
- * @return the bounding rectangle.
- */
- public Rectangle getBounds() {
- return new Rectangle(x, y, w, h);
- }
-
- /**
- * Gets the size of the bounding rectangle.
- *
- * @return the size of the bounding rectangle.
- */
- public Dimension getSize() {
- return new Dimension(w, h);
- }
-
- /**
- * Gets the window id.
- *
- * @return the window id.
- */
- public long getWindowId() {
- NativeWindow win = getNativeWindow();
- return (win != null) ? win.getId() : 0;
- }
-
- /**
- * Gets the default minimum size.
- *
- * @return the default minimum size.
- */
- public Dimension getDefaultMinimumSize() {
- if (defaultMinimumSize == null) {
- calculate();
- }
- return defaultMinimumSize;
- }
-
- /**
- * Sets the default minimum size.
- *
- * @param size
- * the new default minimum size.
- */
- public void setDefaultMinimumSize(Dimension size) {
- defaultMinimumSize = size;
- }
-
- /**
- * Reset the default minimum size to null.
- */
- public void reset() {
- defaultMinimumSize = null;
- }
-
- /**
- * Calculate the default minimum size: to be overridden.
- */
- public void calculate() {
- // to be overridden
- }
- }
-
- // ???AWT: private transient AccessibleContext accessibleContext;
-
- /**
- * The behaviour.
- */
- final transient ComponentBehavior behaviour;
-
- // ???AWT: Container parent;
-
- /**
- * The name.
- */
- private String name;
-
- /**
- * The auto name.
- */
- private boolean autoName = true;
-
- /**
- * The font.
- */
- private Font font;
-
- /**
- * The back color.
- */
- private Color backColor;
-
- /**
- * The fore color.
- */
- private Color foreColor;
-
- /**
- * The deprecated event handler.
- */
- boolean deprecatedEventHandler = true;
-
- /**
- * The enabled events.
- */
- private long enabledEvents;
-
- /**
- * The enabled AWT events.
- */
- private long enabledAWTEvents;
-
- /**
- * The component listeners.
- */
- private final AWTListenerList<ComponentListener> componentListeners = new AWTListenerList<ComponentListener>(
- this);
-
- /**
- * The focus listeners.
- */
- private final AWTListenerList<FocusListener> focusListeners = new AWTListenerList<FocusListener>(
- this);
-
- /**
- * The hierarchy listeners.
- */
- private final AWTListenerList<HierarchyListener> hierarchyListeners = new AWTListenerList<HierarchyListener>(
- this);
-
- /**
- * The hierarchy bounds listeners.
- */
- private final AWTListenerList<HierarchyBoundsListener> hierarchyBoundsListeners = new AWTListenerList<HierarchyBoundsListener>(
- this);
-
- /**
- * The key listeners.
- */
- private final AWTListenerList<KeyListener> keyListeners = new AWTListenerList<KeyListener>(this);
-
- /**
- * The mouse listeners.
- */
- private final AWTListenerList<MouseListener> mouseListeners = new AWTListenerList<MouseListener>(
- this);
-
- /**
- * The mouse motion listeners.
- */
- private final AWTListenerList<MouseMotionListener> mouseMotionListeners = new AWTListenerList<MouseMotionListener>(
- this);
-
- /**
- * The mouse wheel listeners.
- */
- private final AWTListenerList<MouseWheelListener> mouseWheelListeners = new AWTListenerList<MouseWheelListener>(
- this);
-
- /**
- * The input method listeners.
- */
- private final AWTListenerList<InputMethodListener> inputMethodListeners = new AWTListenerList<InputMethodListener>(
- this);
-
- /**
- * The x.
- */
- int x;
-
- /**
- * The y.
- */
- int y;
-
- /**
- * The w.
- */
- int w;
-
- /**
- * The h.
- */
- int h;
-
- /**
- * The maximum size.
- */
- private Dimension maximumSize;
-
- /**
- * The minimum size.
- */
- private Dimension minimumSize;
-
- /**
- * The preferred size.
- */
- private Dimension preferredSize;
-
- /**
- * The bounds mask param.
- */
- private int boundsMaskParam;
-
- /**
- * The ignore repaint.
- */
- private boolean ignoreRepaint;
-
- /**
- * The enabled.
- */
- private boolean enabled = true;
-
- /**
- * The input methods enabled.
- */
- private boolean inputMethodsEnabled = true;
-
- /**
- * The dispatch to im.
- */
- transient boolean dispatchToIM = true;
-
- /**
- * The focusable.
- */
- private boolean focusable = true; // By default, all Components return
-
- // true from isFocusable() method
- /**
- * The visible.
- */
- boolean visible = true;
-
- /**
- * The called set focusable.
- */
- private boolean calledSetFocusable;
-
- /**
- * The overridden is focusable.
- */
- private boolean overridenIsFocusable = true;
-
- /**
- * The focus traversal keys enabled.
- */
- private boolean focusTraversalKeysEnabled = true;
-
- /**
- * Possible keys are: FORWARD_TRAVERSAL_KEYS, BACKWARD_TRAVERSAL_KEYS,
- * UP_CYCLE_TRAVERSAL_KEYS.
- */
- private final Map<Integer, Set<? extends AWTKeyStroke>> traversalKeys = new HashMap<Integer, Set<? extends AWTKeyStroke>>();
-
- /**
- * The traversal i ds.
- */
- int[] traversalIDs;
-
- /**
- * The locale.
- */
- private Locale locale;
-
- /**
- * The orientation.
- */
- private ComponentOrientation orientation;
-
- /**
- * The property change support.
- */
- private PropertyChangeSupport propertyChangeSupport;
-
- // ???AWT: private ArrayList<PopupMenu> popups;
-
- /**
- * The coalescer.
- */
- private boolean coalescer;
-
- /**
- * The events table.
- */
- private Hashtable<Integer, LinkedList<AWTEvent>> eventsTable;
-
- /**
- * Cashed reference used during EventQueue.postEvent()
- */
- private LinkedList<AWTEvent> eventsList;
-
- /**
- * The hierarchy changing counter.
- */
- private int hierarchyChangingCounter;
-
- /**
- * The was showing.
- */
- private boolean wasShowing;
-
- /**
- * The was displayable.
- */
- private boolean wasDisplayable;
-
- /**
- * The cursor.
- */
- Cursor cursor;
-
- // ???AWT: DropTarget dropTarget;
-
- /**
- * The mouse exited expected.
- */
- private boolean mouseExitedExpected;
-
- /**
- * The repaint region.
- */
- transient MultiRectArea repaintRegion;
-
- // ???AWT: transient RedrawManager redrawManager;
- /**
- * The redraw manager.
- */
- transient Object redrawManager;
-
- /**
- * The valid.
- */
- private boolean valid;
-
- /**
- * The updated images.
- */
- private HashMap<Image, ImageParameters> updatedImages;
-
- /**
- * The lock object for private component's data which don't affect the
- * component hierarchy.
- */
- private class ComponentLock {
- }
-
- /**
- * The component lock.
- */
- private final transient Object componentLock = new ComponentLock();
- static {
- PrivilegedAction<String[]> action = new PrivilegedAction<String[]>() {
- public String[] run() {
- String properties[] = new String[2];
- properties[0] = System.getProperty("awt.image.redrawrate", "100"); //$NON-NLS-1$ //$NON-NLS-2$
- properties[1] = System.getProperty("awt.image.incrementaldraw", "true"); //$NON-NLS-1$ //$NON-NLS-2$
- return properties;
- }
- };
- String properties[] = AccessController.doPrivileged(action);
- // FIXME: rate is never used, can this code and the get property above
- // be removed?
- // int rate;
- //
- // try {
- // rate = Integer.decode(properties[0]).intValue();
- // } catch (NumberFormatException e) {
- // rate = 100;
- // }
- incrementalImageUpdate = properties[1].equals("true"); //$NON-NLS-1$
- }
-
- /**
- * Instantiates a new component.
- */
- protected Component() {
- toolkit.lockAWT();
- try {
- orientation = ComponentOrientation.UNKNOWN;
- redrawManager = null;
- // ???AWT
- /*
- * traversalIDs = this instanceof Container ?
- * KeyboardFocusManager.contTraversalIDs :
- * KeyboardFocusManager.compTraversalIDs; for (int element :
- * traversalIDs) { traversalKeys.put(new Integer(element), null); }
- * behaviour = createBehavior();
- */
- behaviour = null;
-
- deriveCoalescerFlag();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Determine that the class inherited from Component declares the method
- * coalesceEvents(), and put the results to the childClassesFlags map.
- */
- private void deriveCoalescerFlag() {
- Class<?> thisClass = getClass();
- boolean flag = true;
- synchronized (childClassesFlags) {
- Boolean flagWrapper = childClassesFlags.get(thisClass);
- if (flagWrapper == null) {
- Method coalesceMethod = null;
- for (Class<?> c = thisClass; c != Component.class; c = c.getSuperclass()) {
- try {
- coalesceMethod = c.getDeclaredMethod("coalesceEvents", new Class[] { //$NON-NLS-1$
- Class.forName("java.awt.AWTEvent"), //$NON-NLS-1$
- Class.forName("java.awt.AWTEvent")}); //$NON-NLS-1$
- } catch (Exception e) {
- }
- if (coalesceMethod != null) {
- break;
- }
- }
- flag = (coalesceMethod != null);
- childClassesFlags.put(thisClass, Boolean.valueOf(flag));
- } else {
- flag = flagWrapper.booleanValue();
- }
- }
- coalescer = flag;
- if (flag) {
- eventsTable = new Hashtable<Integer, LinkedList<AWTEvent>>();
- } else {
- eventsTable = null;
- }
- }
-
- /**
- * Sets the name of the Component.
- *
- * @param name
- * the new name of the Component.
- */
- public void setName(String name) {
- String oldName;
- toolkit.lockAWT();
- try {
- autoName = false;
- oldName = this.name;
- this.name = name;
- } finally {
- toolkit.unlockAWT();
- }
- firePropertyChange("name", oldName, name); //$NON-NLS-1$
- }
-
- /**
- * Gets the name of this Component.
- *
- * @return the name of this Component.
- */
- public String getName() {
- toolkit.lockAWT();
- try {
- if ((name == null) && autoName) {
- name = autoName();
- }
- return name;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Auto name.
- *
- * @return the string.
- */
- String autoName() {
- String name = getClass().getName();
- if (name.indexOf("$") != -1) { //$NON-NLS-1$
- return null;
- }
- // ???AWT
- // int number = toolkit.autoNumber.nextComponent++;
- int number = 0;
- name = name.substring(name.lastIndexOf(".") + 1) + Integer.toString(number); //$NON-NLS-1$
- return name;
- }
-
- /**
- * Returns the string representation of the Component.
- *
- * @return the string representation of the Component.
- */
- @Override
- public String toString() {
- /*
- * The format is based on 1.5 release behavior which can be revealed by
- * the following code: Component c = new Component(){};
- * c.setVisible(false); System.out.println(c);
- */
- toolkit.lockAWT();
- try {
- return getClass().getName() + "[" + paramString() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- // ???AWT
- /*
- * public void add(PopupMenu popup) { toolkit.lockAWT(); try { if
- * (popup.getParent() == this) { return; } if (popups == null) { popups =
- * new ArrayList<PopupMenu>(); } popup.setParent(this); popups.add(popup); }
- * finally { toolkit.unlockAWT(); } }
- */
-
- /**
- * Returns true, if the component contains the specified Point.
- *
- * @param p
- * the Point.
- * @return true, if the component contains the specified Point, false
- * otherwise.
- */
- public boolean contains(Point p) {
- toolkit.lockAWT();
- try {
- return contains(p.x, p.y);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Returns true, if the component contains the point with the specified
- * coordinates.
- *
- * @param x
- * the x coordinate.
- * @param y
- * the y coordinate.
- * @return true, if the component contains the point with the specified
- * coordinates, false otherwise.
- */
- public boolean contains(int x, int y) {
- toolkit.lockAWT();
- try {
- return inside(x, y);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Deprecated: replaced by replaced by getSize() method.
- *
- * @return the dimension.
- * @deprecated Replaced by getSize() method.
- */
- @Deprecated
- public Dimension size() {
- toolkit.lockAWT();
- try {
- return new Dimension(w, h);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- // ???AWT
- /*
- * public Container getParent() { toolkit.lockAWT(); try { return parent; }
- * finally { toolkit.unlockAWT(); } }
- */
-
- /**
- * List.
- *
- * @param out
- * the out.
- * @param indent
- * the indent
- * @return the nearest heavyweight ancestor in hierarchy or
- * <code>null</code> if not found.
- */
- // ???AWT
- /*
- * Component getHWAncestor() { return (parent != null ?
- * parent.getHWSurface() : null); }
- */
-
- /**
- * @return heavyweight component that is equal to or is a nearest
- * heavyweight container of the current component, or
- * <code>null</code> if not found.
- */
- // ???AWT
- /*
- * Component getHWSurface() { Component parent; for (parent = this; (parent
- * != null) && (parent.isLightweight()); parent = parent .getParent()) { ; }
- * return parent; } Window getWindowAncestor() { Component par; for (par =
- * this; par != null && !(par instanceof Window); par = par.getParent()) { ;
- * } return (Window) par; }
- */
-
- /**
- * To be called by container
- */
- // ???AWT
- /*
- * void setParent(Container parent) { this.parent = parent;
- * setRedrawManager(); } void setRedrawManager() { redrawManager =
- * getRedrawManager(); } public void remove(MenuComponent menu) {
- * toolkit.lockAWT(); try { if (menu.getParent() == this) {
- * menu.setParent(null); popups.remove(menu); } } finally {
- * toolkit.unlockAWT(); } }
- */
- /**
- * Prints a list of this component with the specified number of leading
- * whitespace characters to the specified PrintStream.
- *
- * @param out
- * the output PrintStream object.
- * @param indent
- * how many leading whitespace characters to prepend.
- */
- public void list(PrintStream out, int indent) {
- toolkit.lockAWT();
- try {
- out.println(getIndentStr(indent) + this);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Prints a list of this component to the specified PrintWriter.
- *
- * @param out
- * the output PrintWriter object.
- */
- public void list(PrintWriter out) {
- toolkit.lockAWT();
- try {
- list(out, 1);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Prints a list of this component with the specified number of leading
- * whitespace characters to the specified PrintWriter.
- *
- * @param out
- * the output PrintWriter object.
- * @param indent
- * how many leading whitespace characters to prepend.
- */
- public void list(PrintWriter out, int indent) {
- toolkit.lockAWT();
- try {
- out.println(getIndentStr(indent) + this);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets a string composed of the desired number of whitespace characters.
- *
- * @param indent
- * the length of the String to return.
- * @return the string composed of the desired number of whitespace
- * characters.
- */
- String getIndentStr(int indent) {
- char[] ind = new char[indent];
- for (int i = 0; i < indent; ind[i++] = ' ') {
- ;
- }
- return new String(ind);
- }
-
- /**
- * Prints a list of this component to the specified PrintStream.
- *
- * @param out
- * the output PrintStream object.
- */
- public void list(PrintStream out) {
- toolkit.lockAWT();
- try {
- // default indent = 1
- list(out, 1);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Prints a list of this component to the standard system output stream.
- */
- public void list() {
- toolkit.lockAWT();
- try {
- list(System.out);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Prints this component.
- *
- * @param g
- * the Graphics to be used for painting.
- */
- public void print(Graphics g) {
- toolkit.lockAWT();
- try {
- paint(g);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Prints the component and all of its subcomponents.
- *
- * @param g
- * the Graphics to be used for painting.
- */
- public void printAll(Graphics g) {
- toolkit.lockAWT();
- try {
- paintAll(g);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Sets the size of the Component specified by width and height parameters.
- *
- * @param width
- * the width of the Component.
- * @param height
- * the height of the Component.
- */
- public void setSize(int width, int height) {
- toolkit.lockAWT();
- try {
- resize(width, height);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Sets the size of the Component specified by Dimension object.
- *
- * @param d
- * the new size of the Component.
- */
- public void setSize(Dimension d) {
- toolkit.lockAWT();
- try {
- resize(d);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Deprecated: replaced by setSize(int, int) method.
- *
- * @param width
- * the width.
- * @param height
- * the height.
- * @deprecated Replaced by setSize(int, int) method.
- */
- @Deprecated
- public void resize(int width, int height) {
- toolkit.lockAWT();
- try {
- boundsMaskParam = NativeWindow.BOUNDS_NOMOVE;
- setBounds(x, y, width, height);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Deprecated: replaced by setSize(int, int) method.
- *
- * @param size
- * the size.
- * @deprecated Replaced by setSize(int, int) method.
- */
- @Deprecated
- public void resize(Dimension size) {
- toolkit.lockAWT();
- try {
- setSize(size.width, size.height);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks whether or not this component is completely opaque.
- *
- * @return true, if this component is completely opaque, false by default.
- */
- public boolean isOpaque() {
- toolkit.lockAWT();
- try {
- return behaviour.isOpaque();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Disables.
- *
- * @deprecated Replaced by setEnabled(boolean) method.
- */
- @Deprecated
- public void disable() {
- toolkit.lockAWT();
- try {
- setEnabledImpl(false);
- } finally {
- toolkit.unlockAWT();
- }
- // ???AWT: fireAccessibleStateChange(AccessibleState.ENABLED, false);
- }
-
- /**
- * Enables this component.
- *
- * @deprecated Replaced by setEnabled(boolean) method.
- */
- @Deprecated
- public void enable() {
- toolkit.lockAWT();
- try {
- setEnabledImpl(true);
- } finally {
- toolkit.unlockAWT();
- }
- // ???AWT: fireAccessibleStateChange(AccessibleState.ENABLED, true);
- }
-
- /**
- * Enables or disable this component.
- *
- * @param b
- * the boolean parameter.
- * @deprecated Replaced by setEnabled(boolean) method.
- */
- @Deprecated
- public void enable(boolean b) {
- toolkit.lockAWT();
- try {
- if (b) {
- enable();
- } else {
- disable();
- }
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Stores the location of this component to the specified Point object;
- * returns the point of the component's top-left corner.
- *
- * @param rv
- * the Point object where the component's top-left corner
- * position will be stored.
- * @return the Point which specifies the component's top-left corner.
- */
- public Point getLocation(Point rv) {
- toolkit.lockAWT();
- try {
- if (rv == null) {
- rv = new Point();
- }
- rv.setLocation(getX(), getY());
- return rv;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the location of this component on the form; returns the point of the
- * component's top-left corner.
- *
- * @return the Point which specifies the component's top-left corner.
- */
- public Point getLocation() {
- toolkit.lockAWT();
- try {
- return location();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the size of this Component.
- *
- * @return the size of this Component.
- */
- public Dimension getSize() {
- toolkit.lockAWT();
- try {
- return size();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Stores the size of this Component to the specified Dimension object.
- *
- * @param rv
- * the Dimension object where the size of the Component will be
- * stored.
- * @return the Dimension of this Component.
- */
- public Dimension getSize(Dimension rv) {
- toolkit.lockAWT();
- try {
- if (rv == null) {
- rv = new Dimension();
- }
- rv.setSize(getWidth(), getHeight());
- return rv;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks whether or not this Component is valid. A component is valid if it
- * is correctly sized and positioned within its parent container and all its
- * children are also valid.
- *
- * @return true, if the Component is valid, false otherwise.
- */
- public boolean isValid() {
- toolkit.lockAWT();
- try {
- return valid && behaviour.isDisplayable();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Deprecated: replaced by getComponentAt(int, int) method.
- *
- * @return the Point.
- * @deprecated Replaced by getComponentAt(int, int) method.
- */
- @Deprecated
- public Point location() {
- toolkit.lockAWT();
- try {
- return new Point(x, y);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Connects this Component to a native screen resource and makes it
- * displayable. This method not be called directly by user applications.
- */
- public void addNotify() {
- toolkit.lockAWT();
- try {
- prepare4HierarchyChange();
- behaviour.addNotify();
- // ???AWT
- // finishHierarchyChange(this, parent, 0);
- // if (dropTarget != null) {
- // dropTarget.addNotify(peer);
- // }
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Map to display.
- *
- * @param b
- * the b.
- */
- void mapToDisplay(boolean b) {
- // ???AWT
- /*
- * if (b && !isDisplayable()) { if ((this instanceof Window) || ((parent
- * != null) && parent.isDisplayable())) { addNotify(); } } else if (!b
- * && isDisplayable()) { removeNotify(); }
- */
- }
-
- /**
- * Gets the toolkit.
- *
- * @return accessible context specific for particular component.
- */
- // ???AWT
- /*
- * AccessibleContext createAccessibleContext() { return null; } public
- * AccessibleContext getAccessibleContext() { toolkit.lockAWT(); try { if
- * (accessibleContext == null) { accessibleContext =
- * createAccessibleContext(); } return accessibleContext; } finally {
- * toolkit.unlockAWT(); } }
- */
-
- /**
- * Gets Toolkit for the current Component.
- *
- * @return the Toolkit of this Component.
- */
- public Toolkit getToolkit() {
- return toolkit;
- }
-
- /**
- * Gets this component's locking object for AWT component tree and layout
- * operations.
- *
- * @return the tree locking object.
- */
- public final Object getTreeLock() {
- return toolkit.awtTreeLock;
- }
-
- /**
- * Handles the event. Use ActionListener instead of this.
- *
- * @param evt
- * the Event.
- * @param what
- * the event's key.
- * @return true, if successful.
- * @deprecated Use ActionListener class for registering event listener.
- */
- @Deprecated
- public boolean action(Event evt, Object what) {
- // to be overridden: do nothing,
- // just return false to propagate event up to the parent container
- return false;
- }
-
- /**
- * Gets the property change support.
- *
- * @return the property change support.
- */
- private PropertyChangeSupport getPropertyChangeSupport() {
- synchronized (componentLock) {
- if (propertyChangeSupport == null) {
- propertyChangeSupport = new PropertyChangeSupport(this);
- }
- return propertyChangeSupport;
- }
- }
-
- // ???AWT
- /*
- * public void addPropertyChangeListener(PropertyChangeListener listener) {
- * getPropertyChangeSupport().addPropertyChangeListener(listener); } public
- * void addPropertyChangeListener(String propertyName,
- * PropertyChangeListener listener) {
- * getPropertyChangeSupport().addPropertyChangeListener(propertyName,
- * listener); } public void applyComponentOrientation(ComponentOrientation
- * orientation) { toolkit.lockAWT(); try {
- * setComponentOrientation(orientation); } finally { toolkit.unlockAWT(); }
- * }
- */
-
- /**
- * Returns true if the set of focus traversal keys for the given focus
- * traversal operation has been explicitly defined for this Component.
- *
- * @param id
- * the ID of traversal key.
- * @return true, if the set of focus traversal keys for the given focus.
- * traversal operation has been explicitly defined for this
- * Component, false otherwise.
- */
- public boolean areFocusTraversalKeysSet(int id) {
- toolkit.lockAWT();
- try {
- Integer Id = new Integer(id);
- if (traversalKeys.containsKey(Id)) {
- return traversalKeys.get(Id) != null;
- }
- // awt.14F=invalid focus traversal key identifier
- throw new IllegalArgumentException(Messages.getString("awt.14F")); //$NON-NLS-1$
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the bounds of the Component.
- *
- * @return the rectangle bounds of the Component.
- * @deprecated Use getBounds() methood.
- */
- @Deprecated
- public Rectangle bounds() {
- toolkit.lockAWT();
- try {
- return new Rectangle(x, y, w, h);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Returns the construction status of a specified image with the specified
- * width and height that is being created.
- *
- * @param image
- * the image to be checked.
- * @param width
- * the width of scaled image which status is being checked, or
- * -1.
- * @param height
- * the height of scaled image which status is being checked, or
- * -1.
- * @param observer
- * the ImageObserver object to be notified while the image is
- * being prepared.
- * @return the ImageObserver flags of the current state of the image data.
- */
- public int checkImage(Image image, int width, int height, ImageObserver observer) {
- toolkit.lockAWT();
- try {
- return toolkit.checkImage(image, width, height, observer);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Returns the construction status of a specified image that is being
- * created.
- *
- * @param image
- * the image to be checked.
- * @param observer
- * the ImageObserver object to be notified while the image is
- * being prepared.
- * @return the ImageObserver flags of the current state of the image data.
- */
- public int checkImage(Image image, ImageObserver observer) {
- toolkit.lockAWT();
- try {
- return toolkit.checkImage(image, -1, -1, observer);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Coalesces the existed event with new event.
- *
- * @param existingEvent
- * the existing event in the EventQueue.
- * @param newEvent
- * the new event to be posted to the EventQueue.
- * @return the coalesced AWTEvent, or null if there is no coalescing done.
- */
- protected AWTEvent coalesceEvents(AWTEvent existingEvent, AWTEvent newEvent) {
- toolkit.lockAWT();
- try {
- // Nothing to do:
- // 1. Mouse events coalesced at WTK level
- // 2. Paint events handled by RedrawManager
- // This method is for overriding only
- return null;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks if this Component is a coalescer.
- *
- * @return true, if is coalescer.
- */
- boolean isCoalescer() {
- return coalescer;
- }
-
- /**
- * Gets the relative event.
- *
- * @param id
- * the id.
- * @return the relative event.
- */
- AWTEvent getRelativeEvent(int id) {
- Integer idWrapper = new Integer(id);
- eventsList = eventsTable.get(idWrapper);
- if (eventsList == null) {
- eventsList = new LinkedList<AWTEvent>();
- eventsTable.put(idWrapper, eventsList);
- return null;
- }
- if (eventsList.isEmpty()) {
- return null;
- }
- return eventsList.getLast();
- }
-
- /**
- * Adds the new event.
- *
- * @param event
- * the event.
- */
- void addNewEvent(AWTEvent event) {
- eventsList.addLast(event);
- }
-
- /**
- * Removes the relative event.
- */
- void removeRelativeEvent() {
- eventsList.removeLast();
- }
-
- /**
- * Removes the next event.
- *
- * @param id
- * the id.
- */
- void removeNextEvent(int id) {
- eventsTable.get(new Integer(id)).removeFirst();
- }
-
- /**
- * Creates the image with the specified ImageProducer.
- *
- * @param producer
- * the ImageProducer to be used for image creation.
- * @return the image with the specified ImageProducer.
- */
- public Image createImage(ImageProducer producer) {
- toolkit.lockAWT();
- try {
- return toolkit.createImage(producer);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Creates an off-screen drawable image to be used for double buffering.
- *
- * @param width
- * the width of the image.
- * @param height
- * the height of the image.
- * @return the off-screen drawable image or null if the component is not
- * displayable or GraphicsEnvironment.isHeadless() method returns
- * true.
- */
- public Image createImage(int width, int height) {
- toolkit.lockAWT();
- try {
- if (!isDisplayable()) {
- return null;
- }
- GraphicsConfiguration gc = getGraphicsConfiguration();
- if (gc == null) {
- return null;
- }
- ColorModel cm = gc.getColorModel(Transparency.OPAQUE);
- WritableRaster wr = cm.createCompatibleWritableRaster(width, height);
- Image image = new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), null);
- fillImageBackground(image, width, height);
- return image;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Creates an off-screen drawable image with the specified width, height and
- * ImageCapabilities.
- *
- * @param width
- * the width.
- * @param height
- * the height.
- * @param caps
- * the ImageCapabilities.
- * @return the volatile image.
- * @throws AWTException
- * if an image with the specified capabilities cannot be
- * created.
- */
- public VolatileImage createVolatileImage(int width, int height, ImageCapabilities caps)
- throws AWTException {
- toolkit.lockAWT();
- try {
- if (!isDisplayable()) {
- return null;
- }
- GraphicsConfiguration gc = getGraphicsConfiguration();
- if (gc == null) {
- return null;
- }
- VolatileImage image = gc.createCompatibleVolatileImage(width, height, caps);
- fillImageBackground(image, width, height);
- return image;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Creates a volatile off-screen drawable image which is used for double
- * buffering.
- *
- * @param width
- * the width of image.
- * @param height
- * the height of image.
- * @return the volatile image a volatile off-screen drawable image which is
- * used for double buffering or null if the component is not
- * displayable, or GraphicsEnvironment.isHeadless() method returns
- * true.
- */
- public VolatileImage createVolatileImage(int width, int height) {
- toolkit.lockAWT();
- try {
- if (!isDisplayable()) {
- return null;
- }
- GraphicsConfiguration gc = getGraphicsConfiguration();
- if (gc == null) {
- return null;
- }
- VolatileImage image = gc.createCompatibleVolatileImage(width, height);
- fillImageBackground(image, width, height);
- return image;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Fill the image being created by createImage() or createVolatileImage()
- * with the component's background color to prepare it for double-buffered
- * painting.
- *
- * @param image
- * the image.
- * @param width
- * the width.
- * @param height
- * the height.
- */
- private void fillImageBackground(Image image, int width, int height) {
- Graphics gr = image.getGraphics();
- gr.setColor(getBackground());
- gr.fillRect(0, 0, width, height);
- gr.dispose();
- }
-
- /**
- * Delivers event.
- *
- * @param evt
- * the event.
- * @deprecated Replaced by dispatchEvent(AWTEvent e) method.
- */
- @Deprecated
- public void deliverEvent(Event evt) {
- postEvent(evt);
- }
-
- /**
- * Prompts the layout manager to lay out this component.
- */
- public void doLayout() {
- toolkit.lockAWT();
- try {
- layout();
- } finally {
- toolkit.unlockAWT();
- }
- // Implemented in Container
- }
-
- /**
- * Fire property change impl.
- *
- * @param propertyName
- * the property name.
- * @param oldValue
- * the old value.
- * @param newValue
- * the new value.
- */
- private void firePropertyChangeImpl(String propertyName, Object oldValue, Object newValue) {
- PropertyChangeSupport pcs;
- synchronized (componentLock) {
- if (propertyChangeSupport == null) {
- return;
- }
- pcs = propertyChangeSupport;
- }
- pcs.firePropertyChange(propertyName, oldValue, newValue);
- }
-
- /**
- * Reports a bound property changes for int properties.
- *
- * @param propertyName
- * the property name.
- * @param oldValue
- * the old property's value.
- * @param newValue
- * the new property's value.
- */
- protected void firePropertyChange(String propertyName, int oldValue, int newValue) {
- firePropertyChangeImpl(propertyName, new Integer(oldValue), new Integer(newValue));
- }
-
- /**
- * Report a bound property change for a boolean-valued property.
- *
- * @param propertyName
- * the property name.
- * @param oldValue
- * the property's old value.
- * @param newValue
- * the property's new value.
- */
- protected void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {
- firePropertyChangeImpl(propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue));
- }
-
- /**
- * Reports a bound property change for an Object-valued property.
- *
- * @param propertyName
- * the property name.
- * @param oldValue
- * the property's old value.
- * @param newValue
- * the property's new value.
- */
- protected void firePropertyChange(final String propertyName, final Object oldValue,
- final Object newValue) {
- firePropertyChangeImpl(propertyName, oldValue, newValue);
- }
-
- /**
- * Report a bound property change for a byte-valued property.
- *
- * @param propertyName
- * the property name.
- * @param oldValue
- * the property's old value.
- * @param newValue
- * the property's new value.
- */
- public void firePropertyChange(String propertyName, byte oldValue, byte newValue) {
- firePropertyChangeImpl(propertyName, new Byte(oldValue), new Byte(newValue));
- }
-
- /**
- * Report a bound property change for a char-valued property.
- *
- * @param propertyName
- * the property name.
- * @param oldValue
- * the old property's value.
- * @param newValue
- * the new property's value.
- */
- public void firePropertyChange(String propertyName, char oldValue, char newValue) {
- firePropertyChangeImpl(propertyName, new Character(oldValue), new Character(newValue));
- }
-
- /**
- * Report a bound property change for a short-valued property.
- *
- * @param propertyName
- * the property name.
- * @param oldValue
- * the old property's value.
- * @param newValue
- * the new property's value.
- */
- public void firePropertyChange(String propertyName, short oldValue, short newValue) {
- firePropertyChangeImpl(propertyName, new Short(oldValue), new Short(newValue));
- }
-
- /**
- * Report a bound property change for a long-valued property.
- *
- * @param propertyName
- * the property name.
- * @param oldValue
- * the old property's value.
- * @param newValue
- * the new property's value.
- */
- public void firePropertyChange(String propertyName, long oldValue, long newValue) {
- firePropertyChangeImpl(propertyName, new Long(oldValue), new Long(newValue));
- }
-
- /**
- * Report a bound property change for a float-valued property.
- *
- * @param propertyName
- * the property name.
- * @param oldValue
- * the old property's value.
- * @param newValue
- * the new property's value.
- */
- public void firePropertyChange(String propertyName, float oldValue, float newValue) {
- firePropertyChangeImpl(propertyName, new Float(oldValue), new Float(newValue));
- }
-
- /**
- * Report a bound property change for a double-valued property.
- *
- * @param propertyName
- * the property name.
- * @param oldValue
- * the old property's value.
- * @param newValue
- * the new property's value.
- */
- public void firePropertyChange(String propertyName, double oldValue, double newValue) {
- firePropertyChangeImpl(propertyName, new Double(oldValue), new Double(newValue));
- }
-
- /**
- * Gets the alignment along the x axis.
- *
- * @return the alignment along the x axis.
- */
- public float getAlignmentX() {
- toolkit.lockAWT();
- try {
- return CENTER_ALIGNMENT;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the alignment along the y axis.
- *
- * @return the alignment along y axis.
- */
- public float getAlignmentY() {
- toolkit.lockAWT();
- try {
- return CENTER_ALIGNMENT;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the background color for this component.
- *
- * @return the background color for this component.
- */
- public Color getBackground() {
- toolkit.lockAWT();
- try {
- // ???AWT
- /*
- * if ((backColor == null) && (parent != null)) { return
- * parent.getBackground(); }
- */
- return backColor;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the bounding rectangle of this component.
- *
- * @return the bounding rectangle of this component.
- */
- public Rectangle getBounds() {
- toolkit.lockAWT();
- try {
- return bounds();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Writes the data of the bounding rectangle to the specified Rectangle
- * object.
- *
- * @param rv
- * the Rectangle object where the bounding rectangle's data is
- * stored.
- * @return the bounding rectangle.
- */
- public Rectangle getBounds(Rectangle rv) {
- toolkit.lockAWT();
- try {
- if (rv == null) {
- rv = new Rectangle();
- }
- rv.setBounds(x, y, w, h);
- return rv;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the color model of the Component.
- *
- * @return the color model of the Component.
- */
- public ColorModel getColorModel() {
- toolkit.lockAWT();
- try {
- return getToolkit().getColorModel();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the Component which contains the specified Point.
- *
- * @param p
- * the Point.
- * @return the Component which contains the specified Point.
- */
- public Component getComponentAt(Point p) {
- toolkit.lockAWT();
- try {
- return getComponentAt(p.x, p.y);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the Component which contains the point with the specified
- * coordinates.
- *
- * @param x
- * the x coordinate of the point.
- * @param y
- * the y coordinate of the point.
- * @return the Component which contains the point with the specified
- * coordinates.
- */
- public Component getComponentAt(int x, int y) {
- toolkit.lockAWT();
- try {
- return locate(x, y);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the component's orientation.
- *
- * @return the component's orientation.
- */
- public ComponentOrientation getComponentOrientation() {
- toolkit.lockAWT();
- try {
- return orientation;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the cursor of the Component.
- *
- * @return the Cursor.
- */
- public Cursor getCursor() {
- toolkit.lockAWT();
- try {
- if (cursor != null) {
- return cursor;
- // ???AWT
- /*
- * } else if (parent != null) { return parent.getCursor();
- */
- }
- return Cursor.getDefaultCursor();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- // ???AWT
- /*
- * public DropTarget getDropTarget() { toolkit.lockAWT(); try { return
- * dropTarget; } finally { toolkit.unlockAWT(); } } public Container
- * getFocusCycleRootAncestor() { toolkit.lockAWT(); try { for (Container c =
- * parent; c != null; c = c.getParent()) { if (c.isFocusCycleRoot()) {
- * return c; } } return null; } finally { toolkit.unlockAWT(); } }
- * @SuppressWarnings("unchecked") public Set<AWTKeyStroke>
- * getFocusTraversalKeys(int id) { toolkit.lockAWT(); try { Integer kId =
- * new Integer(id); KeyboardFocusManager.checkTraversalKeysID(traversalKeys,
- * kId); Set<? extends AWTKeyStroke> keys = traversalKeys.get(kId); if (keys
- * == null && parent != null) { keys = parent.getFocusTraversalKeys(id); }
- * if (keys == null) { keys =
- * KeyboardFocusManager.getCurrentKeyboardFocusManager()
- * .getDefaultFocusTraversalKeys(id); } return (Set<AWTKeyStroke>) keys; }
- * finally { toolkit.unlockAWT(); } }
- */
-
- /**
- * Checks if the the focus traversal keys are enabled for this component.
- *
- * @return true, if the the focus traversal keys are enabled for this
- * component, false otherwise.
- */
- public boolean getFocusTraversalKeysEnabled() {
- toolkit.lockAWT();
- try {
- return focusTraversalKeysEnabled;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the font metrics of the specified Font.
- *
- * @param f
- * the Font.
- * @return the FontMetrics of the specified Font.
- */
- @SuppressWarnings("deprecation")
- public FontMetrics getFontMetrics(Font f) {
- return toolkit.getFontMetrics(f);
- }
-
- /**
- * Gets the foreground color of the Component.
- *
- * @return the foreground color of the Component.
- */
- public Color getForeground() {
- toolkit.lockAWT();
- try {
- // ???AWT
- /*
- * if (foreColor == null && parent != null) { return
- * parent.getForeground(); }
- */
- return foreColor;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the Graphics of the Component or null if this Component is not
- * displayable.
- *
- * @return the Graphics of the Component or null if this Component is not
- * displayable.
- */
- public Graphics getGraphics() {
- toolkit.lockAWT();
- try {
- if (!isDisplayable()) {
- return null;
- }
- Graphics g = behaviour.getGraphics(0, 0, w, h);
- g.setColor(foreColor);
- g.setFont(font);
- return g;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the GraphicsConfiguration associated with this Component.
- *
- * @return the GraphicsConfiguration associated with this Component.
- */
- public GraphicsConfiguration getGraphicsConfiguration() {
- // ???AWT
- /*
- * toolkit.lockAWT(); try { Window win = getWindowAncestor(); if (win ==
- * null) { return null; } return win.getGraphicsConfiguration(); }
- * finally { toolkit.unlockAWT(); }
- */
- return null;
- }
-
- /**
- * Gets the height of the Component.
- *
- * @return the height of the Component.
- */
- public int getHeight() {
- toolkit.lockAWT();
- try {
- return h;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Returns true if paint messages received from the operating system should
- * be ignored.
- *
- * @return true if paint messages received from the operating system should
- * be ignored, false otherwise.
- */
- public boolean getIgnoreRepaint() {
- toolkit.lockAWT();
- try {
- return ignoreRepaint;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the input context of this component for handling the communication
- * with input methods when text is entered in this component.
- *
- * @return the InputContext used by this Component or null if no context is
- * specifined.
- */
- public InputContext getInputContext() {
- toolkit.lockAWT();
- try {
- // ???AWT
- /*
- * Container parent = getParent(); if (parent != null) { return
- * parent.getInputContext(); }
- */
- return null;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the input method request handler which supports requests from input
- * methods for this component, or null for default.
- *
- * @return the input method request handler which supports requests from
- * input methods for this component, or null for default.
- */
- public InputMethodRequests getInputMethodRequests() {
- return null;
- }
-
- /**
- * Gets the locale of this Component.
- *
- * @return the locale of this Component.
- */
- public Locale getLocale() {
- toolkit.lockAWT();
- try {
- // ???AWT
- /*
- * if (locale == null) { if (parent == null) { if (this instanceof
- * Window) { return Locale.getDefault(); } // awt.150=no parent
- * throw new
- * IllegalComponentStateException(Messages.getString("awt.150"));
- * //$NON-NLS-1$ } return getParent().getLocale(); }
- */
- return locale;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the location of this component in the form of a point specifying the
- * component's top-left corner in the screen's coordinate space.
- *
- * @return the Point giving the component's location in the screen's
- * coordinate space.
- * @throws IllegalComponentStateException
- * if the component is not shown on the screen.
- */
- public Point getLocationOnScreen() throws IllegalComponentStateException {
- toolkit.lockAWT();
- try {
- Point p = new Point();
- if (isShowing()) {
- // ???AWT
- /*
- * Component comp; for (comp = this; comp != null && !(comp
- * instanceof Window); comp = comp .getParent()) {
- * p.translate(comp.getX(), comp.getY()); } if (comp instanceof
- * Window) { p.translate(comp.getX(), comp.getY()); }
- */
- return p;
- }
- // awt.151=component must be showing on the screen to determine its
- // location
- throw new IllegalComponentStateException(Messages.getString("awt.151")); //$NON-NLS-1$
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the peer. This method should not be called directly by user
- * applications.
- *
- * @return the ComponentPeer.
- * @deprecated Replaced by isDisplayable().
- */
- @Deprecated
- public ComponentPeer getPeer() {
- toolkit.lockAWT();
- try {
- if (behaviour.isDisplayable()) {
- return peer;
- }
- return null;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets an array of the property change listeners registered to this
- * Component.
- *
- * @return an array of the PropertyChangeListeners registered to this
- * Component.
- */
- public PropertyChangeListener[] getPropertyChangeListeners() {
- return getPropertyChangeSupport().getPropertyChangeListeners();
- }
-
- /**
- * Gets an array of PropertyChangeListener objects registered to this
- * Component for the specified property.
- *
- * @param propertyName
- * the property name.
- * @return an array of PropertyChangeListener objects registered to this
- * Component for the specified property.
- */
- public PropertyChangeListener[] getPropertyChangeListeners(String propertyName) {
- return getPropertyChangeSupport().getPropertyChangeListeners(propertyName);
- }
-
- /**
- * Gets the width of the Component.
- *
- * @return the width of the Component.
- */
- public int getWidth() {
- toolkit.lockAWT();
- try {
- return w;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the x coordinate of the component's top-left corner.
- *
- * @return the x coordinate of the component's top-left corner.
- */
- public int getX() {
- toolkit.lockAWT();
- try {
- return x;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the y coordinate of the component's top-left corner.
- *
- * @return the y coordinate of the component's top-left corner.
- */
- public int getY() {
- toolkit.lockAWT();
- try {
- return y;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Got the focus.
- *
- * @param evt
- * the Event.
- * @param what
- * the Object.
- * @return true, if successful.
- * @deprecated Replaced by processFocusEvent(FocusEvent) method.
- */
- @Deprecated
- public boolean gotFocus(Event evt, Object what) {
- // to be overridden: do nothing,
- // just return false to propagate event up to the parent container
- return false;
- }
-
- /**
- * Handles event.
- *
- * @param evt
- * the Event.
- * @return true, if successful.
- * @deprecated Replaced by processEvent(AWTEvent) method.
- */
- @Deprecated
- public boolean handleEvent(Event evt) {
- switch (evt.id) {
- case Event.ACTION_EVENT:
- return action(evt, evt.arg);
- case Event.GOT_FOCUS:
- return gotFocus(evt, null);
- case Event.LOST_FOCUS:
- return lostFocus(evt, null);
- case Event.MOUSE_DOWN:
- return mouseDown(evt, evt.x, evt.y);
- case Event.MOUSE_DRAG:
- return mouseDrag(evt, evt.x, evt.y);
- case Event.MOUSE_ENTER:
- return mouseEnter(evt, evt.x, evt.y);
- case Event.MOUSE_EXIT:
- return mouseExit(evt, evt.x, evt.y);
- case Event.MOUSE_MOVE:
- return mouseMove(evt, evt.x, evt.y);
- case Event.MOUSE_UP:
- return mouseUp(evt, evt.x, evt.y);
- case Event.KEY_ACTION:
- case Event.KEY_PRESS:
- return keyDown(evt, evt.key);
- case Event.KEY_ACTION_RELEASE:
- case Event.KEY_RELEASE:
- return keyUp(evt, evt.key);
- }
- return false;// event not handled
- }
-
- /**
- * Checks whether the Component is the focus owner or not.
- *
- * @return true, if the Component is the focus owner, false otherwise.
- */
- public boolean hasFocus() {
- toolkit.lockAWT();
- try {
- // ???AWT: return isFocusOwner();
- return false;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Hides the Component.
- *
- * @deprecated Replaced by setVisible(boolean) method.
- */
- @Deprecated
- public void hide() {
- toolkit.lockAWT();
- try {
- if (!visible) {
- return;
- }
- prepare4HierarchyChange();
- visible = false;
- moveFocusOnHide();
- behaviour.setVisible(false);
- postEvent(new ComponentEvent(this, ComponentEvent.COMPONENT_HIDDEN));
- // ???AWT: finishHierarchyChange(this, parent, 0);
- notifyInputMethod(null);
- // ???AWT: invalidateRealParent();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks whether or not the point with the specified coordinates belongs to
- * the Commponent.
- *
- * @param x
- * the x coordinate of the Point.
- * @param y
- * the y coordinate of the Point.
- * @return true, if the point with the specified coordinates belongs to the
- * Commponent, false otherwise.
- * @deprecated Replaced by contains(int, int) method.
- */
- @Deprecated
- public boolean inside(int x, int y) {
- toolkit.lockAWT();
- try {
- return x >= 0 && x < getWidth() && y >= 0 && y < getHeight();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Invalidates the component, this component and all parents above it are
- * marked as needing to be laid out.
- */
- public void invalidate() {
- toolkit.lockAWT();
- try {
- valid = false;
- resetDefaultSize();
- // ???AWT: invalidateRealParent();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks whether or not the background color is set to this Component.
- *
- * @return true, if the background color is set to this Component, false
- * otherwise.
- */
- public boolean isBackgroundSet() {
- toolkit.lockAWT();
- try {
- return backColor != null;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks whether or not a cursor is set for the Component.
- *
- * @return true, if a cursor is set for the Component, false otherwise.
- */
- public boolean isCursorSet() {
- toolkit.lockAWT();
- try {
- return cursor != null;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks whether or not this Component is displayable.
- *
- * @return true, if this Component is displayable, false otherwise.
- */
- public boolean isDisplayable() {
- toolkit.lockAWT();
- try {
- return behaviour.isDisplayable();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks whether or not this component is painted to an buffer which is
- * copied to the screen later.
- *
- * @return true, if this component is painted to an buffer which is copied
- * to the screen later, false otherwise.
- */
- public boolean isDoubleBuffered() {
- toolkit.lockAWT();
- try {
- // false by default
- return false;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks whether or not this Component is enabled.
- *
- * @return true, if this Component is enabled, false otherwise.
- */
- public boolean isEnabled() {
- toolkit.lockAWT();
- try {
- return enabled;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * "Recursive" isEnabled().
- *
- * @return true if not only component itself is enabled but its heavyweight
- * parent is also "indirectly" enabled.
- */
- boolean isIndirectlyEnabled() {
- Component comp = this;
- while (comp != null) {
- if (!comp.isLightweight() && !comp.isEnabled()) {
- return false;
- }
- // ???AWT: comp = comp.getRealParent();
- }
- return true;
- }
-
- /**
- * Checks if the component is key enabled.
- *
- * @return true, if the component is enabled and indirectly enabled.
- */
- boolean isKeyEnabled() {
- if (!isEnabled()) {
- return false;
- }
- return isIndirectlyEnabled();
- }
-
- /**
- * Gets only parent of a child component, but not owner of a window.
- *
- * @return parent of child component, null if component is a top-level
- * (Window instance).
- */
- // ???AWT
- /*
- * Container getRealParent() { return (!(this instanceof Window) ?
- * getParent() : null); } public boolean isFocusCycleRoot(Container
- * container) { toolkit.lockAWT(); try { return getFocusCycleRootAncestor()
- * == container; } finally { toolkit.unlockAWT(); } } public boolean
- * isFocusOwner() { toolkit.lockAWT(); try { return
- * KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner() ==
- * this; } finally { toolkit.unlockAWT(); } }
- */
-
- /**
- * Checks whether or not this Component can be focusable.
- *
- * @return true, if this Component can be focusable, false otherwise.
- * @deprecated Replaced by isFocusable().
- */
- @Deprecated
- public boolean isFocusTraversable() {
- toolkit.lockAWT();
- try {
- overridenIsFocusable = false;
- return focusable; // a Component must either be both focusable and
- // focus traversable, or neither
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks if this Component can be focusable or not.
- *
- * @return true, if this Component can be focusable, false otherwise.
- */
- public boolean isFocusable() {
- toolkit.lockAWT();
- try {
- return isFocusTraversable();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks if the Font is set for this Component or not.
- *
- * @return true, if the Font is set, false otherwise.
- */
- public boolean isFontSet() {
- toolkit.lockAWT();
- try {
- return font != null;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks if foreground color is set for the Component or not.
- *
- * @return true, if is foreground color is set for the Component, false
- * otherwise.
- */
- public boolean isForegroundSet() {
- toolkit.lockAWT();
- try {
- return foreColor != null;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Returns true if this component has a lightweight peer.
- *
- * @return true, if this component has a lightweight peer, false if it has a
- * native peer or no peer.
- */
- public boolean isLightweight() {
- toolkit.lockAWT();
- try {
- return behaviour.isLightweight();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks whether or not this Component is shown.
- *
- * @return true, if this Component is shown, false otherwise.
- */
- public boolean isShowing() {
- // ???AWT
- /*
- * toolkit.lockAWT(); try { return (isVisible() && isDisplayable() &&
- * (parent != null) && parent.isShowing()); } finally {
- * toolkit.unlockAWT(); }
- */
- return false;
- }
-
- /**
- * Checks whether or not this Component is visible.
- *
- * @return true, if the Component is visible, false otherwise.
- */
- public boolean isVisible() {
- toolkit.lockAWT();
- try {
- return visible;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Deprecated: replaced by processKeyEvent(KeyEvent) method.
- *
- * @param evt
- * the Event.
- * @param key
- * the key code.
- * @return true, if successful.
- * @deprecated Replaced by replaced by processKeyEvent(KeyEvent) method.
- */
- @Deprecated
- public boolean keyDown(Event evt, int key) {
- // to be overridden: do nothing,
- // just return false to propagate event up to the parent container
- return false;
- }
-
- /**
- * Deprecated: replaced by processKeyEvent(KeyEvent) method.
- *
- * @param evt
- * the Event.
- * @param key
- * the key code.
- * @return true, if successful.
- * @deprecated Replaced by processKeyEvent(KeyEvent) method.
- */
- @Deprecated
- public boolean keyUp(Event evt, int key) {
- // to be overridden: do nothing,
- // just return false to propagate event up to the parent container
- return false;
- }
-
- /**
- * Deprecated: Replaced by doLayout() method.
- *
- * @deprecated Replaced by doLayout() method.
- */
- @Deprecated
- public void layout() {
- toolkit.lockAWT();
- try {
- // Implemented in Container
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Deprecated: replaced by getComponentAt(int, int) method.
- *
- * @param x
- * the x coordinate.
- * @param y
- * the y coordinate.
- * @return The component.
- * @deprecated Replaced by getComponentAt(int, int) method.
- */
- @Deprecated
- public Component locate(int x, int y) {
- toolkit.lockAWT();
- try {
- if (contains(x, y)) {
- return this;
- }
- return null;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Deprecated: replaced by processFocusEvent(FocusEvent).
- *
- * @param evt
- * the Event.
- * @param what
- * the Object.
- * @return true, if successful.
- * @deprecated Replaced by processFocusEvent(FocusEvent).
- */
- @Deprecated
- public boolean lostFocus(Event evt, Object what) {
- // to be overridden: do nothing,
- // just return false to propagate event up to the parent container
- return false;
- }
-
- /**
- * Deprecated: replaced by processMouseEvent(MouseEvent) method.
- *
- * @param evt
- * the MouseEvent.
- * @param x
- * the x coordinate.
- * @param y
- * the y coordinate.
- * @return true, if successful.
- * @deprecated Replaced by processMouseEvent(MouseEvent) method.
- */
- @Deprecated
- public boolean mouseDown(Event evt, int x, int y) {
- // to be overridden: do nothing,
- // just return false to propagate event up to the parent container
- return false;
- }
-
- /**
- * Deprecated: replaced by getMinimumSize() method.
- *
- * @param evt
- * the Event.
- * @param x
- * the x coordinate.
- * @param y
- * the y coordinate.
- * @return true, if successful.
- * @deprecated Replaced by getMinimumSize() method.
- */
- @Deprecated
- public boolean mouseDrag(Event evt, int x, int y) {
- // to be overridden: do nothing,
- // just return false to propagate event up to the parent container
- return false;
- }
-
- /**
- * Replaced by processMouseEvent(MouseEvent) method.
- *
- * @param evt
- * the Event.
- * @param x
- * the x coordinate.
- * @param y
- * the y coordinate.
- * @return true, if successful.
- * @deprecated replaced by processMouseEvent(MouseEvent) method.
- */
- @Deprecated
- public boolean mouseEnter(Event evt, int x, int y) {
- // to be overridden: do nothing,
- // just return false to propagate event up to the parent container
- return false;
- }
-
- /**
- * Replaced by processMouseEvent(MouseEvent) method.
- *
- * @param evt
- * the Event.
- * @param x
- * the x coordinate.
- * @param y
- * the y coordinate.
- * @return true, if successful.
- * @deprecated Replaced by processMouseEvent(MouseEvent) method.
- */
- @Deprecated
- public boolean mouseExit(Event evt, int x, int y) {
- // to be overridden: do nothing,
- // just return false to propagate event up to the parent container
- return false;
- }
-
- /**
- * Replaced by processMouseEvent(MouseEvent) method.
- *
- * @param evt
- * the Event.
- * @param x
- * the x coordinate.
- * @param y
- * the y coordinate.
- * @deprecated Replaced by processMouseEvent(MouseEvent) method.
- * @return true, if successful.
- */
- @Deprecated
- public boolean mouseMove(Event evt, int x, int y) {
- // to be overridden: do nothing,
- // just return false to propagate event up to the parent container
- return false;
- }
-
- /**
- * Replaced by processMouseEvent(MouseEvent) method.
- *
- * @param evt
- * the Event.
- * @param x
- * the x coordinate.
- * @param y
- * the y coordinate.
- * @return true, if successful.
- * @deprecated Replaced by processMouseEvent(MouseEvent) method.
- */
- @Deprecated
- public boolean mouseUp(Event evt, int x, int y) {
- // to be overridden: do nothing,
- // just return false to propagate event up to the parent container
- return false;
- }
-
- /**
- * Deprecated: replaced by setLocation(int, int) method.
- *
- * @param x
- * the x coordinates.
- * @param y
- * the y coordinates.
- * @deprecated Replaced by setLocation(int, int) method.
- */
- @Deprecated
- public void move(int x, int y) {
- toolkit.lockAWT();
- try {
- boundsMaskParam = NativeWindow.BOUNDS_NOSIZE;
- setBounds(x, y, w, h);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- // ???AWT
- /*
- * @Deprecated public void nextFocus() { toolkit.lockAWT(); try {
- * transferFocus(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS); } finally {
- * toolkit.unlockAWT(); } }
- */
-
- /**
- * Returns a string representation of the component's state.
- *
- * @return the string representation of the component's state.
- */
- protected String paramString() {
- /*
- * The format is based on 1.5 release behavior which can be revealed by
- * the following code: Component c = new Component(){};
- * c.setVisible(false); System.out.println(c);
- */
- toolkit.lockAWT();
- try {
- return getName() + "," + getX() + "," + getY() + "," + getWidth() + "x" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- + getHeight() + (!isVisible() ? ",hidden" : ""); //$NON-NLS-1$ //$NON-NLS-2$
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- @Deprecated
- @SuppressWarnings("deprecation")
- public boolean postEvent(Event evt) {
- boolean handled = handleEvent(evt);
- if (handled) {
- return true;
- }
- // ???AWT
- /*
- * // propagate non-handled events up to parent Component par = parent;
- * // try to call postEvent only on components which // override any of
- * deprecated method handlers // while (par != null &&
- * !par.deprecatedEventHandler) { // par = par.parent; // } // translate
- * event coordinates before posting it to parent if (par != null) {
- * evt.translate(x, y); par.postEvent(evt); }
- */
- return false;
- }
-
- /**
- * Prepares an image for rendering on the Component.
- *
- * @param image
- * the Image to be prepared.
- * @param observer
- * the ImageObserver object to be notified as soon as the image
- * is prepared.
- * @return true if the image has been fully prepared, false otherwise.
- */
- public boolean prepareImage(Image image, ImageObserver observer) {
- toolkit.lockAWT();
- try {
- return toolkit.prepareImage(image, -1, -1, observer);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Prepares an image for rendering on the Component with the specified
- * width, height, and ImageObserver.
- *
- * @param image
- * the Image to be prepared.
- * @param width
- * the width of scaled image.
- * @param height
- * the height of scaled height.
- * @param observer
- * the ImageObserver object to be notified as soon as the image
- * is prepared.
- * @return true if the image is been fully prepared, false otherwise.
- */
- public boolean prepareImage(Image image, int width, int height, ImageObserver observer) {
- toolkit.lockAWT();
- try {
- return toolkit.prepareImage(image, width, height, observer);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Makes this Component undisplayable.
- */
- public void removeNotify() {
- toolkit.lockAWT();
- try {
- // ???AWT
- /*
- * if (dropTarget != null) { dropTarget.removeNotify(peer); }
- */
- prepare4HierarchyChange();
- // /???AWT: moveFocus();
- behaviour.removeNotify();
- // ???AWT: finishHierarchyChange(this, parent, 0);
- removeNotifyInputContext();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Calls InputContext.removeNotify.
- */
- private void removeNotifyInputContext() {
- if (!inputMethodsEnabled) {
- return;
- }
- InputContext ic = getInputContext();
- if (ic != null) {
- // ???AWT: ic.removeNotify(this);
- }
- }
-
- /**
- * This method is called when some property of a component changes, making
- * it unfocusable, e. g. hide(), removeNotify(), setEnabled(false),
- * setFocusable(false) is called, and therefore automatic forward focus
- * traversal is necessary
- */
- // ???AWT
- /*
- * void moveFocus() { // don't use transferFocus(), but query focus
- * traversal policy directly // and if it returns null, transfer focus up
- * cycle // and find next focusable component there KeyboardFocusManager kfm
- * = KeyboardFocusManager.getCurrentKeyboardFocusManager(); Container root =
- * kfm.getCurrentFocusCycleRoot(); Component nextComp = this; boolean
- * success = !isFocusOwner(); while (!success) { if (root !=
- * nextComp.getFocusCycleRootAncestor()) { // component was probably removed
- * from container // so focus will be lost in some time return; } nextComp =
- * root.getFocusTraversalPolicy().getComponentAfter(root, nextComp); if
- * (nextComp == this) { nextComp = null; // avoid looping } if (nextComp !=
- * null) { success = nextComp.requestFocusInWindow(); } else { nextComp =
- * root; root = root.getFocusCycleRootAncestor(); // if no acceptable
- * component is found at all - clear global // focus owner if (root == null)
- * { if (nextComp instanceof Window) { Window wnd = (Window) nextComp;
- * wnd.setFocusOwner(null); wnd.setRequestedFocus(null); }
- * kfm.clearGlobalFocusOwner(); return; } } } }
- */
-
- /**
- * For Container there's a difference between moving focus when being made
- * invisible or made unfocusable in some other way, because when container
- * is made invisible, component still remains visible, i. e. its hide() or
- * setVisible() is not called.
- */
- void moveFocusOnHide() {
- // ???AWT: moveFocus();
- }
-
- /**
- * Removes the property change listener registered for this component.
- *
- * @param listener
- * the PropertyChangeListener.
- */
- public void removePropertyChangeListener(PropertyChangeListener listener) {
- getPropertyChangeSupport().removePropertyChangeListener(listener);
- }
-
- /**
- * Removes the property change listener registered fot this component for
- * the specified propertyy.
- *
- * @param propertyName
- * the property name.
- * @param listener
- * the PropertyChangeListener.
- */
- public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
- getPropertyChangeSupport().removePropertyChangeListener(propertyName, listener);
- }
-
- /**
- * Repaints the specified rectangle of this component within tm
- * milliseconds.
- *
- * @param tm
- * the time in milliseconds before updating.
- * @param x
- * the x coordinate of Rectangle.
- * @param y
- * the y coordinate of Rectangle.
- * @param width
- * the width of Rectangle.
- * @param height
- * the height of Rectangle.
- */
- public void repaint(long tm, int x, int y, int width, int height) {
- // ???AWT
- /*
- * toolkit.lockAWT(); try { if (width <= 0 || height <= 0 ||
- * (redrawManager == null) || !isShowing()) { return; } if (behaviour
- * instanceof LWBehavior) { if (parent == null || !parent.visible ||
- * !parent.behaviour.isDisplayable()) { return; } if (repaintRegion ==
- * null) { repaintRegion = new MultiRectArea(new Rectangle(x, y, width,
- * height)); } repaintRegion.intersect(new Rectangle(0, 0, this.w,
- * this.h)); repaintRegion.translate(this.x, this.y);
- * parent.repaintRegion = repaintRegion; repaintRegion = null;
- * parent.repaint(tm, x + this.x, y + this.y, width, height); } else {
- * if (repaintRegion != null) { redrawManager.addUpdateRegion(this,
- * repaintRegion); repaintRegion = null; } else {
- * redrawManager.addUpdateRegion(this, new Rectangle(x, y, width,
- * height)); }
- * toolkit.getSystemEventQueueCore().notifyEventMonitor(toolkit); } }
- * finally { toolkit.unlockAWT(); }
- */
- }
-
- /**
- * Post event.
- *
- * @param e
- * the e.
- */
- void postEvent(AWTEvent e) {
- getToolkit().getSystemEventQueueImpl().postEvent(e);
- }
-
- /**
- * Repaints the specified Rectangle of this Component.
- *
- * @param x
- * the x coordinate of Rectangle.
- * @param y
- * the y coordinate of Rectangle.
- * @param width
- * the width of Rectangle.
- * @param height
- * the height of Rectangle.
- */
- public void repaint(int x, int y, int width, int height) {
- toolkit.lockAWT();
- try {
- repaint(0, x, y, width, height);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Repaints this component.
- */
- public void repaint() {
- toolkit.lockAWT();
- try {
- if (w > 0 && h > 0) {
- repaint(0, 0, 0, w, h);
- }
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Repaints the component within tm milliseconds.
- *
- * @param tm
- * the time in milliseconds before updating.
- */
- public void repaint(long tm) {
- toolkit.lockAWT();
- try {
- repaint(tm, 0, 0, w, h);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Requests that this Component get the input focus temporarily. This
- * component must be displayable, visible, and focusable.
- *
- * @param temporary
- * this parameter is true if the focus change is temporary, when
- * the window loses the focus.
- * @return true if the focus change request is succeeded, false otherwise.
- */
- protected boolean requestFocus(boolean temporary) {
- toolkit.lockAWT();
- try {
- // ???AWT: return requestFocusImpl(temporary, true, false);
- } finally {
- toolkit.unlockAWT();
- }
- // ???AWT
- return false;
- }
-
- /**
- * Requests that this Component get the input focus. This component must be
- * displayable, visible, and focusable.
- */
- public void requestFocus() {
- toolkit.lockAWT();
- try {
- requestFocus(false);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- // ???AWT
- /*
- * protected boolean requestFocusInWindow(boolean temporary) {
- * toolkit.lockAWT(); try { Window wnd = getWindowAncestor(); if ((wnd ==
- * null) || !wnd.isFocused()) { return false; } return
- * requestFocusImpl(temporary, false, false); } finally {
- * toolkit.unlockAWT(); } } boolean requestFocusImpl(boolean temporary,
- * boolean crossWindow, boolean rejectionRecovery) { if (!rejectionRecovery
- * && isFocusOwner()) { return true; } Window wnd = getWindowAncestor();
- * Container par = getRealParent(); if ((par != null) && par.isRemoved) {
- * return false; } if (!isShowing() || !isFocusable() ||
- * !wnd.isFocusableWindow()) { return false; } return
- * KeyboardFocusManager.getCurrentKeyboardFocusManager().requestFocus(this,
- * temporary, crossWindow, true); } public boolean requestFocusInWindow() {
- * toolkit.lockAWT(); try { return requestFocusInWindow(false); } finally {
- * toolkit.unlockAWT(); } }
- */
-
- /**
- * Deprecated: replaced by setBounds(int, int, int, int) method.
- *
- * @param x
- * the x coordinate.
- * @param y
- * the y coordinate.
- * @param w
- * the width.
- * @param h
- * the height.
- * @deprecated Replaced by setBounds(int, int, int, int) method.
- */
- @Deprecated
- public void reshape(int x, int y, int w, int h) {
- toolkit.lockAWT();
- try {
- setBounds(x, y, w, h, boundsMaskParam, true);
- boundsMaskParam = 0;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Sets rectangle for this Component to be the rectangle with the specified
- * x,y coordinates of the top-left corner and the width and height.
- *
- * @param x
- * the x coordinate of the rectangle's top-left corner.
- * @param y
- * the y coordinate of the rectangle's top-left corner.
- * @param w
- * the width of rectangle.
- * @param h
- * the height of rectangle.
- */
- public void setBounds(int x, int y, int w, int h) {
- toolkit.lockAWT();
- try {
- reshape(x, y, w, h);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Sets rectangle for this Component to be the rectangle with the specified
- * x,y coordinates of the top-left corner and the width and height and posts
- * the appropriate events.
- *
- * @param x
- * the x coordinate of the rectangle's top-left corner.
- * @param y
- * the y coordinate of the rectangle's top-left corner.
- * @param w
- * the width of rectangle.
- * @param h
- * the height of rectangle.
- * @param bMask
- * the bitmask of bounds options.
- * @param updateBehavior
- * the whether to update the behavoir's bounds as well.
- */
- void setBounds(int x, int y, int w, int h, int bMask, boolean updateBehavior) {
- int oldX = this.x;
- int oldY = this.y;
- int oldW = this.w;
- int oldH = this.h;
- setBoundsFields(x, y, w, h, bMask);
- // Moved
- if ((oldX != this.x) || (oldY != this.y)) {
- // ???AWT: invalidateRealParent();
- postEvent(new ComponentEvent(this, ComponentEvent.COMPONENT_MOVED));
- spreadHierarchyBoundsEvents(this, HierarchyEvent.ANCESTOR_MOVED);
- }
- // Resized
- if ((oldW != this.w) || (oldH != this.h)) {
- invalidate();
- postEvent(new ComponentEvent(this, ComponentEvent.COMPONENT_RESIZED));
- spreadHierarchyBoundsEvents(this, HierarchyEvent.ANCESTOR_RESIZED);
- }
- if (updateBehavior) {
- behaviour.setBounds(this.x, this.y, this.w, this.h, bMask);
- }
- notifyInputMethod(new Rectangle(x, y, w, h));
- }
-
- /**
- * Calls InputContextImpl.notifyClientWindowChanged.
- *
- * @param bounds
- * the bounds.
- */
- void notifyInputMethod(Rectangle bounds) {
- // only Window actually notifies IM of bounds change
- }
-
- /**
- * Sets the bounds fields.
- *
- * @param x
- * the x.
- * @param y
- * the y.
- * @param w
- * the w.
- * @param h
- * the h.
- * @param bMask
- * the b mask.
- */
- private void setBoundsFields(int x, int y, int w, int h, int bMask) {
- if ((bMask & NativeWindow.BOUNDS_NOSIZE) == 0) {
- this.w = w;
- this.h = h;
- }
- if ((bMask & NativeWindow.BOUNDS_NOMOVE) == 0) {
- this.x = x;
- this.y = y;
- }
- }
-
- /**
- * Gets the native insets.
- *
- * @return the native insets.
- */
- Insets getNativeInsets() {
- return new Insets(0, 0, 0, 0);
- }
-
- /**
- * Gets the insets.
- *
- * @return the insets.
- */
- Insets getInsets() {
- return new Insets(0, 0, 0, 0);
- }
-
- /**
- * Checks if is mouse exited expected.
- *
- * @return true, if is mouse exited expected.
- */
- boolean isMouseExitedExpected() {
- return mouseExitedExpected;
- }
-
- /**
- * Sets the mouse exited expected.
- *
- * @param expected
- * the new mouse exited expected.
- */
- void setMouseExitedExpected(boolean expected) {
- mouseExitedExpected = expected;
- }
-
- /**
- * Sets the new bounding rectangle for this Component.
- *
- * @param r
- * the new bounding rectangle.
- */
- public void setBounds(Rectangle r) {
- toolkit.lockAWT();
- try {
- setBounds(r.x, r.y, r.width, r.height);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Sets the component orientation which affects the component's elements and
- * text within this component.
- *
- * @param o
- * the ComponentOrientation object.
- */
- public void setComponentOrientation(ComponentOrientation o) {
- ComponentOrientation oldOrientation;
- toolkit.lockAWT();
- try {
- oldOrientation = orientation;
- orientation = o;
- } finally {
- toolkit.unlockAWT();
- }
- firePropertyChange("componentOrientation", oldOrientation, orientation); //$NON-NLS-1$
- invalidate();
- }
-
- /**
- * Sets the specified cursor for this Component.
- *
- * @param cursor
- * the new Cursor.
- */
- public void setCursor(Cursor cursor) {
- toolkit.lockAWT();
- try {
- this.cursor = cursor;
- setCursor();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Set current cursor shape to Component's Cursor.
- */
- void setCursor() {
- if (isDisplayable() && isShowing()) {
- Rectangle absRect = new Rectangle(getLocationOnScreen(), getSize());
- Point absPointerPos = toolkit.dispatcher.mouseDispatcher.getPointerPos();
- // ???AWT
- /*
- * if (absRect.contains(absPointerPos)) { // set Cursor only on
- * top-level Windows(on X11) Window topLevelWnd =
- * getWindowAncestor(); if (topLevelWnd != null) { Point pointerPos
- * = MouseDispatcher.convertPoint(null, absPointerPos, topLevelWnd);
- * Component compUnderCursor =
- * topLevelWnd.findComponentAt(pointerPos); // if (compUnderCursor
- * == this || // compUnderCursor.getCursorAncestor() == this) {
- * NativeWindow wnd = topLevelWnd.getNativeWindow(); if
- * (compUnderCursor != null && wnd != null) {
- * compUnderCursor.getRealCursor().getNativeCursor()
- * .setCursor(wnd.getId()); } // } } }
- */
- }
- }
-
- /**
- * Gets the ancestor Cursor if Component is disabled (directly or via an
- * ancestor) even if Cursor is explicitly set.
- *
- * @param value
- * the value.
- * @return the actual Cursor to be displayed.
- */
- // ???AWT
- /*
- * Cursor getRealCursor() { Component cursorAncestor = getCursorAncestor();
- * return cursorAncestor != null ? cursorAncestor.getCursor() :
- * Cursor.getDefaultCursor(); }
- */
-
- /**
- * Gets the ancestor(or component itself) whose cursor is set when pointer
- * is inside component
- *
- * @return the actual Cursor to be displayed.
- */
- // ???AWT
- /*
- * Component getCursorAncestor() { Component comp; for (comp = this; comp !=
- * null; comp = comp.getParent()) { if (comp instanceof Window ||
- * comp.isCursorSet() && comp.isKeyEnabled()) { return comp; } } return
- * null; } public void setDropTarget(DropTarget dt) { toolkit.lockAWT(); try
- * { if (dropTarget == dt) { return; } DropTarget oldDropTarget =
- * dropTarget; dropTarget = dt; if (oldDropTarget != null) { if
- * (behaviour.isDisplayable()) { oldDropTarget.removeNotify(peer); }
- * oldDropTarget.setComponent(null); } if (dt != null) {
- * dt.setComponent(this); if (behaviour.isDisplayable()) {
- * dt.addNotify(peer); } } } finally { toolkit.unlockAWT(); } }
- */
-
- /**
- * Sets this component to the "enabled" or "disabled" state depending on the
- * specified boolean parameter.
- *
- * @param value
- * true if this component should be enabled; false if this
- * component should be disabled.
- */
- public void setEnabled(boolean value) {
- toolkit.lockAWT();
- try {
- enable(value);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Sets the enabled impl.
- *
- * @param value
- * the new enabled impl.
- */
- void setEnabledImpl(boolean value) {
- if (enabled != value) {
- enabled = value;
- setCursor();
- if (!enabled) {
- moveFocusOnHide();
- }
- behaviour.setEnabled(value);
- }
- }
-
- // ???AWT
- /*
- * private void fireAccessibleStateChange(AccessibleState state, boolean
- * value) { if (behaviour.isLightweight()) { return; } AccessibleContext ac
- * = getAccessibleContext(); if (ac != null) { AccessibleState oldValue =
- * null; AccessibleState newValue = null; if (value) { newValue = state; }
- * else { oldValue = state; }
- * ac.firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
- * oldValue, newValue); } }
- */
-
- // ???AWT
- /*
- * public void setFocusTraversalKeys(int id, Set<? extends AWTKeyStroke>
- * keystrokes) { Set<? extends AWTKeyStroke> oldTraversalKeys; String
- * propName = "FocusTraversalKeys"; //$NON-NLS-1$ toolkit.lockAWT(); try {
- * Integer kId = new Integer(id);
- * KeyboardFocusManager.checkTraversalKeysID(traversalKeys, kId);
- * Map<Integer, Set<? extends AWTKeyStroke>> keys = new HashMap<Integer,
- * Set<? extends AWTKeyStroke>>(); for (int kid : traversalIDs) { Integer
- * key = new Integer(kid); keys.put(key, getFocusTraversalKeys(kid)); }
- * KeyboardFocusManager.checkKeyStrokes(traversalIDs, keys, kId,
- * keystrokes); oldTraversalKeys = traversalKeys.get(new Integer(id)); //
- * put a copy of keystrokes object into map: Set<? extends AWTKeyStroke>
- * newKeys = keystrokes; if (keystrokes != null) { newKeys = new
- * HashSet<AWTKeyStroke>(keystrokes); } traversalKeys.put(kId, newKeys);
- * String direction = ""; //$NON-NLS-1$ switch (id) { case
- * KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS: direction = "forward";
- * //$NON-NLS-1$ break; case KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS:
- * direction = "backward"; //$NON-NLS-1$ break; case
- * KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS: direction = "upCycle";
- * //$NON-NLS-1$ break; case KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS:
- * direction = "downCycle"; //$NON-NLS-1$ break; } propName = direction +
- * propName; } finally { toolkit.unlockAWT(); } firePropertyChange(propName,
- * oldTraversalKeys, keystrokes); }
- */
-
- /**
- * Sets the focus traversal keys state for this component.
- *
- * @param value
- * true if the focus traversal keys state is enabled, false if
- * the focus traversal keys state is disabled.
- */
- public void setFocusTraversalKeysEnabled(boolean value) {
- boolean oldFocusTraversalKeysEnabled;
- toolkit.lockAWT();
- try {
- oldFocusTraversalKeysEnabled = focusTraversalKeysEnabled;
- focusTraversalKeysEnabled = value;
- } finally {
- toolkit.unlockAWT();
- }
- firePropertyChange("focusTraversalKeysEnabled", oldFocusTraversalKeysEnabled, //$NON-NLS-1$
- focusTraversalKeysEnabled);
- }
-
- // ???AWT
- /*
- * public void setFocusable(boolean focusable) { boolean oldFocusable;
- * toolkit.lockAWT(); try { calledSetFocusable = true; oldFocusable =
- * this.focusable; this.focusable = focusable; if (!focusable) {
- * moveFocus(); } } finally { toolkit.unlockAWT(); }
- * firePropertyChange("focusable", oldFocusable, focusable); //$NON-NLS-1$ }
- * public Font getFont() { toolkit.lockAWT(); try { return (font == null) &&
- * (parent != null) ? parent.getFont() : font; } finally {
- * toolkit.unlockAWT(); } }
- */
-
- /**
- * Sets the font for this Component.
- *
- * @param f
- * the new font of the Component.
- */
- public void setFont(Font f) {
- Font oldFont;
- toolkit.lockAWT();
- try {
- oldFont = font;
- setFontImpl(f);
- } finally {
- toolkit.unlockAWT();
- }
- firePropertyChange("font", oldFont, font); //$NON-NLS-1$
- }
-
- /**
- * Sets the font impl.
- *
- * @param f
- * the new font impl.
- */
- void setFontImpl(Font f) {
- font = f;
- invalidate();
- if (isShowing()) {
- repaint();
- }
- }
-
- /**
- * Invalidate the component if it inherits the font from the parent. This
- * method is overridden in Container.
- *
- * @return true if the component was invalidated, false otherwise.
- */
- boolean propagateFont() {
- if (font == null) {
- invalidate();
- return true;
- }
- return false;
- }
-
- /**
- * Sets the foreground color for this Component.
- *
- * @param c
- * the new foreground color.
- */
- public void setForeground(Color c) {
- Color oldFgColor;
- toolkit.lockAWT();
- try {
- oldFgColor = foreColor;
- foreColor = c;
- } finally {
- toolkit.unlockAWT();
- }
- firePropertyChange("foreground", oldFgColor, foreColor); //$NON-NLS-1$
- repaint();
- }
-
- /**
- * Sets the background color for the Component.
- *
- * @param c
- * the new background color for this component.
- */
- public void setBackground(Color c) {
- Color oldBkColor;
- toolkit.lockAWT();
- try {
- oldBkColor = backColor;
- backColor = c;
- } finally {
- toolkit.unlockAWT();
- }
- firePropertyChange("background", oldBkColor, backColor); //$NON-NLS-1$
- repaint();
- }
-
- /**
- * Sets the flag for whether paint messages received from the operating
- * system should be ignored or not.
- *
- * @param value
- * true if paint messages received from the operating system
- * should be ignored, false otherwise.
- */
- public void setIgnoreRepaint(boolean value) {
- toolkit.lockAWT();
- try {
- ignoreRepaint = value;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Sets the locale of the component.
- *
- * @param locale
- * the new Locale.
- */
- public void setLocale(Locale locale) {
- Locale oldLocale;
- toolkit.lockAWT();
- try {
- oldLocale = this.locale;
- this.locale = locale;
- } finally {
- toolkit.unlockAWT();
- }
- firePropertyChange("locale", oldLocale, locale); //$NON-NLS-1$
- }
-
- /**
- * Sets the location of the Component to the specified point.
- *
- * @param p
- * the new location of the Component.
- */
- public void setLocation(Point p) {
- toolkit.lockAWT();
- try {
- setLocation(p.x, p.y);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Sets the location of the Component to the specified x, y coordinates.
- *
- * @param x
- * the x coordinate.
- * @param y
- * the y coordinate.
- */
- public void setLocation(int x, int y) {
- toolkit.lockAWT();
- try {
- move(x, y);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Sets the visibility state of the component.
- *
- * @param b
- * true if the component is visible, false if the component is
- * not shown.
- */
- public void setVisible(boolean b) {
- // show() & hide() are not deprecated for Window,
- // so have to call them from setVisible()
- show(b);
- }
-
- /**
- * Deprecated: replaced by setVisible(boolean) method.
- *
- * @deprecated Replaced by setVisible(boolean) method.
- */
- @Deprecated
- public void show() {
- toolkit.lockAWT();
- try {
- if (visible) {
- return;
- }
- prepare4HierarchyChange();
- mapToDisplay(true);
- validate();
- visible = true;
- behaviour.setVisible(true);
- postEvent(new ComponentEvent(this, ComponentEvent.COMPONENT_SHOWN));
- // ???AWT: finishHierarchyChange(this, parent, 0);
- notifyInputMethod(new Rectangle(x, y, w, h));
- // ???AWT: invalidateRealParent();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Deprecated: replaced by setVisible(boolean) method.
- *
- * @param b
- * the visibility's state.
- * @deprecated Replaced by setVisible(boolean) method.
- */
- @Deprecated
- public void show(boolean b) {
- if (b) {
- show();
- } else {
- hide();
- }
- }
-
- // ???AWT
- /*
- * void transferFocus(int dir) { Container root = null; if (this instanceof
- * Container) { Container cont = (Container) this; if
- * (cont.isFocusCycleRoot()) { root = cont.getFocusTraversalRoot(); } } if
- * (root == null) { root = getFocusCycleRootAncestor(); } // transfer focus
- * up cycle if root is unreachable Component comp = this; while ((root !=
- * null) && !(root.isFocusCycleRoot() && root.isShowing() &&
- * root.isEnabled() && root .isFocusable())) { comp = root; root =
- * root.getFocusCycleRootAncestor(); } if (root == null) { return; }
- * FocusTraversalPolicy policy = root.getFocusTraversalPolicy(); Component
- * nextComp = null; switch (dir) { case
- * KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS: nextComp =
- * policy.getComponentAfter(root, comp); break; case
- * KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS: nextComp =
- * policy.getComponentBefore(root, comp); break; } if (nextComp != null) {
- * nextComp.requestFocus(false); } } public void transferFocus() {
- * toolkit.lockAWT(); try { nextFocus(); } finally { toolkit.unlockAWT(); }
- * } public void transferFocusBackward() { toolkit.lockAWT(); try {
- * transferFocus(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS); } finally {
- * toolkit.unlockAWT(); } } public void transferFocusUpCycle() {
- * toolkit.lockAWT(); try { KeyboardFocusManager kfm =
- * KeyboardFocusManager.getCurrentKeyboardFocusManager(); Container root =
- * kfm.getCurrentFocusCycleRoot(); if(root == null) { return; } boolean
- * success = false; Component nextComp = null; Container newRoot = root; do
- * { nextComp = newRoot instanceof Window ?
- * newRoot.getFocusTraversalPolicy() .getDefaultComponent(newRoot) :
- * newRoot; newRoot = newRoot.getFocusCycleRootAncestor(); if (nextComp ==
- * null) { break; } success = nextComp.requestFocusInWindow(); if (newRoot
- * == null) { break; } kfm.setGlobalCurrentFocusCycleRoot(newRoot); } while
- * (!success); if (!success && root != newRoot) {
- * kfm.setGlobalCurrentFocusCycleRoot(root); } } finally {
- * toolkit.unlockAWT(); } }
- */
-
- /**
- * Validates that this component has a valid layout.
- */
- public void validate() {
- toolkit.lockAWT();
- try {
- if (!behaviour.isDisplayable()) {
- return;
- }
- validateImpl();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Validate impl.
- */
- void validateImpl() {
- valid = true;
- }
-
- /**
- * Gets the native window.
- *
- * @return the native window.
- */
- NativeWindow getNativeWindow() {
- return behaviour.getNativeWindow();
- }
-
- /**
- * Checks whether or not a maximum size is set for the Component.
- *
- * @return true, if the maximum size is set for the Component, false
- * otherwise.
- */
- public boolean isMaximumSizeSet() {
- toolkit.lockAWT();
- try {
- return maximumSize != null;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks whether or not the minimum size is set for the component.
- *
- * @return true, if the minimum size is set for the component, false
- * otherwise.
- */
- public boolean isMinimumSizeSet() {
- toolkit.lockAWT();
- try {
- return minimumSize != null;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Checks whether or not the preferred size is set for the Component.
- *
- * @return true, if the preferred size is set for the Component, false
- * otherwise.
- */
- public boolean isPreferredSizeSet() {
- toolkit.lockAWT();
- try {
- return preferredSize != null;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the maximum size of the Component.
- *
- * @return the maximum size of the Component.
- */
- public Dimension getMaximumSize() {
- toolkit.lockAWT();
- try {
- return isMaximumSizeSet() ? new Dimension(maximumSize) : new Dimension(Short.MAX_VALUE,
- Short.MAX_VALUE);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the minimum size of the Component.
- *
- * @return the minimum size of the Component.
- */
- public Dimension getMinimumSize() {
- toolkit.lockAWT();
- try {
- return minimumSize();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Deprecated: replaced by getMinimumSize() method.
- *
- * @return the Dimension.
- * @deprecated Replaced by getMinimumSize() method.
- */
- @Deprecated
- public Dimension minimumSize() {
- toolkit.lockAWT();
- try {
- if (isMinimumSizeSet()) {
- return (Dimension)minimumSize.clone();
- }
- Dimension defSize = getDefaultMinimumSize();
- if (defSize != null) {
- return (Dimension)defSize.clone();
- }
- return isDisplayable() ? new Dimension(1, 1) : new Dimension(w, h);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets the preferred size of the Component.
- *
- * @return the preferred size of the Component.
- */
- public Dimension getPreferredSize() {
- toolkit.lockAWT();
- try {
- return preferredSize();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Deprecated: replaced by getPreferredSize() method.
- *
- * @return the Dimension.
- * @deprecated Replaced by getPreferredSize() method.
- */
- @Deprecated
- public Dimension preferredSize() {
- toolkit.lockAWT();
- try {
- if (isPreferredSizeSet()) {
- return new Dimension(preferredSize);
- }
- Dimension defSize = getDefaultPreferredSize();
- if (defSize != null) {
- return new Dimension(defSize);
- }
- return new Dimension(getMinimumSize());
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Sets the maximum size of the Component.
- *
- * @param maximumSize
- * the new maximum size of the Component.
- */
- public void setMaximumSize(Dimension maximumSize) {
- Dimension oldMaximumSize;
- toolkit.lockAWT();
- try {
- oldMaximumSize = this.maximumSize;
- if (oldMaximumSize != null) {
- oldMaximumSize = oldMaximumSize.getSize();
- }
- if (this.maximumSize == null) {
- if (maximumSize != null) {
- this.maximumSize = new Dimension(maximumSize);
- }
- } else {
- if (maximumSize != null) {
- this.maximumSize.setSize(maximumSize);
- } else {
- this.maximumSize = null;
- }
- }
- } finally {
- toolkit.unlockAWT();
- }
- firePropertyChange("maximumSize", oldMaximumSize, this.maximumSize); //$NON-NLS-1$
- toolkit.lockAWT();
- try {
- // ???AWT: invalidateRealParent();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Sets the minimum size of the Component.
- *
- * @param minimumSize
- * the new minimum size of the Component.
- */
- public void setMinimumSize(Dimension minimumSize) {
- Dimension oldMinimumSize;
- toolkit.lockAWT();
- try {
- oldMinimumSize = this.minimumSize;
- if (oldMinimumSize != null) {
- oldMinimumSize = oldMinimumSize.getSize();
- }
- if (this.minimumSize == null) {
- if (minimumSize != null) {
- this.minimumSize = new Dimension(minimumSize);
- }
- } else {
- if (minimumSize != null) {
- this.minimumSize.setSize(minimumSize);
- } else {
- this.minimumSize = null;
- }
- }
- } finally {
- toolkit.unlockAWT();
- }
- firePropertyChange("minimumSize", oldMinimumSize, this.minimumSize); //$NON-NLS-1$
- toolkit.lockAWT();
- try {
- // ???AWT: invalidateRealParent();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Sets the preferred size of the Component.
- *
- * @param preferredSize
- * the new preferred size of the Component.
- */
- public void setPreferredSize(Dimension preferredSize) {
- Dimension oldPreferredSize;
- toolkit.lockAWT();
- try {
- oldPreferredSize = this.preferredSize;
- if (oldPreferredSize != null) {
- oldPreferredSize = oldPreferredSize.getSize();
- }
- if (this.preferredSize == null) {
- if (preferredSize != null) {
- this.preferredSize = new Dimension(preferredSize);
- }
- } else {
- if (preferredSize != null) {
- this.preferredSize.setSize(preferredSize);
- } else {
- this.preferredSize = null;
- }
- }
- } finally {
- toolkit.unlockAWT();
- }
- firePropertyChange("preferredSize", oldPreferredSize, this.preferredSize); //$NON-NLS-1$
- toolkit.lockAWT();
- try {
- // ???AWT: invalidateRealParent();
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- // ???AWT
- /*
- * RedrawManager getRedrawManager() { if (parent == null) { return null; }
- * return parent.getRedrawManager(); }
- */
-
- /**
- * Checks if is focusability explicitly set.
- *
- * @return true if component has a focusable peer.
- */
- // ???AWT
- /*
- * boolean isPeerFocusable() { // The recommendations for Windows and Unix
- * are that // Canvases, Labels, Panels, Scrollbars, ScrollPanes, Windows,
- * // and lightweight Components have non-focusable peers, // and all other
- * Components have focusable peers. if (this instanceof Canvas || this
- * instanceof Label || this instanceof Panel || this instanceof Scrollbar ||
- * this instanceof ScrollPane || this instanceof Window || isLightweight())
- * { return false; } return true; }
- */
-
- /**
- * @return true if focusability was explicitly set via a call to
- * setFocusable() or via overriding isFocusable() or
- * isFocusTraversable().
- */
- boolean isFocusabilityExplicitlySet() {
- return calledSetFocusable || overridenIsFocusable;
- }
-
- /**
- * Paints the component and all of its subcomponents.
- *
- * @param g
- * the Graphics to be used for painting.
- */
- public void paintAll(Graphics g) {
- toolkit.lockAWT();
- try {
- paint(g);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Updates this Component.
- *
- * @param g
- * the Graphics to be used for updating.
- */
- public void update(Graphics g) {
- toolkit.lockAWT();
- try {
- if (!isLightweight() && !isPrepainter()) {
- g.setColor(getBackground());
- g.fillRect(0, 0, w, h);
- g.setColor(getForeground());
- }
- paint(g);
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Paints this component.
- *
- * @param g
- * the Graphics to be used for painting.
- */
- public void paint(Graphics g) {
- toolkit.lockAWT();
- try {
- // Just to nothing
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Prepares the component to be painted.
- *
- * @param g
- * the Graphics to be used for painting.
- */
- void prepaint(Graphics g) {
- // Just to nothing. For overriding.
- }
-
- /**
- * Checks if is prepainter.
- *
- * @return true, if is prepainter.
- */
- boolean isPrepainter() {
- return false;
- }
-
- /**
- * Prepare4 hierarchy change.
- */
- void prepare4HierarchyChange() {
- if (hierarchyChangingCounter++ == 0) {
- wasShowing = isShowing();
- wasDisplayable = isDisplayable();
- prepareChildren4HierarchyChange();
- }
- }
-
- /**
- * Prepare children4 hierarchy change.
- */
- void prepareChildren4HierarchyChange() {
- // To be inherited by Container
- }
-
- // ???AWT
- /*
- * void finishHierarchyChange(Component changed, Container changedParent,
- * int ancestorFlags) { if (--hierarchyChangingCounter == 0) { int
- * changeFlags = ancestorFlags; if (wasShowing != isShowing()) { changeFlags
- * |= HierarchyEvent.SHOWING_CHANGED; } if (wasDisplayable !=
- * isDisplayable()) { changeFlags |= HierarchyEvent.DISPLAYABILITY_CHANGED;
- * } if (changeFlags > 0) { postEvent(new HierarchyEvent(this,
- * HierarchyEvent.HIERARCHY_CHANGED, changed, changedParent, changeFlags));
- * } finishChildrenHierarchyChange(changed, changedParent, ancestorFlags); }
- * } void finishChildrenHierarchyChange(Component changed, Container
- * changedParent, int ancestorFlags) { // To be inherited by Container }
- * void postHierarchyBoundsEvents(Component changed, int id) { postEvent(new
- * HierarchyEvent(this, id, changed, null, 0)); }
- */
-
- /**
- * Spread hierarchy bounds events.
- *
- * @param changed
- * the changed.
- * @param id
- * the id.
- */
- void spreadHierarchyBoundsEvents(Component changed, int id) {
- // To be inherited by Container
- }
-
- /**
- * Dispatches an event to this component.
- *
- * @param e
- * the Event.
- */
- public final void dispatchEvent(AWTEvent e) {
- // ???AWT
- /*
- * if (e.isConsumed()) { return; } if (e instanceof PaintEvent) {
- * toolkit.dispatchAWTEvent(e); processPaintEvent((PaintEvent) e);
- * return; } KeyboardFocusManager kfm =
- * KeyboardFocusManager.getCurrentKeyboardFocusManager(); if
- * (!e.dispatchedByKFM && kfm.dispatchEvent(e)) { return; } if (e
- * instanceof KeyEvent) { KeyEvent ke = (KeyEvent) e; // consumes
- * KeyEvent which represents a focus traversal key if
- * (getFocusTraversalKeysEnabled()) { kfm.processKeyEvent(this, ke); if
- * (ke.isConsumed()) { return; } } } if (inputMethodsEnabled &&
- * dispatchToIM && e.isPosted && dispatchEventToIM(e)) { return; } if
- * (e.getID() == WindowEvent.WINDOW_ICONIFIED) {
- * notifyInputMethod(null); } AWTEvent.EventDescriptor descriptor =
- * toolkit.eventTypeLookup.getEventDescriptor(e);
- * toolkit.dispatchAWTEvent(e); if (descriptor != null) { if
- * (isEventEnabled(descriptor.eventMask) ||
- * (getListeners(descriptor.listenerType).length > 0)) {
- * processEvent(e); } // input events can be consumed by user listeners:
- * if (!e.isConsumed() && ((enabledAWTEvents & descriptor.eventMask) !=
- * 0)) { postprocessEvent(e, descriptor.eventMask); } }
- * postDeprecatedEvent(e);
- */
- }
-
- /**
- * Post deprecated event.
- *
- * @param e
- * the e.
- */
- private void postDeprecatedEvent(AWTEvent e) {
- if (deprecatedEventHandler) {
- Event evt = e.getEvent();
- if (evt != null) {
- postEvent(evt);
- }
- }
- }
-
- /**
- * Postprocess event.
- *
- * @param e
- * the e.
- * @param eventMask
- * the event mask.
- */
- void postprocessEvent(AWTEvent e, long eventMask) {
- toolkit.lockAWT();
- try {
- // call system listeners under AWT lock
- if (eventMask == AWTEvent.FOCUS_EVENT_MASK) {
- preprocessFocusEvent((FocusEvent)e);
- } else if (eventMask == AWTEvent.KEY_EVENT_MASK) {
- preprocessKeyEvent((KeyEvent)e);
- } else if (eventMask == AWTEvent.MOUSE_EVENT_MASK) {
- preprocessMouseEvent((MouseEvent)e);
- } else if (eventMask == AWTEvent.MOUSE_MOTION_EVENT_MASK) {
- preprocessMouseMotionEvent((MouseEvent)e);
- } else if (eventMask == AWTEvent.COMPONENT_EVENT_MASK) {
- preprocessComponentEvent((ComponentEvent)e);
- } else if (eventMask == AWTEvent.MOUSE_WHEEL_EVENT_MASK) {
- preprocessMouseWheelEvent((MouseWheelEvent)e);
- } else if (eventMask == AWTEvent.INPUT_METHOD_EVENT_MASK) {
- preprocessInputMethodEvent((InputMethodEvent)e);
- }
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Preprocess input method event.
- *
- * @param e
- * the e.
- */
- private void preprocessInputMethodEvent(InputMethodEvent e) {
- processInputMethodEventImpl(e, inputMethodListeners.getSystemListeners());
- }
-
- /**
- * Preprocess mouse wheel event.
- *
- * @param e
- * the e.
- */
- private void preprocessMouseWheelEvent(MouseWheelEvent e) {
- processMouseWheelEventImpl(e, mouseWheelListeners.getSystemListeners());
- }
-
- /**
- * Process mouse wheel event impl.
- *
- * @param e
- * the e.
- * @param c
- * the c.
- */
- private void processMouseWheelEventImpl(MouseWheelEvent e, Collection<MouseWheelListener> c) {
- for (MouseWheelListener listener : c) {
- switch (e.getID()) {
- case MouseEvent.MOUSE_WHEEL:
- listener.mouseWheelMoved(e);
- break;
- }
- }
- }
-
- /**
- * Preprocess component event.
- *
- * @param e
- * the e.
- */
- private void preprocessComponentEvent(ComponentEvent e) {
- processComponentEventImpl(e, componentListeners.getSystemListeners());
- }
-
- /**
- * Preprocess mouse motion event.
- *
- * @param e
- * the e.
- */
- void preprocessMouseMotionEvent(MouseEvent e) {
- processMouseMotionEventImpl(e, mouseMotionListeners.getSystemListeners());
- }
-
- /**
- * Preprocess mouse event.
- *
- * @param e
- * the e
- */
- void preprocessMouseEvent(MouseEvent e) {
- processMouseEventImpl(e, mouseListeners.getSystemListeners());
- }
-
- /**
- * Preprocess key event.
- *
- * @param e
- * the e.
- */
- void preprocessKeyEvent(KeyEvent e) {
- processKeyEventImpl(e, keyListeners.getSystemListeners());
- }
-
- /**
- * Preprocess focus event.
- *
- * @param e
- * the e.
- */
- void preprocessFocusEvent(FocusEvent e) {
- processFocusEventImpl(e, focusListeners.getSystemListeners());
- }
-
- /**
- * Processes AWTEvent occurred on this component.
- *
- * @param e
- * the AWTEvent.
- */
- protected void processEvent(AWTEvent e) {
- long eventMask = toolkit.eventTypeLookup.getEventMask(e);
- if (eventMask == AWTEvent.COMPONENT_EVENT_MASK) {
- processComponentEvent((ComponentEvent)e);
- } else if (eventMask == AWTEvent.FOCUS_EVENT_MASK) {
- processFocusEvent((FocusEvent)e);
- } else if (eventMask == AWTEvent.KEY_EVENT_MASK) {
- processKeyEvent((KeyEvent)e);
- } else if (eventMask == AWTEvent.MOUSE_EVENT_MASK) {
- processMouseEvent((MouseEvent)e);
- } else if (eventMask == AWTEvent.MOUSE_WHEEL_EVENT_MASK) {
- processMouseWheelEvent((MouseWheelEvent)e);
- } else if (eventMask == AWTEvent.MOUSE_MOTION_EVENT_MASK) {
- processMouseMotionEvent((MouseEvent)e);
- } else if (eventMask == AWTEvent.HIERARCHY_EVENT_MASK) {
- processHierarchyEvent((HierarchyEvent)e);
- } else if (eventMask == AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK) {
- processHierarchyBoundsEvent((HierarchyEvent)e);
- } else if (eventMask == AWTEvent.INPUT_METHOD_EVENT_MASK) {
- processInputMethodEvent((InputMethodEvent)e);
- }
- }
-
- /**
- * Gets an array of all listener's objects based on the specified listener
- * type and registered to this Component.
- *
- * @param listenerType
- * the listener type.
- * @return an array of all listener's objects based on the specified
- * listener type and registered to this Component.
- */
- @SuppressWarnings("unchecked")
- public <T extends EventListener> T[] getListeners(Class<T> listenerType) {
- if (ComponentListener.class.isAssignableFrom(listenerType)) {
- return (T[])getComponentListeners();
- } else if (FocusListener.class.isAssignableFrom(listenerType)) {
- return (T[])getFocusListeners();
- } else if (HierarchyBoundsListener.class.isAssignableFrom(listenerType)) {
- return (T[])getHierarchyBoundsListeners();
- } else if (HierarchyListener.class.isAssignableFrom(listenerType)) {
- return (T[])getHierarchyListeners();
- } else if (InputMethodListener.class.isAssignableFrom(listenerType)) {
- return (T[])getInputMethodListeners();
- } else if (KeyListener.class.isAssignableFrom(listenerType)) {
- return (T[])getKeyListeners();
- } else if (MouseWheelListener.class.isAssignableFrom(listenerType)) {
- return (T[])getMouseWheelListeners();
- } else if (MouseMotionListener.class.isAssignableFrom(listenerType)) {
- return (T[])getMouseMotionListeners();
- } else if (MouseListener.class.isAssignableFrom(listenerType)) {
- return (T[])getMouseListeners();
- } else if (PropertyChangeListener.class.isAssignableFrom(listenerType)) {
- return (T[])getPropertyChangeListeners();
- }
- return (T[])Array.newInstance(listenerType, 0);
- }
-
- /**
- * Process paint event.
- *
- * @param event
- * the event.
- */
- private void processPaintEvent(PaintEvent event) {
- if (redrawManager == null) {
- return;
- }
- Rectangle clipRect = event.getUpdateRect();
- if ((clipRect.width <= 0) || (clipRect.height <= 0)) {
- return;
- }
- Graphics g = getGraphics();
- if (g == null) {
- return;
- }
- initGraphics(g, event);
- if (!getIgnoreRepaint()) {
- if (event.getID() == PaintEvent.PAINT) {
- paint(g);
- } else {
- update(g);
- }
- }
- g.dispose();
- }
-
- /**
- * Inits the graphics.
- *
- * @param g
- * the g.
- * @param e
- * the e.
- */
- void initGraphics(Graphics g, PaintEvent e) {
- Rectangle clip = e.getUpdateRect();
- if (clip instanceof ClipRegion) {
- g.setClip(((ClipRegion)clip).getClip());
- } else {
- g.setClip(clip);
- }
- if (isPrepainter()) {
- prepaint(g);
- } else if (!isLightweight() && (e.getID() == PaintEvent.PAINT)) {
- g.setColor(getBackground());
- g.fillRect(0, 0, w, h);
- }
- g.setFont(getFont());
- g.setColor(getForeground());
- }
-
- /**
- * Enables the events with the specified event mask to be delivered to this
- * component.
- *
- * @param eventsToEnable
- * the events mask which specifies the types of events to enable.
- */
- protected final void enableEvents(long eventsToEnable) {
- toolkit.lockAWT();
- try {
- enabledEvents |= eventsToEnable;
- deprecatedEventHandler = false;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Enable awt events.
- *
- * @param eventsToEnable
- * the events to enable.
- */
- private void enableAWTEvents(long eventsToEnable) {
- enabledAWTEvents |= eventsToEnable;
- }
-
- /**
- * Disables the events with types specified by the specified event mask from
- * being delivered to this component.
- *
- * @param eventsToDisable
- * the event mask specifying the event types.
- */
- protected final void disableEvents(long eventsToDisable) {
- toolkit.lockAWT();
- try {
- enabledEvents &= ~eventsToDisable;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /*
- * For use in MouseDispatcher only. Really it checks not only mouse events.
- */
- /**
- * Checks if is mouse event enabled.
- *
- * @param eventMask
- * the event mask.
- * @return true, if is mouse event enabled.
- */
- boolean isMouseEventEnabled(long eventMask) {
- return (isEventEnabled(eventMask) || (enabledAWTEvents & eventMask) != 0);
- }
-
- /**
- * Checks if is event enabled.
- *
- * @param eventMask
- * the event mask.
- * @return true, if is event enabled.
- */
- boolean isEventEnabled(long eventMask) {
- return ((enabledEvents & eventMask) != 0);
- }
-
- /**
- * Enables or disables input method support for this component.
- *
- * @param enable
- * true to enable input method support, false to disable it.
- */
- public void enableInputMethods(boolean enable) {
- toolkit.lockAWT();
- try {
- if (!enable) {
- removeNotifyInputContext();
- }
- inputMethodsEnabled = enable;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- /**
- * Gets an array of all component's listeners registered for this component.
- *
- * @return an array of all component's listeners registered for this
- * component.
- */
- public ComponentListener[] getComponentListeners() {
- return componentListeners.getUserListeners(new ComponentListener[0]);
- }
-
- /**
- * Adds the specified component listener to the Component for receiving
- * component's event.
- *
- * @param l
- * the ComponentListener.
- */
- public void addComponentListener(ComponentListener l) {
- componentListeners.addUserListener(l);
- }
-
- /**
- * Removes the component listener registered for this Component.
- *
- * @param l
- * the ComponentListener.
- */
- public void removeComponentListener(ComponentListener l) {
- componentListeners.removeUserListener(l);
- }
-
- /**
- * Processes a component event that has occurred on this component by
- * dispatching them to any registered ComponentListener objects.
- *
- * @param e
- * the ComponentEvent.
- */
- protected void processComponentEvent(ComponentEvent e) {
- processComponentEventImpl(e, componentListeners.getUserListeners());
- }
-
- /**
- * Process component event impl.
- *
- * @param e
- * the e.
- * @param c
- * the c.
- */
- private void processComponentEventImpl(ComponentEvent e, Collection<ComponentListener> c) {
- for (ComponentListener listener : c) {
- switch (e.getID()) {
- case ComponentEvent.COMPONENT_HIDDEN:
- listener.componentHidden(e);
- break;
- case ComponentEvent.COMPONENT_MOVED:
- listener.componentMoved(e);
- break;
- case ComponentEvent.COMPONENT_RESIZED:
- listener.componentResized(e);
- break;
- case ComponentEvent.COMPONENT_SHOWN:
- listener.componentShown(e);
- break;
- }
- }
- }
-
- /**
- * Gets an array of focus listeners registered for this Component.
- *
- * @return the array of focus listeners registered for this Component.
- */
- public FocusListener[] getFocusListeners() {
- return focusListeners.getUserListeners(new FocusListener[0]);
- }
-
- /**
- * Adds the specified focus listener to the Component for receiving focus
- * events.
- *
- * @param l
- * the FocusListener.
- */
- public void addFocusListener(FocusListener l) {
- focusListeners.addUserListener(l);
- }
-
- /**
- * Adds the awt focus listener.
- *
- * @param l
- * the l.
- */
- void addAWTFocusListener(FocusListener l) {
- enableAWTEvents(AWTEvent.FOCUS_EVENT_MASK);
- focusListeners.addSystemListener(l);
- }
-
- /**
- * Removes the focus listener registered for this Component.
- *
- * @param l
- * the FocusListener.
- */
- public void removeFocusListener(FocusListener l) {
- focusListeners.removeUserListener(l);
- }
-
- /**
- * Processes a FocusEvent that has occurred on this component by dispatching
- * it to the registered listeners.
- *
- * @param e
- * the FocusEvent.
- */
- protected void processFocusEvent(FocusEvent e) {
- processFocusEventImpl(e, focusListeners.getUserListeners());
- }
-
- /**
- * Process focus event impl.
- *
- * @param e
- * the e.
- * @param c
- * the c.
- */
- private void processFocusEventImpl(FocusEvent e, Collection<FocusListener> c) {
- for (FocusListener listener : c) {
- switch (e.getID()) {
- case FocusEvent.FOCUS_GAINED:
- listener.focusGained(e);
- break;
- case FocusEvent.FOCUS_LOST:
- listener.focusLost(e);
- break;
- }
- }
- }
-
- /**
- * Gets an array of registered HierarchyListeners for this Component.
- *
- * @return an array of registered HierarchyListeners for this Component.
- */
- public HierarchyListener[] getHierarchyListeners() {
- return hierarchyListeners.getUserListeners(new HierarchyListener[0]);
- }
-
- /**
- * Adds the specified hierarchy listener.
- *
- * @param l
- * the HierarchyListener.
- */
- public void addHierarchyListener(HierarchyListener l) {
- hierarchyListeners.addUserListener(l);
- }
-
- /**
- * Removes the hierarchy listener registered for this component.
- *
- * @param l
- * the HierarchyListener.
- */
- public void removeHierarchyListener(HierarchyListener l) {
- hierarchyListeners.removeUserListener(l);
- }
-
- /**
- * Processes a hierarchy event that has occurred on this component by
- * dispatching it to the registered listeners.
- *
- * @param e
- * the HierarchyEvent.
- */
- protected void processHierarchyEvent(HierarchyEvent e) {
- for (HierarchyListener listener : hierarchyListeners.getUserListeners()) {
- switch (e.getID()) {
- case HierarchyEvent.HIERARCHY_CHANGED:
- listener.hierarchyChanged(e);
- break;
- }
- }
- }
-
- /**
- * Gets an array of HierarchyBoundsListener objects registered to this
- * Component.
- *
- * @return an array of HierarchyBoundsListener objects.
- */
- public HierarchyBoundsListener[] getHierarchyBoundsListeners() {
- return hierarchyBoundsListeners.getUserListeners(new HierarchyBoundsListener[0]);
- }
-
- /**
- * Adds the specified hierarchy bounds listener.
- *
- * @param l
- * the HierarchyBoundsListener.
- */
- public void addHierarchyBoundsListener(HierarchyBoundsListener l) {
- hierarchyBoundsListeners.addUserListener(l);
- }
-
- /**
- * Removes the hierarchy bounds listener registered for this Component.
- *
- * @param l
- * the HierarchyBoundsListener.
- */
- public void removeHierarchyBoundsListener(HierarchyBoundsListener l) {
- hierarchyBoundsListeners.removeUserListener(l);
- }
-
- /**
- * Processes a hierarchy bounds event that has occurred on this component by
- * dispatching it to the registered listeners.
- *
- * @param e
- * the HierarchyBoundsEvent.
- */
- protected void processHierarchyBoundsEvent(HierarchyEvent e) {
- for (HierarchyBoundsListener listener : hierarchyBoundsListeners.getUserListeners()) {
- switch (e.getID()) {
- case HierarchyEvent.ANCESTOR_MOVED:
- listener.ancestorMoved(e);
- break;
- case HierarchyEvent.ANCESTOR_RESIZED:
- listener.ancestorResized(e);
- break;
- }
- }
- }
-
- /**
- * Gets an array of the key listeners registered to the Component.
- *
- * @return an array of the key listeners registered to the Component.
- */
- public KeyListener[] getKeyListeners() {
- return keyListeners.getUserListeners(new KeyListener[0]);
- }
-
- /**
- * Adds the specified key listener.
- *
- * @param l
- * the KeyListener.
- */
- public void addKeyListener(KeyListener l) {
- keyListeners.addUserListener(l);
- }
-
- /**
- * Adds the awt key listener.
- *
- * @param l
- * the l.
- */
- void addAWTKeyListener(KeyListener l) {
- enableAWTEvents(AWTEvent.KEY_EVENT_MASK);
- keyListeners.addSystemListener(l);
- }
-
- /**
- * Removes the key listener registered for this Component.
- *
- * @param l
- * the KeyListener.
- */
- public void removeKeyListener(KeyListener l) {
- keyListeners.removeUserListener(l);
- }
-
- /**
- * Processes a key event that has occurred on this component by dispatching
- * it to the registered listeners.
- *
- * @param e
- * the KeyEvent.
- */
- protected void processKeyEvent(KeyEvent e) {
- processKeyEventImpl(e, keyListeners.getUserListeners());
- }
-
- /**
- * Process key event impl.
- *
- * @param e
- * the e.
- * @param c
- * the c.
- */
- private void processKeyEventImpl(KeyEvent e, Collection<KeyListener> c) {
- for (KeyListener listener : c) {
- switch (e.getID()) {
- case KeyEvent.KEY_PRESSED:
- listener.keyPressed(e);
- break;
- case KeyEvent.KEY_RELEASED:
- listener.keyReleased(e);
- break;
- case KeyEvent.KEY_TYPED:
- listener.keyTyped(e);
- break;
- }
- }
- }
-
- /**
- * Gets an array of the mouse listeners registered to the Component.
- *
- * @return an array of the mouse listeners registered to the Component.
- */
- public MouseListener[] getMouseListeners() {
- return mouseListeners.getUserListeners(new MouseListener[0]);
- }
-
- /**
- * Adds the specified mouse listener.
- *
- * @param l
- * the MouseListener.
- */
- public void addMouseListener(MouseListener l) {
- mouseListeners.addUserListener(l);
- }
-
- /**
- * Adds the awt mouse listener.
- *
- * @param l
- * the l.
- */
- void addAWTMouseListener(MouseListener l) {
- enableAWTEvents(AWTEvent.MOUSE_EVENT_MASK);
- mouseListeners.addSystemListener(l);
- }
-
- /**
- * Adds the awt mouse motion listener.
- *
- * @param l
- * the l.
- */
- void addAWTMouseMotionListener(MouseMotionListener l) {
- enableAWTEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK);
- mouseMotionListeners.addSystemListener(l);
- }
-
- /**
- * Adds the awt component listener.
- *
- * @param l
- * the l.
- */
- void addAWTComponentListener(ComponentListener l) {
- enableAWTEvents(AWTEvent.COMPONENT_EVENT_MASK);
- componentListeners.addSystemListener(l);
- }
-
- /**
- * Adds the awt input method listener.
- *
- * @param l
- * the l.
- */
- void addAWTInputMethodListener(InputMethodListener l) {
- enableAWTEvents(AWTEvent.INPUT_METHOD_EVENT_MASK);
- inputMethodListeners.addSystemListener(l);
- }
-
- /**
- * Adds the awt mouse wheel listener.
- *
- * @param l
- * the l.
- */
- void addAWTMouseWheelListener(MouseWheelListener l) {
- enableAWTEvents(AWTEvent.MOUSE_WHEEL_EVENT_MASK);
- mouseWheelListeners.addSystemListener(l);
- }
-
- /**
- * Removes the mouse listener registered for this Component.
- *
- * @param l
- * the MouseListener.
- */
- public void removeMouseListener(MouseListener l) {
- mouseListeners.removeUserListener(l);
- }
-
- /**
- * Processes a mouse event that has occurred on this component by
- * dispatching it to the registered listeners.
- *
- * @param e
- * the MouseEvent.
- */
- protected void processMouseEvent(MouseEvent e) {
- processMouseEventImpl(e, mouseListeners.getUserListeners());
- }
-
- /**
- * Process mouse event impl.
- *
- * @param e
- * the e.
- * @param c
- * the c.
- */
- private void processMouseEventImpl(MouseEvent e, Collection<MouseListener> c) {
- for (MouseListener listener : c) {
- switch (e.getID()) {
- case MouseEvent.MOUSE_CLICKED:
- listener.mouseClicked(e);
- break;
- case MouseEvent.MOUSE_ENTERED:
- listener.mouseEntered(e);
- break;
- case MouseEvent.MOUSE_EXITED:
- listener.mouseExited(e);
- break;
- case MouseEvent.MOUSE_PRESSED:
- listener.mousePressed(e);
- break;
- case MouseEvent.MOUSE_RELEASED:
- listener.mouseReleased(e);
- break;
- }
- }
- }
-
- /**
- * Process mouse motion event impl.
- *
- * @param e
- * the e.
- * @param c
- * the c.
- */
- private void processMouseMotionEventImpl(MouseEvent e, Collection<MouseMotionListener> c) {
- for (MouseMotionListener listener : c) {
- switch (e.getID()) {
- case MouseEvent.MOUSE_DRAGGED:
- listener.mouseDragged(e);
- break;
- case MouseEvent.MOUSE_MOVED:
- listener.mouseMoved(e);
- break;
- }
- }
- }
-
- /**
- * Gets an array of the mouse motion listeners registered to the Component.
- *
- * @return an array of the MouseMotionListeners registered to the Component.
- */
- public MouseMotionListener[] getMouseMotionListeners() {
- return mouseMotionListeners.getUserListeners(new MouseMotionListener[0]);
- }
-
- /**
- * Adds the specified mouse motion listener.
- *
- * @param l
- * the MouseMotionListener.
- */
- public void addMouseMotionListener(MouseMotionListener l) {
- mouseMotionListeners.addUserListener(l);
- }
-
- /**
- * Removes the mouse motion listener registered for this component.
- *
- * @param l
- * the MouseMotionListener.
- */
- public void removeMouseMotionListener(MouseMotionListener l) {
- mouseMotionListeners.removeUserListener(l);
- }
-
- /**
- * Processes a mouse motion event that has occurred on this component by
- * dispatching it to the registered listeners.
- *
- * @param e
- * the MouseEvent.
- */
- protected void processMouseMotionEvent(MouseEvent e) {
- processMouseMotionEventImpl(e, mouseMotionListeners.getUserListeners());
- }
-
- /**
- * Gets an array of the mouse wheel listeners registered to the Component.
- *
- * @return an array of the MouseWheelListeners registered to the Component.
- */
- public MouseWheelListener[] getMouseWheelListeners() {
- return mouseWheelListeners.getUserListeners(new MouseWheelListener[0]);
- }
-
- /**
- * Adds the specified mouse wheel listener.
- *
- * @param l
- * the MouseWheelListener.
- */
- public void addMouseWheelListener(MouseWheelListener l) {
- mouseWheelListeners.addUserListener(l);
- }
-
- /**
- * Removes the mouse wheel listener registered for this component.
- *
- * @param l
- * the MouseWheelListener.
- */
- public void removeMouseWheelListener(MouseWheelListener l) {
- mouseWheelListeners.removeUserListener(l);
- }
-
- /**
- * Processes a mouse wheel event that has occurred on this component by
- * dispatching it to the registered listeners.
- *
- * @param e
- * the MouseWheelEvent.
- */
- protected void processMouseWheelEvent(MouseWheelEvent e) {
- processMouseWheelEventImpl(e, mouseWheelListeners.getUserListeners());
- }
-
- /**
- * Gets an array of the InputMethodListener listeners registered to the
- * Component.
- *
- * @return an array of the InputMethodListener listeners registered to the
- * Component.
- */
- public InputMethodListener[] getInputMethodListeners() {
- return inputMethodListeners.getUserListeners(new InputMethodListener[0]);
- }
-
- /**
- * Adds the specified input method listener.
- *
- * @param l
- * the InputMethodListener.
- */
- public void addInputMethodListener(InputMethodListener l) {
- inputMethodListeners.addUserListener(l);
- }
-
- /**
- * Removes the input method listener registered for this component.
- *
- * @param l
- * the InputMethodListener.
- */
- public void removeInputMethodListener(InputMethodListener l) {
- inputMethodListeners.removeUserListener(l);
- }
-
- /**
- * Processes an input method event that has occurred on this component by
- * dispatching it to the registered listeners.
- *
- * @param e
- * the InputMethodEvent.
- */
- protected void processInputMethodEvent(InputMethodEvent e) {
- processInputMethodEventImpl(e, inputMethodListeners.getUserListeners());
- }
-
- /**
- * Process input method event impl.
- *
- * @param e
- * the e.
- * @param c
- * the c.
- */
- private void processInputMethodEventImpl(InputMethodEvent e, Collection<InputMethodListener> c) {
- for (InputMethodListener listener : c) {
- switch (e.getID()) {
- case InputMethodEvent.CARET_POSITION_CHANGED:
- listener.caretPositionChanged(e);
- break;
- case InputMethodEvent.INPUT_METHOD_TEXT_CHANGED:
- listener.inputMethodTextChanged(e);
- break;
- }
- }
- }
-
- // ???AWT
- /*
- * public Point getMousePosition() throws HeadlessException { Point
- * absPointerPos = MouseInfo.getPointerInfo().getLocation(); Window
- * winUnderPtr =
- * toolkit.dispatcher.mouseDispatcher.findWindowAt(absPointerPos); Point
- * pointerPos = MouseDispatcher.convertPoint(null, absPointerPos,
- * winUnderPtr); boolean isUnderPointer = false; if (winUnderPtr == null) {
- * return null; } isUnderPointer = winUnderPtr.isComponentAt(this,
- * pointerPos); if (isUnderPointer) { return
- * MouseDispatcher.convertPoint(null, absPointerPos, this); } return null; }
- */
-
- /**
- * Set native caret at the given position <br>
- * Note: this method takes AWT lock inside because it walks through the
- * component hierarchy.
- *
- * @param x
- * the x.
- * @param y
- * the y.
- */
- void setCaretPos(final int x, final int y) {
- Runnable r = new Runnable() {
- public void run() {
- toolkit.lockAWT();
- try {
- setCaretPosImpl(x, y);
- } finally {
- toolkit.unlockAWT();
- }
- }
- };
- if (Thread.currentThread() instanceof EventDispatchThread) {
- r.run();
- } else {
- toolkit.getSystemEventQueueImpl().postEvent(new InvocationEvent(this, r));
- }
- }
-
- /**
- * This method should be called only at event dispatch thread.
- *
- * @param x
- * the x.
- * @param y
- * the y.
- */
- void setCaretPosImpl(int x, int y) {
- Component c = this;
- while ((c != null) && c.behaviour.isLightweight()) {
- x += c.x;
- y += c.y;
- // ???AWT: c = c.getParent();
- }
- if (c == null) {
- return;
- }
- // ???AWT
- /*
- * if (c instanceof Window) { Insets insets = c.getNativeInsets(); x -=
- * insets.left; y -= insets.top; }
- * toolkit.getWindowFactory().setCaretPosition(x, y);
- */
- }
-
- // to be overridden in standard components such as Button and List
- /**
- * Gets the default minimum size.
- *
- * @return the default minimum size.
- */
- Dimension getDefaultMinimumSize() {
- return null;
- }
-
- // to be overridden in standard components such as Button and List
- /**
- * Gets the default preferred size.
- *
- * @return the default preferred size.
- */
- Dimension getDefaultPreferredSize() {
- return null;
- }
-
- // to be overridden in standard components such as Button and List
- /**
- * Reset default size.
- */
- void resetDefaultSize() {
- }
-
- // ???AWT
- /*
- * ComponentBehavior createBehavior() { return new LWBehavior(this); }
- */
-
- /**
- * Gets the default background.
- *
- * @return the default background.
- */
- Color getDefaultBackground() {
- // ???AWT: return getWindowAncestor().getDefaultBackground();
- return getBackground();
- }
-
- /**
- * Gets the default foreground.
- *
- * @return the default foreground.
- */
- Color getDefaultForeground() {
- // ???AWT return getWindowAncestor().getDefaultForeground();
- return getForeground();
- }
-
- /**
- * Called when native resource for this component is created (for
- * heavyweights only).
- *
- * @param win
- * the win.
- */
- void nativeWindowCreated(NativeWindow win) {
- // to be overridden
- }
-
- /**
- * Determine the component's area hidden behind the windows that have higher
- * Z-order, including windows of other applications.
- *
- * @param image
- * the image.
- * @param destLocation
- * the dest location.
- * @param destSize
- * the dest size.
- * @param source
- * the source.
- * @return the calculated region, or null if it cannot be determined.
- */
- // ???AWT
- /*
- * MultiRectArea getObscuredRegion(Rectangle part) { if (!visible || parent
- * == null || !parent.visible) { return null; } Rectangle r = new
- * Rectangle(0, 0, w, h); if (part != null) { r = r.intersection(part); } if
- * (r.isEmpty()) { return null; } r.translate(x, y); MultiRectArea ret =
- * parent.getObscuredRegion(r); if (ret != null) {
- * parent.addObscuredRegions(ret, this); ret.translate(-x, -y);
- * ret.intersect(new Rectangle(0, 0, w, h)); } return ret; }
- */
-
- // ???AWT
- /*
- * private void readObject(ObjectInputStream stream) throws IOException,
- * ClassNotFoundException { stream.defaultReadObject(); FieldsAccessor
- * accessor = new FieldsAccessor(Component.class, this);
- * accessor.set("toolkit", Toolkit.getDefaultToolkit()); //$NON-NLS-1$
- * accessor.set("behaviour", createBehavior()); //$NON-NLS-1$
- * accessor.set("componentLock", new Object()); // $NON-LOCK-1$
- * //$NON-NLS-1$ }
- */
-
- final void onDrawImage(Image image, Point destLocation, Dimension destSize, Rectangle source) {
- ImageParameters imageParams;
- if (updatedImages == null) {
- updatedImages = new HashMap<Image, ImageParameters>();
- }
- imageParams = updatedImages.get(image);
- if (imageParams == null) {
- imageParams = new ImageParameters();
- updatedImages.put(image, imageParams);
- }
- imageParams.addDrawing(destLocation, destSize, source);
- }
-
- public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h) {
- toolkit.lockAWT();
- try {
- boolean done = false;
- if ((infoflags & (ALLBITS | FRAMEBITS)) != 0) {
- done = true;
- } else if ((infoflags & SOMEBITS) != 0 && incrementalImageUpdate) {
- done = true;
- }
- if (done) {
- repaint();
- }
- return (infoflags & (ABORT | ALLBITS)) == 0;
- } finally {
- toolkit.unlockAWT();
- }
- }
-
- // ???AWT
- /*
- * private void invalidateRealParent() { Container realParent =
- * getRealParent(); if ((realParent != null) && realParent.isValid()) {
- * realParent.invalidate(); } }
- */
-
- /**
- * The Class ImageParameters.
- */
- private class ImageParameters {
-
- /**
- * The drawing params.
- */
- private final LinkedList<DrawingParameters> drawingParams = new LinkedList<DrawingParameters>();
-
- /**
- * The size.
- */
- Dimension size = new Dimension(Component.this.w, Component.this.h);
-
- /**
- * Adds the drawing.
- *
- * @param destLocation
- * the dest location.
- * @param destSize
- * the dest size.
- * @param source
- * the source.
- */
- void addDrawing(Point destLocation, Dimension destSize, Rectangle source) {
- drawingParams.add(new DrawingParameters(destLocation, destSize, source));
- }
-
- /**
- * Drawing parameters iterator.
- *
- * @return the iterator< drawing parameters>.
- */
- Iterator<DrawingParameters> drawingParametersIterator() {
- return drawingParams.iterator();
- }
-
- /**
- * The Class DrawingParameters.
- */
- class DrawingParameters {
-
- /**
- * The dest location.
- */
- Point destLocation;
-
- /**
- * The dest size.
- */
- Dimension destSize;
-
- /**
- * The source.
- */
- Rectangle source;
-
- /**
- * Instantiates a new drawing parameters.
- *
- * @param destLocation
- * the dest location.
- * @param destSize
- * the dest size.
- * @param source
- * the source.
- */
- DrawingParameters(Point destLocation, Dimension destSize, Rectangle source) {
- this.destLocation = new Point(destLocation);
- if (destSize != null) {
- this.destSize = new Dimension(destSize);
- } else {
- this.destSize = null;
- }
- if (source != null) {
- this.source = new Rectangle(source);
- } else {
- this.source = null;
- }
- }
- }
- }
-
- /**
- * TextComponent support.
- *
- * @param e
- * the e.
- * @return true, if dispatch event to im.
- */
- // ???AWT
- /*
- * private TextKit textKit = null; TextKit getTextKit() { return textKit; }
- * void setTextKit(TextKit kit) { textKit = kit; }
- */
-
- /**
- * TextField support.
- */
- // ???AWT
- /*
- * private TextFieldKit textFieldKit = null; TextFieldKit getTextFieldKit()
- * { return textFieldKit; } void setTextFieldKit(TextFieldKit kit) {
- * textFieldKit = kit; }
- */
-
- /**
- * Dispatches input & focus events to input method context.
- *
- * @param e
- * event to pass to InputContext.dispatchEvent().
- * @return true if event was consumed by IM, false otherwise.
- */
- private boolean dispatchEventToIM(AWTEvent e) {
- InputContext ic = getInputContext();
- if (ic == null) {
- return false;
- }
- int id = e.getID();
- boolean isInputEvent = ((id >= KeyEvent.KEY_FIRST) && (id <= KeyEvent.KEY_LAST))
- || ((id >= MouseEvent.MOUSE_FIRST) && (id <= MouseEvent.MOUSE_LAST));
- if (((id >= FocusEvent.FOCUS_FIRST) && (id <= FocusEvent.FOCUS_LAST)) || isInputEvent) {
- ic.dispatchEvent(e);
- }
- return e.isConsumed();
- }
-}