EclipseでSWTのプロジェクトを再編集がうまく出来ない

[戻る]
PATIO 2004/08/20(金) 14:02:24
Windows XP ProにEclipseの3.0をインストールし、
これにVEのI20040811を入れて使用しています。
GEFとEMFについては対象のバージョンを導入済みです。

以下のような現象が起きて再編集がおかしくなります。

VisualClassを新規に作成し、SWT-Applicationを選んで作成すると
既にShellが作成された状態で開きますが、デフォルトで設定されている
サイズでは表示されず、大きなサイズで表示されており、
左上に!マークのアイコンが表示された状態になっています。
Shellのサイズにデフォルト値を設定してる行を削除すると
ウインドウ上の!マークが消えます。

Shellのサイズをウインドウのエディタ上で変更すると
サイズを設定する行が新たに追加されます。
この時点では、!マークは出ていません。

パレットからSWT Controlsを開き、Buttonを選択して
Shell上に配置します。
Buttonをクリックしてエディットボックスが出たらOKを入れてEnterします。
ソース上にエラーが出るのでその行をsetLabelからsetTextに変更します。
(そもそもこんな変更が必要な事自体変だと思いますが、)
この時点でも!マークは出ていません。
これを実行してもきちんと実行されています。

このエディタウインドウを終了させてもう一度開くとウインドウエディタ上は
新規でクラスを作成したときと同じ状態に戻っています。
ソース上は最後に保存した状態が保持されているので再度の実行も可能です。
しかし、ウインドウのエディタ部の表示からはボタンが消えており、
Shellのサイズも最初の状態に戻っています。
Shell上の!マークもまた出るようになっています。
Shellにマウスカーソルを合わせると以下のツールチップが表示されます。

size: java.lang.IllegalArgumentException (object is not an instance of declaring 
class)

sShell org.eclipse.swt.widgets.Shell


この状態になってしまうとウインドウの再編集は全く出来なくなり、
一度すべて削除して最初からやり直す羽目になります。

どうも、VEがソースファイルの解析に失敗しているような気がします。
また、プロパティウインドウに表示されている内容もSWTのコントロールに
あっていないようです。
解決方法等、情報をご存知の方がいらっしゃいましたらご教示お願いします。

関連するURLの提示でも大変助かります。
よろしくお願いします。

PATIO 2004/08/20(金) 14:08:33
因みに新規でVisualClassを作成したときに!マークが表示されている状態で
Shellにマウスカーソルを合わせると上記で書いたツールチップと同じ物が
表示されます。

また、ソース上でbutton.setText("OK");[buttonはButtonのインスタンス]が
あるにもかかわらず、ウインドウエディタ上のButtonコントロール上には
OKの文字が出ていません。
実行すれば、きちんと表示された状態で出てくるのですが、
エディター上では確認が出来ない状態です。

PATIO 2004/10/21(木) 15:11:39
その後、VEのVer1.0がリーリスされていますが、
状況は変わりません。
Swingだとうまく行くんですが、SWTだと同じ状態です。
最初の一回で全て完了できれば良いのでしょうけれど、
今の状態では後からボタンを追加した時に既に設置済みのコントロールとの
位置関係が全くわからないので、SWTに関してはVisual Editorとして使えないですね。

この状態が、現状のVEだとそこまで実装が進んでいないのか、
私のインストール、または使い方が悪いのかを知りたいのですけれど、
どなたかご存知の方はいらっしゃいませんか?

PATIO 2004/10/21(木) 15:13:08
関連する文章が載っているURLでも良いので教えたください。
実はどこかにそこまでしか実装していないと書いてあるという話でも良いですので。
よろしくお願いします。

PATIO 2004/10/26(火) 10:42:06
[[解決]]
自己解決しました。

原因は、別にインストールしているJAVA2 SDK SEのバージョンが古かった事が
原因のようです。
少なくとも1.4.1_03では駄目のようです。
最新の1.4.2_06なら大丈夫でした。
どのバージョンから大丈夫という検証はしていませんが、
少なくとも最新にして置けば間違いないようです。

古いスレッドには追加発言できません。