#
# Miscellaneous
#
Wizard.title.new=New 

#
# CheckedTableSelectionDialog
#
CheckedTableSelectionDialog.emptyListMessage=No entries available.
CheckedTableSelectionDialog.selectAll=&Select All
CheckedTableSelectionDialog.deselectAll=&Deselect All

#
# NewTestCaseCreationWizard Page 1
#
NewTestClassWizPage.title=JUnit TestCase
NewTestClassWizPage.description=Create a new JUnit TestCase
NewTestClassWizPage.methodStub.testRunner=&Add TestRunner statement for:
NewTestClassWizPage.methodStub.constructor=Constructor &from superclass
NewTestClassWizPage.methodStub.setUp=setUp&()
NewTestClassWizPage.methodStub.tearDown=tearDown(&)
NewTestClassWizPage.method.Stub.label=Which method stubs would you like to create?
NewTestClassWizPage.class_to_test.label=&Test class:
NewTestClassWizPage.class_to_test.browse=B&rowse...
NewTestClassWizPage.class_to_test.dialog.title=Class To Test
NewTestClassWizPage.class_to_test.dialog.message=Class for which tests shall be written:
NewTestClassWizPage.class_to_test.validate_name=Test class
NewTestClassWizPage.createType.beginTask=Creating type....
NewTestClassWizPage.marker.message=Implement {0}().
NewTestClassWizPage.error.superclass.not_exist=Superclass does not exist.
NewTestClassWizPage.error.superclass.is_interface=Superclass is an interface.
NewTestClassWizPage.error.superclass.not_implementing_test_interface=Superclass does not implement the ''{0}'' interface.
NewTestClassWizPage.testcase.label=Test &case:
NewTestClassWizPage.error.testcase.name_empty=Test case name is empty.
NewTestClassWizPage.error.testcase.name_qualified=Test case name must not be qualified.
NewTestClassWizPage.error.testcase.name_not_valid=Test case name is not valid. 
NewTestClassWizPage.error.testcase.name_discouraged=Test case name is discouraged. 
NewTestClassWizPage.error.testcase.already_exists=Test case already exists.
NewTestClassWizPage.error.testcase.already_exists_first_time=Default Test case already exists.
NewTestClassWizPage.error.class_to_test.not_valid=Test class name is not valid.
NewTestClassWizPage.error.class_to_test.not_exist=Test class does not exist in current project.
NewTestClassWizPage.warning.class_to_test.is_interface=Warning: Test class ''{0}'' is an interface.
NewTestClassWizPage.warning.class_to_test.not_visible=Warning: {0} ''{1}'' is not visible.
NewTestClassWizPage.comment.class_to_test=Test for {0} {1}
NewTestClassWizPage.error.junitNotOnbuildpath=JUnit is not on the project\'s buildpath, add the junit.jar to the project\'s buildpath first.
NewTestClassWizPage.error.junitNotOnbuildpath=JUnit is not on the project\'s buildpath, add the junit.jar to the project\'s buildpath first.
NewTestClassWizPage.treeCaption.classSelected={0} class selected.
NewTestClassWizPage.treeCaption.classesSelected={0} classes selected.

Interface=Interface
Class=Class

#
# NewTestCaseCreationWizard Page 2
#
NewTestClassWizPage2.selected_methods.label_one={0} method selected.
NewTestClassWizPage2.selected_methods.label_many={0} methods selected.
NewTestClassWizPage2.title=Test Methods
NewTestClassWizPage2.description=Select methods for which test method stubs should be created
NewTestClassWizPage2.create_tasks.text=Create &tasks for generated Test methods
NewTestClassWizPage2.methods_tree.label=Available &Methods
NewTestClassWizPage2.selectAll=&Select All
NewTestClassWizPage2.deselectAll=&Deselect All
NewTestClassWizPage2.method.Stub.label=Would you like to create a method stub for main?

#
# NewTestSuiteCreationWizard
#
NewTestSuiteWiz.unsavedchangesDialog.title=Unsaved changes
NewTestSuiteWiz.unsavedchangesDialog.message={0} contains unsaved changes. Save before updating?

#
# NewTestSuiteCreationWizard Page
#
NewTestSuiteWizPage.title=JUnit TestSuite
NewTestSuiteWizPage.description=Create a new JUnit TestSuite class for a package
NewTestSuiteWizPage.classes_in_suite.label=Test &Classes to include in Suite:
NewTestSuiteWizPage.selectAll=&Select All
NewTestSuiteWizPage.deselectAll=D&eselect All
NewTestSuiteWizPage.createType.beginTask=Creating test suite....
NewTestSuiteWizPage.createType.updating.suite_method=Updating existing suite() method
NewTestSuiteWizPage.createType.updateErrorDialog.title=Error updating class
NewTestSuiteWizPage.createType.updateErrorDialog.message=There is no source associated with this class file
NewTestSuiteWizPage.classes_in_suite.error.no_testclasses_selected=Warning: No Test Classes selected
NewTestSuiteWizPage.suiteName.text=&Test suite:
NewTestSuiteWizPage.typeName.error.name_empty=Test suite name is empty
NewTestSuiteWizPage.typeName.error.name_qualified=Test suite name must not be qualified
NewTestSuiteWizPage.typeName.error.name_not_valid=Test suite name is not valid. 
NewTestSuiteWizPage.typeName.error.name.name_discouraged=Warning: Test suite name is discouraged. 
NewTestSuiteWizPage.typeName.warning.already_exists=Warning: Test suite already exists. suite() method will be replaced.
NewTestSuiteWizPage.cannotUpdateDialog.title=Cannot update suite() method
NewTestSuiteWizPage.cannotUpdateDialog.message=The code in suite() that the wizard replaces must start with {0} and end with {1}

#
# UpdateTestSuite
#
UpdateAllTests.selected_methods.label_one={0} type selected.
UpdateAllTests.selected_methods.label_many={0} types selected.
UpdateAllTests.title=Recreate Test Suite
UpdateAllTests.message=&Test Classes to be included
UpdateAllTests.beginTask=Recreating suite() method....
UpdateAllTests.cannotUpdate.errorDialog.title=Cannot recreate suite() method.
UpdateAllTests.cannotUpdate.errorDialog.message=The code in suite() that the wizard replaces must start with {0} and end with {1}
UpdateAllTests.cannotFind.errorDialog.title=Cannot find suite() method.
UpdateAllTests.cannotFind.errorDialog.message=No suite() method could be found.

#
# JUnitWizard
#
NewJUnitWizard.op_error.title=New
NewJUnitWizard.op_error.message=Creation of element failed.

#
# ExceptionHandler
#
ExceptionDialog.seeErrorLogMessage= See error log for more details.

