######################################################################
# Copyright (c) 2012, 2019 SAP SE
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
#
# Contributors:
#    SAP SE - initial API, implementation and documentation
#
# SPDX-License-Identifier: EPL-2.0
#######################################################################
pluginName = Graphiti New Project Wizard (Incubation)
providerName = Eclipse Modeling Project

pluginContent.newgraphitieditorwizard.name = Plug-in with a Graphiti Editor
pluginContent.newgraphitieditorwizard.description =\
<p>This wizard creates a standard plug-in directory structure and adds\
the following:</p><li>A sample Graphiti <b>Diagram Type</b>.</li><li>A\
sample Graphiti <b>Diagram Type Provider</b>. Defines the Eclipse editor\
and its feature provider.</li><li>A sample <b>Feature Provider</b> that\
is used in the Diagram Type Provider and registers a default set of features\
for the editor.</li><li>A feature set for a generic domain object consisting\
of a create, an add and a layout feature.</li><li>A feature set for a generic\
connection consisting of a create and an add feature.</li><p><b>Extensions\
Used</b></p><li>org.eclipse.graphiti.ui.diagramTypes</li>\
<li>org.eclipse.graphiti.ui.diagramTypeProviders</li>