<?xml version="1.0" encoding="UTF-8"?>
<form>
   <p><b>Generated content</b></p><p>This plug-in has been created using content templates. The following templates were used:</p>
   <li style="text" value="1."><b>New File Wizard.</b>This template creates a wizard that can create a new file in the workspace. It is designed to generate files that can be opened by a <b>Multi-Page Editor</b>. To test the wizard, select <b>File</b>, <b>New</b> then <b>Other...</b> from the menu bar. When the master wizard opens, select the created category and the new wizard registered for that category. Make sure that the chosen extension matches the extension the multi-page editor is registered for (*.mpe by default).</li>
   <p/><p><b>Tips on working with this plug-in project</b></p><li>For the view of the new plug-in at a glance, go to the <img href="pageImage"/><a href="OverviewPage">Overview</a>.</li><li>You can test the contributions of this plug-in by launching another instance of the workbench. On the <b>Run</b> menu, click <b>Run As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.run">Run-time Workbench</a> from the available choices.</li><li>You can add more functionality to this plug-in by adding extensions using the <a href="action.newExtension">New Extension Wizard</a>.</li><li>The plug-in project contains Java code that you can debug. Place breakpoints in Java classes. On the <b>Run</b> menu, select <b>Debug As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.debug">Run-time Workbench</a> from the available choices.</li>
</form>
