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