/* ******************************************************************************
* Copyright (c) 2006-2012 XMind Ltd. and others.
*
* This file is a part of XMind 3. XMind releases 3 and
* above are dual-licensed under the Eclipse Public License (EPL),
* which is available at http://www.eclipse.org/legal/epl-v10.html
* and the GNU Lesser General Public License (LGPL),
* which is available at http://www.gnu.org/licenses/lgpl.html
* See http://www.xmind.net/license.html for details.
*
* Contributors:
* XMind Ltd. - initial API and implementation
*******************************************************************************/
package org.xmind.ui.internal.mindmap;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.swt.accessibility.ACC;
import org.xmind.gef.acc.AbstractGraphicalAccessible;
import org.xmind.gef.part.IPart;
import org.xmind.ui.mindmap.IBranchPart;
import org.xmind.ui.mindmap.ITopicPart;
public class TopicAccessible extends AbstractGraphicalAccessible {
public TopicAccessible(ITopicPart host) {
super(host);
}
public ITopicPart getHost() {
return (ITopicPart) super.getHost();
}
public String getName() {
return getHost().getTopic().getTitleText();
}
@Override
protected List<? extends IPart> getChildrenParts() {
IPart parent = getHost().getParent();
if (parent instanceof IBranchPart) {
List<IBranchPart> subBranches = ((IBranchPart) parent)
.getSubBranches();
ArrayList<IPart> subTopics = new ArrayList<IPart>(subBranches
.size());
for (IBranchPart branch : subBranches) {
subTopics.add(branch.getTopicPart());
}
return subTopics;
}
return super.getChildrenParts();
}
@Override
public int getRole() {
return ACC.ROLE_CHECKBUTTON;
}
}