blob: 91ba311ed8299689ad4eb6a7c8c115cb30eedb42 [file] [log] [blame]
/*****************************************************************************
* Copyright (c) 2012 CEA LIST.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
*****************************************************************************/
package org.eclipse.papyrus.infra.gmfdiag.css.cdo.factory;
import org.eclipse.gmf.runtime.notation.ArrowStyle;
import org.eclipse.gmf.runtime.notation.BasicCompartment;
import org.eclipse.gmf.runtime.notation.BasicSemanticCompartment;
import org.eclipse.gmf.runtime.notation.CanonicalStyle;
import org.eclipse.gmf.runtime.notation.Compartment;
import org.eclipse.gmf.runtime.notation.Connector;
import org.eclipse.gmf.runtime.notation.ConnectorStyle;
import org.eclipse.gmf.runtime.notation.DataTypeStyle;
import org.eclipse.gmf.runtime.notation.DecorationNode;
import org.eclipse.gmf.runtime.notation.DescriptionStyle;
import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.gmf.runtime.notation.DiagramLinkStyle;
import org.eclipse.gmf.runtime.notation.DiagramStyle;
import org.eclipse.gmf.runtime.notation.DrawerStyle;
import org.eclipse.gmf.runtime.notation.Edge;
import org.eclipse.gmf.runtime.notation.FillStyle;
import org.eclipse.gmf.runtime.notation.FilteringStyle;
import org.eclipse.gmf.runtime.notation.FontStyle;
import org.eclipse.gmf.runtime.notation.GuideStyle;
import org.eclipse.gmf.runtime.notation.HintedDiagramLinkStyle;
import org.eclipse.gmf.runtime.notation.ImageBufferStyle;
import org.eclipse.gmf.runtime.notation.ImageStyle;
import org.eclipse.gmf.runtime.notation.LineStyle;
import org.eclipse.gmf.runtime.notation.LineTypeStyle;
import org.eclipse.gmf.runtime.notation.ListCompartment;
import org.eclipse.gmf.runtime.notation.MultiDiagramLinkStyle;
import org.eclipse.gmf.runtime.notation.NamedStyle;
import org.eclipse.gmf.runtime.notation.Node;
import org.eclipse.gmf.runtime.notation.PageStyle;
import org.eclipse.gmf.runtime.notation.PropertiesSetStyle;
import org.eclipse.gmf.runtime.notation.RoundedCornersStyle;
import org.eclipse.gmf.runtime.notation.RoutingStyle;
import org.eclipse.gmf.runtime.notation.SemanticListCompartment;
import org.eclipse.gmf.runtime.notation.Shape;
import org.eclipse.gmf.runtime.notation.ShapeStyle;
import org.eclipse.gmf.runtime.notation.SortingStyle;
import org.eclipse.gmf.runtime.notation.StandardDiagram;
import org.eclipse.gmf.runtime.notation.TextStyle;
import org.eclipse.gmf.runtime.notation.TitleStyle;
import org.eclipse.emf.cdo.gmf.notation.impl.NotationFactoryImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSArrowStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSBasicCompartmentImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSBasicSemanticCompartmentImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSCanonicalStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSCompartmentImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSConnectorImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSConnectorStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSDataTypeStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSDecorationNodeImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSDescriptionStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSDiagramLinkStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSDiagramStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSDrawerStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSEdgeImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSFillStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSFilteringStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSFontStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSGuideStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSHintedDiagramLinkStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSImageBufferStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSImageStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSLineStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSLineTypeStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSListCompartmentImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSMultiDiagramLinkStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSNamedStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSNodeImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSPageStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSPropertiesSetStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSRoundedCornersStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSRoutingStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSSemanticListCompartmentImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSShapeImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSShapeStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSSortingStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSStandardDiagramImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSTextStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSTitleStyleImpl;
import org.eclipse.papyrus.infra.gmfdiag.css.cdo.notation.CSSDiagramImpl;
/**
* This factory overrides the GMF NotationFactory for implementing the Notation model
*
* It provides a CSS-Aware implementation of the Notation model.
*
* As the only way to use a custom Metamodel Factory is to replace the singleton instance, this factory may introduce
* noise for all GMF-based components. However, the CSS implementation of the Notation Metamodel is built in such a way
* that it doesn't introduce any behavioral change for non-CSS diagrams.
*
* The CSS Support must be explicitly installed on the ResourceSet in order to activate the CSS-Aware capabilities of
* this implementation.
*
* @see {@link org.eclipse.papyrus.infra.gmfdiag.css.helper.CSSHelper#installCSSSupport(org.eclipse.emf.ecore.resource.ResourceSet)}
*
* @author Camille Letavernier
*
*/
public class CSSNotationFactory extends NotationFactoryImpl {
public static CSSNotationFactory eINSTANCE = new CSSNotationFactory();
@Override
public Diagram createDiagram() {
return new CSSDiagramImpl();
}
@Override
public FillStyle createFillStyle() {
return new CSSFillStyleImpl();
}
@Override
public LineStyle createLineStyle() {
return new CSSLineStyleImpl();
}
@Override
public FontStyle createFontStyle() {
return new CSSFontStyleImpl();
}
@Override
public TitleStyle createTitleStyle() {
return new CSSTitleStyleImpl();
}
@Override
public SortingStyle createSortingStyle() {
return new CSSSortingStyleImpl();
}
@Override
public DescriptionStyle createDescriptionStyle() {
return new CSSDescriptionStyleImpl();
}
@Override
public RoutingStyle createRoutingStyle() {
return new CSSRoutingStyleImpl();
}
@Override
public CanonicalStyle createCanonicalStyle() {
return new CSSCanonicalStyleImpl();
}
@Override
public ShapeStyle createShapeStyle() {
return new CSSShapeStyleImpl();
}
@Override
public ConnectorStyle createConnectorStyle() {
return new CSSConnectorStyleImpl();
}
@Override
public PageStyle createPageStyle() {
return new CSSPageStyleImpl();
}
@Override
public DrawerStyle createDrawerStyle() {
return new CSSDrawerStyleImpl();
}
@Override
public GuideStyle createGuideStyle() {
return new CSSGuideStyleImpl();
}
@Override
public FilteringStyle createFilteringStyle() {
return new CSSFilteringStyleImpl();
}
@Override
public DiagramStyle createDiagramStyle() {
return new CSSDiagramStyleImpl();
}
@Override
public ImageStyle createImageStyle() {
return new CSSImageStyleImpl();
}
@Override
public ImageBufferStyle createImageBufferStyle() {
return new CSSImageBufferStyleImpl();
}
@Override
public PropertiesSetStyle createPropertiesSetStyle() {
return new CSSPropertiesSetStyleImpl();
}
@Override
public NamedStyle createNamedStyle() {
return new CSSNamedStyleImpl();
}
@Override
public DataTypeStyle createDataTypeStyle() {
return new CSSDataTypeStyleImpl();
}
@Override
public HintedDiagramLinkStyle createHintedDiagramLinkStyle() {
return new CSSHintedDiagramLinkStyleImpl();
}
@Override
public DiagramLinkStyle createDiagramLinkStyle() {
return new CSSDiagramLinkStyleImpl();
}
@Override
public MultiDiagramLinkStyle createMultiDiagramLinkStyle() {
return new CSSMultiDiagramLinkStyleImpl();
}
@Override
public TextStyle createTextStyle() {
return new CSSTextStyleImpl();
}
@Override
public LineTypeStyle createLineTypeStyle() {
return new CSSLineTypeStyleImpl();
}
@Override
public ArrowStyle createArrowStyle() {
return new CSSArrowStyleImpl();
}
@Override
public Shape createShape() {
return new CSSShapeImpl();
}
@Override
public Compartment createCompartment() {
return new CSSCompartmentImpl();
}
@Override
public ListCompartment createListCompartment() {
return new CSSListCompartmentImpl();
}
@Override
public Connector createConnector() {
return new CSSConnectorImpl();
}
@Override
public StandardDiagram createStandardDiagram() {
return new CSSStandardDiagramImpl();
}
@Override
public BasicCompartment createBasicCompartment() {
return new CSSBasicCompartmentImpl();
}
@Override
public BasicSemanticCompartment createBasicSemanticCompartment() {
return new CSSBasicSemanticCompartmentImpl();
}
@Override
public SemanticListCompartment createSemanticListCompartment() {
return new CSSSemanticListCompartmentImpl();
}
@Override
public RoundedCornersStyle createRoundedCornersStyle() {
return new CSSRoundedCornersStyleImpl();
}
@Override
public DecorationNode createDecorationNode() {
return new CSSDecorationNodeImpl();
}
@Override
public Edge createEdge() {
return new CSSEdgeImpl();
}
@Override
public Node createNode() {
return new CSSNodeImpl();
}
}