目次


このページについて

言語ワークベンチの成果物を実行する環境構築に適した技術と思われるため、手順や検討結果をメモする。
対象は現在使用している、Eclipse Keplerである。

Eclipse 4 RCP - Tutorial

この記事がまさにKeplerでの適用にマッチした記事と思われる。書かれた内容を再現し、xtext向けの環境構築に向けた学習とする。

やったこと
  • 3.3. Install the e4 tools
  • 4.1. Create project
  • 4.2. Launch
サンプルで用意されたGUIリソースのアプリが起動した。特に何もしていない。ただ従っただけ
  • 13. Exercise: Create an Eclipse plug-in
プラグインとして仕立て、その後RCPとして変換すると書いてある。想定しているのはこの流れのため通しでやってみる
  • 14. Exercise: From plug-in to Eclipse 4 application
  • 6.1. Launch problem number #1: missing plug-ins
アプリ起動時、org.w3c.dom.eventsがmissing〜という大量のエラーメッセージに遭遇したが、記載にある通り、Validate plug-ins automatically prior to launchingオプションにチェックを入れ、Add Required Plug-insボタンを押し、org.w3c.dom.eventsにチェックが入っていることを確認し、最後に忘れずに、Applyボタンを押す*1。これを忘れるとorg.w3c.dom.events+他のチェックが外れ、次回のランチ時に同じエラーメッセージに遭遇するようだ。
  • 間違っているかもしれないが、ボタンを押すことで自動的に必要なプラグインにチェックを入れてくれるのであれば、チェックを入れるところまで自動でやってくれるとトラブルに遭遇しなくていいのだが、それは難しいのだろうか?
  • Launch an Eclipse applicationでアプリ起動しようとすると、必ずMissin Constraint: Import-Pachage: org.w3c.dom.eventsとでてくる。
  • Run ConfigurationでApplyしたはずの設定が元に戻り、起動時にまたエラーになる
  • 15. Enter bundle and package dependencies
    • 以下のプラグインをRequired PluginsでAddすると書いてありそのとおりにしているのだが、何を基準にしてこれらが選ばれているのか本文中から自明なのだろうか?が分かっていない
      • org.eclipse.core.runtime
      • org.eclipse.swt
      • org.eclipse.e4.core.di
      • org.eclipse.e4.ui.workbench
      • org.eclipse.e4.ui.di
      • org.eclipse.e4.core.di.extensions
    • 同様にImported Packagesでも、以下のパッケージをAddしているのだが、やはり自明なのだろうか?
      • javax.annotation
      • javax.inject
  • 18.7. Create Java classesの、Create the com.example.e4.rcp.todo.parts package in the application plug-in.で、the application plug-inとはcom.example.e4.rcp.todoであるとして進めている。なにせパッケージを作る規模のソフトをjavaで組んだことがないから、この文言だけではどこにパッケージを作るのか不明だが、ここがもっとも妥当と判断した。
    • というのも、プラグインプロジェクトを作るのかと思ってcom.example.e4.rcp.todo.partsプラグインを作ってみたところ、その下に作ったクラスがFindで検索結果に現れなかった。一方、com.example.e4.rcp.todo内にcom.example.e4.rcp.todo.partsを作ったら、Findであっさりと見つけられた

Eclipse RCP アプリケーションを独自ブランド化する

この記事だけ読むとあっという間にできそうに思えてしまう。記事は古めだが、RCPの機能は最新と大きく変わらないと思われるため、試してみる
→実際、あっという間ではなかった。以前のバージョンのパッケージに依存しているものをKeplerに同梱されているパッケージのバージョンにあわせて変更する必要があると思われ、また、依存関係などもちゃんと理解した上で更新しないとダメそうで、それがなかなか骨が折れる
  • Downloadでサンプルのゲームのソースがzipファイルでダウンロードできる
  • 解答するとjarファイルが現れる
  • jarファイルのままではEclipseのプロジェクトにインポートできないため、拡張子をjarからzipに変更し、さらに解凍する
    • 拡張子を変えることでjavaファイルに展開する情報源はこちら。検索キーワードはjar ファイル 中身。…そのままだね
  • いかにもEclipseのプロジェクトにインポートできそうなフォルダ構造を持つものに展開される
  • 展開したファイルをプロジェクトの該当パスにエクスプローラ等でコピー
  • Eclipseに戻り、ファイルを確認する
  • が、ソースが古いからだろう。そこらじゅうにエラーやワーニングが出ている。Eclipseが出すQuickFixも直接の解決策になっていないことが多く、こちらも簡単ではなかった。もうしばらくチャレンジしてみる。作業の全体像が把握できていれば、Eclipseのバージョンが変わってもなんとなくわかる効果が期待できるため
    • Application.javaに対して
      • org.eclipse.core.runtime.IPlatformRunnableはorg.eclipse.equinox.app.IApplicationに置き換え
      • 置換後、未実装のメソッドがあるというメッセージが出てくるので、現れた選択肢から未実装を実装する的な選択肢を選択
    • ApplicationActionBarAdvisor.javaに対して
---
  • (編集中)

メモ

  • まずはKepler向けを考慮し、情報として最も新しいEclipse 4 RCP - Tutorialから見ていくが、内容としてはEclipse RCP アプリケーションを独自ブランド化するがもっとも読みやすく、試しやすく、すぐに結果が得られそうではある。
  • Xtextのような最新と思われる技術に必要としてRCPを学ぶことにしたが、また数年前に戻った感じ。それだけ長く使われているということは、必要とされるケースが多く、かつ、筋の良い技術ということなのだろう

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます