/*******************************************************************************
* Copyright (c) 2012, 2015 Pivotal Software Inc.
* 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:
* VMware, Inc. - initial API and implementation
*******************************************************************************/
package org.springframework.ide.eclipse.config.ui.editors.integration.graph.parts;
import org.eclipse.gef.EditPart;
import org.springframework.ide.eclipse.config.graph.AbstractConfigGraphicalEditor;
import org.springframework.ide.eclipse.config.graph.model.Transition;
import org.springframework.ide.eclipse.config.graph.parts.AbstractConfigEditPartFactory;
import org.springframework.ide.eclipse.config.graph.parts.BorderedActivityPart;
import org.springframework.ide.eclipse.config.graph.parts.TransitionPart;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.IntegrationImages;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.AggregatorModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.AlternateTransition;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.BarrierModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.BridgeModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ChainContainerElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ChainModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ChannelModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ClaimCheckInModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ClaimCheckOutModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ControlBusModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.DelayerModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.EnricherModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ExceptionTypeRouterModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.FilterModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.GatewayModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.HeaderEnricherModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.HeaderFilterModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.HeaderValueRouterModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ImplicitChannelModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ImplicitTransition;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.InboundChannelAdapterModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.IntegrationDiagram;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.JsonToObjectTransformerModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.LoggingChannelAdapterModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.MapToObjectTransformerModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ObjectToJsonTransformerModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ObjectToMapTransformerModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ObjectToStringTransformerModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.OutboundChannelAdapterModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.PayloadDeserializingTransformerModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.PayloadSerializingTransformerModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.PayloadTypeRouterModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.PlaceholderModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.PublishSubscribeChannelModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.RecipientListRouterModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ResequencerModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ResourceInboundChannelAdapterModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.RouterModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.ServiceActivatorModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.SplitterModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.SyslogToMapTransformerModelElement;
import org.springframework.ide.eclipse.config.ui.editors.integration.graph.model.TransformerModelElement;
/**
* @author Leo Dos Santos
*/
public class IntegrationEditPartFactory extends AbstractConfigEditPartFactory {
public IntegrationEditPartFactory(AbstractConfigGraphicalEditor editor) {
super(editor);
}
@Override
public EditPart createEditPart(EditPart context, Object model) {
EditPart part = super.createEditPart(context, model);
if (context instanceof ChainContainerEditPart && part instanceof BorderedActivityPart) {
BorderedActivityPart borderedPart = (BorderedActivityPart) part;
borderedPart.setHasAnchors(false);
}
return part;
}
@Override
protected EditPart createEditPartFromModel(EditPart context, Object model) {
EditPart part = null;
if (model instanceof IntegrationDiagram) {
part = new IntegrationDiagramEditPart((IntegrationDiagram) model);
}
else if (model instanceof AggregatorModelElement) {
part = new AggregatorGraphicalEditPart((AggregatorModelElement) model);
}
else if (model instanceof BarrierModelElement) {
part = new BarrierGraphicalEditPart((BarrierModelElement) model);
}
else if (model instanceof BridgeModelElement) {
part = new BridgeGraphicalEditPart((BridgeModelElement) model);
}
else if (model instanceof ChainContainerElement) {
part = new ChainContainerEditPart((ChainContainerElement) model);
}
else if (model instanceof ChainModelElement) {
part = new ChainGraphicalEditPart((ChainModelElement) model);
}
else if (model instanceof ChannelModelElement) {
part = new ChannelGraphicalEditPart((ChannelModelElement) model, IntegrationImages.CHANNEL,
IntegrationImages.BADGE_SI);
}
else if (model instanceof ClaimCheckInModelElement) {
part = new ClaimCheckInGraphicalEditPart((ClaimCheckInModelElement) model);
}
else if (model instanceof ClaimCheckOutModelElement) {
part = new ClaimCheckOutGraphicalEditPart((ClaimCheckOutModelElement) model);
}
else if (model instanceof ControlBusModelElement) {
part = new ControlBusGraphicalEditPart((ControlBusModelElement) model);
}
else if (model instanceof DelayerModelElement) {
part = new DelayerGraphicalEditPart((DelayerModelElement) model);
}
else if (model instanceof EnricherModelElement) {
part = new EnricherGraphicalEditPart((EnricherModelElement) model);
}
else if (model instanceof ExceptionTypeRouterModelElement) {
part = new RouterGraphicalPart((ExceptionTypeRouterModelElement) model,
IntegrationImages.EXCEPTION_ROUTER, IntegrationImages.BADGE_SI);
}
else if (model instanceof FilterModelElement) {
part = new FilterGraphicalEditPart((FilterModelElement) model);
}
else if (model instanceof GatewayModelElement) {
part = new GatewayGraphicalEditPart((GatewayModelElement) model);
}
else if (model instanceof HeaderEnricherModelElement) {
part = new HeaderEnricherGraphicalEditPart((HeaderEnricherModelElement) model);
}
else if (model instanceof HeaderFilterModelElement) {
part = new HeaderFilterGraphicalEditPart((HeaderFilterModelElement) model);
}
else if (model instanceof HeaderValueRouterModelElement) {
part = new RouterGraphicalPart((HeaderValueRouterModelElement) model, IntegrationImages.ROUTER,
IntegrationImages.BADGE_SI);
}
else if (model instanceof ImplicitChannelModelElement) {
part = new ImplicitChannelGraphicalEditPart((ImplicitChannelModelElement) model);
}
else if (model instanceof InboundChannelAdapterModelElement) {
part = new InboundChannelAdapterGraphicalEditPart((InboundChannelAdapterModelElement) model);
}
else if (model instanceof JsonToObjectTransformerModelElement) {
part = new JsonToObjectTransformerGraphicalEditPart((JsonToObjectTransformerModelElement) model);
}
else if (model instanceof LoggingChannelAdapterModelElement) {
part = new LoggingChannelAdapterGraphicalEditPart((LoggingChannelAdapterModelElement) model);
}
else if (model instanceof MapToObjectTransformerModelElement) {
part = new MapToObjectTransformerGraphicalEditPart((MapToObjectTransformerModelElement) model);
}
else if (model instanceof ObjectToJsonTransformerModelElement) {
part = new ObjectToJsonTransformerGraphicalEditPart((ObjectToJsonTransformerModelElement) model);
}
else if (model instanceof ObjectToMapTransformerModelElement) {
part = new ObjectToMapTransformerGraphicalEditPart((ObjectToMapTransformerModelElement) model);
}
else if (model instanceof ObjectToStringTransformerModelElement) {
part = new ObjectToStringTransformerGraphicalEditPart((ObjectToStringTransformerModelElement) model);
}
else if (model instanceof OutboundChannelAdapterModelElement) {
part = new OutboundChannelAdapterGraphicalEditPart((OutboundChannelAdapterModelElement) model);
}
else if (model instanceof PayloadDeserializingTransformerModelElement) {
part = new PayloadDeserializingTransformerGraphicalEditPart(
(PayloadDeserializingTransformerModelElement) model);
}
else if (model instanceof PayloadSerializingTransformerModelElement) {
part = new PayloadSerializingTransformerGraphicalEditPart((PayloadSerializingTransformerModelElement) model);
}
else if (model instanceof PayloadTypeRouterModelElement) {
part = new RouterGraphicalPart((PayloadTypeRouterModelElement) model, IntegrationImages.ROUTER,
IntegrationImages.BADGE_SI);
}
else if (model instanceof PlaceholderModelElement) {
part = new PlaceholderGraphicalEditPart((PlaceholderModelElement) model);
}
else if (model instanceof PublishSubscribeChannelModelElement) {
part = new ChannelGraphicalEditPart((PublishSubscribeChannelModelElement) model,
IntegrationImages.PUBSUB_CHANNEL, IntegrationImages.BADGE_SI);
}
else if (model instanceof RecipientListRouterModelElement) {
part = new RecipientListRouterGraphicalEditPart((RecipientListRouterModelElement) model);
}
else if (model instanceof ResequencerModelElement) {
part = new ResequencerGraphicalEditPart((ResequencerModelElement) model);
}
else if (model instanceof ResourceInboundChannelAdapterModelElement) {
part = new ResourceInboundChannelAdapterGraphicalEditPart((ResourceInboundChannelAdapterModelElement) model);
}
else if (model instanceof RouterModelElement) {
part = new RouterGraphicalPart((RouterModelElement) model, IntegrationImages.ROUTER,
IntegrationImages.BADGE_SI);
}
else if (model instanceof ServiceActivatorModelElement) {
part = new ServiceActivatorGraphicalEditPart((ServiceActivatorModelElement) model);
}
else if (model instanceof SplitterModelElement) {
part = new SplitterGraphicalEditPart((SplitterModelElement) model);
}
else if (model instanceof SyslogToMapTransformerModelElement) {
part = new SyslogToMapTransformerGraphicalEditPart((SyslogToMapTransformerModelElement) model);
}
else if (model instanceof TransformerModelElement) {
part = new TransformerGraphicalEditPart((TransformerModelElement) model);
}
else if (model instanceof AlternateTransition) {
part = new AlternateTransitionPart((AlternateTransition) model);
}
else if (model instanceof ImplicitTransition) {
part = new ImplicitTransitionPart((ImplicitTransition) model);
}
else if (model instanceof Transition) {
part = new TransitionPart((Transition) model);
}
return part;
}
}