plugin.SWTLauncherExample.name = SWT Launcher Example Plugin
category.SWTExamples.name = SWT Examples
view.LauncherExample.name = SWT Example Launcher

extension-point.launchItems.name = Launch Items

launchcategory.SWTViewExamples.name = Workbench Views
launchcategory.SWTViewExamples.description = \
	A collection of Standard Widget Toolkit examples that run as Views inside the Workbench.  \
	These examples will create a new View in the current Perspective.

launchitem.LauncherExample.name = Launcher
launchitem.LauncherExample.description = \
	Introduction\n\
	The Example Launcher is a tool for enumerating, running and browsing a variety of examples.  \
	While these operations may be performed manually (with some difficulty), the Example Launcher \
	offers a convenient interface.  For information on how to manipulate particular examples \
	manually, please consult their related documentation.\n\n\
	Running the Example Launcher\n\
	To run the Example Launcher, pull down the Perspective menu, select the \
	Show View menu item, then select Other from the submenu.  A dialog \
	will come up with a list of views.  Expand SWT Examples and select \
	the view named SWT Example Launcher.  A view containing a list of examples to \
	choose will appear.\n\n\
	About the examples\n\
	The Example Launcher can launch two different types of examples: Workbench Views, \
	and Standalone applications.  Examples will generally be organized into categories to \
	distinguish the one from the other.\n\n\
	Workbench Views are GUI panels that sit inside a given perspective.  When the Launcher \
	starts a program that is written to interact with the Workbench as a view, it is opened and \
	embedded into the currently active perspective.\n\n\
	Standalone applications are programs that run independently of the current \
	Eclipse Platform environment.  First, a new Java VM and Eclipse Platform runtime \
	is started, then the application's main() method is invoked.  For this reason, \
	these applications may take some time to load.\n\n\
	Details\n\n\
	The example launcher view contains a tree list, a text area, and 2 buttons.  \
	The tree list contains a list of all the SWT examples you can choose \
	to run.  When an example is selected from the tree, the text area \
	shows a short description of each example.  The selected example can \
	be executed by clicking on the Run button, which can be found just below \
	the tree list.  For some of the examples, you can also import the example \
	source code into a project in the Workspace.  A project, with a name specified \
	by the user, is created and all the java classes required to run that example \
	will be added to that newly created project.\n\n\
	Depending on the example and on the configuration of your system, it may be \
	necessary to alter Project build paths or to define classpath variables to compile \
	or run examples that have been imported to the Workspace.

error.CouldNotLoadResources = Unable to load resources
error.IncompleteProgramLaunchItem = Incomplete XML ProgramLaunchItem definition, id = {0}
error.IncompleteViewLaunchItem = Incomplete XML ViewLaunchItem definition, id = {0}
error.IncompleteLaunchItem = Incomplete or unrecognized XML LaunchItem definition, id = {0}

dialog.RunProgramProblems.title = Run Program Problems
dialog.RunProgramErrorCheckLog.message = Error while running program "{0}", check log for details.

dialog.ImportPathInput.title = Add to Workbench
dialog.ImportPathInput.message = Enter the name of the new project to create.
dialog.InvalidTargetProjectPath.interactive = Not a valid project name.
dialog.ExistingProjectPath.interactive = A project with that name already exists.

dialog.ImportProgramProblems.title = Add to Workbench Problems
dialog.InvalidTargetProjectPath.message = "{0}" is not a valid project name.
dialog.ErrorAccessingZipFile.message = Error accessing Zip/Jar file "{0}" for import.  {1}
dialog.ErrorCreatingNewProject.message = Error creating new project.  {0}
dialog.ErrorUpdatingProjectProperties.message = Error updating project properties.  {0}
dialog.UnableToGetJavaProjectHandle.message = Could not retrieve Java Project handle.
dialog.UnableToSetClasspathVariable.message = Could not set classpath variable "{0}" to "{1}".
dialog.UnableExpandSubstitutionKeyword.message = Could not expand substitution variable "{0}" in "{1}" line of import.properties.
dialog.UnableToProgramArguments.message = Could not set program arguments for type "{1}" in resource "{0}" to "{2}".
dialog.UnableToVMArguments.message = Could not set VM arguments for type "{1}" resource "{0}" to "{2}".

dialog.ImportProgramOverwrite.title = Add to Workbench
dialog.FileAlreadyExists.message = {0} already exists.  Would you like to overwrite it?

launchitem.Null.description = <<no item selected>>

launchitem.Missing.name = <<unnamed>>
launchitem.Missing.description = <<no description available>>

view.launchGroup.text = Examples
view.launchButton.text = Run
view.importButton.text = Add to Workspace
view.descriptionGroup.text = Description

run.error.Invocation = A fatal error occurred while launching the program.
run.error.Execution = An uncaught exception occured while running the program.
run.error.CouldNotFindPlugin = Could not find plugin: {0}
run.error.CouldNotFindMain = Could not find a suitable main method to run.
run.error.CouldNotFindDefaultVM = Could not find default VM.  Please ensure that a default VM has been selected in the Java Properties editor.
run.error.CouldNotFindVMRunner = The VM "{0}" does not support launching Java programs in ''Run'' mode.  Please select a default VM that supports this mode in the Java Properties editor.
run.error.CouldNotDetermineClasspath = Internal Error: Unable to determine classpath for plugin: {0}
run.error.MalformedArgumentList = Malformed argument list
run.error.MissingAppPlugin = Missing -appplugin argument.  Must specify the plugin with the program to launch.
run.error.MissingAppClass = Missing -appclass argument.  Must specify the class with the main() method to invoke.
