######################################################################
# Copyright (c) 2005, 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
#######################################################################

graphitiText = Graphiti - A Graphical Tool Development Framework\n\
\n\
Graphiti is an Eclipse-based graphics framework that enables easy\n\
development of state-of-the-art diagram editors for domain models.\n\
Graphiti can use EMF-based domain models very easily but can deal with\n\
any Java-based objects on the domain side as well.\n\
\n\
Copyright (c) 2005, 2011 SAP AG. All rights reserved.\n\
Visit http://eclipse.org/graphiti/