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     */
016    package org.opengion.hayabusa.taglib;
017    
018    import org.opengion.hayabusa.common.HybsSystem;
019    import org.opengion.hayabusa.resource.GUIInfo;
020    import org.opengion.hayabusa.resource.RoleMode ;
021    import org.opengion.hayabusa.db.DBLastSql;
022    import org.opengion.fukurou.util.Attributes;
023    import org.opengion.fukurou.util.XHTMLTag;
024    import org.opengion.fukurou.util.StringUtil ;
025    
026    import static org.opengion.fukurou.util.StringUtil.nval ;
027    
028    /**
029     * ファイルア??ロー??ンロードリンクを作?するタグで?通常は result_info.jsp に?み)?
030     *
031     * 画面検索した結果を??ンロードしたり、ア??ロードする機?は、画面リソースの
032     * ロール制御で管?て?す?
033     * ただし??ォルトで、以下?制限が掛かって?す?
034     *
035     * ファイル?ンロー?
036     *   ・command="NEW|RENEW|FIRST|LAST|PREV|NEXT|VIEW|RESET" のみ
037     * ファイルア??ロー?
038     *   ・command="COPY|INSERT" のみ
039     *
040     * 5.7.8.1 (2014/07/18)
041     *  addDownCmnd と、addUpldCmnd を指定すれ?、ダウンロード?ア??ロードできる
042     *  command を増やすことが可能です?
043     *
044     * また?typeDownload="true" にするとDownload 処?行う為の前??実施します?
045     * Download 処?行うには、指定?画面(呼び出し?)と、抜き?した時?
046     * DBTableModel が??して?か判定します?
047     * また?DBTableModel が存在しな??また?、不備な場?オーバ?フロー)は?
048     * ?SQLを実行する?があり、そもそも?抜?処?出来な?態では?
049     * エラーを返す?があります?
050     * それら???のDownload 処?行うかど?を指定します?
051     * true の場合?session の HybsSystem.DB_LAST_SQL_KEY に格納された
052     * DBLastSql オブジェクトを取得し、scope ?request また?、overflow ?
053     * true の場合に、BODY部を実行します?(通常、queryタグを記述します?)
054     * query の出力?は、scope ?request にします?
055     * それ以外?、tableId から取り出した DBTableModel を?scope = "request"
056     * に(アドレスのみ)コピ?します?
057     * writeTable タグでは、scope = "request" から、DBTableModel を取り?します?
058    
059     * @og.formSample
060     * ●形式:?ユーザーが直接?込?とはありません?
061     * ●body?あ?EVAL_BODY_BUFFERED:BODYを評価し?{@XXXX} を解析しま?
062     *
063     * ●Tag定義??
064     *   <og:fileUD
065     *       command            【TAG】command を指定しま?
066     *       downloadImg        【TAG】ダウンロード時のアイコンを指定しま?初期値:"{@SYS.JSP}/image/fileDownload.gif")
067     *       downloadJsp        【TAG】ダウンロード時の呼び出しJSPを指定しま?初期値:"{@SYS.JSP}/common/fileDownload.jsp")
068     *       uploadImg          【TAG】ア??ロード時のアイコンを指定しま?初期値:"{@SYS.JSP}/image/fileUpload.gif")
069     *       uploadJsp          【TAG】ア??ロード時の呼び出しJSPを指定しま?初期値:"{@SYS.JSP}/common/fileUpload.jsp")
070     *       imgWidth           【TAG】アイコン?イズ(px)を指定しま?初期値:20px)
071     *       imgHeight          【TAG】アイコン高さサイズ(px)を指定しま?初期値:20px)
072     *       filename           【TAG】ダウンロード時ファイル名を?しま?初期値:"{@GUI.LABEL}.xls")
073     *       addDownCmnd        【TAG】ダウンロード時のコマンドを追?定できま?初期値:null)
074     *       addUpldCmnd        【TAG】ア??ロード時のコマンドを追?定できま?初期値:null)
075     *       roles              【TAG】ロールズをセ?しま?
076     *       target             【TAG】ダウンロード文書を表示させるフレー??また?ウィンドウの名前を指定しま?
077     *       errorMsg           【TAG】ダウンロード?来な??合?エラーメ?ージIDを指定しま?初期値:ERR0028)
078     *       typeDownload       【TAG】Download 処?行うかど?を指定しま?初期値:false)
079     *       useEditLink        【TAG】編?ンク自体を出すかど?ど?(初期値:true)
080     *       editImg            【TAG】編?イコンを指定しま?初期値:"{@SYS.JSP}/image/edit.png")
081     *       clmEdit            【TAG】編?にカラ??ブを表示するかど?(初期値:true)
082     *       debug              【TAG】デバッグ??を?力するかど?[true/false]を指定しま?初期値:false)
083     *   >   ... Body ...
084     *   </og:fileUD>
085     *
086     * ●使用?
087     *     <og:fileUD command="{@command}" />
088     *
089     *     <og:fileUD
090     *         command        = command設?(?ンロー?"NEW|RENEW|FIRST|LAST|PREV|NEXT|VIEW" ?  ア??ロー?"COPY|INSERT")
091     *       [ downloadImg ]  = "{@SYS.JSP}/image/fileDownload.gif"   ?ンロード時のアイコン
092     *       [ downloadJsp ]  = "{@SYS.JSP}/common/fileDownload.jsp"  ?ンロード時の呼び出しJSP
093     *       [ uploadImg   ]  = "{@SYS.JSP}/image/fileUpload.gif"     ア??ロード時のアイコン
094     *       [ uploadJsp   ]  = "{@SYS.JSP}/common/filePopup.jsp"     ア??ロード時の呼び出しJSP
095     *       [ imgWidth    ]  = "20px"                                アイコン?イズ(px)
096     *       [ imgHeight   ]  = "20px"                                アイコン高さサイズ(px)
097     *       [ filename    ]  = "{@GUI.LABEL}.xls"               ?ンロード時ファイル?
098     *       [ roles       ]  = "GE|DOC"                              アクセスロールズ
099     *       [ target      ]  = "_blank"                              ?ンロードファイルを開くターゲ?
100     *       [ errorMsg    ]  = "ERR0042"                             エラーメ?ージID
101     *       [ typeDownload]  = "false/true"                          Download 処?行うかど?(初期値:false)
102     *     />
103     *
104     * @og.group ファイルア??ロー??ンロー?
105     *
106     * @og.rev 4.3.0.0 (2008/07/04) 新規追?
107     * @og.rev 5.7.4.1 (2014/03/15) エラーメ?ージ変更
108     *
109     * @version  4.0
110     * @author       Kazuhiko Hasegawa
111     * @since    JDK5.0,
112     */
113    public class FileUDTag extends CommonTagSupport {
114            //* こ?プログラ??VERSION??を設定します?       {@value} */
115            private static final String VERSION = "5.7.8.1 (2014/07/18)" ;
116    
117            private static final long serialVersionUID = 578120140718L ;
118    
119            private String  sysJsp                  = HybsSystem.sys( "JSP" );
120    
121            private String  command                 = null;         // ?ンロー?"NEW|RENEW" 、ア??ロー?"COPY|INSERT"
122            private String  downloadImg             = sysJsp + "/image/fileDownload.gif";   // ?ンロード時のアイコン
123            private String  downloadJsp             = sysJsp + "/common/fileDownload.jsp";  // ?ンロード時の呼び出しJSP
124            private String  uploadImg               = sysJsp + "/image/fileUpload.gif";             // ア??ロード時のアイコン
125            private String  uploadJsp               = sysJsp + "/common/filePopup.jsp";             // ア??ロード時の呼び出しJSP
126            private String  imgWidth                = "20px";                                               // アイコン?イズ(px)
127            private String  imgHeight               = "20px";                                               // アイコン高さサイズ(px)
128            private String  filename                = null;                                                 // ?ンロード時ファイル?"{@GUI.LABEL}.xls")
129            private String  roles                   = null;                                                 // アクセスロールズ
130            private String  target                  = null;                                                 // ?ンロードファイルを開くターゲ?
131            private String  errorMsg                = "ERR0042";                                    // 出力対象??タが見つかりませんでした。?度検索して下さ?? 5.7.4.1 (2014/03/15)
132            private boolean isError                 = false;
133            private boolean typeDownload    = false;                                                // Download 処?行うかど?(初期値:false)
134            private boolean isEdit                  = true;                                                 // 5.6.0.2 (2013/01/19) ロールのisEditとほぼ同等?clmEdit用?
135            private boolean useEditLink             = true;                                                 // 5.7.5.0 (2014/04/04) 編?ンク自体を出すかど?ど?(初期値:true)
136    
137            private String  addDownCmnd             = null;                                                 // 5.7.8.1 (2014/07/18) ?ンロード時のコマンドを追?
138            private String  addUpldCmnd             = null;                                                 // 5.7.8.1 (2014/07/18) ア??ロード時のコマンドを追?
139    
140            private static final String     EDIT_GAMENID= "14_EDIT";                                        // 編?面の画面ID
141            private String                          editImg         = sysJsp + "/image/edit.png";   // 編?のアイコン
142    
143            /**
144             * Taglibの開始タグが見つかったときに処??doStartTag() ?オーバ?ライドします?
145             *
146             * @og.rev 5.1.6.0 (2010/05/01) 画面?並べ替え対?
147             *
148             * @return      後続????(SKIP_BODY)
149             */
150            @Override
151            public int doStartTag() {
152    
153                    if( typeDownload ) {
154                            DBLastSql lastSql = (DBLastSql)getSessionAttribute( HybsSystem.DB_LAST_SQL_KEY );
155                            if( lastSql != null ) {
156                                    String guikey = getRequest().getParameter( "gamenId" );
157                                    if( lastSql.isGuiMatch( guikey ) ) {
158                                            // view タグで仕込んだ clmNames を?Request 変数に設定します?
159                                            setRequestAttribute( "DB.CLM_NAMES" , lastSql.getClmNames() );
160                                            // 5.1.6.0 (2010/05/01) 画面?並べ替え対?
161                                            setRequestAttribute( "DB.VIEW_CLM_NAMES" , lastSql.getViewClmNames() );
162                                            setRequestAttribute( "DB.VIEW_EDITABLE" , Boolean.toString( lastSql.isViewEditable() ) );
163    
164            //                              if( lastSql.isRequest() || lastSql.isOverflow() ) {
165                                            if( lastSql.isRequest() ) {
166                                                    // 5.1.6.0 (2010/05/01)
167                                                    String sql = getUserInfo( "LASTSQL" );
168                                                    if( sql != null ) {
169                                                            return EVAL_BODY_BUFFERED ;     // Body を評価する? extends BodyTagSupport ?
170                                                    }
171                                            }
172                                            String tableId = lastSql.getTableId();
173                                            setRequestAttribute( HybsSystem.TBL_MDL_KEY, getSessionAttribute( tableId ) );
174                                            return SKIP_BODY ;                              // Body を評価しな?
175                                    }
176                            }
177    
178                            // 処?実行できな??合?エラーを?力します?
179                            jspPrint( getResource().getLabel( errorMsg ) );
180                            isError = true;
181                    }
182    
183                    return SKIP_BODY ;                              // Body を評価しな?
184            }
185    
186            /**
187             * Taglibの終?グが見つかったときに処??doEndTag() ?オーバ?ライドします?
188             *
189             * @og.rev 4.3.0.1 (2008/08/11) callBack パラメータの設定漏れ修正、引数から見直?
190             * @og.rev 5.1.6.0 (2010/05/01) 帳票画面定義機?対?
191             * @og.rev 5.1.7.0 (2010/06/01) 進??戻る?タンで?xcel出力?タンを??
192             * @og.rev 5.3.6.0 (2011/06/01) Edit機?見直?
193             * @og.rev 5.3.7.0 (2011/07/01) Excel取込で画面IDとアドレスが異なる?合にエラーとなるバグを修正
194             * @og.rev 5.3.7.0 (2011/07/01) 編?面をリサイズできるように対応します?
195             * @og.rev 5.3.7.0 (2011/07/01) PL/SQLを利用した検索でファイル?ンロードが出来るよ?対応します?
196             * @og.rev 5.4.2.0 (2011/12/01) 画面リソースで画面編??のON/OFFを設定できるようにする?
197             * @og.rev 5.5.2.4 (2012/05/16) nullに対する冗長な比?
198             * @og.rev 5.5.5.2 (2012/08/20) 画面リソースのoモード対?
199             * @og.rev 5.5.6.2 (2012/09/24) makeTagのtarget対?
200             * @og.rev 5.6.0.2 (2013/01/19) editモード?isEditコントロール対?
201             * @og.rev 5.7.5.0 (2014/04/04) 編?ンク自体を出すかど?ど?(初期値:true)
202             * @og.rev 5.7.8.1 (2014/07/18) command="RESET" 時に、ダウンロードリンクを表示
203             * @og.rev 5.7.8.1 (2014/07/18) addDownCmnd , addUpldCmndを追?
204             *
205             * @return      後続????
206             */
207            @Override
208            public int doEndTag() {
209                    debugPrint();
210    
211                    if( isError      ) { return SKIP_PAGE ; }               // ペ?ジの残りの処?行わな??
212                    if( typeDownload ) { return EVAL_PAGE ; }               // ペ?ジの残りを評価する?
213    
214                    boolean isDownload ;
215                    // 5.7.8.1 (2014/07/18) command="RESET" 時に、ダウンロードリンクを表示
216                    if(    "NEW".equals(   command ) || "RENEW".equals( command )
217                            || "FIRST".equals( command ) || "LAST".equals(  command )
218                            || "PREV".equals(  command ) || "NEXT".equals(  command )
219                            || "VIEW".equals(  command ) || "RESET".equals( command ) ) {
220                            isDownload = true;
221                    }
222                    else if( "COPY".equals( command ) || "INSERT".equals( command ) ) {
223                            isDownload = false;
224                    }
225                    // 5.7.8.1 (2014/07/18) addDownCmnd , addUpldCmndを追?
226                    else if( addDownCmnd != null && addDownCmnd.equals( command ) ) {
227                            isDownload = true;
228                    }
229                    else if( addUpldCmnd != null && addUpldCmnd.equals( command ) ) {
230                            isDownload = false;
231                    }
232                    else {
233                            return EVAL_PAGE ;
234                    }
235    
236                    byte bitMode ;
237                    if( roles != null ) {
238                            RoleMode roleMode = RoleMode.newInstance( roles );
239                            RoleMode userRoleMode = getUser().getRoleMode();
240                            bitMode = userRoleMode.getAccessBitMode( roleMode );
241                    }
242                    else {
243                            GUIInfo guiInfo = (GUIInfo)getSessionAttribute( HybsSystem.GUIINFO_KEY );
244                            bitMode = guiInfo.getBitMode();
245                    }
246    
247                    if( filename == null ) {
248                            filename = getGUIInfoAttri( "LABEL" ) + ".xls" ;
249                    }
250                    String guikey = getGUIInfoAttri( "KEY" );       // 4.3.0.1 (2008/08/11)
251                    if( isDownload ) {
252                            if( RoleMode.isDownload( bitMode ) ) {
253                                    // 4.3.0.1 (2008/08/11) callBack パラメータの設定漏れ修正、引数から見直?
254                                    // <og:link href="{@SYS.JSP}/common/fileDownload.jsp" target="_blank" useGamenId="false"
255                                    //              keys="filename,h_clms" vals="{@GUI.LABEL}.xls,{@h_clms}" >
256    
257                                    // 5.3.7.0 (2011/07/01) PL/SQLを利用した検索でファイル?ンロードが出来るよ?対応します?
258                                    String href = downloadJsp + "?command=RENEW&gamenId=" + guikey + "&GAMENID=" + guikey + "&filename=" + StringUtil.urlEncode( filename ) ;
259    
260                                    jspPrint( makeTag( downloadImg,href,"Download File", target ) ); // 5.5.6.2 (2012/09/24)
261    
262                                    // 5.1.6.0 (2010/05/01) 帳票画面定義機?対?
263                                    // 5.3.6.0 (2011/06/01) Edit機?見直?
264                                    GUIInfo editGui = getUser().getGUIInfo( EDIT_GAMENID );
265                                    // 5.7.5.0 (2014/04/04) 編?ンク自体を出すかど?ど?(初期値:true)
266                                    if( editGui != null && useEditLink ) {
267                                            String hrefEdit = sysJsp + "/" + editGui.getAddress() + "/"
268                                                                                    + "?command=NEW&gamenId=" + guikey + "&GAMENID=" + guikey;
269    
270                                            String editName = getRequestValue( "editName" );
271                                            // 5.5.2.4 (2012/05/16) nullに対する冗長な比?
272                                            if( editName != null ) {
273                                                    hrefEdit += "&editName=" + editName;
274                                            }
275    
276                                            // 5.4.2.0 (2011/12/01) 画面リソースで画面編??のON/OFFを設定できるようにする?
277                                            if( RoleMode.isEdit( bitMode ) && isEdit ) { // 5.6.0.2(2013/01/09)
278                                                    hrefEdit += "&edit=true";
279                                            }
280                                            
281                                            // 5.5.5.2 (2012/08/10) 画面リソースで、画面編??の制限を行えるよ?する
282                                            if( RoleMode.isFullEdit( bitMode ) ) {
283                                                    hrefEdit += "&fullEdit=true";
284                                            }
285                                            else{
286                                                    hrefEdit += "&fullEdit=false";
287                                            }
288    
289                                            // 5.3.7.0 (2011/07/01) 編?面をリサイズできるように対応します?
290                                            hrefEdit = "javascript:ogOpen('" + hrefEdit + "',null,null,'width=800px,height=330px,top=350,left=100,resizable=yes',false);";
291                                            jspPrint( makeTag (editImg,hrefEdit,"Edit",null) ); // 5.5.6.2 (2012/09/24)
292                                    }
293                            }
294                    }
295                    else {
296                            if( RoleMode.isUpload( bitMode ) ) {
297                                    // 4.3.0.1 (2008/08/11) callBack パラメータの設定漏れ修正、引数から見直?
298                                    // <og:link href="{@SYS.JSP}/common/filePopup.jsp" keys="callBack" vals="{@GUI.KEY}/{@SESSION.JSPID}" >
299    
300                                    String jspId  = (String)getSessionAttribute( "JSPID" );
301                                    // 5.3.7.0 (2011/07/01) Excel取込で画面IDとアドレスが異なる?合にエラーとなるバグを修正
302                                    String callBack = getGUIInfoAttri( "ADDRESS" ) + "/" + jspId + "?GAMENID=" + guikey;
303                                    callBack = StringUtil.urlEncode( callBack );
304                                    String href = uploadJsp + "?callBack=" +  callBack;
305    
306                                    jspPrint( makeTag( uploadImg,href,"Upload File",target ) ); // 5.5.6.2 (2012/09/24)
307                            }
308                    }
309    
310                    return EVAL_PAGE ;
311            }
312    
313            /**
314             * タグリブオブジェクトをリリースします?
315             * キャ?ュされて再利用される?で、フィールド?初期設定を行います?
316             *
317             * @og.rev 5.7.4.1 (2014/03/15) エラーメ?ージ変更
318             * @og.rev 5.7.5.0 (2014/04/04) useEditLink 追?
319             * @og.rev 5.7.8.1 (2014/07/18) addDownCmnd,addUpldCmnd 追?
320             */
321            @Override
322            protected void release2() {
323                    super.release2();
324                    sysJsp                  = HybsSystem.sys( "JSP" );
325                    command                 = null;         // ?ンロー?"NEW|RENEW|FIRST|LAST|PREV|NEXT|VIEW|RESET" 、ア??ロー?"COPY|INSERT"
326                    downloadImg             = sysJsp + "/image/fileDownload.gif";   // ?ンロード時のアイコン
327                    downloadJsp             = sysJsp + "/common/fileDownload.jsp";  // ?ンロード時の呼び出しJSP
328                    uploadImg               = sysJsp + "/image/fileUpload.gif";             // ア??ロード時のアイコン
329                    uploadJsp               = sysJsp + "/common/filePopup.jsp";             // ア??ロード時の呼び出しJSP
330                    imgWidth                = "20px";                                               // アイコン?イズ(px)
331                    imgHeight               = "20px";                                               // アイコン高さサイズ(px)
332                    filename                = null;                                                 // ?ンロード時ファイル?"{@GUI.LABEL}.xls")
333                    roles                   = null;                                                 // アクセスロールズ
334                    target                  = null;                                                 // ?ンロードファイルを開くターゲ?
335                    errorMsg                = "ERR0042";                                    // 出力対象??タが見つかりませんでした。?度検索して下さ?? 5.7.4.0 (2014/03/15)
336                    typeDownload    = false;                                                // Download 処?行うかど?(初期値:false)
337                    isError                 = false;
338                    editImg                 = sysJsp + "/image/edit.png";   // 編?のアイコン
339                    isEdit                  = true;                                                 // 5.6.0.2 (2013/01/19)
340                    useEditLink             = true;                                                 // 5.7.5.0 (2014/04/04) 追?
341                    addDownCmnd             = null;                                                 // 5.7.8.1 (2014/07/18) ?ンロード時のコマンドを追?
342                    addUpldCmnd             = null;                                                 // 5.7.8.1 (2014/07/18) ア??ロード時のコマンドを追?
343            }
344    
345            /**
346             * リンクを作?します?
347             *
348             * @og.rev 4.3.0.1 (2008/08/11) callBack パラメータの設定漏れ修正、引数から見直?
349             * @og.rev 5.5.6.2 (2012/09/24) tgt引数追?
350             *
351             * @param       imgsrc  イメージソース
352             * @param       href    リンクのURL
353             * @param       alt             イメージの説明文書
354             * @param       tgt             HTMLのtarget
355             *
356             * @return      リンク??
357             */
358            private String makeTag( final String imgsrc, final String href,  final String alt, final String tgt ) { // 5.5.6.2 (2012/09/24)
359                    // linkのBODY部にセ?するイメージタグの作?
360                    Attributes imgAttri = new Attributes();
361                    imgAttri.set( "width"   , imgWidth );
362                    imgAttri.set( "height"  , imgHeight );
363                    imgAttri.set( "src"             , imgsrc );
364                    imgAttri.set( "alt"             , alt );
365    
366                    String img = XHTMLTag.img( imgAttri );
367    
368                    // 4.3.0.1 (2008/08/11) callBack パラメータの設定漏れ修正、引数から見直?
369                    // linkタグの作?
370                    Attributes linkAttri = new Attributes();
371                    linkAttri.set( "href"   , href );
372                    linkAttri.set( "body"   , img );
373                    linkAttri.set( "target" , tgt ); // 5.5.6.2 (2012/09/24)
374    
375                    return XHTMLTag.link( linkAttri );
376            }
377    
378            /**
379             * 【TAG】command を指定します?
380             *
381             * @og.tag
382             * command を指定します?
383             * ?ンロード??NEW|RENEW|FIRST|LAST|PREV|NEXT|VIEW|RESET" のみ有効です?
384             * ア??ロード??COPY|INSERT" のみ有効です?
385             * それ以外?コマンドでは、アイコンは表示されません?
386             * 例えば、NEXT/PREV など?
387             *
388             * @param       cmd コマンド[NEW/RENEW/FIRST/LAST/PREV/NEXT/VIEW/RESET/COPY/INSERT]
389             * @see         #setAddDownCmnd( String )
390             * @see         #setAddUpldCmnd( String )
391             * @see         #setCommand( String )
392             */
393            public void setCommand( final String cmd ) {
394                    command = nval( getRequestParameter( cmd ),command );
395            }
396    
397            /**
398             * 【TAG】ダウンロード時のアイコンを指定しま?初期値:"{&#064;SYS.JSP}/image/fileDownload.gif")?
399             *
400             * @og.tag
401             * ?ンロード時に表示されるアイコンを指定します?
402             * 初期値:"{&#064;SYS.JSP}/image/fileDownload.gif" です?
403             *
404             * @param       img ?ンロード時のアイコン
405             */
406            public void setDownloadImg( final String img ) {
407                    downloadImg = nval( getRequestParameter( img ),downloadImg );
408            }
409    
410            /**
411             * 【TAG】ダウンロード時の呼び出しJSPを指定しま?初期値:"{&#064;SYS.JSP}/common/fileDownload.jsp")?
412             *
413             * @og.tag
414             * ?ンロード時に呼び出されるJSPファイル名を?します?
415             * 初期値:"{&#064;SYS.JSP}/common/fileDownload.jsp" です?
416             *
417             * @param       file ?ンロード時の呼び出しJSP
418             */
419            public void setDownloadJsp( final String file ) {
420                    downloadJsp = nval( getRequestParameter( file ),downloadJsp );
421            }
422    
423            /**
424             * 【TAG】ア??ロード時のアイコンを指定しま?初期値:"{&#064;SYS.JSP}/image/fileUpload.gif")?
425             *
426             * @og.tag
427             * ア??ロード時に表示されるアイコンを指定します?
428             * 初期値:"{&#064;SYS.JSP}/image/fileUpload.gif" です?
429             *
430             * @param       img ア??ロード時のアイコン
431             */
432            public void setUploadImg( final String img ) {
433                    uploadImg = nval( getRequestParameter( img ),uploadImg );
434            }
435    
436            /**
437             * 【TAG】ア??ロード時の呼び出しJSPを指定しま?初期値:"{&#064;SYS.JSP}/common/fileUpload.jsp")?
438             *
439             * @og.tag
440             * ア??ロード時に呼び出されるJSPファイル名を?します?
441             * 初期値:"{&#064;SYS.JSP}/common/fileUpload.jsp" です?
442             *
443             * @param       file ア??ロード時の呼び出しJSP
444             */
445            public void setUploadJsp( final String file ) {
446                    uploadJsp = nval( getRequestParameter( file ),uploadJsp );
447            }
448    
449            /**
450             * 【TAG】アイコン?イズ(px)を指定しま?初期値:20px)?
451             *
452             * @og.tag
453             * ア??ロー??ンロード?アイコンを表示する際??イズ(px)を指定します?
454             * ファイルサイズは、ア??ロー??ンロード?通です?
455             * 初期値は?0px です?
456             *
457             * @param       width   アイコン?イズ(px)
458             */
459            public void setImgWidth( final String width ) {
460                    imgWidth = nval( getRequestParameter( width ),imgWidth );
461            }
462    
463            /**
464             * 【TAG】アイコン高さサイズ(px)を指定しま?初期値:20px)?
465             *
466             * @og.tag
467             * ア??ロー??ンロード?アイコンを表示する際?高さサイズ(px)を指定します?
468             * ファイルサイズは、ア??ロー??ンロード?通です?
469             * 初期値は?0px です?
470             *
471             * @param       height  アイコン高さサイズ(px)
472             */
473            public void setImgHeight( final String height ) {
474                    imgHeight = nval( getRequestParameter( height ),imgHeight );
475            }
476    
477            /**
478             * 【TAG】ダウンロード時ファイル名を?しま?初期値:"{&#064;GUI.LABEL}.xls")?
479             *
480             * @og.tag
481             * ?ンロード時のファイル名を?しま?
482             * 通常は、画面のラベル(?対??XLS拡張子です?
483             * 初期値は?{&#064;GUI.LABEL}.xls" です?
484             *
485             * @param       file    ?ンロード時ファイル?"{&#064;GUI.LABEL}.xls")
486             */
487            public void setFilename( final String file ) {
488                    filename = nval( getRequestParameter( file ),filename );
489            }
490    
491            /**
492             * 【TAG】ロールズをセ?します?
493             *
494             * @og.tag
495             * ここで?したロールを?に、ユーザー毎?アクセス許可がチェ?されます?
496             * アクセス許可されな?、表示されません?
497             * こ?ロールを指定しな??合?、画面のロールが使用されます?
498             *
499             * @param       rls パラメータ
500             */
501            public void setRoles( final String rls ) {
502                    roles = nval( getRequestParameter( rls ),roles );
503            }
504    
505            /**
506             * 【TAG】ダウンロード文書を表示させるフレー??また?ウィンドウの名前を指定します?
507             *
508             * @og.tag フレー?(ターゲ?属?)を設定します?
509             *
510             * @param       flag ?ンロード文書のフレー?(ターゲ?属?)
511             */
512            public void setTarget( final String flag ) {
513                    target = nval( getRequestParameter( flag ),target );
514            }
515    
516            /**
517             * 【TAG】Download 処?行うかど?を指定しま?初期値:false)?
518             *
519             * @og.tag
520             * Download 処?行うには、指定?画面(呼び出し?)と、抜き?した時?
521             * DBTableModel が??して?か判定します?
522             * また?DBTableModel が存在しな??また?、不備な場?オーバ?フロー)は?
523             * ?SQLを実行する?があり、そもそも?抜?処?出来な?態では?
524             * エラーを返す?があります?
525             * それら???のDownload 処?行うかど?を指定します?
526             * true の場合?session の HybsSystem.DB_LAST_SQL_KEY に格納された
527             * DBLastSql オブジェクトを取得し、scope ?request また?、overflow ?
528             * true の場合に、BODY部を実行します?(通常、queryタグを記述します?)
529             * query の出力?は、scope ?request にします?
530             * それ以外?、tableId から取り出した DBTableModel を?scope = "request"
531             * に(アドレスのみ)コピ?します?
532             * writeTable タグでは、scope = "request" から、DBTableModel を取り?します?
533             *
534             * 初期値は、false(抜き出しでは無くリンク作?) です?
535             *
536             * @param       type    Download 処?行うかど?(初期値:false)
537             */
538            public void setTypeDownload( final String type ) {
539                    typeDownload = nval( getRequestParameter( type ),typeDownload );
540            }
541    
542            /**
543             * 【TAG】ダウンロード?来な??合?エラーメ?ージIDを指定しま?初期値:ERR0042)?
544             *
545             * @og.tag
546             * DBTableModel が??に作?された画面と、メモリ中の DBLastSql オブジェクトが
547             * 管?て???が異なる?合?、ダウンロード?来ません?
548             * 同様に、DBLastSql オブジェク?自身が作?されて???合も出来ません?
549             * そ?ようなケースに表示するエラーメ?ージのメ?ージIDを指定します?
550             * 引数は、指定できません?
551             * 初期値は、?ERR0042??力対象??タが見つかりませんでした。?度検索して下さ???です?
552             *
553             * @param       msg ?ンロード文書のフレー?(ターゲ?属?)
554             */
555            public void setErrorMsg( final String msg ) {
556                    errorMsg = nval( getRequestParameter( msg ),errorMsg );
557            }
558    
559            /**
560             * 【TAG】編?イコンを指定しま?初期値:"{&#064;SYS.JSP}/image/edit.png")?
561             *
562             * @og.tag
563             * 編?イコンを指定します?
564             * 初期値:"{&#064;SYS.JSP}/image/edit.png" です?
565             *
566             * @og.rev 5.1.6.0 (2010/05/01) 新規追?
567             *
568             * @param       img ア??ロード時のアイコン
569             */
570            public void setEditImg( final String img ) {
571                    editImg = nval( getRequestParameter( img ),editImg );
572            }
573            
574            /**
575             * 【TAG】Edit画面でカラ??ブを出すかど?(初期値?true)
576             *
577             * @og.tag
578             * falseを指定するとカラ??ブを出さな??
579             *
580             * @param       type    カラ??ブを出すかど?(初期値:true)
581             */
582            public void setClmEdit( final String type ) {
583                    isEdit = nval( getRequestParameter( type ),isEdit );
584            }
585    
586            /**
587             * 【TAG】Edit画面でカラ??ンクを?力するかど?(初期値?true)
588             *
589             * @og.tag
590             * falseを指定するとカラ??ンクを?さな??
591             * 従来は、カラ??面の??【表示?設定?タブを表示しな?けでした?
592             * こ?設定?、RWMODE を? ##d , ##u , ##f の場合にも同様?設定が可能です?
593             * カラ??ンク自体を出さな??は、現時点ではリソース設定できな?め?
594             * タグのパラメータとして?できるようにします?
595             * 基本?は、このパラメータはほとんど使われて??ズなので?
596             * 機?を置き換えます?
597             * 初期値は、カラ??ンクを?力す?=true)です?
598             *
599             * @og.rev 5.7.5.0 (2014/04/04) 新規追?
600             *
601             * @param       flag    カラ??ンクを?力するかど?(初期値:true)
602             * @see         org.opengion.hayabusa.taglib.QueryButtonTag#setUseEditMenu(String)
603             */
604            public void setUseEditLink( final String flag ) {
605                    useEditLink = nval( getRequestParameter( flag ),useEditLink );
606            }
607    
608            /**
609             * 【TAG】ダウンロード時のコマンドを追?定できま?初期値:null)
610             *
611             * @og.tag
612             * ?ンロードリンクが表示され?command は?
613             * "NEW|RENEW|FIRST|LAST|PREV|NEXT|VIEW|RESET" のみです?
614             * これ以外? command で、ダウンロードリンクを表示させたい場合??
615             * こ?、addDownCmnd に、記述します?
616             * 初期値は、null(追?マンド?な?です?
617             *
618             * @og.rev 5.7.8.1 (2014/07/18) 新規追?
619             *
620             * @param       cmd     ?ンロード時のコマンドを追??
621             * @see         #setCommand( String )
622             */
623            public void setAddDownCmnd( final String cmd ) {
624                    addDownCmnd = nval( getRequestParameter( cmd ),addDownCmnd );
625            }
626    
627            /**
628             * 【TAG】ア??ロード時のコマンドを追?定できま?初期値:null)
629             *
630             * @og.tag
631             * ア??ロードリンクが表示され?command は?COPY|INSERT" のみです?
632             * これ以外? command で、ア??ロードリンクを表示させたい場合??
633             * こ?、addUpldCmnd に、記述します?
634             * 初期値は、null(追?マンド?な?です?
635             *
636             * @og.rev 5.7.8.1 (2014/07/18) 新規追?
637             *
638             * @param       cmd     ア??ロード時のコマンドを追??
639             * @see         #setCommand( String )
640             */
641            public void setAddUpldCmnd( final String cmd ) {
642                    addUpldCmnd = nval( getRequestParameter( cmd ),addUpldCmnd );
643            }
644    
645            /**
646             * こ?オブジェクト???表現を返します?
647             * 基本???目?使用します?
648             *
649             * @return こ?クラスの??表現
650             */
651            @Override
652            public String toString() {
653                    return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
654                                    .println( "VERSION"             ,VERSION                )
655                                    .println( "command"             ,command                )
656                                    .println( "downloadImg" ,downloadImg    )
657                                    .println( "downloadJsp" ,downloadJsp    )
658                                    .println( "uploadImg"   ,uploadImg              )
659                                    .println( "uploadJsp"   ,uploadJsp              )
660                                    .println( "imgWidth"    ,imgWidth               )
661                                    .println( "imgHeight"   ,imgHeight              )
662                                    .println( "filename"    ,filename               )
663                                    .println( "roles"               ,roles                  )
664                                    .println( "target"              ,target                 )
665                                    .println( "Other..."    ,getAttributes().getAttribute() )
666                                    .fixForm().toString() ;
667            }
668    }