#############################################################################
# Copyright (c) 2007, 2009 Anyware Technologies
# 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: 
#   Anyware Technologies - initial API and implementation
# 
# $Id: plugin.properties,v 1.6 2011/06/01 16:14:44 vhemery Exp $
#############################################################################

pluginName=Ecore Tools
providerName=Eclipse Modeling Project
copyright=Copyright (c) 2007 Anyware Technologies. All rights reserved. 

ecore.perspective.name=Ecore
ecore.nature.name=Ecore Tools
ecore.project.name=Ecore Tools Project
ecore.project.description=Creates a new Ecore tools project
ecore.tools.category=Ecore Tools

ecore.class.hierarchy.view.title=EClass Hierarchy
ecore.class.reference.view.title=EClass References

menu.show.hierarchy=Show Hierarchy
menu.show.references=Show References

