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.plugin.develop;
017    
018    import java.util.List;
019    import java.util.Map;
020    
021    import org.opengion.hayabusa.develop.AbstractJspCreate;
022    import org.opengion.hayabusa.develop.JspConvertEntity;
023    import org.opengion.fukurou.xml.OGElement;
024    import org.opengion.fukurou.xml.OGNode;
025    import org.opengion.fukurou.xml.OGNodeType;
026    
027    /**
028     * query.jspã® <og:hideMenu>ã‚¿ã‚° å†?? <og:column>タグを作æ?ã—ã¾ã™ã?
029     * column ã‚¿ã‚°ã¯ã€?ƒ¨åˆ?½®æ›ã§ã¯ãªãã?hideMenuå†??ã€table 部åˆ?‹ã‚‰ã?å…¨é¢ç½®æ›ã§ã™ã??ˆéƒ¨åˆ?½®æ›ã?難ã—ã‹ã£ãŸã?ã§??
030     * hideMenu ã¯ã€??常㮠column ã‚¿ã‚°ã®å‡ºåŠ›åˆ¶é™ä»¥ä¸Šã?カラãƒ?‚’書ãå?ã—ã¾ã™ã?
031     * 具体的ã«ã¯ã€TD_COUNT?ˆå?期å?=3?‰ï¼?TR_COUNT?ˆå?期å?=2?‰ã‚’è¶?ˆã‚‹æ¤œç´¢æ¡ä»¶ã®æ™‚ã?ã¿è¡Œã„ã¾ã™ã?
032     * ãれ以下ã?å ´åˆã?ã€hideMenu ã‚¿ã‚°ã¯æ›¸ãå?ã—ã¾ã›ã‚“ã€?
033     * 
034     * ã“れã¨ã€JspCreate_COLUMN クラスã¯ã€å¯?Ž¥ã«é–¢é€£ã—ã¦ã?¾ã™ã?ã§ã€ã”注æ„ãã?•ã??
035     *
036     * â—使用ä¾?
037     *      <table summary = "layout" >
038     *          <tr><og:column ・・・ /> ・・・TD_COUNT?ˆå?期å?=3??lt;/tr>
039     *                  ・・・・ TR_COUNT?ˆå?期å?=2??
040     *      </table>
041     *   <og:hideMenu>
042     *      <table summary = "layout" >
043     *          <tr>
044     *              <og:column
045     *                  name       = column.getColumnName() 
046     *                  defaultVal = column.getDefaultValue()
047     *                  must       = "true"         ("1".equals( column.getMust() ))
048     *                  clazz      = "aimai"        (ope.startsWith( "lk" ))
049     *              />
050     *              <og:column
051     *                  ・・・・
052     *              />
053     *          </tr>
054     *          <tr>
055     *                  ・・・・
056     *          </tr>
057     *      </table>
058     *   </og:hideMenu>
059     *
060     * @og.rev 5.6.4.4 (2013/05/31) æ–°è¦ä½œæ?。hideMenu ã®å¯¾å¿?
061     *
062     * @version  5.0
063     * @author       Kazuhiko Hasegawa
064     * @since    JDK7.0,
065     */
066    public class JspCreate_HIDEMENU extends JspCreate_COLUMN {
067            //* ã“ã?プログラãƒ??VERSIONæ–?­—å?を設定ã—ã¾ã™ã?       {@value} */
068            private static final String VERSION = "5.6.4.4 (2013/05/31)" ;
069    
070            private List<JspConvertEntity> QUERY_ROWS ;
071            private boolean IS_NULL ;
072    
073            /**
074             * åˆæœŸåŒ–メソãƒ?ƒ‰
075             *
076             * å†?ƒ¨ã§ä½¿ç”¨ã™ã‚‹ JspConvertEntity 㮠リスãƒ?ã®ãƒžãƒƒãƒ—ã‚’å—ã‘å–りã€å?期化を行ã„ã¾ã™ã?
077             *
078             * @param       master  JspConvertEntityã®ãƒªã‚¹ãƒˆã?マッãƒ?
079             */
080            @Override
081            protected void init( final Map<String,List<JspConvertEntity>> master ) {
082                    QUERY_ROWS = master.get("QUERY");
083                    IS_NULL = !isNotEmpty( QUERY_ROWS );
084                    KEY  = ":hideMenu";
085                    NAME = "query";
086            }
087    
088            /**
089             * JSPã«å‡ºåŠ›ã™ã‚‹ã‚¿ã‚°ã®å†?®¹ã‚’作æ?ã—ã¾ã™ã?
090             * 引数より作æ?å‰ã?ã‚¿ã‚°ã®å±žæ?å†?®¹ã‚’確èªã™ã‚‹ã™ã‚‹äº‹ãŒå‡ºæ¥ã¾ã™ã?
091             *
092             * @param ele OGElementエレメントオブジェク�
093             * @param       nameSpace       ã“ã?ドキュメントã?nameSpace( og ã¨ã?mis ã¨ã?)
094             *
095             * @return      変æ›ã•ã‚ŒãŸæ–‡å­—å?
096             * @throws Throwable å¤‰æ›æ™‚ã?エラー
097             */
098            @Override
099            protected String execute( final OGElement ele , final String nameSpace )  throws Throwable {
100                    if( IS_NULL ) { return ""; }
101    
102                    if( QUERY_ROWS.size() <= TD_COUNT*TR_COUNT ) { return ""; }          // æŒ?®šä»¥ä¸Šã?カラãƒ?Œãªã?¨ã€hideMenu を作æ?ã—ã¾ã›ã‚“ã€?
103    
104                    // 既存ã?設定å?ã‚’ã™ã¹ã¦å‰Šé™¤ã—ã¾ã™ã?ホントã?自動登録ã—ãŸåˆ? ã‘を削除ã™ã¹ãã?
105                    OGElement newEle  = new OGElement( "og:hideMenu" );
106    
107                    OGElement tblEle  = new OGElement( "table" );
108                    newEle.addNode( tblEle );
109    
110                    OGElement tr = null;
111                            for( int i=(TD_COUNT*TR_COUNT); i<QUERY_ROWS.size(); i++ ) {
112                                    JspConvertEntity column = QUERY_ROWS.get(i);
113                                    if( i%TD_COUNT == 0 ) {
114                                            tr = new OGElement( "tr" );
115                                            tblEle.addNode( tr );
116                                    }
117                                    tr = trElement( tr,column );
118                            }
119    
120                    return newEle.getText( 0 );
121            }
122    
123            /**
124             * JSPã«å‡ºåŠ›ã™ã‚‹ã‚¿ã‚°ã®å†?®¹ã‚’作æ?ã—ã¾ã™ã?
125             * 引数より作æ?å‰ã?ã‚¿ã‚°ã®å±žæ?å†?®¹ã‚’確èªã™ã‚‹ã™ã‚‹äº‹ãŒå‡ºæ¥ã¾ã™ã?
126             *
127             * @og.rev 5.2.1.0 (2010/10/01) メソãƒ?ƒ‰ã®å¼•æ•°ã‚’ã?OGAttributes ã‹ã‚‰ OGElement ã«å¤‰æ›´ã—ã¾ã™ã?
128             * @og.rev 5.2.1.0 (2010/10/01) åå‰ç©ºé–“ã‚’ã€og æ±ºã‚æ‰“ã¡ã‹ã‚‰ã€å¼•数を使用ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ã—ã¾ã™ã?
129             * @og.rev 5.6.1.2 (2013/02/22) XML処ç?™ã‚‹ã‚ˆã?«å¤‰æ›´ã—ã¾ã™ã?
130             *
131             * @param ele OGElementエレメントオブジェク�
132             * @param       nameSpace       ã“ã?ドキュメントã?nameSpace( og ã¨ã?mis ã¨ã?)
133             *
134             * @return      変æ›ã•ã‚ŒãŸæ–‡å­—å?
135             * @throws Throwable å¤‰æ›æ™‚ã?エラー
136             */
137    //      @Override
138    //      protected String execute( final OGElement ele , final String nameSpace )  throws Throwable {
139    //              if( IS_NULL ) { return ""; }
140    //
141    //              String ns = (nameSpace.length() == 0) ? "" : nameSpace + ":" ;  // 5.2.1.0 (2010/10/01) åå‰ç©ºé–?
142    //
143    //              // TODO Auto-generated method stub
144    //              //書ãå?ã™æ–‡å­—å?を作æ?é–‹å§‹ã?
145    //              StringBuilder sbTub = new StringBuilder();
146    //
147    //              sbTub.append( "<table summary=\"layout\">" ).append( CR );
148    //              for( int i=0; i<QUERY_ROWS.size(); i++ ) {
149    //                      JspConvertEntity column = QUERY_ROWS.get(i);
150    //                      if( i%TD_COUNT == 0 ) {
151    //                              if( i>0 ) { sbTub.append( "  </tr>" ).append( CR ); }
152    //                              sbTub.append( "  <tr>" ).append( CR );
153    //                      }
154    //                      sbTub.append( "\t<" ).append( ns ).append( "column name=\"" );
155    //
156    //                      sbTub.append( column.getColumnName() );
157    //                      sbTub.append( "\"" );
158    //                      if ( column.getDefaultValue() != null && column.getDefaultValue().trim().length() > 0) {
159    //                              sbTub.append( " defaultVal=\"");
160    //                              sbTub.append( column.getDefaultValue() );
161    //                              sbTub.append( "\" ");
162    //                      }
163    //                      if ( "1".equals( column.getMust() )){
164    //                              sbTub.append( " must=\"true\" ");
165    //                      }
166    //                      String ope = column.getRemarks();
167    //                      if( ope != null && ope.startsWith( "lk" ) ) { sbTub.append( " clazz=\"aimai\" "); }
168    //
169    //                      sbTub.append( " />" ).append( CR );
170    //              }
171    //              sbTub.append( "  </tr>" ).append( CR );
172    //              sbTub.append( "</table>" ).append( CR );
173    //
174    //              return sbTub.toString();
175    //      }
176    }