/******************************************************************************* * Copyright (c) 2010 SAP AG. * 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: * Emil Simeonov - initial API and implementation. * Dimitar Donchev - initial API and implementation. * Dimitar Tenev - initial API and implementation. * Nevena Manova - initial API and implementation. * Georgi Konstantinov - initial API and implementation. *******************************************************************************/ package org.eclipse.wst.sse.sieditor.ui.v2.providers; import org.eclipse.ui.forms.IDetailsPage; import org.eclipse.ui.forms.IDetailsPageProvider; import org.eclipse.wst.sse.sieditor.ui.v2.dt.ITypeDisplayer; import org.eclipse.wst.sse.sieditor.ui.v2.nodes.ITreeNode; import org.eclipse.wst.sse.sieditor.ui.v2.wsdl.controller.SIFormPageController; import org.eclipse.wst.sse.sieditor.ui.v2.wsdl.detailspages.FaultDetailsPage; import org.eclipse.wst.sse.sieditor.ui.v2.wsdl.detailspages.OperationDetailsPage; import org.eclipse.wst.sse.sieditor.ui.v2.wsdl.detailspages.ParameterDetailsPage; import org.eclipse.wst.sse.sieditor.ui.v2.wsdl.detailspages.ServiceInterfaceDetailsPage; import org.eclipse.wst.sse.sieditor.ui.v2.wsdltree.nodes.FaultNode; import org.eclipse.wst.sse.sieditor.ui.v2.wsdltree.nodes.OperationNode; import org.eclipse.wst.sse.sieditor.ui.v2.wsdltree.nodes.ParameterNode; import org.eclipse.wst.sse.sieditor.ui.v2.wsdltree.nodes.ServiceInterfaceNode; public class WSDLDetailsPageProvider implements IDetailsPageProvider { protected final SIFormPageController controller; private final ITypeDisplayer typeDisplayer; public WSDLDetailsPageProvider(SIFormPageController controller, ITypeDisplayer typeDisplayer) { this.controller = controller; this.typeDisplayer = typeDisplayer; } // the pages are not cached here because a limited count of these is cashed // in the DetailsPart showing them - no sense of L2 cache, right? // @Override public IDetailsPage getPage(Object key) { if (ServiceInterfaceNode.class.equals(key)) { return new ServiceInterfaceDetailsPage(controller); } else if (OperationNode.class.equals(key)) { return new OperationDetailsPage(controller); } else if (ParameterNode.class.equals(key)) { return new ParameterDetailsPage(controller, typeDisplayer); } else if (FaultNode.class.equals(key)) { return new FaultDetailsPage(controller, typeDisplayer); } else { return null; } } // @Override public Object getPageKey(Object object) { if (object instanceof ITreeNode) { return object.getClass(); } return null; } }