Curl Global Community
VLE拡張機能 レイアウトコンテナについて - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: VLE拡張機能 レイアウトコンテナについて (/showthread.php?tid=239)

Pages: 1 2


VLE拡張機能 レイアウトコンテナについて - okm - 08-26-2011

こんにちは。

VLE拡張機能を使って、カスタムクラスを自由に配置したいと思っています。

作ったカスタムクラスはCanvasを継承しており、レイアウトコンテナとして認識させたいのですが、
登録・配置など問題はなさそうなのですが、
レイアウトコンテナとして認識させることができていません。

なにか設定が必要ですか?

よろしくお願いします。



RE: VLE拡張機能 レイアウトコンテナについて - onyo - 08-26-2011

okm 様

質問の意図に外れていましたらすみません。
私もVLEの機能拡張を利用していますが、

拡張化のためのファイル ****.scurl に存在する

{register-palette-item DesignTime○○○}

○○○ = カスタム化されたクラス名

の継承クラスは、DesignTimeContainerGraphic でしょうか?

TextField や TextArea などの コントロールは
DesignTimeGraphic を継承しますが、

Box や Canvas などは DesignTimeContainerGraphic になるようです。

ちなみに
\Curl Corporation\Surge\[ここはversionによって変わる 7 とか 8 とか]\ide\vle\editor
に、拡張機能のためのクラスが存在します。


RE: VLE拡張機能 レイアウトコンテナについて - okm - 08-29-2011

onyoさま

ありがとうございます!

おっしゃるとおり、継承クラスがDesignTimeContainerGraphicではありませんでした。
他にも、部品を乗っけられるようにするメソッド(でいいのでしょうか?)を足したりしました。

コントロール部品なら、VLE拡張機能エディタで簡単に作成できると思うのですが、
コンテナクラスは、手作業での修正が必要なんですね。
(それとも、自動で作成できるけど、勉強不足なだけかもしれませんが・・)

助かりました、ありがとうございました!


RE: VLE拡張機能 レイアウトコンテナについて - onyo - 08-29-2011

okm 様

>他にも、部品を乗っけられるようにするメソッド(でいいのでしょうか?)を足したりしました。

拡張機能のためのクラスを参照されたのであれば
恐らくあっていると思います。

自分もツールでの対処がわからなかったので
手直しで対処しました。

コントロールの中でも
CommandButton をカスタム化した場合
DesignTimeVersionedFrameContainer になるようです。



RE: VLE拡張機能 レイアウトコンテナについて - yosuga - 08-29-2011

コンテナの場合は手作業必須な気がします。IDEがインストールされていれば、インストールディレクトリの ide/vle 以下でVLEのソースが見れるようなので、VBoxの実装等が参考にできると思います。


RE: VLE拡張機能 レイアウトコンテナについて - okm - 08-30-2011


onyoさま
>コントロールの中でも
>CommandButton をカスタム化した場合
>DesignTimeVersionedFrameContainer になるようです。


そうなんですか!しりませんでした。
Curlのマニュアル等検索してもみつからなかったのですが、
DesignTimeVersionedFrameContainer とは、どういうものなんでしょうか?
CommandButtonもカスタム化していますが、VLE拡張エディタで作成したものも DesignTimeGraphic を継承したものが作成されています。

なにか不都合があるのでしょうか?

お分かりの範囲で教えていただけますか。


RE: VLE拡張機能 レイアウトコンテナについて - okm - 08-30-2011


yosugaさま

ありがとうございます。
やはり手作業が発生するんですね。

VBoxのソースもみてみました。


それにしても、CurlのDocは見づらいですよね。
JavaDocみたいにならないのでしょうか・・。
カスタムクラス作っても、Docまでは作れません><。



RE: VLE拡張機能 レイアウトコンテナについて - kino - 08-30-2011

okmさま

Curlには、javadocみたいな感じで、docstringってのがあります。
たしか、Curlのヘルプそのものも、curlのdocstringを用いていたと思います。


RE: VLE拡張機能 レイアウトコンテナについて - onyo - 08-30-2011

okm 様

一応、Ver7.0のソースも見てみましたが、
なにぶん私が作成した VLE拡張機能の Version は 4.0ですから
お使いの Version に適合するかはわかりませんので経験だけを語りますね。

登録、配置だけでしたら
CommandButton や CheckBox の
DesignTime○○○ クラスの継承先が DesignTimeGraphic
でも問題ありません。 

が・・・自分はコンパイルのときに問題が発生しました。

標準の CommandButton は VLE で配置すると layout-container
なのですが
カスタム化した CommandButton は layout-element になってしまい
実行コンパイル時にエラーとなりました。

そこで ide/vle/editor/standard-desgn-class.scurl の
仕組みを見てみることにしました。

カスタム化された全てのコントロール、コンテナ
は DesignTimeGraphic を継承します。

DesignTimeVersionedFrameContainer は
DesignTimeCommandButton の直接の親ですから
カスタム化する場合もこのクラスを継承することで
ほぼ全てを満たしてくれると思います。

先の container と element の問題は
サブクラスの中の {new-element} メソッドのreturn値が
LayoutElement なのか LayoutContainer なのかで変わるということが
ソースを読み解くと判明しました。

要は、サブクラスの機能をVLE拡張で、どう使いたいのかで
自分なりに色々できますが、
めんどくさい場合、自分の作ったコントロールに
一番近いVLE標準のクラスを継承し、必要な部分だけを
改修していくのが近道だと自分は思っています。

DesignTimeGraphic
 ├DesignTimeContainerGraphic
 │├DesignTimeBaseFrameContainer
 ││├DesignTimeVersionedFrameContainer
 │││├DesignTimeCommandButton
 │││├DesignTimeCheckButton
 │││├DesignTimeRadioButton
 │││・
 │││・
 │││・
 │││
 ││├DesignTimeRadioFrame
 ││├DesignTimeDialog
 ││・
 ││・
 ││・
 ││
 │├DesignTimeCanvas
 │・
 │・
 │・
 │
 ├DesignTimeControl
 ・├DesignTimeTextField
 ・├DesignTimeTextDisplay
 ・├DesignTimePasswordField
  ├DesignTimeTextArea
  ├DesignTimeDropdownList
  ├DesignTimeComboBox
  ├DesignTimeListBox
  ・
  ・
  ・



RE: VLE拡張機能 レイアウトコンテナについて - okm - 09-01-2011


kinoさま

そのdocstring、読みにくいと思いませんか・・。
英語だからですかね。
英語の勉強しろ!という結論かもですね・・・・^^;



onyoさま

詳しくありがとうございます!
当方はVer7で開発しております。(今日CDE8にアップデートしてみましたが・・)
ただ、 'DesignTimeVersionedFrameContainer' は認識されません。 というエラーが発生してしまいます。

こちらのCommandButtonのカスタムクラスがよくないのでしょうか・・。
う~ん、、
ひまとまず、DesignTimeGraphic を継承することで期待する動きをしているようなので、このままにしてみます。


ありがとうございました。