NodeViewer(3)

| コメント(0) | トラックバック(0)

前回出たエラーの詳細。

org.eclipse.swt.SWTError: No more handles
at org.eclipse.swt.SWT.error(SWT.java:2968)
at org.eclipse.swt.SWT.error(SWT.java:2865)
at org.eclipse.swt.SWT.error(SWT.java:2836)
at org.eclipse.swt.graphics.Image.internal_new_GC(Image.java:1909)
at org.eclipse.swt.graphics.GC.(GC.java:132)
at org.eclipse.draw2d.BufferedGraphicsSource.getGraphics(BufferedGraphicsSource.java:106)
at org.eclipse.draw2d.DeferredUpdateManager.getGraphics(DeferredUpdateManager.java:129)
at org.eclipse.draw2d.DeferredUpdateManager.repairDamage(DeferredUpdateManager.java:223)
at org.eclipse.draw2d.DeferredUpdateManager.performUpdate(DeferredUpdateManager.java:145)
at org.eclipse.draw2d.DeferredUpdateManager$UpdateRequest.run(DeferredUpdateManager.java:40)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3057)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2716)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:809)
at org.eclipse.jface.window.Window.open(Window.java:787)
at jp.ac.dendai.sie.dilab.nodeviewer.test.draw2d.zoom.Main.main(Main.java:76)

大学名出てますよというのは置いておいて~
org.eclipse.swt.graphics.GCってあるからSWT用のガベージコレクタかなんかかいなと思っていたのだが全然チガウっぽい。主に底の方で描写するためのクラス。このクラスのオブジェクトに問題のhandleが割り付けてあるらしい。更にinternal_new_GCの先も見ようかなぁと思ったが、残念ながらnativeメソッドだった。むぅ。

結局レイヤーだけ弄ってみてもだめだということが分かったのでレイヤーからレイヤーマネージャーを取ってきてhogehogeしてみたり、参考のリンク先読んだり、ぐぐってみたり、Draw2Dのドキュメント(ダウンロード先はこちら。draw2dフォルダの中にzipで入ってる)を読んでみた結果

UpdateManagerを使うんじゃないか?というところまでいけた。クラスの説明のところに再描写するとか書いてあるしね。多分コレ使えばremoveした図形分のhandleも解放してくれそう。
結局ごちゃごちゃやった割にはあんま進んでない。

まぁ、今日はあんま進んでないけど、こんなもんかな。
と思って帰宅しようとしたときに気づいた。

Draw2Dのドキュメントを開いた右フレームの最初のページが概要の説明だと言うことに ⊂⌒~⊃。Д。)⊃
いっつも左フレームでクラス名をさっさとクリックしちゃうので気づかなかった...。なんてこったい。
えらい分かりやすい図があります。

多分canvasからLightweightSystemを取ってきてUpdateManagerのメソッドをhogehogeするのか
LightweightSystemのメソッドだけでなんとかなるのかなぁ...(LightweightSystemのRootFigureかそのchildぐらいに枝をばっさり切ったレイヤーをセットして、RootFigureをUpdateManagerにsetしてからになりそうだが)とりあえず図のおかげで頭の中が大夫整理できそう。明日もちょっと色々いじってみることにする。

トラックバック(0)

トラックバックURL: http://hoge.sub.jp/blog-cgi/mt/mt-tb.cgi/109

コメントする

このブログ記事について

このページは、Lyoが2005年9月 7日 18:47に書いたブログ記事です。

ひとつ前のブログ記事は「NodeViewer(2)」です。

次のブログ記事は「EclipseUML(2)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

OpenID対応しています OpenIDについて
Powered by Movable Type 4.261