問題タブ [e4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - プラグイン間のEclipse e4 RCPアクセスサービス
私は現在、Eclipse 4.2M6 を使用して最初の Eclipse e4 RCP アプリに取り組んでいます。アプリのコアコードを持ち、他のプラグイン/フラグメントをアプリにフックして新しい機能を追加できるようにする拡張機能として多くのサービスを定義するメインプラグインを開発しています。
私のメイン サービスには、他のプラグインが新しい機能を登録し、メイン アプリのモデルにプログラムで追加するために使用するメソッドがあります。ただし、これらのプラグインがサービスを検索し、プラグインの開始時に自分自身を登録する方法がわかりません。
例:
メインプラグインでの私のサービスのインターフェース:
2 番目のプラグインで必要なもの:
eclipse - Eclipsee4コンテキストメニュー
Eclipse4.2でRCPアプリケーションを構築しようとしています。
最初の問題; 私は持っていTreeViewer
ます。ツリービューアでアイテムを選択すると、2つのうちの1つをスタックMParts
して表示する必要があります。e4のパーツスタックでパーツをアクティブ化するにはどうすればよいですか?
2番; パーツの1つに関連付けられたコンテキストメニューがあります。特定のコンポジットを右クリックした場合にのみメニューを表示する必要があります。必要なすべてのデータを含むオブジェクトを現在のコンテキスト(IEclipseContext
)に追加するマウスダウンハンドラーがありますが、からアクセスする方法がわかりませんCoreExpression
(これはの可視性を制御する唯一の実際の方法のようですメニュー)。マウスを上にすると、オブジェクトがコンテキストから削除されます。私のクラスはRightClickData
です。RightClickData
のインスタンスが現在のコンテキストに存在するかどうかをテストするコア式を作成するにはどうすればよいですか?
編集、私の一部Application.e4xmi
:
eclipse - e4 ダイナミック メニューへの貢献
この機能は Kepler M4 で実現されました。使用方法の詳細については、私のブログを参照してください。
ビュー ツールバーにあるハンドラーのメニューへの完全に動的なメニューの貢献を実現したいと考えています。Eclipse 3 では、メニューへの org.eclipse.ui.menus の貢献として「動的」を追加することが可能でした!
私はすでにwww.vogella.com/blog/2010/10/26/processors-e4-modelで、プロセッサ モデルの拡張によってメニューに動的に貢献する方法を説明していることを知りましたが、変更される完全に動的なメニューの実装について話しているのです。担当者のすべての呼び出しで。サブメニュー。前述のように、動的メニューの提供と isDynamic() を true に設定することにより、これは Eclipse 3.x で実現するのに問題はありませんでした。
私はすでにいくつかのアプローチを試しました:
- メニューにフックするプロセッサを登録する => 動的な追加はできません (新しい要素は単に表示されず、Eclipse フォーラムでも議論されています - 実行時にメニュー項目を置き換えることはできません)
- メニューを作成するイベントの UIEventTopic をリッスンし、Modification のウィジェットを取得 => 収集された swt.Menu への変更は単純に無視されます (すべてのリスナー、要素など) (情報RCP イベント モデルについては
未経験のオープンなソリューション
- ToolControl を挿入して SWT アプローチを試す -> 非常に複雑ですが、うまくいく可能性があります
私はしばらく頭を悩ませてきましたが、E4 内でこの問題の正しい実装を理解できないようです。
-- この質問はEclipse フォーラムでも尋ねられました - 動的メニューの貢献
- - - アップデート
私は今まで別のアプローチを試みました:
メニューに HandledToolItem を追加しました (次の画像を参照してください)。
次のコードを使用して、コードが担当者によって呼び出されるメニューのビルド方法を妨害しようとしています。イメージで参照されているコマンド ハンドラ。
ご覧のとおり、コマンドが実行可能かどうかを判断するために、メニューが作成されるとこのコードが照会されます。1 から 2 までのすべてのコードは、作業する正しい MMenu 要素を見つけるためのものです。2 ~ 3 のコードは、MenuItem を作成し、フィールドのカウンターをインクリメントします。
しかし 3 で、メニューが初めて開かれたときにjava.util.ConcurrentModificationExceptionに直面しました! まさにこの時点で、メニューが elemMenu.getChildren() を繰り返し処理していて、有効にすることは許可されていないと思います!
だから、e4モデル全体がいつでも変更可能であることについてのすべての混乱は何ですか;)(冗談です、これはひどいハックだと知っています!!!)
つまり、完全に動的なメニュー パーツを追加できる可能性は、最高のユーザビリティ ツールの 1 つだと本当に思います。E3 のように E4 でそれを実現できない場合、これは非常に深刻な可能性の低下です!!!
- アップデート
このhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=389063に対して Eclipse のバグが報告されています。
eclipse - E4 プログラミング モデルを使用してビューを作成し、Eclipse 4.2 以降のプラグインにする方法を教えてください。
既存の Eclipse プラグインのほとんどは、拡張レジストリと のサブクラスをViewPart
、互換性レイヤーと組み合わせて使用します。その結果、新しいビューを作成すると (特に PDE の新しいプラグイン ウィザードを使用して)、プラグインは次のようになります。
E4 プログラミング モデルを利用して、次のようなビューを作成することは可能ですか。
それを既存の Eclipse 4.2 インスタンスにフックして、[ビューの表示] メニューに表示されるようにしますか? もしそうなら、それはどのように宣言的に配線されていますか(LegacyIDE.e4xmi
は不変であり、追加できないため)。
eclipse - Eclipse4e4-ダイアログについて
Eclipse 4アプリケーションを構築していて、Eclipse 3で知られているaboutダイアログを作成したいと思います。MenuSpyを使用して、次のことを学びました。
アクティブな貢献場所のURI:
アクティブなアクション定義識別子:
アクティブな貢献アイテムクラス:
貢献するプラグイン:
質問: このアクションを使用して、アプリケーションのバージョン情報ダイアログを開いたり拡張したりできますか?
eclipse-rcp - e4RCPアプリケーションを再起動する方法
IApplication.startがIApplication.EXIT_RESTARTを返す場合、3。*ベースのRCPアプリケーションが再起動されます。クラスE4Applicationは常にEXIT_OKを返すようです。
org.eclipse.ui.IWorkbenchには再起動メソッドもありますが、org.eclipse.e4.ui.workbench.IWorkbenchにはありません。
では、どうすればe4 RCPアプリケーションを再起動できますか?
eclipse-rcp - インジェクションを使用する Eclipse4 (e4) クラスのメソッドを手動でトリガーしますか?
MApplication を注入するクラスがあります。ハンドラーです。ハンドラーのメソッドを手動でトリガーしたい。
問題: ハンドラーを別のクラスから手動でインスタンス化すると、MApplication が null になります。ハンドラーをトリガーするクラスには、既に MApplication が注入されているため、ライフサイクルの問題ではありません。
質問: @Inject アノテーションが付けられたメソッドを持つクラスでメソッドをトリガーするにはどうすればよいですか?
java - Eclipse 4 RCP パーツ クラスのベスト プラクティス
私は新しい Eclipse 4 RCP プラットフォームについて学んでいますが、興味深い問題に遭遇しました。
MPart
Application.e4xmi で定義された の Part クラスを設計しているとします。
WindowBuilder を使用して ui を作成していますが、動作コードがないようにしたいので、次のように相互作用を処理するクラスを作成します。
これは良い習慣ですか、それともここで車輪を再発明していて、e4 にはすでにこれに対する解決策がありますか? そうでない場合、これらのクラスを一緒に配線するにはどうすればよいですか? Eclipse コンテキスト外でインスタンスを作成することは避けたいと考えています。公式の e4 ドキュメントはかなりまばらなので、答えを見つけることができる完全な本またはリファレンス マニュアルを誰かが私にリンクしてくれたら、それもいいでしょう。
e4 - e4 アプリケーション モデルをプログラムでロードする
モデル要素を反復できるようにするために、プログラムで e4 アプリケーション モデルをロードしようとしています。現在、正しくロードする方法がわからないという問題に直面しています。
単純なロードを使用して既存のモデルApplication.e4xmi
を単純にロードしようとしたが、データが取り込まれたリソース (null) にはなりませんでした。
その後、 について知りましたがorg.eclipse.e4.tools.emf.ui.common.XMIModelResource
、次のコードを使用してモデルをインスタンス化することはできません
私が得るように、Package with uri 'http://www.eclipse.org/ui/2010/UIModel/application' not found.
このecoreはすでにインポートされていますorg.eclipse.e4.ui.model.workbench
誰もこれについてヒントを得ましたか?ありがとう!
java - Eclipse RCP 4 アプリケーションのカスタム コマンドを作成するにはどうすればよいですか?
私は e4 アプリケーションを作成しており、カスタム コマンドを作成しようとしていますが、ドキュメントには詳細が欠けています。チェックボタンが付いたツールバーがあり、達成したいのは、チェックボタンがチェックされているかどうかをハンドラーに伝えるブール値パラメーターを持つコマンドを持つことです。
ビジュアル モデル エディターを試しましたが、パラメーターをハード コードすることしかできません。インターフェイスを実装するMCommand
必要がありますか、それとももっと簡単な解決策がありますか? 正しい方向に私を向けることができますか?