YKLook説明書 クラス解説 YKLookMain 機能別   ABC
ページ内リンク一覧   スーパークラス   クラスメソッド   インスタンスメソッド   その他の項目  

YKLookMain


YKLook の中心となるクラスです。
アプリの製作者は、このクラスのサブクラスを定義し、メソッドのいくつかをオーバーライドすることで画面を表示したりイベントに対応したりします。

このクラスで定義しているメソッド名には以下のような原則があります。




クラスメソッド:   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()  

YKLookMain.yk_is_far() の逆です。
このメソッドと同じ機能で同じ名前のインスタンスメソッドもあります。




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()  

プログラム製作者による YKLookMain のサブクラスのインスタンスオブジェクトを返します。
具体的には、 YKLookMain.yk_mainloop() の引数で指定されたオブジェクトを返します。




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 のキーと値も、上記のクラスに限ります。
その範囲内であれば 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 )

プログラムを終了します。
引数の msg が指定されていないときは、空文字列とみなします。

具体的には、以下の処理をしてから終了します。

(1) Webアプリとして起動されたときは、 yki_ht_exit( msg ) を実行後(3)へ。
(2) スタンドアロンで起動されたときは、 yki_sa_exit( msg ) を実行後(3)へ。
(3) YKLook の内部処理で使っている一時的な作業ファイルを削除する。
(4) プログラムを終了する。

作業ファイルについては環境設定> YKLook の作業用ディレクトリの説明をご覧ください。

yki_ht_exit() および yki_sa_exit() のふたつのメソッドを、 YKLookMain のデフォルト実装のまま使うときは、引数の 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()  

独立ウインドウ形式のWebアプリとして起動したときの、ブラウザウインドウのWebページを表示するための基本機能を提供します。
具体的には yk_ht_opener_button() を呼び出して、独立ウインドウを開くためのボタンオブジェクトを作り、それを表示するようにします。
このボタンのためのコールバック用メソッドでは、 yk_ht_opener_action() を呼び出すようにしています。

独立ウインドウ形式を利用するには、 yki_ht_opener_valid() をオーバーライドして true を返すようにしてください。




呼び出し形式[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形式に置き換えます。
これにより、Webブラウザで表示したときに、もとの文字列と同じように表示することができます。

w = 'if v < 10'
x = yk_html_escape( w )  # x => 'if v &lt; 10'

引数の chr には、上記四つの文字に加えて、それ以外の文字でHTML形式に置き換える必要がある文字があるときに指定します。
ただし「 ; (セミコロン)」と「 # (番号記号、井げた、シャープ)」は指定できません。

w = 'v % 10'
x = yk_html_escape( w, "\"'`%" )  # x => 'v &#037; 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_far() の逆です。
このメソッドと同じ機能で同じ名前のクラスメソッドもあります。




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 のキーと値も、上記のクラスに限ります。
その範囲内であれば 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] の場合は以下のようになります。
作業ファイルとは、 YKLook の内部で利用している一時的なファイルです。
ログファイルとは、 YKLook のデフォルトのエラーログ用のファイルです。
作業ファイルについては環境設定> YKLook の作業用ディレクトリの説明をご覧ください。
ログファイルについてはエラーの解決・デバッグ>ログファイルの説明をご覧ください。

環境設定>スイープ処理の説明も参考にしてください。




yk_userdata()  
yk_userdata( key )
yk_userdata( key , value )

このメソッドと同じ機能で同じ名前のクラスメソッドもあります。
クラスメソッド YKLookMain.yk_userdata() の説明をご覧ください。




yk_userdata_del()  
yk_userdata_del( key )

このメソッドと同じ機能で同じ名前のクラスメソッドもあります。
クラスメソッド YKLookMain.yk_userdata_del() の説明をご覧ください。




yk_userwork()  

画面遷移したときに、直前の遷移元からの受け渡しデータを返します。
受け渡しデータがないときは nil を返します。
受け渡しデータがあるときは常に配列を戻り値として返します。




呼び出し形式[1]
yk_var()

現在セッション管理対象になっているインスタンス変数の名前を、文字列の配列で返します。




呼び出し形式[2]
yk_var( name )

セッション管理対象にするインスタンス変数の名前を文字列で指定します。
指定されたインスタンス変数がないときは、自動的に作ります。
このときの値は nil になります。
このメソッドの戻り値は、指定されたインスタンス変数がすでにセッション管理対象になっていれば true を、そうでなければ false を返します。

このメソッドで指定できるインスタンス変数の名前には、以下の制約があります。
良い例
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 のキーと値も、上記のクラスに限ります。
その範囲内であれば Array Hash を入れ子にしたり組み合わせることもできます。
厳密には、 Ruby の組み込み Marshal 機能でシリアライズが可能なオブジェクトである限り、セッション管理対象にすることができます。

上記で示した最後の項目の YKLook のGUIオブジェクトについては、そのスーパークラスである YKLookSwingBase クラスにも同様のメソッドが同じ名前で用意してあります。
ただし、そちらのメソッドの戻り値は、そのオブジェクト自身です。




呼び出し形式[3]
yk_var( name , value )

上述の yk_var( name ) の処理に加えて、引数 value の値をインスタンス変数に設定します。
このメソッドの戻り値は yk_var( name ) と同様です。




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個のいずれかになります。
上記それぞれの意味は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 )  

ブラウザ経由でWebアプリとして起動されたときの、プログラム終了時の処理を実行します。
このメソッドは yk_exit() から呼ばれます。
引数の msg は、 yk_exit() の引数がそのまま渡されます。

YKLookMain クラスのデフォルト実装では、単に yk_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 ヘッダとしては以下のものになります。
ヘッダ
imagetoolbar: no
また、 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_http()  

ブラウザ経由でWebアプリとして起動されたときに、Webサーバに出力するデータを戻り値で示します。

YKLookMain クラスのデフォルト実装では、以下のようになります。

注意: このメソッドをオーバーライドするとき、その戻り値の文字列内の改行には「 LF (ラインフィード)」のみを使ってください。
CR (キャリッジリターン)」や「 CRLF 」は使わないでください。
Ruby の文字リテラルで言うと、 "\n" を使ってください。
"\r" "\r\n" は使わないでください。
改行の処理については、OSの違いに関わらず、このメソッドを含め YKLook のすべての処理で共通です。




yki_ht_http_header()  

HTTP ヘッダを戻り値で示します。

YKLookMain クラスのデフォルト実装では、以下のようになります。

ひとつの 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アプリとして起動されたときのサイズとスタンドアロンで起動されたときのサイズを別々に指定したいときは、 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() をオーバーライドしてください。



なし



ページ内リンク一覧   スーパークラス   クラスメソッド   インスタンスメソッド   その他の項目  
YKLook説明書 クラス解説 YKLookMain 機能別   ABC


Copyright (c) 2003-2010 YorozuKotowariYa Ltd.