001/* 002 * Copyright (c) 2009 The openGion Project. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 013 * either express or implied. See the License for the specific language 014 * governing permissions and limitations under the License. 015 */ 016package org.opengion.hayabusa.taglib; 017 018 019import org.opengion.fukurou.util.XHTMLTag; 020 021 022/** 023 * インラインフレームを作成するHTML拡張タグで、引数の受け渡しが可能です。 024 * 025 * @og.formSample 026 * ●形式:<og:iframe src="…" name="…" /> 027 * ●body:なし 028 * 029 * ●Tag定義: 030 * <og:frame 031 * src ○【HTML】フレームに表示するソースファイルを指定します(必須)。 032 * name ○【HTML】フレーム名を指定します(例:QUERY,RESULT,CONTENTS など)(必須)。 033 * changeGamen 【TAG】ソース指定の画面を変更します 034 * keys 【TAG】引数を指定します 035 * dbTable 【TAG】前ページで選択したデータ列の情報を次のページに渡すかどうか[true/false]を指定します(初期値:false) 036 * width 【HTML】フレームの幅を指定します 037 * height 【HTML】フレームの高さを指定します 038 * srcdoc 【HTML】フレームに表示する内容を指定します 039 * seamless 【HTML】シームレス化の指定をします 040 * sandbox 【HTML】サンドボックスの指定をします 041 * marginwidth 【HTML】フレームの左右余白サイズ(marginwidth)を指定します(HTML5廃止属性) 042 * marginheight 【HTML】フレームの上下余白サイズ(marginheight)を指定します(HTML5廃止属性) 043 * noresize 【HTML】フレームサイズを変更できないよう(noresize)に指定します(HTML5廃止属性) 044 * scrolling 【HTML】スクロールバー(scrolling)の表示/非表示[auto/yes/no]を指定します(初期値:auto)(HTML5廃止属性) 045 * frameborder 【HTML】フレームの境界線(frameborder)の[0:非表示/1:表示]を指定します(初期値:1)(HTML5廃止属性) 046 * id 【HTML】要素に対して固有の名前(id)をつける場合に設定します 047 * clazz 【HTML】要素に対して class 属性を設定します 048 * title 【HTML】要素に対する補足的情報(title)を設定します 049 * style 【HTML】この要素に対して適用させるスタイルシート(style)を設定します 050 * caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) 5.7.7.2 (2014/06/20) 051 * caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) 5.7.7.2 (2014/06/20) 052 * caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:true) 5.7.7.2 (2014/06/20) 053 * caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:true) 5.7.7.2 (2014/06/20) 054 * debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) 055 * /> 056 * 057 * ●使用例: 058 * ・一般的な例:インラインフレームの構成はHTML準拠。リクエスト変数は各フレームまで転送されます。 059 * <og:iframe src="query.jsp" name="QUERY" /> 060 * </frameset> 061 * 062 * 063 * @og.group 画面部品 064 * 065 * @version 5.0 066 * @author Takahashi Masakazu 067 * @since JDK5.0, 068 */ 069public class IframeTag extends FrameTag { 070 //* このプログラムのVERSION文字列を設定します。 {@value} */ 071 private static final String VERSION = "5.9.1.2 (2015/10/23)" ; 072 073 private static final long serialVersionUID = 421120080430L ; 074 075 076 /** 077 * タグリブオブジェクトをリリースします。 078 * キャッシュされて再利用されるので、フィールドの初期設定を行います。 079 * 080 * 081 */ 082 @Override 083 protected void release2() { 084 super.release2(); 085 } 086 087 /** 088 * リンクを作成します。 089 * 090 * @return リンクタグ文字列 091 */ 092 @Override 093 protected String makeTag() { 094 if( changeGmn != null ) { set( "src",changeGmn ); } 095 096 String cmd = getRequest().getParameter( "command" ); 097 if( "RENEW".equals( cmd ) ) { dbTable = false; } 098 099 setIdName(); 100 String urlEnc = getUrlEncode(); 101 return XHTMLTag.iframe( getAttributes(),urlEnc ); 102 } 103 104 105 /** 106 * 【HTML】フレームに表示するコンテンツ(srcdoc)を指定します。 107 * 108 * @og.tag srcdocを指定します。 109 * 110 * @param srcdoc 表示コンテンツ 111 */ 112 public void setSrcdoc( final String srcdoc ) { 113 set( "srcdoc",getRequestParameter( srcdoc ) ); 114 } 115 116 /** 117 * 【HTML】シームレス表示(seamless)を指定します。 118 * HTML上は属性値が省略可能なため、seamlessやtrue等を指定してください。 119 * 120 * @og.tag seamlessを指定します。 121 * 122 * @param seamless シームレス表示指定 123 */ 124 public void setSeamless( final String seamless ) { 125 set( "seamless",getRequestParameter( seamless ) ); 126 } 127 128 /** 129 * 【HTML】フレームに表示するコンテンツのセキュリティ上の制限(sandbox)を指定します。 130 * スペース等で空指定して属性を付加する事でサンドボックス化され、セキュリティが強化されます。 131 * 属性値を指定すると、対応した制限が解除されます。 132 * 標準は属性無し(サンドボックス化無し)です。 133 * 134 * @og.tag sandboxを指定します。 135 * 136 * @param sandbox 表示コンテンツ 137 */ 138 public void setSandbox( final String sandbox ) { 139 set( "sandbox",getRequestParameter( sandbox ) ); 140 } 141 142 /** 143 * 【HTML】フレームの幅を指定します 144 * 145 * @og.tag widthを指定します。 146 * 147 * @param width 幅 148 */ 149 public void setWidth( final String width ) { 150 set( "width",getRequestParameter( width ) ); 151 } 152 153 /** 154 * 【HTML】フレームの高さを指定します。 155 * 156 * @og.tag heightを指定します。 157 * 158 * @param height 高さ 159 */ 160 public void setHeight( final String height ) { 161 set( "height",getRequestParameter( height ) ); 162 } 163 164 /** 165 * 【HTML】フレームの左右余白サイズ(marginwidth)を指定します。 166 * HTML5では廃止されている属性のため、可能であればCSSを利用してください。 167 * 168 * @og.tag フレームの左右余白サイズを指定します。 169 * 170 * @param marginwidth 左右余白サイズ 171 */ 172 @Override 173 public void setMarginwidth( final String marginwidth ) { 174 set( "marginwidth",getRequestParameter( marginwidth ) ); 175 } 176 177 /** 178 * 【HTML】フレームの上下余白サイズ(marginheight)を指定します。 179 * HTML5では廃止されている属性のため、可能であればCSSを利用してください。 180 * 181 * @og.tag フレームの上下余白サイズを指定します。 182 * 183 * @param marginheight 上下余白サイズ 184 */ 185 @Override 186 public void setMarginheight( final String marginheight ) { 187 set( "marginheight",getRequestParameter( marginheight ) ); 188 } 189 190 /** 191 * 【HTML】スクロールバー(scrolling)の表示/非表示[auto/yes/no]を指定します(初期値:auto)。 192 * HTML5では廃止されている属性のため、可能であればCSSを利用してください。 193 * 194 * @og.tag 195 * auto:必要に応じてスクロールバーを表示(初期値) 196 * yes:常にスクロールバーを表示 197 * no:常にスクロールバーを表示しない 198 * 199 * @param scrolling スクロールバーの表示/非表示[auto:自動/yes:常時表示/no:非表示] 200 */ 201 @Override 202 public void setScrolling( final String scrolling ) { 203 set( "scrolling",getRequestParameter( scrolling ) ); 204 } 205 206 /** 207 * 【HTML】フレームの境界線(frameborder)の[0:非表示/1:表示]を指定します(初期値:1)。 208 * HTML5では廃止されている属性のため、可能であればCSSを利用してください。 209 * 210 * @og.tag 211 * 0:枠を表示しない 212 * 1:枠を表示する。 213 * 初期値は、1:枠を表示する です。 214 * 215 * @param frameborder フレームの境界線[0:枠非表示/1:枠表示] 216 */ 217 @Override 218 public void setFrameborder( final String frameborder ) { 219 set( "frameborder",getRequestParameter( frameborder ) ); 220 } 221 222 223}