-1

ユーザーが2つのプロジェクト間でSLOCカウントを比較できるようにするEclipseプラグインを作成しました。プラグインは、プロジェクトエクスプローラービューで2つのプロジェクトを強調表示し、右クリックしてプラグインを選択するだけで開始されます(プラグインはコンテキストメニューから起動されます)。プラグインは、ProjectAとProjectBが選択された順序に関係なく、常にProjectAとProjectBを比較します。選択の順序を使用して、ユーザーがProjectAとProjectB、またはProjectBとProjectAの比較を取得するかどうかを決定したいと思います。

が与えられた場合IStructuredSelection、どのプロジェクトが最初に選択されたかをどのように知ることができますか?

ところで-getFirstElement()最初に選択された要素ではなく、リストの最初の要素だけが表示されるようです(これも、必ずしも最初の要素[この場合はプロジェクト]が選択されているとは限りません)

4

2 に答える 2

0

IStructuredSelection から選択の順序を取得することはできませんが、別のオプションがあります。メニュー/ポップアップ アクションの場合、selectionChanged(IAction action, ISelection selection) メソッドを使用して現在の選択を取得します。このメソッドは、選択が変更されるたびに呼び出されます。通常、最後の選択を破棄して新しい IStructuredSelection を保持しますが、前の ISt​​ructuredSelection を渡されたものと比較すると、最後の選択アクション以降に追加および削除されたものがわかります。これらの変化を経時的に追跡することで、選択の順序を知ることができるはずです。

于 2012-10-19T16:32:47.133 に答える
0

選択イベントの順序によっては、これを行うべきではありません。ユーザーとして、2 つのプロジェクトを選択するだけでなく、必要な結果を得るために正しい順序でクリックする必要があるとしたら、非常に腹が立ちます。

代わりに、ボタンまたはその他の UI 要素を結果ビューに配置して、「比較順序を切り替える」ようにします。これは、ユーザーにとって理解しやすく覚えやすい方法です。

于 2012-10-21T08:16:56.253 に答える