/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed 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 com.intellij.util.ui.accessibility;
import javax.accessibility.*;
import java.awt.*;
import java.beans.PropertyChangeListener;
import java.util.Locale;
/**
* AccessibleContext implementation that delegates all calls to another context.
*
* This is useful when a component needs to expose an AccessibleContext where most
* of the implementation comes from another context while at the same a specific subset
* of the behavior can be overridden.
*/
public class AccessibleContextDelegate extends AccessibleContext {
private AccessibleContext myContext;
public AccessibleContextDelegate(AccessibleContext context) {
myContext = context;
}
@Override
public void setAccessibleName(String s) {
myContext.setAccessibleName(s);
}
@Override
public void setAccessibleDescription(String s) {
myContext.setAccessibleDescription(s);
}
@Override
public void setAccessibleParent(Accessible a) {
myContext.setAccessibleParent(a);
}
@Override
public void addPropertyChangeListener(PropertyChangeListener listener) {
myContext.addPropertyChangeListener(listener);
}
@Override
public void removePropertyChangeListener(PropertyChangeListener listener) {
myContext.removePropertyChangeListener(listener);
}
@Override
public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
myContext.firePropertyChange(propertyName, oldValue, newValue);
}
@Override
public AccessibleRole getAccessibleRole() {
return myContext.getAccessibleRole();
}
@Override
public AccessibleStateSet getAccessibleStateSet() {
return myContext.getAccessibleStateSet();
}
@Override
public int getAccessibleIndexInParent() {
return myContext.getAccessibleIndexInParent();
}
@Override
public int getAccessibleChildrenCount() {
return myContext.getAccessibleChildrenCount();
}
@Override
public Accessible getAccessibleChild(int i) {
return myContext.getAccessibleChild(i);
}
@Override
public Locale getLocale() throws IllegalComponentStateException {
return myContext.getLocale();
}
@Override
public String getAccessibleName() {
return myContext.getAccessibleName();
}
@Override
public String getAccessibleDescription() {
return myContext.getAccessibleDescription();
}
@Override
public Accessible getAccessibleParent() {
return myContext.getAccessibleParent();
}
@Override
public AccessibleAction getAccessibleAction() {
return myContext.getAccessibleAction();
}
@Override
public AccessibleComponent getAccessibleComponent() {
return myContext.getAccessibleComponent();
}
@Override
public AccessibleSelection getAccessibleSelection() {
return myContext.getAccessibleSelection();
}
@Override
public AccessibleText getAccessibleText() {
return myContext.getAccessibleText();
}
@Override
public AccessibleEditableText getAccessibleEditableText() {
return myContext.getAccessibleEditableText();
}
@Override
public AccessibleValue getAccessibleValue() {
return myContext.getAccessibleValue();
}
@Override
public AccessibleIcon[] getAccessibleIcon() {
return myContext.getAccessibleIcon();
}
@Override
public AccessibleRelationSet getAccessibleRelationSet() {
return myContext.getAccessibleRelationSet();
}
@Override
public AccessibleTable getAccessibleTable() {
return myContext.getAccessibleTable();
}
}