blob: 95e9b49834996f0332c170355a7425d38a4b4237 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2010 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.swt.accessibility;
import org.eclipse.swt.internal.cocoa.*;
class Relation {
Accessible accessible;
Accessible[] targets;
int type;
Relation(Accessible accessible, int type) {
this.accessible = accessible;
this.type = type;
this.targets = new Accessible[0];
}
void addTarget(Accessible target) {
if (containsTarget(target)) return;
Accessible[] newTargets = new Accessible[targets.length + 1];
System.arraycopy(targets, 0, newTargets, 0, targets.length);
newTargets[targets.length] = target;
targets = newTargets;
}
boolean containsTarget(Accessible target) {
for (int i = 0; i < targets.length; i++) {
if (targets[i] == target) return true;
}
return false;
}
void removeTarget(Accessible target) {
if (!containsTarget(target)) return;
Accessible[] newTargets = new Accessible[targets.length - 1];
int j = 0;
for (int i = 0; i < targets.length; i++) {
if (targets[i] != target) {
newTargets[j++] = targets[i];
}
}
targets = newTargets;
}
id getTitleUIElement() {
id result = null;
for (int i = 0; i < targets.length; i++) {
Accessible target = targets[i];
result = target.accessibleHandle(target);
}
return result;
}
id getServesAsTitleForUIElements() {
NSMutableArray result = NSMutableArray.arrayWithCapacity(targets.length);
for (int i = 0; i < targets.length; i++) {
Accessible target = targets[i];
id accessibleElement = target.accessibleHandle(target);
result.addObject(accessibleElement);
}
return result;
}
id getLinkedUIElements() {
NSMutableArray result = NSMutableArray.arrayWithCapacity(targets.length);
for (int i = 0; i < targets.length; i++) {
Accessible target = targets[i];
id accessibleElement = target.accessibleHandle(target);
result.addObject(accessibleElement);
}
return result;
}
}