/******************************************************************************* * Copyright (c) 2011, 2012 Red Hat, Inc. * All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation * * @author Bob Brodt ******************************************************************************/ package org.eclipse.bpmn2.modeler.ui.property.providers; import java.util.ArrayList; import java.util.List; import org.eclipse.bpmn2.modeler.ui.Activator; import org.eclipse.bpmn2.modeler.ui.IConstants; import org.eclipse.jdt.core.Flags; import org.eclipse.jdt.core.IField; import org.eclipse.jdt.core.IMethod; import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.JavaModelException; import org.eclipse.swt.graphics.Image; /** * @author Bob Brodt * */ public class JavaTypeTreeNode extends TreeNode { /** * @param modelObject * @param isCondensed */ public JavaTypeTreeNode(Object modelObject, boolean isCondensed) { super(modelObject, isCondensed); } @Override public String getLabel() { IType c = (IType)modelObject; return c.getElementName() + " - " + c.getFullyQualifiedName('.'); //$NON-NLS-1$ } @Override public Image getImage() { IType c = (IType)modelObject; try { if (c.isInterface()) return Activator.getDefault().getImage(IConstants.ICON_JAVA_INTERFACE_16); } catch (JavaModelException e) { } return Activator.getDefault().getImage(IConstants.ICON_JAVA_CLASS_16); } @Override public boolean hasChildren() { return false; //getChildren().length>0; } @Override public Object[] getChildren() { List<TreeNode> kids = new ArrayList<TreeNode>(); try { IType c = (IType)modelObject; for (IField f : c.getFields()) { if (Flags.isPublic(f.getFlags())) kids.add(new JavaMemberTreeNode(f,isCondensed)); } for (IMethod m : c.getMethods()) { if ((Flags.isPublic(m.getFlags()) && !m.isConstructor()) || c.isInterface()) kids.add(new JavaMemberTreeNode(m,isCondensed)); } for (IType ic : c.getTypes()) { if (Flags.isPublic(ic.getFlags())) kids.add(new JavaTypeTreeNode(ic,isCondensed)); } } catch (Exception e) { } return kids.toArray(new Object[kids.size()]); } }