Eclipseプラグイン開発でPropertyPageを作成しているのですが、その画面を開くと次のようなエラーが出ます。

画像の説明をここに入力

その際、スタックトレースは次のように出力されます。

java.lang.ClassCastException: org.eclipse.jdt.internal.core.JavaProject cannot be cast to org.eclipse.core.resources.IProject
    at link.arata.mybatishelper.ProjectPropertyPage.createContents(ProjectPropertyPage.java:22)
    at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:241)
    at org.eclipse.jface.preference.PreferenceDialog.createPageControl(PreferenceDialog.java:1450)
    at org.eclipse.jface.preference.PreferenceDialog$13.run(PreferenceDialog.java:1217)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
    at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1209)
    at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:608)
    at org.eclipse.jface.preference.PreferenceDialog$9$1.run(PreferenceDialog.java:675)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(PreferenceDialog.java:670)
    at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:877)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
    at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:874)
    at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1243)
    at org.eclipse.jface.viewers.StructuredViewer$5.widgetSelected(StructuredViewer.java:1269)
    at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:265)
    at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:259)
    at org.eclipse.jface.util.OpenStrategy$1$2.run(OpenStrategy.java:440)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4024)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3700)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:827)
    at org.eclipse.jface.window.Window.open(Window.java:803)
    at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:157)
    at org.eclipse.jface.action.Action.runWithEvent(Action.java:473)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:595)
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:511)
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:420)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4230)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1491)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1514)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1499)
    at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1299)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4072)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3698)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1488)

plugin.xmlは次のように記述しています。

 <extension point="org.eclipse.ui.propertyPages">
  <page
   class="link.arata.mybatishelper.ProjectPropertyPage"
   id="link.arata.mybatishelper.projectPropertyPage"
   name="MyBatis Helper">
   <enabledWhen>
    <adapt type="org.eclipse.core.resources.IProject" />
   </enabledWhen>
  </page>
 </extension>

ProjectPropertyPageは次のとおりです。

package link.arata.mybatishelper;

public class ProjectPropertyPage extends PropertyPage {
    private String KEY_NEW_LINE_CODE;
    private Text newLineCode;

    @Override
    protected Control createContents(Composite parent) {
        IProject project = (IProject) getElement();

        Composite composite = new Composite(parent, SWT.NONE);
        // 略
        return composite;
    }

    @Override
    public boolean performOk() {
        IProject project = (IProject) getElement();
        setValue(project, KEY_NEW_LINE_CODE, newLineCode.getText());

        return true;
    }

    private String getValue(IProject project, String key) {
        try {
            return project.getPersistentProperty(new QualifiedName(Activator.PLUGIN_ID, key));
        } catch (CoreException e) {
            ILog log = Activator.getDefault().getLog();
            log.log(e.getStatus());
            return null;
        }
    }

    private void setValue(IProject project, String key, String value) {
        try {
            project.setPersistentProperty(new QualifiedName(Activator.PLUGIN_ID, key), value);
        } catch (CoreException e) {
            ILog log = Activator.getDefault().getLog();
            log.log(e.getStatus());
        }
    }
}

例外が出ている箇所は ProjectPropertyPage#createContentsメソッドの最初の行のIProject project = (IProject) getElement();の部分でキャストできなくてエラーなのは分かっています。

ただ、書籍(古いですが、Eclipseプラグイン開発 徹底攻略)やWebサイト(hishidamaさんのサイト)、また他のプラグインなどを見ても同様の記述しか無いため、どのように書けばいいのかわからない状況です。

追記:関係するかわかりませんが、MANIFEST.MFは次のとおりです。

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: MyBatis Helper
Bundle-SymbolicName: link.arata.mybatishelper;singleton:=true
Bundle-Version: 0.1.0
Bundle-Activator: link.arata.mybatishelper.Activator
Require-Bundle: org.eclipse.ui,
 org.eclipse.core.runtime,
 org.eclipse.ui.editors;bundle-version="3.9.0",
 org.eclipse.ui.ide;bundle-version="3.11.0",
 org.eclipse.core.resources;bundle-version="3.10.1"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy