From e589ede6fdc3f0f3f70be950bdd85d996eb19eca Mon Sep 17 00:00:00 2001 From: Michael Koch Date: Sun, 2 Mar 2003 14:01:40 +0000 Subject: 2003-03-02 Michael Koch * java/awt/Component.java (eventTypeEnabled): New method. (dispatchEventImpl): Moved checks for event to eventTypeEnabled. * java/awt/Container.java (changeSupport): New member variable. (addPropertyChangeListener): New methods. * java/awt/ContainerOrderFocusTraversalPolicy.java (ContainerOrderFocusTraversalPolicy): Added comment. (getComponentAfter): Throw exception, documentation added. (getComponentBefore): Throw exception, documentation added. (getFirstComponent): Throw exception, documentation added. (getLastComponent): Throw exception, documentation added. (getDefaultComponent): Throw exception, documentation added. * java/awt/EventQueue.java: Reindented. * java/awt/FocusTraversalPolicy.java: (FocusTraversalPolicy): Added comment. (getComponentAfter): Documentation added. (getComponentBefore): Documentation added. (getFirstComponent): Documentation added. (getLastComponent): Documentation added. (getDefaultComponent): Documentation added. (getInitialComponent): Documentation added. * java/awt/ScrollPane.java (wheelScrollingEnabled): New member variable. (ScrollPane): Initialize wheelScollingEnabled. (eventTypeEnabled): New method. (isWheelScrollingEnabled): New method. (setWheelScrollingEnabled): New method. From-SVN: r63663 --- libjava/java/awt/Component.java | 88 ++++++++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 36 deletions(-) (limited to 'libjava/java/awt/Component.java') diff --git a/libjava/java/awt/Component.java b/libjava/java/awt/Component.java index 88f91810dc0..c9afaa14bf3 100644 --- a/libjava/java/awt/Component.java +++ b/libjava/java/awt/Component.java @@ -4075,45 +4075,61 @@ p *
  • the set of backward traversal keys */ void dispatchEventImpl(AWTEvent e) { - // Make use of event id's in order to avoid multiple instanceof tests. - if (e.id <= ComponentEvent.COMPONENT_LAST - && e.id >= ComponentEvent.COMPONENT_FIRST - && (componentListener != null - || (eventMask & AWTEvent.COMPONENT_EVENT_MASK) != 0)) - processEvent(e); - else if (e.id <= KeyEvent.KEY_LAST - && e.id >= KeyEvent.KEY_FIRST - && (keyListener != null - || (eventMask & AWTEvent.KEY_EVENT_MASK) != 0)) - processEvent(e); - else if (e.id <= MouseEvent.MOUSE_LAST - && e.id >= MouseEvent.MOUSE_FIRST - && (mouseListener != null - || mouseMotionListener != null - || (eventMask & AWTEvent.MOUSE_EVENT_MASK) != 0)) - processEvent(e); - else if (e.id <= FocusEvent.FOCUS_LAST - && e.id >= FocusEvent.FOCUS_FIRST - && (focusListener != null - || (eventMask & AWTEvent.FOCUS_EVENT_MASK) != 0)) - processEvent(e); - else if (e.id <= InputMethodEvent.INPUT_METHOD_LAST - && e.id >= InputMethodEvent.INPUT_METHOD_FIRST - && (inputMethodListener != null - || (eventMask & AWTEvent.INPUT_METHOD_EVENT_MASK) != 0)) - processEvent(e); - else if (e.id <= HierarchyEvent.HIERARCHY_LAST - && e.id >= HierarchyEvent.HIERARCHY_FIRST - && (hierarchyListener != null - || hierarchyBoundsListener != null - || (eventMask & AWTEvent.HIERARCHY_EVENT_MASK) != 0)) - processEvent(e); - else if (e.id <= PaintEvent.PAINT_LAST - && e.id >= PaintEvent.PAINT_FIRST - && (eventMask & AWTEvent.PAINT_EVENT_MASK) != 0) + if (eventTypeEnabled (e.id)) processEvent(e); } + /** + * Tells wether or not an event type is enabled. + */ + boolean eventTypeEnabled (int type) + { + if (type > AWTEvent.RESERVED_ID_MAX) + return true; + + switch (type) + { + case ComponentEvent.COMPONENT_HIDDEN: + case ComponentEvent.COMPONENT_MOVED: + case ComponentEvent.COMPONENT_RESIZED: + case ComponentEvent.COMPONENT_SHOWN: + return (componentListener != null + || (eventMask & AWTEvent.COMPONENT_EVENT_MASK) != 0); + + case KeyEvent.KEY_PRESSED: + case KeyEvent.KEY_RELEASED: + case KeyEvent.KEY_TYPED: + return (keyListener != null + || (eventMask & AWTEvent.KEY_EVENT_MASK) != 0); + + case MouseEvent.MOUSE_CLICKED: + case MouseEvent.MOUSE_ENTERED: + case MouseEvent.MOUSE_EXITED: + case MouseEvent.MOUSE_PRESSED: + case MouseEvent.MOUSE_RELEASED: + return (mouseListener != null + || mouseMotionListener != null + || (eventMask & AWTEvent.MOUSE_EVENT_MASK) != 0); + + case FocusEvent.FOCUS_GAINED: + case FocusEvent.FOCUS_LOST: + return (focusListener != null + || (eventMask & AWTEvent.FOCUS_EVENT_MASK) != 0); + + case InputMethodEvent.INPUT_METHOD_TEXT_CHANGED: + case InputMethodEvent.CARET_POSITION_CHANGED: + return (inputMethodListener != null + || (eventMask & AWTEvent.INPUT_METHOD_EVENT_MASK) != 0); + + case PaintEvent.PAINT: + case PaintEvent.UPDATE: + return (eventMask & AWTEvent.PAINT_EVENT_MASK) != 0; + + default: + return false; + } + } + /** * Coalesce paint events. Current heuristic is: Merge if the union of * areas is less than twice that of the sum of the areas. The X server -- cgit v1.2.3