GRINEditドキュメントの種
将来ドキュメントを書くときに使えそうな文章をためておく場所です。
GRINEdit用語集
- MouseOperation:各種マウス操作を受け持つクラス、またはそのオブジェクト。MouseOperationクラスの子クラスである。
よくある失敗、FAQ
- AddVertexではなくてaddVertex。基本的にメソッド(関数)の名前は頭が小文字、"CircleVertex"などのクラス(物の種類)の名前は頭が大文字
- addVertexなどの1番目の引数は文字列。addVertex(CircleVertex, {})ではなくaddVertex("CircleVertex", {})
maven
IT-Walker on hatenaを参考にしてmavenのpom.xmlに<addClasspath>true</addClasspath>と書き足す。
試験管のなかのコード :: Maven2 で JAR の Manifest ファイルを設定する方法をメモを参考にして<classpathPrefix>dependency</classpathPrefix>と指定してやればよいようです。
Eclipseとの連携 Maven -TECHSCORE-を参考にしてM2_REPOに正しい値を入れたらEclipseでもビルドが通るようになりました。
コマンドラインで「mvn dependency:copy-dependencies」とやってみたらtargetフォルダの中にdependencyフォルダが生成され、中にはjarファイルが入っていました。うまく動いたようです。
SWTの新しいライブラリはmaven2のリポジトリに入っていないので、 SWTのサイトからダウンロードして展開し、jarはローカルリポジトリに、 dllは/src/main/resourceに入れる。 Eclipse側では/src/main/resourceを実行時の作業ディレクトリに指定する。
設計
左がGRINEdit0.10時点の設計、右がGRINEdit0.20で目指す設計です。 XML-RPCやJythonなどいろいろな方法でアクセスできるようにする上で、そのそれぞれに違う入り口を作っていたのでは大変なことになるので一つにまとめようという発想です。そうしておかないと「Jythonで頂点を追加するのは~~~だけど、これはまだXML-RPCではサポートされていないから古い~~を使ってね」なんていうダメダメな事態が発生しそうだからです。一方で、JavaやJythonなどの「Javaオブジェクトに直接さわれる方法」で操作したい人にとっては、間にクッションが入ってしまうともどかしいので、より直接的にいじることが出来る方法を提供します。
基本的にXML-RPCから追加できるすべてのオブジェクトは文字列型のnameというフィールドを持っています。addVertexなどのadd*系メソッドは新しいオブジェクトを作成してそのnameを返します。nameはシステム側が一意になるように振ります。ただし人間の可読性のためにプレフィクスをつけます。addVertexするとVertexというプレフィクスがつきます。
getObjects("Vertex")で頂点の一覧が名前とパラメータのマッピングとして取得できます