47 |
import java.util.Vector; |
import java.util.Vector; |
48 |
|
|
49 |
import javax.accessibility.Accessible; |
import javax.accessibility.Accessible; |
50 |
|
import javax.accessibility.AccessibleContext; |
51 |
|
import javax.accessibility.AccessibleRole; |
52 |
|
import javax.accessibility.AccessibleSelection; |
53 |
|
import javax.accessibility.AccessibleState; |
54 |
|
import javax.accessibility.AccessibleStateSet; |
55 |
|
|
56 |
/** |
/** |
57 |
* Class that implements a listbox widget |
* Class that implements a listbox widget |
111 |
// The list of ActionListeners for this object. |
// The list of ActionListeners for this object. |
112 |
private ActionListener action_listeners; |
private ActionListener action_listeners; |
113 |
|
|
114 |
|
|
115 |
/*************************************************************************/ |
/*************************************************************************/ |
116 |
|
|
117 |
/* |
/* |
1082 |
{ |
{ |
1083 |
return (ItemListener[]) getListeners (ItemListener.class); |
return (ItemListener[]) getListeners (ItemListener.class); |
1084 |
} |
} |
1085 |
|
|
1086 |
|
// Accessibility internal class |
1087 |
|
protected class AccessibleAWTList extends AccessibleAWTComponent |
1088 |
|
implements AccessibleSelection, ItemListener, ActionListener |
1089 |
|
{ |
1090 |
|
protected class AccessibleAWTListChild extends AccessibleAWTComponent |
1091 |
|
implements Accessible |
1092 |
|
{ |
1093 |
|
private int index; |
1094 |
|
private List parent; |
1095 |
|
|
1096 |
|
public AccessibleAWTListChild(List parent, int indexInParent) |
1097 |
|
{ |
1098 |
|
this.parent = parent; |
1099 |
|
index = indexInParent; |
1100 |
|
if (parent == null) |
1101 |
|
index = -1; |
1102 |
|
} |
1103 |
|
|
1104 |
|
/* (non-Javadoc) |
1105 |
|
* @see javax.accessibility.Accessible#getAccessibleContext() |
1106 |
|
*/ |
1107 |
|
public AccessibleContext getAccessibleContext() |
1108 |
|
{ |
1109 |
|
return this; |
1110 |
|
} |
1111 |
|
|
1112 |
|
public AccessibleRole getAccessibleRole() |
1113 |
|
{ |
1114 |
|
return AccessibleRole.LIST_ITEM; |
1115 |
|
} |
1116 |
|
|
1117 |
|
public AccessibleStateSet getAccessibleStateSet() |
1118 |
|
{ |
1119 |
|
AccessibleStateSet states = super.getAccessibleStateSet(); |
1120 |
|
if (parent.isIndexSelected(index)) |
1121 |
|
states.add(AccessibleState.SELECTED); |
1122 |
|
return states; |
1123 |
|
} |
1124 |
|
|
1125 |
|
public int getAccessibleIndexInParent() |
1126 |
|
{ |
1127 |
|
return index; |
1128 |
|
} |
1129 |
|
|
1130 |
|
} |
1131 |
|
|
1132 |
|
public AccessibleAWTList() |
1133 |
|
{ |
1134 |
|
addItemListener(this); |
1135 |
|
addActionListener(this); |
1136 |
|
} |
1137 |
|
|
1138 |
|
public AccessibleRole getAccessibleRole() |
1139 |
|
{ |
1140 |
|
return AccessibleRole.LIST; |
1141 |
|
} |
1142 |
|
|
1143 |
|
public AccessibleStateSet getAccessibleStateSet() |
1144 |
|
{ |
1145 |
|
AccessibleStateSet states = super.getAccessibleStateSet(); |
1146 |
|
states.add(AccessibleState.SELECTABLE); |
1147 |
|
if (isMultipleMode()) |
1148 |
|
states.add(AccessibleState.MULTISELECTABLE); |
1149 |
|
return states; |
1150 |
|
} |
1151 |
|
|
1152 |
|
public int getAccessibleChildrenCount() |
1153 |
|
{ |
1154 |
|
return getItemCount(); |
1155 |
|
} |
1156 |
|
|
1157 |
|
public Accessible getAccessibleChild(int i) |
1158 |
|
{ |
1159 |
|
if (i >= getItemCount()) |
1160 |
|
return null; |
1161 |
|
return new AccessibleAWTListChild(List.this, i); |
1162 |
|
} |
1163 |
|
|
1164 |
|
/* (non-Javadoc) |
1165 |
|
* @see javax.accessibility.AccessibleSelection#getAccessibleSelectionCount() |
1166 |
|
*/ |
1167 |
|
public int getAccessibleSelectionCount() |
1168 |
|
{ |
1169 |
|
return getSelectedIndexes().length; |
1170 |
|
} |
1171 |
|
|
1172 |
|
/* (non-Javadoc) |
1173 |
|
* @see javax.accessibility.AccessibleSelection#getAccessibleSelection() |
1174 |
|
*/ |
1175 |
|
public AccessibleSelection getAccessibleSelection() |
1176 |
|
{ |
1177 |
|
return this; |
1178 |
|
} |
1179 |
|
|
1180 |
|
/* (non-Javadoc) |
1181 |
|
* @see javax.accessibility.AccessibleSelection#getAccessibleSelection(int) |
1182 |
|
*/ |
1183 |
|
public Accessible getAccessibleSelection(int i) |
1184 |
|
{ |
1185 |
|
int[] items = getSelectedIndexes(); |
1186 |
|
if (i >= items.length) |
1187 |
|
return null; |
1188 |
|
return new AccessibleAWTListChild(List.this, items[i]); |
1189 |
|
} |
1190 |
|
|
1191 |
|
/* (non-Javadoc) |
1192 |
|
* @see javax.accessibility.AccessibleSelection#isAccessibleChildSelected(int) |
1193 |
|
*/ |
1194 |
|
public boolean isAccessibleChildSelected(int i) |
1195 |
|
{ |
1196 |
|
return isIndexSelected(i); |
1197 |
|
} |
1198 |
|
|
1199 |
|
/* (non-Javadoc) |
1200 |
|
* @see javax.accessibility.AccessibleSelection#addAccessibleSelection(int) |
1201 |
|
*/ |
1202 |
|
public void addAccessibleSelection(int i) |
1203 |
|
{ |
1204 |
|
select(i); |
1205 |
|
} |
1206 |
|
|
1207 |
|
/* (non-Javadoc) |
1208 |
|
* @see javax.accessibility.AccessibleSelection#removeAccessibleSelection(int) |
1209 |
|
*/ |
1210 |
|
public void removeAccessibleSelection(int i) |
1211 |
|
{ |
1212 |
|
deselect(i); |
1213 |
|
} |
1214 |
|
|
1215 |
|
/* (non-Javadoc) |
1216 |
|
* @see javax.accessibility.AccessibleSelection#clearAccessibleSelection() |
1217 |
|
*/ |
1218 |
|
public void clearAccessibleSelection() |
1219 |
|
{ |
1220 |
|
for (int i = 0; i < getItemCount(); i++) |
1221 |
|
deselect(i); |
1222 |
|
} |
1223 |
|
|
1224 |
|
/* (non-Javadoc) |
1225 |
|
* @see javax.accessibility.AccessibleSelection#selectAllAccessibleSelection() |
1226 |
|
*/ |
1227 |
|
public void selectAllAccessibleSelection() |
1228 |
|
{ |
1229 |
|
if (isMultipleMode()) |
1230 |
|
for (int i = 0; i < getItemCount(); i++) |
1231 |
|
select(i); |
1232 |
|
} |
1233 |
|
|
1234 |
|
/* (non-Javadoc) |
1235 |
|
* @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent) |
1236 |
|
*/ |
1237 |
|
public void itemStateChanged(ItemEvent event) |
1238 |
|
{ |
1239 |
|
} |
1240 |
|
|
1241 |
|
/* (non-Javadoc) |
1242 |
|
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) |
1243 |
|
*/ |
1244 |
|
public void actionPerformed(ActionEvent event) |
1245 |
|
{ |
1246 |
|
} |
1247 |
|
|
1248 |
|
} |
1249 |
|
|
1250 |
|
/** |
1251 |
|
* Gets the AccessibleContext associated with this <code>List</code>. |
1252 |
|
* The context is created, if necessary. |
1253 |
|
* |
1254 |
|
* @return the associated context |
1255 |
|
*/ |
1256 |
|
public AccessibleContext getAccessibleContext() |
1257 |
|
{ |
1258 |
|
/* Create the context if this is the first request */ |
1259 |
|
if (accessibleContext == null) |
1260 |
|
{ |
1261 |
|
/* Create the context */ |
1262 |
|
accessibleContext = new AccessibleAWTList(); |
1263 |
|
} |
1264 |
|
return accessibleContext; |
1265 |
|
} |
1266 |
} // class List |
} // class List |