blob: 1142aee49ee75f82f17fd591036956e36f299cbf [file] [log] [blame]
/**************************************************************
*
* 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 org.openoffice.java.accessibility;
import com.sun.star.accessibility.XAccessible;
import com.sun.star.accessibility.XAccessibleContext;
/** This class maps the AccessibleRole(s) of the UNO accessibility API
* to the corresponding javax.accessibility objects.
*/
public abstract class AccessibleRoleAdapter {
/* This array is used as a mapping between the UNO AccessibleRole
* and the AccessibleRole objects of the Java accessibility API.
*/
public static final javax.accessibility.AccessibleRole[] data = {
javax.accessibility.AccessibleRole.UNKNOWN,
javax.accessibility.AccessibleRole.ALERT,
javax.accessibility.AccessibleRole.COLUMN_HEADER,
javax.accessibility.AccessibleRole.CANVAS,
javax.accessibility.AccessibleRole.CHECK_BOX,
javax.accessibility.AccessibleRole.CHECK_BOX, // CHECK_MENU_ITEM
javax.accessibility.AccessibleRole.COLOR_CHOOSER,
javax.accessibility.AccessibleRole.COMBO_BOX,
javax.accessibility.AccessibleRole.DATE_EDITOR,
javax.accessibility.AccessibleRole.DESKTOP_ICON,
javax.accessibility.AccessibleRole.DESKTOP_PANE,
javax.accessibility.AccessibleRole.DIRECTORY_PANE,
javax.accessibility.AccessibleRole.DIALOG,
javax.accessibility.AccessibleRole.CANVAS, // DOCUMENT
javax.accessibility.AccessibleRole.PANEL, // EMBEDDED_OBJECT
javax.accessibility.AccessibleRole.PANEL, // ENDNOTE
javax.accessibility.AccessibleRole.FILE_CHOOSER,
javax.accessibility.AccessibleRole.FILLER,
javax.accessibility.AccessibleRole.FONT_CHOOSER,
javax.accessibility.AccessibleRole.FOOTER,
javax.accessibility.AccessibleRole.PANEL, // FOOTNOTE
javax.accessibility.AccessibleRole.FRAME,
javax.accessibility.AccessibleRole.GLASS_PANE,
javax.accessibility.AccessibleRole.PANEL, // GRAPHIC
javax.accessibility.AccessibleRole.GROUP_BOX,
javax.accessibility.AccessibleRole.HEADER,
javax.accessibility.AccessibleRole.TEXT, // HEADING
javax.accessibility.AccessibleRole.HYPERLINK,
javax.accessibility.AccessibleRole.ICON,
javax.accessibility.AccessibleRole.INTERNAL_FRAME,
javax.accessibility.AccessibleRole.LABEL,
javax.accessibility.AccessibleRole.LAYERED_PANE,
javax.accessibility.AccessibleRole.LIST,
javax.accessibility.AccessibleRole.LABEL, // LIST_ITEM - required by Zoomtext
javax.accessibility.AccessibleRole.MENU,
javax.accessibility.AccessibleRole.MENU_BAR,
javax.accessibility.AccessibleRole.MENU_ITEM,
javax.accessibility.AccessibleRole.OPTION_PANE,
javax.accessibility.AccessibleRole.PAGE_TAB,
javax.accessibility.AccessibleRole.PAGE_TAB_LIST,
javax.accessibility.AccessibleRole.PANEL,
javax.accessibility.AccessibleRole.PARAGRAPH,
javax.accessibility.AccessibleRole.PASSWORD_TEXT,
javax.accessibility.AccessibleRole.POPUP_MENU,
javax.accessibility.AccessibleRole.PUSH_BUTTON,
javax.accessibility.AccessibleRole.PROGRESS_BAR,
javax.accessibility.AccessibleRole.RADIO_BUTTON,
javax.accessibility.AccessibleRole.RADIO_BUTTON, // RADIO_MENU_ITEM
javax.accessibility.AccessibleRole.ROW_HEADER,
javax.accessibility.AccessibleRole.ROOT_PANE,
javax.accessibility.AccessibleRole.SCROLL_BAR,
javax.accessibility.AccessibleRole.SCROLL_PANE,
javax.accessibility.AccessibleRole.CANVAS, // SHAPE
javax.accessibility.AccessibleRole.SEPARATOR,
javax.accessibility.AccessibleRole.SLIDER,
javax.accessibility.AccessibleRole.SPIN_BOX,
javax.accessibility.AccessibleRole.SPLIT_PANE,
javax.accessibility.AccessibleRole.STATUS_BAR,
javax.accessibility.AccessibleRole.TABLE,
javax.accessibility.AccessibleRole.LABEL, // TABLE_CELL - required by ZoomText
javax.accessibility.AccessibleRole.TEXT,
javax.accessibility.AccessibleRole.PANEL, // TEXT_FRAME
javax.accessibility.AccessibleRole.TOGGLE_BUTTON,
javax.accessibility.AccessibleRole.TOOL_BAR,
javax.accessibility.AccessibleRole.TOOL_TIP,
javax.accessibility.AccessibleRole.TREE,
javax.accessibility.AccessibleRole.VIEWPORT,
javax.accessibility.AccessibleRole.WINDOW,
javax.accessibility.AccessibleRole.RADIO_BUTTON, // BUTTON_DROPDOWN
javax.accessibility.AccessibleRole.RADIO_BUTTON, // BUTTON_MENU
javax.accessibility.AccessibleRole.PANEL, // CAPTION
javax.accessibility.AccessibleRole.PANEL, // CHART
javax.accessibility.AccessibleRole.EDITBAR,
javax.accessibility.AccessibleRole.PANEL, // FORM
javax.accessibility.AccessibleRole.PANEL, // IMAGE_MAP
javax.accessibility.AccessibleRole.PANEL, // NOTE
javax.accessibility.AccessibleRole.PANEL, // PAGE
javax.accessibility.AccessibleRole.RULER,
javax.accessibility.AccessibleRole.PANEL, // SECTION
javax.accessibility.AccessibleRole.LABEL, // TREE_ITEM
javax.accessibility.AccessibleRole.TABLE // TREE_TABLE
};
public static javax.accessibility.AccessibleRole getAccessibleRole(short role) {
if(role < data.length) {
if(data[role] == null) {
System.err.println("Unmapped role: " + role);
}
return data[role];
}
// FIXME: remove debug out
System.err.println("Unmappable role: " + role);
return null;
}
public static javax.accessibility.AccessibleRole getAccessibleRole(XAccessible unoAccessible) {
try {
XAccessibleContext unoAccessibleContext = unoAccessible.getAccessibleContext();
if (unoAccessibleContext != null) {
return getAccessibleRole(unoAccessibleContext.getAccessibleRole());
}
return null;
} catch (com.sun.star.uno.RuntimeException e) {
return javax.accessibility.AccessibleRole.UNKNOWN;
}
}
}