src/macosx/classes/sun/lwawt/macosx/CAccessible.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 24,47 ****
*/
package sun.lwawt.macosx;
import java.awt.Component;
import java.lang.reflect.Field;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.swing.JProgressBar;
import javax.swing.JSlider;
- import javax.swing.event.CaretEvent;
- import javax.swing.event.CaretListener;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
- import javax.swing.event.DocumentEvent;
- import javax.swing.event.DocumentListener;
- import javax.swing.text.JTextComponent;
class CAccessible extends CFRetainedResource implements Accessible {
static Field getNativeAXResourceField() {
try {
final Field field = AccessibleContext.class.getDeclaredField("nativeAXResource");
--- 24,45 ----
*/
package sun.lwawt.macosx;
import java.awt.Component;
+ import java.beans.PropertyChangeEvent;
+ import java.beans.PropertyChangeListener;
import java.lang.reflect.Field;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.swing.JProgressBar;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
+ import sun.lwawt.macosx.CFRetainedResource;
class CAccessible extends CFRetainedResource implements Accessible {
static Field getNativeAXResourceField() {
try {
final Field field = AccessibleContext.class.getDeclaredField("nativeAXResource");
*** 97,113 ****
@Override
public AccessibleContext getAccessibleContext() {
return accessible.getAccessibleContext();
}
- // currently only supports text components
public void addNotificationListeners(Component c) {
- if (c instanceof JTextComponent) {
- JTextComponent tc = (JTextComponent) c;
AXTextChangeNotifier listener = new AXTextChangeNotifier();
! tc.getDocument().addDocumentListener(listener);
! tc.addCaretListener(listener);
}
if (c instanceof JProgressBar) {
JProgressBar pb = (JProgressBar) c;
pb.addChangeListener(new AXProgressChangeNotifier());
} else if (c instanceof JSlider) {
--- 95,108 ----
@Override
public AccessibleContext getAccessibleContext() {
return accessible.getAccessibleContext();
}
public void addNotificationListeners(Component c) {
AXTextChangeNotifier listener = new AXTextChangeNotifier();
! if (c instanceof Accessible) {
! AccessibilityEventMonitor.addPropertyChangeListener(listener, (Accessible)c);
}
if (c instanceof JProgressBar) {
JProgressBar pb = (JProgressBar) c;
pb.addChangeListener(new AXProgressChangeNotifier());
} else if (c instanceof JSlider) {
*** 115,147 ****
slider.addChangeListener(new AXProgressChangeNotifier());
}
}
! private class AXTextChangeNotifier implements DocumentListener, CaretListener {
! @Override
! public void changedUpdate(DocumentEvent e) {
! if (ptr != 0) valueChanged(ptr);
! }
@Override
! public void insertUpdate(DocumentEvent e) {
! if (ptr != 0) valueChanged(ptr);
}
-
- @Override
- public void removeUpdate(DocumentEvent e) {
- if (ptr != 0) valueChanged(ptr);
}
-
- @Override
- public void caretUpdate(CaretEvent e) {
- if (ptr != 0) selectionChanged(ptr);
}
}
private class AXProgressChangeNotifier implements ChangeListener {
public void stateChanged(ChangeEvent e) {
if (ptr != 0) valueChanged(ptr);
}
}
--- 110,136 ----
slider.addChangeListener(new AXProgressChangeNotifier());
}
}
! private class AXTextChangeNotifier implements PropertyChangeListener {
@Override
! public void propertyChange(PropertyChangeEvent e) {
! String name = e.getPropertyName();
! if ( ptr != 0 ) {
! if (name.compareTo(AccessibleContext.ACCESSIBLE_CARET_PROPERTY) == 0) {
! selectionChanged(ptr);
! } else if (name.compareTo(AccessibleContext.ACCESSIBLE_TEXT_PROPERTY) == 0 ) {
! valueChanged(ptr);
}
}
}
}
private class AXProgressChangeNotifier implements ChangeListener {
+ @Override
public void stateChanged(ChangeEvent e) {
if (ptr != 0) valueChanged(ptr);
}
}