blob: d55414db05a6c8a24a5215d5c485deefdef56932 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2008 IBM Corporation and Others
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Takashi ITOH - initial API and implementation
*******************************************************************************/
package org.eclipse.actf.visualization.gui.msaa.properties;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.actf.accservice.swtbridge.AccessibleObject;
import org.eclipse.actf.accservice.swtbridge.ia2.Accessible2;
import org.eclipse.actf.accservice.swtbridge.ia2.AccessibleAction;
import org.eclipse.actf.accservice.swtbridge.ia2.AccessibleApplication;
import org.eclipse.actf.accservice.swtbridge.ia2.AccessibleComponent;
import org.eclipse.actf.accservice.swtbridge.ia2.AccessibleEditableText;
import org.eclipse.actf.accservice.swtbridge.ia2.AccessibleHyperlink;
import org.eclipse.actf.accservice.swtbridge.ia2.AccessibleHypertext;
import org.eclipse.actf.accservice.swtbridge.ia2.AccessibleImage;
import org.eclipse.actf.accservice.swtbridge.ia2.AccessibleTable;
import org.eclipse.actf.accservice.swtbridge.ia2.AccessibleText;
import org.eclipse.actf.accservice.swtbridge.ia2.AccessibleValue;
import org.eclipse.ui.views.properties.IPropertyDescriptor;
import org.eclipse.ui.views.properties.IPropertySource;
import org.eclipse.ui.views.properties.PropertyDescriptor;
public class AccessibleObjectPropertySource extends AbstractPropertyInvokeSource implements IPropertySource {
public static final int MAX_CHILD_PROPERTIES = 100;
private List<PropertyDescriptor> descriptors = new ArrayList<PropertyDescriptor>();
private Accessible1PropertySource accessible1PropertySource;
private Accessible2PropertySource accessible2PropertySource;
private AccessibleActionPropertySource accessibleActionPropertySource;
private AccessibleApplicationPropertySource accessibleApplicationPropertySource;
private AccessibleComponentPropertySource accessibleComponentPropertySource;
private AccessibleEditableTextPropertySource accessibleEditableTextPropertySource;
private AccessibleHyperlinkPropertySource accessibleHyperlinkPropertySource;
private AccessibleHypertextPropertySource accessibleHypertextPropertySource;
private AccessibleImagePropertySource accessibleImagePropertySource;
private AccessibleTablePropertySource accessibleTablePropertySource;
private AccessibleTextPropertySource accessibleTextPropertySource;
private AccessibleValuePropertySource accessibleValuePropertySource;
public static final String
PID_IA1 = "IA1", //$NON-NLS-1$
PID_IA2 = "IA2", //$NON-NLS-1$
PID_IA2Action = "IA2Action", //$NON-NLS-1$
PID_IA2Application = "IA2Application", //$NON-NLS-1$
PID_IA2Component = "IA2Component", //$NON-NLS-1$
PID_IA2EditableText = "IA2EditableText", //$NON-NLS-1$
PID_IA2Hyperlink = "IA2Hyperlink", //$NON-NLS-1$
PID_IA2Hypertext = "IA2Hypertext", //$NON-NLS-1$
PID_IA2Image = "IA2Image", //$NON-NLS-1$
PID_IA2Table = "IA2Table", //$NON-NLS-1$
PID_IA2Text = "IA2Text", //$NON-NLS-1$
PID_IA2Value = "IA2Value"; //$NON-NLS-1$
private static final String
STR_IA1 = "IAccessible", //$NON-NLS-1$
STR_IA2 = "IAccessible2", //$NON-NLS-1$
STR_IA2Action = "IAccessibleAction", //$NON-NLS-1$
STR_IA2Application = "IAccessibleApplication", //$NON-NLS-1$
STR_IA2Component = "IAccessibleComponent", //$NON-NLS-1$
STR_IA2EditableText = "IAccessibleEditableText", //$NON-NLS-1$
STR_IA2Hyperlink = "IAccessibleHyperlink", //$NON-NLS-1$
STR_IA2Hypertext = "IAccessibleHypertext", //$NON-NLS-1$
STR_IA2Image = "IAccessibleImage", //$NON-NLS-1$
STR_IA2Table = "IAccessibleTable", //$NON-NLS-1$
STR_IA2Text = "IAccessibleText", //$NON-NLS-1$
STR_IA2Value = "IAccessibleValue"; //$NON-NLS-1$
public AccessibleObjectPropertySource(AccessibleObject accObject) {
if( null != accObject) {
accessible1PropertySource = new Accessible1PropertySource(accObject);
descriptors.add(new PropertyDescriptor(PID_IA1,STR_IA1));
Accessible2 accessible2 = accObject.getAccessible2();
if( null != accessible2 ) {
accessible2PropertySource = new Accessible2PropertySource(accessible2);
descriptors.add(new PropertyDescriptor(PID_IA2,STR_IA2));
}
AccessibleAction accessibleAction = accObject.getAccessibleAction();
if( null != accessibleAction ) {
accessibleActionPropertySource = new AccessibleActionPropertySource(accessibleAction);
descriptors.add(new PropertyDescriptor(PID_IA2Action,STR_IA2Action));
}
AccessibleApplication accessibleApplication = accObject.getAccessibleApplication();
if( null != accessibleApplication ) {
accessibleApplicationPropertySource = new AccessibleApplicationPropertySource(accessibleApplication);
descriptors.add(new PropertyDescriptor(PID_IA2Application,STR_IA2Application));
}
AccessibleComponent accessibleComponent = accObject.getAccessibleComponent();
if( null != accessibleComponent ) {
accessibleComponentPropertySource = new AccessibleComponentPropertySource(accessibleComponent);
descriptors.add(new PropertyDescriptor(PID_IA2Component,STR_IA2Component));
}
AccessibleText accessibleText = accObject.getAccessibleText();
if( null != accessibleText ) {
accessibleTextPropertySource = new AccessibleTextPropertySource(accessibleText);
descriptors.add(new PropertyDescriptor(PID_IA2Text,STR_IA2Text));
}
AccessibleEditableText accessibleEditableText = accObject.getAccessibleEditableText();
if( null != accessibleEditableText ) {
accessibleEditableTextPropertySource = new AccessibleEditableTextPropertySource(accessibleEditableText,accessibleText);
descriptors.add(new PropertyDescriptor(PID_IA2EditableText,STR_IA2EditableText));
}
AccessibleHyperlink accessibleHyperlink = accObject.getAccessibleHyperlink();
if( null != accessibleHyperlink ) {
accessibleHyperlinkPropertySource = new AccessibleHyperlinkPropertySource(accessibleHyperlink);
descriptors.add(new PropertyDescriptor(PID_IA2Hyperlink,STR_IA2Hyperlink));
}
AccessibleHypertext accessibleHypertext = accObject.getAccessibleHypertext();
if( null != accessibleHypertext ) {
accessibleHypertextPropertySource = new AccessibleHypertextPropertySource(accessibleHypertext,accessibleText);
descriptors.add(new PropertyDescriptor(PID_IA2Hypertext,STR_IA2Hypertext));
}
AccessibleImage accessibleImage = accObject.getAccessibleImage();
if( null != accessibleImage ) {
accessibleImagePropertySource = new AccessibleImagePropertySource(accessibleImage);
descriptors.add(new PropertyDescriptor(PID_IA2Image,STR_IA2Image));
}
AccessibleTable accessibleTable = accObject.getAccessibleTable();
if( null != accessibleTable ) {
accessibleTablePropertySource = new AccessibleTablePropertySource(accessibleTable);
descriptors.add(new PropertyDescriptor(PID_IA2Table,STR_IA2Table));
}
AccessibleValue accessibleValue = accObject.getAccessibleValue();
if( null != accessibleValue ) {
accessibleValuePropertySource = new AccessibleValuePropertySource(accessibleValue);
descriptors.add(new PropertyDescriptor(PID_IA2Value,STR_IA2Value));
}
}
}
public Object getEditableValue() {
return null;
}
public IPropertyDescriptor[] getPropertyDescriptors() {
return (IPropertyDescriptor[])descriptors.toArray(new IPropertyDescriptor[descriptors.size()]);
}
public Object getPropertyValue(Object id) {
if( PID_IA1.equals(id) ) {
return accessible1PropertySource;
}
else if( PID_IA2.equals(id) ) {
return accessible2PropertySource;
}
else if( PID_IA2Action.equals(id) ) {
return accessibleActionPropertySource;
}
else if( PID_IA2Application.equals(id) ) {
return accessibleApplicationPropertySource;
}
else if( PID_IA2Component.equals(id) ) {
return accessibleComponentPropertySource;
}
else if( PID_IA2EditableText.equals(id) ) {
return accessibleEditableTextPropertySource;
}
else if( PID_IA2Hyperlink.equals(id) ) {
return accessibleHyperlinkPropertySource;
}
else if( PID_IA2Hypertext.equals(id) ) {
return accessibleHypertextPropertySource;
}
else if( PID_IA2Image.equals(id) ) {
return accessibleImagePropertySource;
}
else if( PID_IA2Table.equals(id) ) {
return accessibleTablePropertySource;
}
else if( PID_IA2Text.equals(id) ) {
return accessibleTextPropertySource;
}
else if( PID_IA2Value.equals(id) ) {
return accessibleValuePropertySource;
}
return null;
}
public boolean isPropertySet(Object id) {
return false;
}
public void resetPropertyValue(Object id) {
}
public void setPropertyValue(Object id, Object value) {
}
}