# Copyright (c) 2012 Eike Stepper (Loehne, Germany) and others.
# 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:
#    Eike Stepper - initial API and implementation

pluginName = CDO Model Repository Examples Installer
providerName = Eclipse Modeling Project

CDOExampleCategory_name = CDO Model Repository

ExampleMasterWizard_name = CDO Master Server Example
ExampleMasterWizard_desc = Create a plug-in project with all the dependencies needed to start an OSGi headless server with a CDO master repository.
ExampleMasterProject_desc = This project contains the needed dependency declarations and an Eclipse application launch config.

ExampleCloneWizard_name = CDO Clone Server Example
ExampleCloneWizard_desc = Create a Java project with the dependencies and code needed to start a stand-alone CDO clone repository.
ExampleCloneProject_desc = This project contains the needed dependency declarations and an Java application launch config.

ExampleClientWizard_name = CDO Client Example
ExampleClientWizard_desc = Create plug-in projects with all the dependencies needed to start an Eclipse IDE with a CDO client in it.
ExampleClientProject_desc = This project contains the needed dependency declarations and an Eclipse application launch config.

ExampleOfflineWizard_name = CDO Offline Example
ExampleOfflineWizard_desc = Create plug-in projects with all the dependencies needed to start an RCP application with fail-over and offline support.
ExampleOfflineProject_desc = This project contains the needed dependency declarations and an Eclipse application launch config.

ExampleModelWizard_name = CDO Model Example
ExampleModelWizard_desc = Create plug-in projects for an example CDO model and the related edit support.
ExampleModelProject_desc = This project contains the Company model and the implementation generated from it.
ExampleEditProject_desc = This project contains the item providers generated to support viewing and editing instances of the Company model.

ExampleGastroWizard_name = CDO Electronic Restaurant Example
ExampleGastroWizard_desc = Create plug-in projects for a complete distributed application system to support a restaurant with touchscreens at the tables.
ExampleProject_gastro.inventory_desc = This project contains the Inventory model and the implementation generated from it.
ExampleProject_gastro.inventory.edit_desc = This project contains the item providers generated to support viewing and editing instances of the Inventory model.
ExampleProject_gastro.business_desc = This project contains the Gastro Business Day model and the implementation generated from it.
ExampleProject_gastro.business.edit_desc = This project contains the item providers generated to support viewing and editing instances of the Business Day model.
ExampleProject_gastro.rcp_desc = This project contains the base framework for the various RCP applications in thes example.
ExampleProject_gastro.rcp.department_desc = This project contains the Department RCP application (used for kitchens and bars).
ExampleProject_gastro.rcp.table_desc = This project contains the Table RCP application (used for the touch screens at the restaurant tables).
ExampleProject_gastro.server_desc = This project contains the CDO repository server as an OSGi headless application.
ExampleProject_gastro.server.web_desc = This project contains a servlet that renders the restaurant menu card as HTML.
ExampleProject_gastro.testclient_desc = This project contains an Eclipse IDE launch with the generic CDO UI that can be used to play with the repository data.
