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); } }