YKLookMain
YKLook の中心となるクラスです。
アプリの製作者は、このクラスのサブクラスを定義し、メソッドのいくつかをオーバーライドすることで画面を表示したりイベントに対応したりします。
このクラスで定義しているメソッド名には以下のような原則があります。
-
すべてのメソッド名の先頭2文字は yk で始まる( YKLook 全体で共通)。
-
先頭が yki_ で始まるものは、プログラム製作者によりオーバーライドしてもよいメソッド
-
先頭が yk_ で始まるものは、プログラム製作者によりオーバーライドしないほうがよいメソッド
-
先頭が yki_ht_ や yk_ht_ のように、 _ht_ が付くものは、ブラウザ経由でWebアプリとして起動されたときにのみ影響を与えるメソッド
-
先頭が yki_sa_ や yk_sa_ のように、 _sa_ が付くものは、スタンドアロンで起動されたときにのみ影響を与えるメソッド
-
先頭が yki_fr_ や yk_fr_ のように、 _fr_ が付くものは、スタンドアロンで起動されたとき、または独立ウインドウ形式のWebアプリとして起動されたときに影響を与えるメソッド(つまりウインドウ・フレームに関するメソッド)
クラスメソッド:
yk_find_objects
yk_find_objects
yk_find_objects
yk_is_far
yk_is_mac
yk_is_near
yk_is_sun
yk_look
yk_look
yk_main
yk_mainloop
yk_userdata
yk_userdata
yk_userdata
yk_userdata_del
インスタンスメソッド:
yk_add
yk_exit
yk_find_objects
yk_find_objects
yk_find_objects
yk_ht_applet
yk_ht_exit
yk_ht_more_display
yk_ht_opener_action
yk_ht_opener_button
yk_ht_opener_display
yk_ht_show_document
yk_ht_show_document
yk_ht_show_document
yk_html_escape
yk_is_far
yk_is_frame
yk_is_mac
yk_is_near
yk_is_sun
yk_look
yk_look
yk_maininfo
yk_mainpanel
yk_next_display
yk_return
yk_set_default_button
yk_show_dialog_confirm
yk_show_dialog_input
yk_show_dialog_message
yk_show_dialog_option
yk_show_dialog_select
yk_sweep
yk_userdata
yk_userdata_del
yk_userwork
yk_var
yk_var
yk_var
yk_var_attach
yk_var_detach
yki_cat_message
yki_encoding
yki_fr_location
yki_fr_need_pack
yki_fr_resizable
yki_ht_align
yki_ht_alt
yki_ht_border
yki_ht_exit
yki_ht_farpath
yki_ht_header
yki_ht_html
yki_ht_html_header
yki_ht_http
yki_ht_http_header
yki_ht_message_unknown
yki_ht_opener_button
yki_ht_opener_display
yki_ht_opener_size
yki_ht_opener_title
yki_ht_opener_valid
yki_ht_space
yki_laf
yki_laf_is_system
yki_make_display
yki_sa_close
yki_sa_command_option
yki_sa_command_path
yki_sa_exit
yki_sa_javaoption
yki_sa_javapath
yki_size
yki_sweep
yki_sweep_info
yki_title
その他の項目:
なし
Object (Ruby 組み込みのクラス。すべてのオブジェクトのスーパークラス)
┃
┗ YKLookMain (このクラス)
呼び出し形式[1]
yk_find_objects()
生成済みの
YKLook のGUIオブジェクトをすべて返します。
このメソッドの戻り値は常に配列で、配列の要素がGUIオブジェクトです。
GUIオブジェクトがないときは、要素数が0の空の配列を返します。
同じ名前のインスタンスメソッド
YKLookMain#yk_find_objects()
もあります。
こちらは
self 内のGUIオブジェクトを返します。
また、GUIオブジェクトの各クラスにも、それぞれのクラス限定の同様のクラスメソッドがあります。
呼び出し形式[2]
yk_find_objects( tagname )
生成済みの
YKLook のGUIオブジェクトの中から、引数で指定されたタグ名に一致するものを返します。
このメソッドの戻り値は常に配列で、配列の要素がGUIオブジェクトです。
一致するものがないときは、要素数が0の空の配列を返します。
引数のタグ名は文字列または正規表現または
nil です。
引数のタグ名が
nil のときは、すべてのGUIオブジェクトを返します。
同じ名前のインスタンスメソッド
YKLookMain#yk_find_objects()
もあります。
こちらは
self 内のGUIオブジェクトを返します。
また、GUIオブジェクトの各クラスにも、それぞれのクラス限定の同様のクラスメソッドがあります。
呼び出し形式[3]
yk_find_objects( tagname , tagno )
生成済みの
YKLook のGUIオブジェクトの中から、引数で指定されたタグ名とタグ番号に一致するものを返します。
このメソッドの戻り値は常に配列で、配列の要素がGUIオブジェクトです。
一致するものがないときは、要素数が0の空の配列を返します。
引数のタグ名は文字列または正規表現または
nil です。
引数のタグ番号は数値または
nil です。
引数のタグ名が
nil のときは、タグ番号が一致するかどうかだけを見ます。
引数のタグ番号が
nil のときは、タグ名が一致するかどうかだけを見ます。
ふたつの引数がどちらも
nil のときは、すべてのGUIオブジェクトを返します。
同じ名前のインスタンスメソッド
YKLookMain#yk_find_objects()
もあります。
こちらは
self 内のGUIオブジェクトを返します。
また、GUIオブジェクトの各クラスにも、それぞれのクラス限定の同様のクラスメソッドがあります。
yk_is_far()
ブラウザ経由でWebアプリとして起動されているときに
true を返し、そうでなければ(つまりスタンドアロンのとき)
false を返します。
具体的には、環境変数
REMOTE_ADDR と
REQUEST_METHOD の両方があれば
true を返しています。
このメソッドと同じ機能で同じ名前のインスタンスメソッドもあります。
また、逆の戻り値を返す
YKLookMain.yk_is_near()
もあります。
yk_is_mac()
Ruby スクリプトが起動しているコンピュータのOSが Mac OS X のときに true を返し、そうでなければ false を返します。
同じ名前で同じ機能のインスタンスメソッドもあります。
Webアプリとして起動しているときは、サーバ側のコンピュータが対象です。
OSが Mac OS X かどうかの判定は、 Ruby の組み込み定数である RUBY_PLATFORM の文字列中に 'darwin' が含まれているかどうかを調べています。
yk_is_near()
yk_is_sun()
Ruby スクリプトが起動しているコンピュータのOSが
Solaris のときに
true を返し、そうでなければ
false を返します。
同じ名前で同じ機能のインスタンスメソッドもあります。
Webアプリとして起動しているときは、サーバ側のコンピュータが対象です。
OSが
Solaris かどうかの判定は、
Ruby の組み込み定数である
RUBY_PLATFORM の文字列中に
'solaris' が含まれているかどうかを調べています。
注意: |
メソッドの名前に反していますが、 Sun OS かどうかを調べるものではありません。
|
呼び出し形式[1]
yk_look( tagname )
生成済みの
YKLook のGUIオブジェクトの中から、引数で指定されたタグ名に一致するものを返します。
一致するものが複数あるときは、最初に見つけたものを返します。
一致するものがないときは、
nil を返します。
引数のタグ名は文字列または正規表現です。
同じ名前のインスタンスメソッド
YKLookMain#yk_look()
もあります。こちらは
self 内のGUIオブジェクトの中から返します。
また、GUIオブジェクトの各クラスにも、それぞれのクラス限定の同様のクラスメソッドがあります。
呼び出し形式[2]
yk_look( tagname , tagno )
生成済みの
YKLook のGUIオブジェクトの中から、引数で指定されたタグ名とタグ番号に一致するものを返します。
一致するものが複数あるときは、最初に見つけたものを返します。
一致するものがないときは、
nil を返します。
引数のタグ名は文字列または正規表現または
nil です。
引数のタグ番号は数値または
nil です。
引数のタグ名が
nil のときは、タグ番号が一致するかどうかだけを見ます。
引数のタグ番号が
nil のときは、タグ名が一致するかどうかだけを見ます。
同じ名前のインスタンスメソッド
YKLookMain#yk_look()
もあります。こちらは
self 内のGUIオブジェクトの中から返します。
また、GUIオブジェクトの各クラスにも、それぞれのクラス限定の同様のクラスメソッドがあります。
yk_main()
yk_mainloop( obj )
YKLook のメイン処理です。
引数の
obj は、プログラム製作者による
YKLookMain
のサブクラスのインスタンスオブジェクトを指定してください。
ここで指定したオブジェクトは
YKLookMain.yk_main()
で参照できます。
典型的な使い方は以下のようになります。
例 |
YKLookMain.yk_mainloop( HaseiKurasu.new() )
|
呼び出し形式[1]
yk_userdata()
複数の画面間で共有するオブジェクトの集合を返します。
戻り値はハッシュデータです。
このメソッドと同じ機能で同じ名前のインスタンスメソッドもあります。
例1 |
hash = YKLookMain.yk_userdata()
data = hash["data"]
|
例2 |
data = YKLookMain.yk_userdata( "data" )
|
上の例1と例2は同じです。
呼び出し形式[2]
yk_userdata( key )
複数の画面間で共有するオブジェクトの中から、引数で指定されたキーで参照しているものを返します。引数のキーは文字列です。
キーに対応するオブジェクトがないときは
nil を返します。
このメソッドと同じ機能で同じ名前のインスタンスメソッドもあります。
例1 |
data = YKLookMain.yk_userdata( "data" )
|
例2 |
hash = YKLookMain.yk_userdata()
data = hash["data"]
|
上の例1と例2は同じです。
呼び出し形式[3]
yk_userdata( key , value )
複数の画面間で共有するオブジェクトを保存します。
引数
key は文字列で、共有するオブジェクトを参照するときの名前です。
名前の先頭が
'yk' で始まるものは指定できません。
引数
value は共有するオブジェクトです。
共有するオブジェクトは、下記のいずれかのクラスに限ります。
-
Array
-
Hash
-
Numeric , Integer , Bignum , Fixnum , Float
-
Range
-
Regexp
-
String , Symbol
-
TrueClass , FalseClass , NilClass
Array の要素や、
Hash のキーと値も、上記のクラスに限ります。
その範囲内であれば
Array や
Hash を入れ子にしたり組み合わせることもできます。
厳密には、
Ruby の組み込み
Marshal 機能でシリアライズが可能なオブジェクトである限り、共有することができます。
このメソッドと同じ機能で同じ名前のインスタンスメソッドもあります。
yk_userdata_del()
yk_userdata_del( key )
複数の画面間で共有するオブジェクトを削除します。
引数の key は文字列で、削除するオブジェクトを指定します。
引数を省略したとき、または nil を指定したときは、共有しているすべてのオブジェクトを削除します。
このメソッドと同じ機能で同じ名前のインスタンスメソッドもあります。
yk_add( gui )
yk_add( gui , pos )
ウインドウにGUI表示部品を追加します。
通常、ここで指定するGUI表示部品はパネル類です。
個々の部品はそのパネル類の中に追加しておきます。
直接または間接的にウインドウに追加したものだけが、実際にコンピュータの画面上に表示されます。
このメソッドは、以下の処理と同じです。
引数 pos なし |
yk_mainpanel().yk_add( gui )
|
引数 pos あり |
yk_mainpanel().yk_add( gui, pos )
|
引数
pos の説明は
YKLookPanelQuint#yk_add()
をご覧ください。
例 |
bt1 = YKLookButton.new( 'button 1' )
bt2 = YKLookButton.new( 'button 2' )
bt3 = YKLookButton.new( 'button 3' )
box = YKLookPanelBox.new( 'H' )
box.yk_add( bt1 )
box.yk_add( bt2 )
box.yk_add( bt3 )
yk_add( box )
|
yk_exit()
yk_exit( msg )
呼び出し形式[1]
yk_find_objects()
self 内のGUIオブジェクトをすべて返します。
このメソッドの戻り値は常に配列で、配列の要素がGUIオブジェクトです。
GUIオブジェクトがないときは、要素数が0の空の配列を返します。
同じ名前のクラスメソッド
YKLookMain.yk_find_objects()
は、
self 以外のものを含んだすべてのGUIオブジェクトを返します。
また、GUIオブジェクトの各クラスにも、それぞれのクラス限定の同様のクラスメソッドがあります。
呼び出し形式[2]
yk_find_objects( tagname )
self 内のGUIオブジェクトの中から、引数で指定されたタグ名に一致するものを返します。
このメソッドの戻り値は常に配列で、配列の要素がGUIオブジェクトです。
一致するものがないときは、要素数が0の空の配列を返します。
引数のタグ名は文字列または正規表現または
nil です。
引数のタグ名が
nil のときは、
self 内のすべてのGUIオブジェクトを返します。
同じ名前のクラスメソッド
YKLookMain.yk_find_objects( tagname )
は、
self 以外のものを含んだすべてのGUIオブジェクトを返します。
また、GUIオブジェクトの各クラスにも、それぞれのクラス限定の同様のクラスメソッドがあります。
呼び出し形式[3]
yk_find_objects( tagname , tagno )
self 内のGUIオブジェクトの中から、引数で指定されたタグ名とタグ番号に一致するものを返します。
このメソッドの戻り値は常に配列で、配列の要素がGUIオブジェクトです。
一致するものがないときは、要素数が0の空の配列を返します。
引数のタグ名は文字列または正規表現または
nil です。
引数のタグ番号は数値または
nil です。
引数のタグ名が
nil のときは、タグ番号が一致するかどうかだけを見ます。
引数のタグ番号が
nil のときは、タグ名が一致するかどうかだけを見ます。
ふたつの引数がどちらも
nil のときは、
self 内のすべてのGUIオブジェクトを返します。
同じ名前のクラスメソッド
YKLookMain.yk_find_objects( tagname , tagno )
は、
self 以外のものを含んだすべてのGUIオブジェクトを返します。
また、GUIオブジェクトの各クラスにも、それぞれのクラス限定の同様のクラスメソッドがあります。
yk_ht_applet()
ブラウザ経由でWebアプリとして起動されたときに使う、Webページ内の
APPLET タグの記述を戻り値として(文字列で)返します。
プログラム製作者がHTMLページをカスタマイズするときに使ってください。
通常、このメソッドが必要になるのは、
yki_ht_html()
をオーバーライドするときです。
yk_ht_exit( msg )
引数で指定された文字列をダイアログで表示します。
表示後、Webアプリの利用者がダイアログを閉じたら、現在表示しているウインドウ内のGUIオブジェクトをすべて消去します。
このメソッドは、ブラウザ経由でWebアプリとして起動されたときにだけ機能します。スタンドアロンで起動されたときは何もしません。
yk_ht_more_display( path )
yk_ht_more_display( path , userwork )
yk_ht_more_display( path , userwork , share )
Webブラウザで現在表示中のウインドウを上書きせずに、別のブラウザウインドウを開きます。
引数
path , userwork の説明は
yk_next_display()
をご覧ください。
引数
share は、
yk_userdata()
による共有データを共有するかどうかを指定します。
true のときは共有します。
false のときは共有しません。
引数
share を省略したときは
false とみなし、共有しません。
このメソッドは、ブラウザ経由でWebアプリとして起動されたときにだけ機能します。スタンドアロンで起動されたときは何もしません。
yk_ht_opener_action()
独立ウインドウ形式のWebアプリとして起動したときの、ブラウザウインドウのWebページ内に表示するボタンが押されたときのアクションを実行します。
具体的には、独立ウインドウを(もし未作成なら作成後)表示します。
通常、このメソッドが必要になるのは、
yki_ht_opener_display()
をオーバーライドするときです。
このメソッドを呼び出すためのボタンは、プログラム製作者が用意するか、もしくは
yk_ht_opener_button()
を使ってください。
yk_ht_opener_button()
の戻り値で返すボタンには、このメソッドを自動的に呼び出すように設定されています。
プログラム製作者がボタンを用意するときは、そのコールバック用メソッドにて
yk_ht_opener_action()
を呼び出すようにしてください。
例 |
def yki_ht_opener_display()
btn = YKLookButton( 'Open Window' )
btn.yk_set_listener( :fn_callback )
pan = YKLookPanelFlow.new()
pan.yk_add( btn )
yk_add( pan )
end
def fn_callback( prm_event )
yk_ht_opener_action()
end
|
独立ウインドウ形式を利用するには、
yki_ht_opener_valid()
をオーバーライドして
true を返すようにしてください。
yk_ht_opener_button()
独立ウインドウ形式のWebアプリとして起動したときの、ブラウザウインドウのWebページ内に表示するボタンを作ります。
このメソッドの戻り値は
YKLookButton
クラスのオブジェクトです。
具体的には、
yki_ht_opener_button()
の戻り値によりボタンを作ります。
通常、このメソッドが必要になるのは、
yki_ht_opener_display()
をオーバーライドするときです。
例 |
def yki_ht_opener_display()
btn = yk_ht_opener_button()
pan = YKLookPanelFlow.new()
pan.yk_add( btn )
yk_add( pan )
end
|
このボタンのためのコールバック用メソッドでは、
yk_ht_opener_action()
を呼び出すようにしていますが、プログラム製作者が用意したメソッドに変更しても構いません。その場合は通常どおり
YKLookButton#yk_set_listener()
を使って指定してください。
いずれにしても、最終的には
yk_ht_opener_action()
を呼び出してウインドウを表示する必要があります。
例 |
def yki_ht_opener_display()
btn = yk_ht_opener_button()
btn.yk_set_listener( :fn_callback )
pan = YKLookPanelFlow.new()
pan.yk_add( btn )
yk_add( pan )
end
def fn_callback( prm_event )
yk_ht_opener_action()
end
|
独立ウインドウ形式を利用するには、
yki_ht_opener_valid()
をオーバーライドして
true を返すようにしてください。
yk_ht_opener_display()
呼び出し形式[1]
yk_ht_show_document( url )
引数で指定されたURLのWebページを表示します。
現在表示中のウインドウを上書きします。
このメソッドを呼び出すと、呼び出し元には戻りません。
引数の
url は必ず文字列で指定してください。
このメソッドは、ブラウザ経由でWebアプリとして起動されたときにだけ機能します。
スタンドアロンで起動されたときは何もせずメインループに戻ります。
いずれにしても、呼び出し元には戻りません。
例 |
yk_ht_show_document( 'http://www.aaaa.jp/index.html' )
|
呼び出し形式[2]
yk_ht_show_document( url , file )
引数で指定されたURLのWebページを表示します。
現在表示中のウインドウを上書きします。
このメソッドを呼び出すと、呼び出し元には戻りません。
引数の url と file は文字列または nil を指定してください。
url を nil にし、 file のみ指定すると、相対URLとみなします。
url のみ指定し、 file を nil にすると、単に url のみを使います。
url と file の両方を nil にしたときの動作は保証しません。
このメソッドは、ブラウザ経由でWebアプリとして起動されたときにだけ機能します。
スタンドアロンで起動されたときは何もせずメインループに戻ります。
いずれにしても、呼び出し元には戻りません。
呼び出し形式[3]
yk_ht_show_document( url , file , target )
引数の
target に
'_blank' を指定すると、現在表示中のウインドウを上書きせずに、新しいブラウザウインドウを開いて表示します。
このメソッドを呼び出すと、呼び出し元には戻らずに、
YKLook のメインループに戻ります。
引数の
target には、
'_blank' だけでなく、HTMLタグにおける
target 属性と同じように指定できます。
これ以外の機能は、
yk_ht_show_document( url , file )
と同じですので、そちらの説明をご覧ください。
yk_html_escape( msg )
yk_html_escape( msg , chr )
引数の
msg で指定された文字列をコピーして、それをHTML用に変換します。
このメソッドの戻り値は、変換後の文字列です。
具体的には、HTMLの構文で特別な意味がある下記の文字を、通常の文字として扱うようなHTML形式に置き換えます。
-
「 & 」を「 & 」に。
-
「 < 」を「 < 」に。
-
「 > 」を「 > 」に。
-
改行を「 <br /> 」に。( CR/LF/CRLF のいずれにも対応)
これにより、Webブラウザで表示したときに、もとの文字列と同じように表示することができます。
例 |
w = 'if v < 10'
x = yk_html_escape( w ) # x => 'if v < 10'
|
引数の
chr には、上記四つの文字に加えて、それ以外の文字でHTML形式に置き換える必要がある文字があるときに指定します。
ただし「
; (セミコロン)」と「
# (番号記号、井げた、シャープ)」は指定できません。
例 |
w = 'v % 10'
x = yk_html_escape( w, "\"'`%" ) # x => 'v % 10'
|
この例では下記四つの文字も変換対象にしています。
-
「 " (ダブルクォート、引用符、クォーテーションマーク)」
-
「 ' (シングルクォート、アポストロフィ)」
-
「 ` (バッククォート、アクサングラーブ、グレーブアクセント)」
-
「 % (パーセント)」
yk_is_far()
ブラウザ経由でWebアプリとして起動されているときに
true を返し、そうでなければ(つまりスタンドアロンのとき)
false を返します。
具体的には、環境変数
REMOTE_ADDR と
REQUEST_METHOD の両方があれば
true を返しています。
このメソッドと同じ機能で同じ名前のクラスメソッドもあります。
また、逆の戻り値を返す
yk_is_near()
もあります。
yk_is_frame()
Webブラウザによらず、
YKLook により開くウインドウは「フレーム」とも言います。
スタンドアロンで起動しているとき、または独立ウインドウ形式のWebアプリとして起動しているときに
true を返し、そうでなければ
false を返します。
このメソッドは、以下の処理と同じです。
処理 |
return ( yk_is_near() or yki_ht_opener_valid() )
|
Web独立ウインドウ形式かどうかを調べるのではなく、その設定を制御するには
yki_ht_opener_valid()
をオーバーライドしてください。
yk_is_mac()
Ruby スクリプトが起動しているコンピュータのOSが Mac OS X のときに true を返し、そうでなければ false を返します。
同じ名前で同じ機能のクラスメソッドもあります。
Webアプリとして起動しているときは、サーバ側のコンピュータが対象です。
OSが Mac OS X かどうかの判定は、 Ruby の組み込み定数である RUBY_PLATFORM の文字列中に 'darwin' が含まれているかどうかを調べています。
yk_is_near()
yk_is_sun()
Ruby スクリプトが起動しているコンピュータのOSが
Solaris のときに
true を返し、そうでなければ
false を返します。
同じ名前で同じ機能のクラスメソッドもあります。
Webアプリとして起動しているときは、サーバ側のコンピュータが対象です。
OSが
Solaris かどうかの判定は、
Ruby の組み込み定数である
RUBY_PLATFORM の文字列中に
'solaris' が含まれているかどうかを調べています。
注意: |
メソッドの名前に反していますが、 Sun OS かどうかを調べるものではありません。
|
呼び出し形式[1]
yk_look( tagname )
self 内のGUIオブジェクトの中から、引数で指定されたタグ名に一致するものを返します。
一致するものが複数あるときは、最初に見つけたものを返します。
一致するものがないときは、
nil を返します。
引数のタグ名は文字列または正規表現です。
同じ名前のクラスメソッド
YKLookMain.yk_look( tagname )
は、
self 以外のものを含んだすべてのGUIオブジェクトの中から返します。
また、GUIオブジェクトの各クラスにも、それぞれのクラス限定の同様のクラスメソッドがあります。
呼び出し形式[2]
yk_look( tagname , tagno )
self 内のGUIオブジェクトの中から、引数で指定されたタグ名とタグ番号に一致するものを返します。
一致するものが複数あるときは、最初に見つけたものを返します。
一致するものがないときは、
nil を返します。
引数のタグ名は文字列または正規表現または
nil です。
引数のタグ番号は数値または
nil です。
引数のタグ名が
nil のときは、タグ番号が一致するかどうかだけを見ます。
引数のタグ番号が
nil のときは、タグ名が一致するかどうかだけを見ます。
同じ名前のクラスメソッド
YKLookMain.yk_look( tagname , tagno )
は、
self 以外のものを含んだすべてのGUIオブジェクトの中から返します。
また、GUIオブジェクトの各クラスにも、それぞれのクラス限定の同様のクラスメソッドがあります。
yk_maininfo()
yk_maininfo( key )
YKLookMain
クラスが保持しているシステム情報の中から、引数で指定されたキーが持つ内容を返します。引数を省略したとき、または引数に
nil を指定したときは、ハッシュオブジェクトをそのまま返します。
指定可能なキーとその内容は以下のとおりです。
キー |
内容 |
'java.class.version' |
Java クラスのバージョン番号(文字列) |
'java.vendor' |
Java のベンダを特定する名前(文字列) |
'java.vendor.url' |
Java のベンダのURL(文字列) |
'java.version' |
Java のバージョン番号(文字列) |
'os.arch' |
オペレーティングシステムのアーキテクチャ(文字列) |
'os.name' |
オペレーティングシステムの名前(文字列) |
'os.version' |
オペレーティングシステムのバージョン(文字列) |
'screen.width' |
スクリーンサイズの横方向のピクセル数(整数) |
'screen.height' |
スクリーンサイズの縦方向のピクセル数(整数) |
以上の値は、実際に画面を表示しているコンピュータ上のものです。
つまり、ブラウザ経由でWebアプリとして起動されているときは、ブラウザが動いているコンピュータについての情報であり、サーバ側の情報ではありません。
引数の
key で間違ったキーを指定したときは、
nil を返します。
ブラウザ経由でWebアプリとして起動されているときは、これらのシステム情報を
yki_size()
の処理内で使うことはできません。
ただし、独立ウインドウ形式のWebアプリとして起動されているときは、システム情報を使うことができます。
スタンドアロンで起動されているときも使えます。
プログラム製作者により
yki_size()
をオーバーライドするとき注意してください。
yk_mainpanel()
メインパネルを返します。
メインパネルは、
YKLookPanelQuint
クラスのオブジェクトです。
メインパネルにGUI表示部品を追加するには、
yk_add()
を使ってください。
直接または間接的にメインパネルに追加したものだけが、実際にコンピュータの画面上に表示されます。
yk_next_display( path )
yk_next_display( path , userwork )
現在表示中の画面から、別の画面に遷移します。
このメソッドを呼び出すと、呼び出し元には戻りません。
引数の
path は、遷移先の
Ruby スクリプトのファイル名です。
ファイル名にディレクトリを付加する場合は、相対パスで指定してください。
ここで指定するスクリプトファイルは
YKLook 用のものに限ります。
引数の
userwork は、遷移先の
Ruby スクリプトへの受け渡しデータです。
必要なければ、引数の
userwork 自体を省略するか、
nil を指定してください。
受け渡しデータを指定するときは、常に配列の形で指定してください。
配列内の要素データとして使えるオブジェクトは、下記のいずれかのクラスに限ります。
-
Array
-
Hash
-
Numeric , Integer , Bignum , Fixnum , Float
-
Range
-
Regexp
-
String , Symbol
-
TrueClass , FalseClass , NilClass
Array の要素や、
Hash のキーと値も、上記のクラスに限ります。
その範囲内であれば
Array や
Hash を入れ子にしたり組み合わせることもできます。
厳密には、
Ruby の組み込み
Marshal 機能でシリアライズが可能なオブジェクトである限り、受け渡しデータにすることができます。
例 |
h = { 'key1' => obj1, 'key2' => obj2 }
a = [ val1, val2, val3 ]
yk_next_display( 'demo2.rb', [ h, a ] )
|
遷移先の
Ruby スクリプトでは、
yk_userwork()
にて受け渡しデータを参照できます。
複数の画面間でデータを共有するには、
yk_userdata()
を使う方法もあります。
yk_return()
このメソッドを呼び出すと、呼び出し元には戻らずに、 YKLook のメインループに戻ります。
yk_set_default_button( button )
デフォルトボタンを指定します。
引数の
button は
YKLookButton
クラスのオブジェクトです。
nil を指定すると、デフォルトボタンを取り消します。
yk_show_dialog_confirm( cb , msg )
yk_show_dialog_confirm( cb , msg , title )
yk_show_dialog_confirm( cb , msg , title , opt )
yk_show_dialog_confirm( cb , msg , title , opt , type )
yk_show_dialog_confirm( cb , msg , title , opt , type , icon )
確認用のダイアログを表示します。
このメソッドを呼び出すと、呼び出し元には戻らずに、
YKLook のメインループに戻ります。その後ダイアログを表示します。
押されたボタンの状態は、引数
cb で指定するコールバック用メソッドで処理してください。
このダイアログのボタンは引数
opt で指定します。
指定できる文字列と意味は下記のとおりです。
指定 |
意味 |
'OC' |
「OK」「CANCEL」 |
'YN' |
「YES」「NO」 |
'YNC' |
「YES」「NO」「CANCEL」 |
デフォルト
引数省略時
その他 |
「YES」「NO」「CANCEL」( 'YNC' と同じ) |
上記の英字の大文字小文字はどちらでも受け付けます。
ボタンの表示順は指定できません。
それぞれのOSごとに適切な順番に並びます。
実際にコンピュータの画面上に表示するときのボタンのラベルは、OSによっては「はい」等の日本語に自動的に変換される場合もあります。
いずれにしても、このメソッドの引数
opt で指定するのは上記の半角英字のみです。
ボタンに表示する文字列を直接指定するには、
yk_show_dialog_option()
をお使いください。
その他の引数の説明は、
yk_show_dialog_message()
をご覧ください。
例 |
msg = '処理を続けてよろしいですか?'
opt = 'OC'
yk_show_dialog_confirm( 'fn_callback', msg, nil, opt )
|
GUIオブジェクト利用の手引き>ダイアログウインドウの説明も参考にしてください。
yk_show_dialog_input( cb , msg )
yk_show_dialog_input( cb , msg , title )
yk_show_dialog_input( cb , msg , title , type )
yk_show_dialog_input( cb , msg , title , type , icon )
入力ダイアログを表示します。
このメソッドを呼び出すと、呼び出し元には戻らずに、
YKLook のメインループに戻ります。その後ダイアログを表示します。
入力された内容は、引数
cb で指定するコールバック用メソッドで処理してください。
このダイアログのボタンは「OK」「CANCEL」です。
OSによってはボタンの表記が「はい」等の日本語になっている場合もあります。
その他の説明は、
yk_show_dialog_message()
をご覧ください。
例 |
yk_show_dialog_input( 'fn_callback', '数字を入力してください' )
|
GUIオブジェクト利用の手引き>ダイアログウインドウの説明も参考にしてください。
yk_show_dialog_message( cb , msg )
yk_show_dialog_message( cb , msg , title )
yk_show_dialog_message( cb , msg , title , type )
yk_show_dialog_message( cb , msg , title , type , icon )
メッセージを表示する機能だけのダイアログを表示します。
このメソッドを呼び出すと、呼び出し元には戻らずに、
YKLook のメインループに戻ります。その後ダイアログを表示します。
このダイアログのボタンは「OK」のみです。
OSによってはボタンの表記が「はい」等の日本語になっている場合もあります。
ボタンを表示したくないときは、
yk_show_dialog_option()
を使ってください。
引数
cb はダイアログを閉じたときに呼び出す、いわゆるコールバック用のメソッド名を文字列またはシンボルで指定してください。
名前の先頭が
'yk' で始まるものは指定できません。
必要なければ
nil を指定してください。
ここで指定するコールバック用メソッドは
YKLookMain
または
YKLookMainFrame
のサブクラスで定義してください。
引数
msg は、ダイアログに表示する文字列です。
文字列の中に改行を含めることができます。
YKLookLabel
のラベル用文字列と同じように
HTML 風の指定もできます。
また、文字列だけでなく以下のものが指定できます。
パネル類を指定するときは、そのパネル内には
YKLookLabel
クラス等のオブジェクト(画面上に実際に表示可能なGUI部品)を追加しておく必要があります。
引数
msg に配列を渡すと、その要素を順番に上から下へ並べて表示します。
配列の要素として指定できるのは、上述のものに限ります。
例1 |
yk_show_dialog_message( nil, '数字を入力してください' )
|
例2 |
img = YKLookImage.yk_from_file( 'xxx.gif' )
yk_show_dialog_message( nil, [img, 'YKLook'] )
|
引数
title はダイアログのウインドウのタイトルになります。
必要なければ
nil を指定してください。
例 |
yk_show_dialog_message( nil, '数字を入力してください', '注意' )
|
引数
type はダイアログに表示する標準アイコンを指定します。
指定できる文字列と意味は下記のとおりです。
指定 |
意味 |
'error' |
異常アイコン |
'warning' |
警告アイコン |
'question' |
質問アイコン |
'plain' |
アイコンなし |
'information' |
情報アイコン |
上記の英字の大文字小文字はどちらでも受け付けます。
現在の
YKLook の実装では、それぞれの文字の先頭の1文字だけを見て判断しています。
例 |
yk_show_dialog_message( nil, '数字を入力してください', '注意', 'e' )
|
引数
icon は標準アイコンの代わりに使うアイコンを指定します。
アイコンとして指定できるのは
YKLookImage
クラスのオブジェクトに限ります。
アイコンを指定すると、引数の
type は意味を持たなくなりますので、
nil を指定してください。
例 |
msg = '数字を入力してください'
img = YKLookImage.yk_from_file( 'caution.gif' )
yk_show_dialog_message( nil, msg, '注意', nil, img )
|
GUIオブジェクト利用の手引き>ダイアログウインドウの説明も参考にしてください。
yk_show_dialog_option( cb , msg , title , opt )
yk_show_dialog_option( cb , msg , title , opt , def )
yk_show_dialog_option( cb , msg , title , opt , def , type )
yk_show_dialog_option( cb , msg , title , opt , def , type , icon )
オプション指定用のダイアログを表示します。
このメソッドを呼び出すと、呼び出し元には戻らずに、
YKLook のメインループに戻ります。その後ダイアログを表示します。
押されたボタンの状態は、引数
cb で指定するコールバック用メソッドで処理してください。
このダイアログのボタンは引数
opt で指定します。
この引数は文字列を要素とする配列です。
この配列の要素ひとつひとつの文字列がそのままボタンのラベルになります。
ボタンの表示順は、それぞれのOSごとに異なります。
多くの場合、左から順に右へ並ぶか、右から順に左へ並ぶかのいずれかです。
引数
def は、デフォルトのオプションを整数または文字列で指定します。
整数で指定するときは、引数
opt の配列のインデックスになります。
文字列で指定するときは、引数
opt の配列要素の文字列になります。
その他の説明は、
yk_show_dialog_message()
をご覧ください。
例 |
msg = '方角を指定してください'
opt = [ '東', '西', '南', '北' ]
yk_show_dialog_option( 'fn_callback', msg, nil, opt )
|
引数の
opt に空の配列を指定すると、ボタンを表示しません。
このときは、ダイアログのウインドウ外枠の左上隅または右上隅にある小さなボタンを押してダイアログを閉じてください。
このボタンは、
Mac OS X の場合は赤丸のボタン、
MS-Windows 系の場合は「X」ボタンに対応します。
GUIオブジェクト利用の手引き>ダイアログウインドウの説明も参考にしてください。
yk_show_dialog_select( cb , msg , title , sel )
yk_show_dialog_select( cb , msg , title , sel , def )
yk_show_dialog_select( cb , msg , title , sel , def , type )
yk_show_dialog_select( cb , msg , title , sel , def , type , icon )
選択ダイアログを表示します。
このメソッドを呼び出すと、呼び出し元には戻らずに、
YKLook のメインループに戻ります。その後ダイアログを表示します。
選択された内容は、引数
cb で指定するコールバック用メソッドで処理してください。
このダイアログのボタンは「OK」「CANCEL」です。
OSによってはボタンの表記が「はい」等の日本語になっている場合もあります。
引数
sel は、文字列を要素とする配列です。
この配列の要素ひとつひとつが選択肢になります。
引数
def は、デフォルトの選択肢を整数または文字列で指定します。
整数で指定するときは、引数
sel の配列のインデックスになります。
文字列で指定するときは、引数
sel の配列要素の文字列になります。
その他の説明は、
yk_show_dialog_message()
をご覧ください。
例 |
msg = '方角を指定してください'
sel = [ '東', '西', '南', '北' ]
yk_show_dialog_select( 'fn_callback', msg, nil, sel )
|
GUIオブジェクト利用の手引き>ダイアログウインドウの説明も参考にしてください。
yk_sweep()
YKLookMain
クラスのデフォルトのスイープ処理をおこないます。
yki_sweep_info()
の戻り値に基づいて
YKLook の作業ファイルとログファイルのパージ(
purge )をおこないます。
例えば、
yki_sweep_info()
の戻り値が
[1,'day',1,3,'day',1] の場合は以下のようになります。
-
作業ファイルについては、ファイルの変更時刻が現在時刻よりも1日を超えて昔のものを1個だけ削除します。
-
ログファイルについては、ファイルの変更時刻が現在時刻よりも3日を超えて昔のものを1個だけ削除します。
作業ファイルとは、
YKLook の内部で利用している一時的なファイルです。
ログファイルとは、
YKLook のデフォルトのエラーログ用のファイルです。
作業ファイルについては
環境設定> YKLook の作業用ディレクトリの説明をご覧ください。
ログファイルについては
エラーの解決・デバッグ>ログファイルの説明をご覧ください。
環境設定>スイープ処理の説明も参考にしてください。
yk_userdata()
yk_userdata( key )
yk_userdata( key , value )
yk_userdata_del()
yk_userdata_del( key )
yk_userwork()
画面遷移したときに、直前の遷移元からの受け渡しデータを返します。
受け渡しデータがないときは nil を返します。
受け渡しデータがあるときは常に配列を戻り値として返します。
呼び出し形式[1]
yk_var()
現在セッション管理対象になっているインスタンス変数の名前を、文字列の配列で返します。
呼び出し形式[2]
yk_var( name )
セッション管理対象にするインスタンス変数の名前を文字列で指定します。
指定されたインスタンス変数がないときは、自動的に作ります。
このときの値は
nil になります。
このメソッドの戻り値は、指定されたインスタンス変数がすでにセッション管理対象になっていれば
true を、そうでなければ
false を返します。
このメソッドで指定できるインスタンス変数の名前には、以下の制約があります。
-
Ruby の文法上、正しいインスタンス変数名であること。
-
名前の先頭に @ がひとつだけあること。
-
名前の先頭の3文字が @yk ではないこと。
良い例 |
yk_var( '@abc' ) # OK
yk_var( '@kyx' ) # OK
yk_var( '@yjx' ) # OK
|
悪い例 |
yk_var( 'abc' ) # NG 先頭が @ でない
yk_var( '@@abc' ) # NG クラス変数になっている
yk_var( '@ykx' ) # NG 先頭の3文字が @yk になっている
|
セッション管理対象のインスタンス変数に代入可能なオブジェクトは、下記のいずれかのクラスに限ります。
-
Array
-
Hash
-
Numeric , Integer , Bignum , Fixnum , Float
-
Range
-
Regexp
-
String , Symbol
-
TrueClass , FalseClass , NilClass
-
YKLookSwingBase
のサブクラス( YKLook のGUIオブジェクト)
Array の要素や、
Hash のキーと値も、上記のクラスに限ります。
その範囲内であれば
Array や
Hash を入れ子にしたり組み合わせることもできます。
厳密には、
Ruby の組み込み
Marshal 機能でシリアライズが可能なオブジェクトである限り、セッション管理対象にすることができます。
上記で示した最後の項目の
YKLook のGUIオブジェクトについては、そのスーパークラスである
YKLookSwingBase
クラスにも同様のメソッドが同じ名前で用意してあります。
ただし、そちらのメソッドの戻り値は、そのオブジェクト自身です。
呼び出し形式[3]
yk_var( name , value )
yk_var_attach( names )
機能は
yk_var( name )
と同じですが、引数
names には配列を指定できます。
配列の要素にはインスタンス変数名となる文字列を指定してください。
このメソッドの戻り値は、指定されたインスタンス変数のどれかひとつがすでにセッション管理対象になっていれば
true を、すべてがまだ対象になっていないときは
false を返します。
例 |
yk_var_attach( "@abc" )
yk_var_attach( ["@abc", "@xyz"] )
|
yk_var_detach( names )
指定されたインスタンス変数をセッション管理対象から外します。
引数の
names はインスタンス変数名を表す文字列か、その配列を指定します。
このメソッドの戻り値は、指定されたインスタンス変数のどれかひとつでもセッション管理対象になっていたときは
true を、すべてが対象になっていなかったときは
false を返します。
例 |
yk_var_detach( "@abc" )
yk_var_detach( ["@abc", "@xyz"] )
|
yki_cat_message()
YKLook 組み込みのいくつかのメッセージ文字列をカスタマイズするときに、このメソッドを実装・オーバーライドしてください。
戻り値は常にハッシュです。
以下のなかから変更したいものをハッシュに定義してください。
キー |
意味 |
'YKLook_remote' |
Webサーバとの通信中に、ブラウザのステータス行に表示する文字列。
デフォルトは「 Web サーバとの通信中です ... 」を表示します。
ステータス行とは、Webブラウザのウインドウ下部にあるメッセージ表示領域のことです。
サーバとの通信中に限りこの領域にメッセージを表示し、通信終了時にはメッセージを消去します。
|
'YKLook_errorServer' |
Webサーバ上の Ruby プログラムから不正なデータを受信したときにダイアログ表示するときの文字列。
デフォルトは「サーバ側のプログラムでエラーが発生しました。」 |
'YKLook_errorInput' |
パスワードフィールドで入力禁止文字が使われたときにダイアログ表示するときの文字列。
デフォルトは「入力禁止文字が含まれています。
入力をやりなおしてください。」 |
'YKLook_errorEncoding_1' |
文字符号化方法の不一致により入力できない文字が入力されたときにダイアログ表示するときの文字列。
デフォルトは「以下の文字はお使いになれません。別の文字で置き換えてください。」 |
'YKLook_errorEncoding_2' |
文字符号化方法の不一致により入力できない文字が入力されたときにダイアログ表示するときの文字列。
デフォルトは「文字符号化方法:」 |
'YKLook_errorEncoding_3' |
文字符号化方法の不一致により入力できない文字が入力されたときにダイアログ表示するときの文字列。
デフォルトは「使用制限文字:」 |
'YKLook_errorEncoding_4' |
文字符号化方法の不一致により入力できない文字が入力されたときにダイアログ表示するときの文字列。
デフォルトは「ユニコード文字番号( 10 進数表記):」 |
'YKLook_errorEncoding_5' |
文字符号化方法の不一致により入力できない文字が入力されたときにダイアログ表示するときの文字列。
デフォルトは「ユニコード文字番号( 16 進数表記):」 |
'YKLook_encoding_1' から
'YKLook_encoding_5' までの文字列は、同じダイアログにまとめて表示されます。
例えば「あ」が入力できない文字の場合には、以下のように表示されます。
例 |
以下の文字はお使いになれません。別の文字で置き換えてください。
文字符号化方法:EUC_JP
使用制限文字:あ
ユニコード文字番号(10進数表記):12354
ユニコード文字番号(16進数表記):3042
|
実際には「あ」が入力できなくなることはありません。
文字符号化方法の不一致により入力できない文字というのは、特定のOSでしか通用しないシステム外字などです。
例 |
require 'yklook/swing'
require 'yklook/swingcat'
class SampleCatalogue < YKLookMain
def yki_cat_message()
hash = { 'YKLook_remote' => 'YKLook通信中...' }
return hash
end
... 以下省略 ...
|
注意: |
このメソッドを実装・オーバーライドするときは、上の例にもあるように必ず swing の後に swingcat をロードしてください。
|
ダイアログ表示するときの文字列には改行を含めることができます。
その文字列内の改行には「
LF (ラインフィード)」のみを使ってください。
「
CR (キャリッジリターン)」や「
CRLF 」は使わないでください。
Ruby の文字リテラルで言うと、
"\n" を使ってください。
"\r" や
"\r\n" は使わないでください。
改行の処理については、OSの違いに関わらず、このメソッドを含め
YKLook のすべての処理で共通です。
yki_encoding()
プログラム製作者の
Ruby スクリプトファイルの文字符号化方法を戻り値で示します。
このメソッドの戻り値は文字列で、
Java のエンコーディング指定方法と同じ形式のものに限ります。
YKLookMain
クラスのデフォルト実装では、以下のように決定します。
(1) |
$KCODE の指定がUTF−8のときは 'UTF8' に決定。
|
(2) |
$KCODE の指定がシフトJISのときは 'SJIS' に決定。
|
(3) |
$KCODE の指定がEUCのときは 'EUC_JP' に決定。
|
(4) |
$KCODE の指定が上記以外のときは 'ISO8859_1' に決定。
|
OSが
MS-Windows で、システム外字に対応する必要がある場合には、このメソッドをオーバーライドして
'MS932' を返すようにしてください。
注意!!
CP932 ではなく
MS932 です。
OSが
Mac OS X で、システム外字に対応する必要がある場合には、このメソッドをオーバーライドして
'YKLook_SJIS_Mac_KT7_X' を返すようにしてください。
この
'YKLook_SJIS_Mac_KT7_X' というエンコーディング指定は、
YKLook 組み込みの文字符号化方法で、
Mac OS X に特有のシステム外字を一般的な文字に置き換えることにより文字化けを防ぐためのものです。
'YKLook_SJIS_Mac_KT7_X' を指定してWebアプリとして起動するときは、ブラウザで利用する
YKLook ライブラリについて注意が必要です。
詳細は
YKLook 用アプリの応用>文字符号化方法→シフトJIS・マックの説明をご覧ください。
OSが
Mac OS X かどうかを判定する必要があるときは、
yk_is_mac()
をお使いください。
yki_fr_location()
ウインドウの表示位置を戻り値で示します。
戻り値は配列で、要素は2個の整数です。
この二つの整数はそれぞれX座標とY座標を表します。単位はピクセルです。
ここで指定する座標は、ウインドウの左上隅の座標です。
XY座標の基準となる原点
(0,0) は、実際のコンピュータ画面(スクリーン)の左上隅で、右下へ行くほどXとYの値が増えます。
実際の表示位置はOSごとに最適化されます。
例えば
Mac OS X の場合には、このメソッドでY座標に
0 を指定しても、実際にはスクリーン最上段のメニューバーよりも下の位置に表示されます。
XY座標のいずれか一方に
nil を指定すると、もう一方の座標だけを変更します。
どちらも
nil のときは、表示位置は変わりません。
YKLookMain
クラスのデフォルト実装では、
[nil,nil] を返します。
例 |
def yki_fr_location()
return [ 200, 100 ] # X=200, Y=100
end
|
このメソッドの影響を受けるのはスタンドアロンアプリとして起動された場合か、独立ウインドウ形式のWebアプリとして起動された場合です。
ブラウザウインドウのWebページ内に表示するときは、このメソッドの影響を受けません。
言い換えると、
yk_is_frame()
が
true を返すときのみ意味を持ちます。
yki_fr_need_pack()
開いたウインドウの大きさが、内部のGUI表示部品を配置するのに広すぎる場合、ウインドウの大きさを内部のGUI表示部品が収まる程度の大きさに縮めるかどうかを戻り値で示します。
このメソッドの戻り値が
true のときは縮めます。
YKLookMain
クラスのデフォルト実装では、
false を返します。
場合によっては、内部のGUI表示部品を適切に配置した結果、横幅または縦の高さのいずれか一方がもとのウインドウの大きさを超えることもあります。
このメソッドの影響を受けるのはスタンドアロンアプリとして起動された場合か、独立ウインドウ形式のWebアプリとして起動された場合です。
ブラウザウインドウのWebページ内に表示するときは、このメソッドの影響を受けません。
言い換えると、
yk_is_frame()
が
true を返すときのみ意味を持ちます。
yki_fr_resizable()
アプリ利用者のマウス操作によるウインドウのリサイズを許すかどうかを戻り値で示します。
このメソッドの戻り値が
true のときはリサイズできます。
YKLookMain
クラスのデフォルト実装では、
true を返します。
このメソッドの影響を受けるのはスタンドアロンアプリとして起動された場合か、独立ウインドウ形式のWebアプリとして起動された場合です。
ブラウザウインドウのWebページ内に表示するときは、このメソッドの影響を受けません。
言い換えると、
yk_is_frame()
が
true を返すときのみ意味を持ちます。
yki_ht_align()
ブラウザ経由でWebアプリとして起動されたときに、Webページ内の位置揃えを戻り値で示します。
戻り値は文字列で、下記9個のいずれかになります。
-
LEFT
-
RIGHT
-
TOP
-
TEXTTOP
-
MIDDLE
-
ABSMIDDLE
-
BASELINE
-
BOTTOM
-
ABSBOTTOM
上記それぞれの意味はHTMLの
IMG タグと同じです。
戻り値で
nil を返すと、位置揃えをブラウザに任せます。
YKLookMain
クラスのデフォルト実装では、
nil を返します。
このメソッドは、具体的には
APPLET タグの
ALIGN 属性を指定するためのものです。
yki_ht_alt()
ブラウザ経由でWebアプリとして起動されたときに、Webページ内の Java アプレットの実行ができない場合、ブラウザはこのメソッドの戻り値で示される文字列を表示します。
このメソッドは、具体的には APPLET タグの ALT 属性を指定するためのものです。
YKLookMain
クラスのデフォルト実装では、単に 'YKLook' を返します。
yki_ht_border()
ブラウザ経由でWebアプリとして起動されたときに、Webページ内の
Java アプレット表示領域の周囲に枠線を表示するかどうかをこのメソッドの戻り値で示します。
戻り値が
true のとき枠線を表示します。
戻り値が
false のとき枠線を表示しません。
YKLookMain
クラスのデフォルト実装では、
true を返します。
注意: |
このメソッドは、ブラウザのページ内に埋め込んで表示する部分に対しての指定です。独立ウインドウには影響しません。
|
このメソッドにより表示する枠線は単純な黒い線です。
枠線を表示したくないときは、このメソッドをオーバーライドして
false を返すようにしてください。
また、プログラム製作者による任意の枠線を表示したいときは、同様にこのメソッドをオーバーライドして
false を返すようにし、
yki_make_display()
にて任意の枠線を表示する処理をしてください。
参考例を以下に示します。
例 |
def yki_make_display()
# ... 他の表示処理 ...
if yk_is_far() and not yk_is_frame()
mp = yk_mainpanel()
mp.yk_set_border( ['line', 'black'] )
end
end
|
独立ウインドウ形式で、Webページ内のボタン表示領域の周囲に任意の枠線を表示するには、このメソッドをオーバーライドして
false を返すようにし、
yki_ht_opener_display()
の中で任意の枠線処理をしてください。
例 |
def yki_ht_opener_display()
super()
mp = yk_mainpanel()
mp.yk_set_border( ['line', 'black'] )
end
|
yki_ht_exit( msg )
yki_ht_farpath()
Webアプリ用の、ブラウザで利用する
YKLook ライブラリ(
yklookfar.jar )の保存場所を戻り値として返します。
具体的には、HTMLの
APPLET タグの
CODEBASE 属性の値と、
ARCHIVE 属性に付加する相対ディレクトリの二つの文字列を要素に持つ配列の形で返します。
CODEBASE 属性は相対URLまたは絶対URLです。
CODEBASE 属性を指定しないときは、文字列の代わりに
nil を配列の要素にして返します。
ARCHIVE 属性に相対ディレクトリを付加しないときは、文字列の代わりに
nil を配列の要素にして返します。
YKLookMain
クラスのデフォルト実装では、以下の優先順位で処理します。
(1) |
環境変数 YKLOOK_FARPATH が定義されていれば、これを使います。
戻り値として、 [ 環境変数の値 , nil ] を返します。
このときの APPLET タグは、 CODEBASE= 環境変数の値 ARCHIVE= "yklookfar.jar" になります。
|
(2) |
環境変数 DOCUMENT_ROOT が指すディレクトリにライブラリがあるときは、 ['/',nil] を返します。
このときの APPLET タグは、 CODEBASE="/" ARCHIVE= "yklookfar.jar" になります。
|
(3) |
環境変数 DOCUMENT_ROOT が指すディレクトリの直下にディレクトリ yklook があり、その中にライブラリがあるときは、 ['/yklook',nil] を返します。
このときの APPLET タグは、 CODEBASE="/yklook" ARCHIVE= "yklookfar.jar" になります。
|
(4) |
起動元の Ruby スクリプトのソースファイルと同じディレクトリにライブラリがあるときは、 [nil,nil] を返します。
このときの APPLET タグは、 CODEBASE 属性なし、 ARCHIVE= "yklookfar.jar" になります。
|
(5) |
起動元の Ruby スクリプトのソースファイルと同じディレクトリの直下にディレクトリ yklook があり、その中にライブラリがあるときは、 ['yklook',nil] を返します。
このときの APPLET タグは、 CODEBASE="yklook" ARCHIVE= "yklookfar.jar" になります。
|
(6) |
起動元の Ruby スクリプトのソースファイルのディレクトリのすぐ上の階層レベルにライブラリがあるときは、 ['..',nil] を返します。
このときの APPLET タグは、 CODEBASE=".." ARCHIVE= "yklookfar.jar" になります。
|
(7) |
起動元の Ruby スクリプトのソースファイルのディレクトリと同じ階層レベルにディレクトリ yklook があり、その中にライブラリがあるときは、 ['../yklook',nil] を返します。
このときの APPLET タグは、 CODEBASE="../yklook" ARCHIVE= "yklookfar.jar" になります。
|
(8) |
上のいずれでもないときは、(4)と同様 [nil,nil] になります。
結果としてライブラリが見つからないのでブラウザウインドウの表示内容は不正なものになります。
実際には何も表示されないか、ブラウザによっては何かエラーメッセージが表示されるかもしれません。
いずれにしても、このときWebサーバ側ではエラーとしての認識はありません。
|
環境変数
DOCUMENT_ROOT は、Webサーバにより設定されているもので、HTMLファイルを保存する場所の基点となるディレクトリを指します。
環境変数
YKLOOK_FARPATH は、デフォルトでは未設定です。
環境変数を設定する方法は、Webサーバにより異なりますので、お使いのWebサーバの説明書をご覧ください。
YKLookMain
クラスのデフォルト実装で対応できない場合、このメソッドをサブクラスでオーバーライドして適切に実装してください。
Ruby スクリプトファイルを、CGI専用のディレクトリ(いわゆる
cgibin )に置いている場合は、ブラウザで利用する
YKLook ライブラリ(
yklookfar.jar )を通常の
HTML ファイル用のディレクトリのほうに置いたほうが無難です。
そのようなときに、このメソッドをオーバーライドする必要があるかもです。
例1 |
def yki_ht_farpath()
return ['yklook', nil]
end
|
Ruby スクリプトファイルのURLが
http://www.aaaa.jp/ab/cd/xyz.rb のとき、この例では
http://www.aaaa.jp/ab/cd/yklook/yklookfar.jar を指定したことになります。
例2 |
def yki_ht_farpath()
return ['../ef/yklook', nil]
end
|
Ruby スクリプトファイルのURLが
http://www.aaaa.jp/ab/cd/xyz.rb のとき、この例では
http://www.aaaa.jp/ab/ef/yklook/yklookfar.jar を指定したことになります。
例3 |
def yki_ht_farpath()
return ['/shlib/yklook', nil]
end
|
Ruby スクリプトファイルのURLが
http://www.aaaa.jp/ab/cd/xyz.rb のとき、この例では
http://www.aaaa.jp/shlib/yklook/yklookfar.jar を指定したことになります。
yki_ht_header()
HTTP プロトコルのヘッダを定義したいときは、このメソッドを実装・オーバーライドしてください。
これは
HTML の
META タグの
http-equiv 属性にもなります。
このメソッドの戻り値は常にハッシュで、キーがヘッダ名になります。
ヘッダ名にはコロンを付けないでください。
YKLookMain
クラスのデフォルト実装では、
Content-Type ヘッダの情報をハッシュにして返します。
このとき
$KCODE の値(文字符号化方法)によって以下のようになります。
文字符号化方法 |
情報 |
'EUC' |
'text/html; charset=EUC-JP' |
'SJIS' |
'text/html; charset=Shift_JIS' |
'UTF8' |
'text/html; charset=UTF-8' |
'NONE' |
'text/html' |
このメソッドをオーバーライドするときは、ハッシュの中に必ず
Content-Type ヘッダの情報を含めてください。
例 |
def yki_ht_header()
hash = super()
hash[ 'imagetoolbar' ] = 'no'
return hash
end
|
上の例では、一部のブラウザでしか通用しない非互換機能のひとつであるイメージツールバーを無効にするためのヘッダを追加しています。
これは
HTTP ヘッダとしては以下のものになります。
また、
HTML の
META タグとしては以下のものになります。
タグ |
<meta http-equiv="imagetoolbar" content="no">
|
yki_ht_html()
ブラウザ経由でWebアプリとして起動されたときに、WebページのHTMLデータを戻り値で示します。
YKLookMain
クラスのデフォルト実装では、以下のようになります。
yki_ht_html_header()
HTML の
HEAD タグの内容のうち、
TITLE タグ以外のものを戻り値で示します。
YKLookMain
クラスのデフォルト実装では、以下のようになります。
-
yki_ht_header()
を呼び出し、戻り値を得る。
-
この戻り値のハッシュをもとに、 META タグを作る。
-
作った META タグをこのメソッドの戻り値として返す。
yki_ht_http()
ブラウザ経由でWebアプリとして起動されたときに、Webサーバに出力するデータを戻り値で示します。
YKLookMain
クラスのデフォルト実装では、以下のようになります。
注意: |
このメソッドをオーバーライドするとき、その戻り値の文字列内の改行には「 LF (ラインフィード)」のみを使ってください。
「 CR (キャリッジリターン)」や「 CRLF 」は使わないでください。
Ruby の文字リテラルで言うと、 "\n" を使ってください。
"\r" や "\r\n" は使わないでください。
改行の処理については、OSの違いに関わらず、このメソッドを含め YKLook のすべての処理で共通です。
|
yki_ht_http_header()
HTTP ヘッダを戻り値で示します。
YKLookMain
クラスのデフォルト実装では、以下のようになります。
-
yki_ht_header()
を呼び出し、戻り値を得る。
-
この戻り値のハッシュをもとに、 HTTP ヘッダを作る。
-
作った HTTP ヘッダをこのメソッドの戻り値として返す。
ひとつの
HTTP ヘッダの構成要素は以下のとおりです。
注意: |
このメソッドをオーバーライドするとき、その戻り値の文字列内の改行には「 LF (ラインフィード)」のみを使ってください。
「 CR (キャリッジリターン)」や「 CRLF 」は使わないでください。
Ruby の文字リテラルで言うと、 "\n" を使ってください。
"\r" や "\r\n" は使わないでください。
改行の処理については、OSの違いに関わらず、このメソッドを含め YKLook のすべての処理で共通です。
|
yki_ht_message_unknown()
ブラウザ経由でWebアプリとして起動されたときに、Webページ内の
Java アプレットの存在自体をブラウザが認識できない場合、ブラウザはこのメソッドの戻り値で示される文字列をHTML構文として表示します。
このメソッドは、具体的には
APPLET タグの代替HTML文を指定するためのものです。
YKLookMain
クラスのデフォルト実装では、単に
'YKLook' を返します。
プログラム製作者がこのメソッドをサブクラスでオーバーライドするときは、
yk_html_escape()
等で適切にHTMLに対応してください。
yki_ht_opener_button()
独立ウインドウ形式のWebアプリとして起動したときの、ブラウザウインドウのWebページ内に表示するボタンを作るための情報を戻り値で示します。
YKLookMain
クラスのデフォルト実装では、文字列
'Open Window' を返します。
yk_ht_opener_button()
は、このメソッドの戻り値をもとにボタンをつくります。
このメソッドの戻り値は以下のいずれかです。
戻り値 |
yk_ht_opener_button()の動作 |
文字列 |
それをラベルにしたボタンが作られます。
|
YKLookImage クラスのオブジェクト
(アイコン) |
それをラベルにしたボタンが作られます。
|
YKLookButton クラスのオブジェクト |
これをそのままボタンとして使います。
ただし YKLookButton#yk_set_listener() によるコールバック用メソッドの指定は上書きされ、 yk_ht_opener_action() を呼び出すためのコールバック用メソッドに置き換えられます。
|
例1 |
def yki_ht_opener_button()
return 'ウインドウ'
end
|
例2 |
def yki_ht_opener_button()
img = YKLookImage.yk_from_file( 'abcd.gif' )
return img
end
|
例3 |
def yki_ht_opener_button()
btn = YKLookButton.new( 'Push !' )
btn.yk_set_fore( 'red' )
return btn
end
|
独立ウインドウ形式を利用するには、
yki_ht_opener_valid()
をオーバーライドして
true を返すようにしてください。
yki_ht_opener_display()
独立ウインドウ形式のWebアプリとして起動したときの、ブラウザウインドウのWebページをカスタマイズするときにこのメソッドをオーバーライドしてください。
YKLookMain
クラスのデフォルト実装では、
yk_ht_opener_display()
を呼び出します。
例 |
def yki_ht_opener_display()
lab = YKLookLabel.new( 'ボタンを押してください' )
btn = yk_ht_opener_button()
pan = YKLookPanelFlow.new()
pan.yk_add( lab )
pan.yk_add( btn )
yk_add( pan )
end
|
独立ウインドウ形式を利用するには、
yki_ht_opener_valid()
をオーバーライドして
true を返すようにしてください。
yki_ht_opener_size()
独立ウインドウ形式のWebアプリとして起動したときの、ブラウザウインドウのWebページ内のボタン表示領域のサイズを戻り値で示します。
YKLookMain
クラスのデフォルト実装では、
[300,40] を返します。
例 |
def yki_ht_opener_size()
return [300,40]
end
|
独立ウインドウのほうのウインドウサイズは、
yki_size()
で指定してください。
独立ウインドウ形式を利用するには、
yki_ht_opener_valid()
をオーバーライドして
true を返すようにしてください。
yki_ht_opener_title()
独立ウインドウ形式のWebアプリとして起動したときの、ブラウザウインドウのタイトルを戻り値で示します。
YKLookMain
クラスのデフォルト実装では、
yki_title()
を呼び出してその戻り値を返しますので、ブラウザウインドウと独立ウインドウのタイトルが同じになります。
例 |
def yki_ht_opener_title()
return 'タイトル文字列'
end
|
独立ウインドウ形式を利用するには、
yki_ht_opener_valid()
をオーバーライドして
true を返すようにしてください。
yki_ht_opener_valid()
ブラウザ経由でWebアプリとして起動されたときに、ブラウザウインドウのWebページ内に表示するか、独立ウインドウ形式で表示するかを戻り値で示します。
戻り値が
true のときは、独立ウインドウ形式で表示します。
戻り値が
false のときは、ブラウザウインドウのWebページ内に表示します。
YKLookMain
クラスのデフォルト実装では、
false を返します。
Webアプリの独立ウインドウ形式を使うときは、
swingframe をロードしてください。
また、以下の例のように必ず
swing の後にロードしてください。
例 |
require 'yklook/swing'
require 'yklook/swingframe'
class HaseiKurasu < YKLookMain
... 他のメソッド定義 ...
def yki_ht_opener_valid()
return true
end
end
|
このメソッドは、プログラムがスタンドアロンで起動されたときは意味を持ちません。
Webアプリとして起動されたのかスタンドアロンで起動されたのかを判定するのにこのメソッドを使うことはできません。
判定するには
yk_is_far()
または
yk_is_near()
をお使いください。
場合によっては
yk_is_frame()
が役に立つかもしれません。
yki_ht_space()
ブラウザ経由でWebアプリとして起動されたときに、Webページ内の表示領域の周囲の余白の大きさを戻り値で示します。
戻り値は、ふたつの整数を要素とする配列で、ひとつめの整数が上下の余白を示し、ふたつめの整数が左右の余白を示します。
数字の単位はピクセルです。
整数の代わりに nil を指定すると、余白の設定をブラウザに任せます。
YKLookMain
クラスのデフォルト実装では、 [nil,nil] を返します。
このメソッドは、具体的には APPLET タグの VSPACE 属性と HSPACE 属性を指定するためのものです。
yki_laf()
画面表示するGUIの外観を戻り値(文字列)で示します。
このメソッドをサブクラスでオーバーライドすると、
Java のメソッドである
UIManager.setLookAndFeel() に渡す文字列を直接指定できます。
例 |
def yki_laf()
return 'com.sun.java.swing.plaf.motif.MotifLookAndFeel'
end
|
その際、複数の外観を空白またはコロン「
: 」で区切って指定することもできます。このときの動作は、指定された順番に外観を表示可能かどうかを調べ、表示可能であればそれに決定し、以降の外観の指定を無視します。
YKLookMain
クラスのデフォルト実装では、
yki_laf_is_system()
の戻り値が
true のときは
'YKLook_laf_System' を返し、
false のときは
'YKLook_laf_CrossPlatform' を返します。
YKLook の内部では、このふたつの文字列を特別に扱い、前者のときはOSに合わせた外観になり、後者のときは
Java 標準の外観になります。
コロンによる複数指定時にも、この特別な文字列を使えます。
例 |
def yki_laf()
m = 'com.sun.java.swing.plaf.motif.MotifLookAndFeel'
s = 'YKLook_laf_System'
return (m + ":" + s)
end
|
この例では、
Motif の外観になります。
もし
Motif にできないときは、OSに合わせた外観になります。
yki_laf_is_system()
画面表示するGUIの外観を、それぞれのOSに合わせたものにするのか、
Java 標準の外観にするのかを戻り値で示します。
戻り値が
true のときはOSに、
false のときは
Java 標準になります。
YKLookMain
クラスのデフォルト実装では、
true を返します。
このメソッドは、
yki_laf()
のデフォルト実装の中で使っています。
yki_make_display()
画面作成処理をするメソッドです。
YKLookMain
クラスのデフォルト実装では、 'YKLook' というラベルを表示します。
プログラム製作者は、このメソッドをサブクラスでオーバーライドしてください。
yki_sa_close( prm_condition )
スタンドアロンで起動されたときに、メインウインドウを閉じる操作に伴い、このメソッドが呼び出されます。
引数の
prm_condition はこのメソッドが呼ばれたときの状態を表しています。
具体的には以下のようになります。
引数 |
意味 |
'Closing' |
アプリ利用者によりメインウインドウを閉じるボタンが押されたとき。
実際にウインドウを閉じるかどうかはこのメソッドでの処理に依存。
|
'break' |
何らかの原因で強制的に閉じたとき。
すでに閉じた後であり復元できない。
|
YKLookMain
クラスのデフォルト実装では、上記のいずれの場合でも
yk_exit()
を実行しプログラムを終了します。
引数が
'break' になるのは、
Java 実行環境の強制終了や異常終了などのときです。通常では起こりません。
Mac OS X の場合、メニューバーからアプリケーションメニューの「終了」を指示すると、
'break' になります。
yki_sa_command_option( path )
スタンドアロン用アプリとして起動されたときに、画面遷移をする場合、その画面の
Ruby スクリプトを起動するコマンド自体に渡すオプションを、このメソッドの戻り値として返します。
戻り値は文字列を要素に持つ配列で、ひとつの要素がひとつのオプションになります。
このメソッドは、
yk_next_display()
から呼ばれます。
yk_next_display()
は、このメソッドの戻り値を、
Ruby 起動用コマンドに渡すオプション引数として使っています。
YKLookMain
クラスのデフォルト実装では、
[] を返します。
引数の
path は、
Ruby スクリプトのファイル名です。
具体的には、
yk_next_display()
の最初の引数と同じです。
yki_sa_command_path( path )
スタンドアロン用アプリとして起動されたときに、画面遷移をする場合、その画面の
Ruby スクリプトを起動するコマンドを戻り値で示します。
このメソッドは、
yk_next_display()
から呼ばれます。
yk_next_display()
は、このメソッドの戻り値を
Ruby 起動用コマンドとして使っています。
YKLookMain
クラスのデフォルト実装では、単に
'ruby' を返します。
例えば、
/opt/ruby18 の下に
ruby コマンドがあるときは、このメソッドをサブクラスでオーバーライドして
'/opt/ruby18/ruby' を返すようにしてください。
例 |
def yki_sa_command_path( path )
return '/opt/ruby18/ruby'
end
|
ruby コマンドの場所が環境変数
PATH に設定済みであれば、このメソッドをオーバーライドする必要はありません。
OSによっては、一般的な「
ruby 」コマンドのほかに「
rubyw 」コマンドというものも提供されています。
それを使う場合には、このメソッドを適切にオーバーライドしてください。
コマンド自体のオプションを指定するには
yki_sa_command_option()
をオーバーライドしてください。
引数の
path は、
Ruby スクリプトのファイル名です。
具体的には、
yk_next_display()
の最初の引数と同じです。
yki_sa_exit( msg )
スタンドアロン用アプリとして起動されたときの、プログラム終了時の処理を実行します。
このメソッドは
yk_exit()
から呼ばれます。
引数の
msg は、
yk_exit()
の引数がそのまま渡されます。
YKLookMain
クラスのデフォルト実装では、単に
print( msg ) を呼び出します。
yki_sa_javaoption()
スタンドアロン用の
Java 実行環境(JRE)で使う
java コマンドに渡すオプション引数を、このメソッドの戻り値として返します。
YKLookMain
クラスのデフォルト実装では、OSが
Mac OS X の場合に
-Xdock:name オプションを戻り値として返し、その他のOSの場合には空文字列(つまりオプションなし)を戻り値として返します。
Mac の場合、上記オプション引数を指定しないと、メニューバーに表示されるアプリケーション名が常に「
jp.co.yorozukotowariya.yklook.YKLookStandAlone 」になってしまうので、それを避けるための措置です。
このオプション指定により、起動元の
Ruby スクリプト名をメニューバーのアプリケーション名として表示するようにしています。
OSが
Mac OS X かどうかの判定は、
yk_is_mac()
を使っています。
yki_sa_javapath()
スタンドアロン用の
Java 実行環境(JRE)で使う
java コマンドを戻り値として返します。
YKLookMain
クラスのデフォルト実装では、単に
'java' を返します。
例えば、
/opt/java16 の下に
java コマンドがあるときは、このメソッドをサブクラスでオーバーライドして
'/opt/java16/java' を返すようにしてください。
例 |
def yki_sa_javapath()
return '/opt/java16/java'
end
|
java コマンドの場所が環境変数
PATH に設定済みであれば、このメソッドをオーバーライドする必要はありません。
OSによっては、一般的な「
java 」コマンドのほかに「
javaw 」コマンドというものも提供されています。
それを使う場合には、このメソッドを適切にオーバーライドしてください。
java コマンドにオプションを指定するときは、このメソッドではなく
yki_sa_javaoption()
を使ってください。
yki_size()
表示領域のサイズを戻り値で示します。
これは、Webアプリとして起動されたときには
APPLET (アプレット)の表示サイズになり、スタンドアロンとして起動されたときはウインドウの表示サイズになります。Webアプリの独立ウインドウ形式での起動のときは、その独立ウインドウの表示サイズになります。
戻り値はふたつの整数を要素に持つ配列で、ひとつめは横幅、ふたつめは縦の高さです。
数字の単位はピクセルです。
YKLookMain
クラスのデフォルト実装では
[400,300] を返します。
プログラム製作者は、このメソッドをサブクラスでオーバーライドしてください。
例 |
def yki_size()
return [400,300]
end
|
このメソッド内で、
yk_maininfo()
を使う場合には以下の制限があります。
-
スタンドアロンで起動されているときは使うことができる。
-
Webアプリとして起動されているときは使うことができない。
-
ただし、独立ウインドウ形式のときは使うことができる。
Webアプリとして起動されたときのサイズとスタンドアロンで起動されたときのサイズを別々に指定したいときは、
yk_is_far()
または
yk_is_near()
を使って判断してください。
yk_is_frame()
によりウインドウ駆動かどうかを判断することもできます。
独立ウインドウ形式のとき、ブラウザウインドウのWebページ内のボタン表示領域のサイズを指定するには
yki_ht_opener_size()
をオーバーライドしてください。
yki_sweep()
スイープ処理をするメソッドです。
YKLookMain
クラスのデフォルト実装では、単に
yk_sweep()
を呼び出します。
このメソッドは以下のタイミングで呼び出されます。
-
初期表示後
-
コールバック用メソッドの実行後
-
画面遷移時
-
プログラム終了時
環境設定>スイープ処理の説明も参考にしてください。
yki_sweep_info()
スイープ対象のファイルを指定するメソッドです。
このメソッドの戻り値により、
yk_sweep()
が実際に削除するファイルが決まります。
戻り値は下記6個の要素を持つ配列です。
(1) |
整数。この数値の単位は(2)で指定する。
|
(2) |
'day' 'hour' 'min' のいずれか。
英字の大文字小文字はどちらでもよい。
|
(3) |
1回のスイープ処理で削除する作業ファイルの最大数 |
(4) |
整数。この数値の単位は(5)で指定する。
|
(5) |
'day' 'hour' 'min' のいずれか。
英字の大文字小文字はどちらでもよい。
|
(6) |
1回のスイープ処理で削除するログファイルの最大数。
|
YKLookMain
クラスのデフォルト実装では、
[1,'day',1,3,'day',1] を戻り値として返します。
戻り値の詳しい内容については、
yk_sweep()
の説明をご覧ください。
yki_title()
画面タイトルを戻り値で示します。戻り値は文字列です。
ブラウザ経由でWebアプリとして起動されたときは、そのWebページを表示しているウインドウのタイトルになります。
スタンドアロンアプリとして起動されたときは、そのまま表示ウインドウのタイトルになります。
YKLookMain
クラスのデフォルト実装では
nil を返すので、何も表示はありません。
プログラム製作者は必要に応じてこのメソッドをサブクラスでオーバーライドしてください。
独立ウインドウ形式のWebアプリとして起動したときは、独立ウインドウのタイトルになります。
このときにブラウザウインドウのタイトルを指定するには
yki_ht_opener_title()
をオーバーライドしてください。
なし
Copyright (c) 2003-2010 YorozuKotowariYa Ltd.