4

ビューを提供するために使用されるEclipseプラグインがあります。ただし、プラグインの次のバージョンでは、機能が別の方法で実行されているため、このビューを提供したくありません。では、どうすればビューを削除できますか?

plugin.xmlからビュー宣言を削除するだけで、「ビューcom.foobar.view.idを作成できませんでした」のアップグレード後にエラーとして表示されます。これは、ビューがまだワークスペースにリストされているためです。 .xmlであるため、Eclipseは再起動時にそれを作成しようとします。

作成したダミービューに対してそのビューIDを登録する場合は、これをplugin.xmlに登録する必要があるため、Windows、ビューの表示、その他のリストに表示されます...

そのIDを別のビューで再利用したくない場合に、この古いビューを適切な方法で取り除く方法はありますか?

4

3 に答える 3

1

Eclipseでビューを非推奨にするのは簡単ではないと思います。あなたが質問でそれを述べたように、あなたはそれを取り除くかどうかのどちらかである可能性があります。

次のバージョンでは、次回機能を探すためのドキュメントを含むダミービューを含めることができます。次に、Eclipseがこのダミービューを再度開かないように、plugin.xmlの復元可能なプロパティをfalseに設定します。

そして、後のバージョンでは、ビューを完全に削除できます。

于 2012-05-17T08:15:22.897 に答える
1

結局、私は古い活動のトリックを袋から取り出し、許容できる解決策を手に入れました。後世のためにここにそれを文書化しますが、誰かがより良い方法を思い付くかどうか聞くのが大好きです。

最初に、「このビューは意図的に空白にしています」などの情報を表示するだけの空白のViewPageを作成して、アップグレードが成功したことをユーザーに知らせ、ビューを閉じることができるようにします。この例では、同等の機能がどこにあるかを説明し、クリックしてアプリケーションのその部分に移動できるリンクを用意します。

次に、このビュークラスを古いビューIDの実装として登録し、復元不可としてマークします。

<view
  allowMultiple="false"
  category="com.foobar.category"
  class="com.foobar.ui.views.DeprecatedView"
  id="com.foobar.ui.views.OldView"
  name="My Old View"
  restorable="false"/>

最後に、アクティビティトリックをバッグから引き出す必要があります。新しいアクティビティを作成し、それにビューを入れます。これにより、古いビューが[ビューの表示]、[その他...]ダイアログから除外され、新しいユーザーに再度表示されなくなります。例えば:

<extension 
  point="org.eclipse.ui.activities">

  <activity
    name="Deprecated"
    description="Supress old views that are no longer used."
    id="com.foobar.hidden">
  </activity>

  <activityPatternBinding
    activityId="com.foobar.hidden"
    pattern="com.foorbar.plugin/com.foobar.ui.views.OldView"
    isEqualityPattern="true">
  </activityPatternBinding>

</extension>

ユーザーエクスペリエンスでは、アップグレード後、古いビューが表示されていた場合、ユーザーは理由を説明し、何をすべきかを説明する素晴らしいメッセージを受け取ります(つまり、古いビューを閉じて移動します)。いずれにせよ、Eclipseを閉じて再起動すると、そのビューはパースペクティブに表示されなくなります。新規ユーザーには、[ビューの表示]ダイアログにビューやそのヒントが表示されることはありません。そのため、数回のリリース後、全員がアップグレードしたと確信したら、plugin.xmlなどから非推奨のビュー登録を削除できます。

それは私が思いついた最高の経験ですが、人々がより良いものを考えているかどうか聞いてうれしいです。Eclipseアクティビティのフィルタリングについて詳しく知りたい場合は、こちらをご覧ください。ViewRegistryコードとShowViewDialogコードをステップ実行したときに、登録済みのビューをフィルタリングするために見つけることができる唯一の方法です。

于 2012-05-17T18:11:31.963 に答える
-1

新しいビューを同じIDで登録するとどうなりますか?また、エラーは初めて発生し、その後の再起動では発生しません。

于 2012-05-17T12:57:54.537 に答える