/******************************************************************************* | |
* Copyright (c) 2005, 2012 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.bpel.ui.details.providers; | |
import org.eclipse.bpel.model.PartnerLink; | |
import org.eclipse.bpel.model.partnerlinktype.PartnerLinkType; | |
import org.eclipse.bpel.ui.details.tree.ITreeNode; | |
import org.eclipse.bpel.ui.details.tree.PartnerLinkTreeNode; | |
import org.eclipse.bpel.ui.details.tree.PartnerLinkTypeTreeNode; | |
import org.eclipse.bpel.ui.details.tree.PortTypeTreeNode; | |
import org.eclipse.bpel.ui.util.ListMap; | |
import org.eclipse.wst.wsdl.Definition; | |
import org.eclipse.wst.wsdl.PortType; | |
/** | |
* Provides a tree of model objects representing some expansion of the underlying graph | |
* of model objects whose roots are the Variables of a Process. | |
*/ | |
public class PartnerLinkTypeTreeContentProvider extends ModelTreeContentProvider { | |
boolean isPropertyTree; | |
private CompositeContentProvider fContentProvider; | |
public PartnerLinkTypeTreeContentProvider( boolean isCondensed ) { | |
super(isCondensed); | |
fContentProvider = new CompositeContentProvider (); | |
fContentProvider.add ( new PartnerLinkTypeContentProvider() ); | |
fContentProvider.add ( new PortTypeContentProvider() ); | |
} | |
public boolean isPropertyTree() { return isPropertyTree; } | |
@Override | |
public Object[] primGetElements (Object inputElement) { | |
ITreeNode result = getTreeNode ( inputElement ); | |
if (result != null) { | |
return new Object[] { result } ; | |
} | |
if (inputElement instanceof Definition) { | |
return (Object[]) ListMap.Map ( | |
fContentProvider.getElements( inputElement ) , | |
new ListMap.Visitor () { | |
public Object visit (Object obj) { | |
Object r = getTreeNode ( obj ); | |
return (r == null ? ListMap.IGNORE : r ); | |
} | |
}, | |
EMPTY_ARRAY ); | |
} | |
return EMPTY_ARRAY; | |
} | |
ITreeNode getTreeNode ( Object inputElement ) { | |
if (inputElement instanceof PartnerLinkType) { | |
return new PartnerLinkTypeTreeNode ((PartnerLinkType)inputElement,isCondensed); | |
} | |
if (inputElement instanceof PortType) { | |
return new PortTypeTreeNode ((PortType) inputElement,isCondensed); | |
} | |
if (inputElement instanceof PartnerLink) { | |
return new PartnerLinkTreeNode ((PartnerLink) inputElement, isCondensed ); | |
} | |
return null; | |
} | |
} |