2012-01-09 7 views
0

私はいくつかのアクションを実行し、Eclipseが提供するOverride Implemetウィンドウに同様のウィンドウを表示したいと思います。Eclipseが提供するOverride/Implementに似たウィジェットを実装するには?

私はthis postを見つけましたが、まだそれで苦労しています。

私はアクションを作成しました:

<objectContribution 
      id="Test.objectContribution1" 
      objectClass="org.eclipse.core.resources.IProject"> 

      <action 
       label="MyView" 
       retarget="true" 
       menubarPath="addition" 
       class="test.plugin.popup.actions.MyViewAction" 
       id="test.plugin.popup.actions.MyViewAction" 
       > 
     </action> 

私はちょうどOverrideMethodsAction EclipseのクラスをコピーしてMyViewActionにそれを改名しました。私は私の新しいアクションをクリックすると は、私は例外を取得:

!ENTRY org.eclipse.libra.facet 4 0 2012-01-09 14:50:54.635 
    !MESSAGE startup class must implement org.eclipse.ui.IStartup 

    !ENTRY org.eclipse.ui 4 4 2012-01-09 14:51:03.052 
    !MESSAGE Could not create action delegate for id: test.plugin.popup.actions.MyViewAction 

    !ENTRY org.eclipse.equinox.registry 4 1 2012-01-09 14:51:03.053 
    !MESSAGE Plug-in "test" was unable to instantiate class 

    test.plugin.popup.actions.MyViewAction. 
     !STACK 0 
     java.lang.InstantiationException: test.plugin.popup.actions.MyViewAction 
      at java.lang.Class.newInstance0(Class.java:357) 
      at java.lang.Class.newInstance(Class.java:325) 
      at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:184) 
      at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905) 
      at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243) 
      at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) 
      at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:268) 
      at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
      at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:264) 
      at org.eclipse.ui.internal.PluginAction.createDelegate(PluginAction.java:122) 
      at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:223) 
      at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) 
      at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) 
      at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) 
      at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
      at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) 
      at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588) 
      at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209) 
      at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) 
      at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) 
      at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) 
      at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) 
      at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
      at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) 
      at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
      at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) 
      at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
      at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
      at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
      at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) 
      at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
      at java.lang.reflect.Method.invoke(Method.java:616) 
      at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) 
      at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) 
      at org.eclipse.equinox.launcher.Main.run(Main.java:1410) 
      at org.eclipse.equinox.launcher.Main.main(Main.java:1386) 

私は他に何をすべきか、または他にどこ見て見当がつかない。

おかげ

EDIT:

私は、引数なしのコンストラクタを追加することができませんでした。私はそれをどうやって行うのか分かりません。

私はもう一度クラスを開始しました。クラスGenerateToStringAction、GenerateMethodAbstractAction、およびSelectionDispatchActionをプロジェクトにコピーし、GenerateToStringActionAG、GenerateMethodAbstractActionAG、およびSelectionDispatchActionAGという名前に変更しました。

私は私が私のアクションをクリックしたときにGenerateToString()ウィンドウを表示するために期待していたが、代わりに私が得た:

java.lang.ClassNotFoundException: test.plugin.popup.actions.GenerateToStringActionAG 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) 
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
    at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345) 
    at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229) 
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207) 
    at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174) 
    at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905) 
    at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243) 
    at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55) 
    at org.eclipse.ui.internal.WorkbenchPlugin$1.run(WorkbenchPlugin.java:268) 
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) 
    at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:264) 
    at org.eclipse.ui.internal.PluginAction.createDelegate(PluginAction.java:122) 
    at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:223) 
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584) 
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501) 
    at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411) 
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) 
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3588) 
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3209) 
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) 
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) 
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) 
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) 
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) 
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) 
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344) 
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622) 
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) 
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410) 
    at org.eclipse.equinox.launcher.Main.main(Main.java:1386) 

私は、私は非常に間違った方法でつもりだと思います。

+0

達成しようとしていることは私には分かりません。 「メソッドのオーバーライド/インプリメンテーションと似ています」ダイアログが表示されます。それは同じダイアログでなければならないの?どのように正確に似て、何が違うべきですか?クラスをコピーすることは、確かに良い考えではありません。 –

答えて

0

クラスtest.plugin.popup.actions.MyViewActionには、引数のないコンストラクタが必要です。

私たちがいる間に、this answerを見てみるといいでしょう。

+0

あなたの答えをありがとう!私は自分の質問を編集した –

関連する問題