概要: Webエンジン Ver 5.2.1.0 (2010/09/01) をリリースいたします。 今回のリリースのおける主な変更点は、以下の2点です。 ①一括入力アシスト機能の追加 一覧登録時に、全ての行に対して、一括で値をセットするための入力アシスト機能を追加します。 詳細については、[一括入力カラムのアシスト機能]のリリースノートを参照して下さい。 ②JavaScript/CSSファイルの圧縮対応 jsp/common、jsp/menu以下の標準のJavaScript/CSSファイルの圧縮に対応します。 これにより、転送量を削減し、レスポンス向上を図ります。 元のソースファイルは、src/script以下にあります。 なお、JavaScriptファイルについては、圧縮対応と共に、ファイルの統合も行っています。 ※ バージョンアップされる場合は、ビルドファイル(verup.x.x.x.x.zip)に含まれるchanges.txtを確認の上、 作業をお願いします。 ※ 変更点に関する詳細及びその他の修正内容については、添付のリリースノートを参照下さい。 5.2.1.0 (2010/10/01) [画面表示不具合] 戻るリンク時に不要な改行が出力される不具合に対応します。 org.opengion.hayabusa.taglib.ErrorMessageTag.doEndTag() [JSPソースチェックの改善] JSPソースチェックの機能を改善します。 ・JspIncludeReader.java で、タグのエスケープ方法の変更 ・XML宣言 の削除 ・コメントの削除 従来と異なり、jsp:directive.include されるファイルにも、jsp:root を 記述するので、XSLTパースで、インクルードファイルも対象になってしまう。 これにより文法的におかしな場合、エラーチェックに引っかかる可能性が出てくる。 fukurou.xml.XSLT#transform( final String file, final boolean isJspInclude ) fukurou.xml.JspIncludeReader#getString( final File file,final String encode ) XML形式を変更します。(TEXT⇒TEXT_DATA) fukurou.xml.XSLT#toXmlRow( final HybsEntry[] entry,final TransformerException ex ) [JSPソースチェック] JSPソースチェックを行った結果、不正なエラーが出る箇所を修正しました。 jsp/ORA02/check_extent_error.sql < , > などを整形(前後のスペース付与等) jsp/ORA02/check_extent_warning.sql < , > などを整形(前後のスペース付与等) jsp/GFX018/result.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GFX018/result2.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GF9230/update.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GF9130/update.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GF6180/copy.jsp include file="../common/Excel_insert.jsp" 削除(該当するファイルはない) jsp/GF6180/modify.jsp include file="../common/Excel_update.jsp" jsp/GF2070/query.jsp 作成途中のファイルで、エラーだったので、取り合えず修正 jsp/GF2070/result.jsp 作成途中のファイルで、エラーだったので、取り合えず修正 jsp/GF1060/query.jsp サンプルデータ( など) を修正( など) jsp/GANTT06C/viewX2.jsp
タグと、タグが入れ子でなく、クロスしていたので修正。 jsp/GANTT06B/viewX2.jsp
タグと、タグが入れ子でなく、クロスしていたので修正。 jsp/GANTT06/viewX2.jsp
タグと、タグが入れ子でなく、クロスしていたので修正。 jsp/DOC18/query.jsp jspInclude カラムの初期値を、false から true に変更(今回改造したので) jsp/DOC10/result.jsp リンクで、displayMsg を   に設定するように修正。(登録しました、と出るので消す) jsp/DOC10/group.jsp リンクで、displayMsg を   に設定するように修正。(登録しました、と出るので消す) [JSPソースチェック バッチ版] バッチ処理で、JSPソースチェックを実行できる環境(サンプル)を提供します。 gf/BAT/jspCheck 以下の bat ファイル [JavaScriptの整理] jsp/custom 分は、圧縮しないように元に戻します。 ついでに、背景色のグラディエーションは、コメントを物理削除しておきます。 これを使うと、表示時間が非常に長くなるため、今後も使いません。 src/script/custom/custom.css ⇒ jsp/custom/custom.css に移動。元のフォルダは削除 jsp/custom/custom.css 既存のコメント部分を削除 [JavaScriptの整理] YUICompressor の改造クラスである、OGCompressor を修正します。 オリジナルのファイルと圧縮後のファイルのタイムスタンプが同じ場合は、 処理をスキップします。 また、圧縮変換後は、オリジナルのタイムスタンプで圧縮ファイルのタイムスタンプを 書き換えます。 gf/doc/src/org/opengion/tools/OGCompressor.java gf/yuicompressor-2.4.2og.jar [Calc帳票システム・シート名定義対応] Calc帳票システムでCalc出力、Excel出力した際にシート名を独自に定義できる機能を追加します。 具体的には、帳票の雛形で、シート名に"__"を区切り文字として定義しておくことで、"__"より後ろの文字列 を出力シート名として設定します。 例として、雛形シート名が、"sheet1__ABC"となっている場合、出力されたCalcまたはExcelでは、ページ毎に、 ABC1,ABC2,ABC3...というシート名が割り振られます。 雛形シート名に"__"が含まれていない場合は、既存と同じくPageN_RowNとなります。 また、シートブレイク機能については、"__"より前のデータをシートキーとして使用します。 上記の場合であれば、"sheet1"がシートブレイクで参照されるシート名になります。 org.opengion.hayabusa.report2.OdsContentParser.writeParsedSheet(OdsSheet, BufferedWriter) org.opengion.hayabusa.report2.OdsSheet.analyze(String, int) org.opengion.hayabusa.report2.OdsSheet.getSheetName() org.opengion.hayabusa.report2.OdsSheet.getConfSheetName() org.opengion.hayabusa.report2.OdsSheet.getOrigSheetName() [JSPソースチェックの改善] JSPソースチェックの機能を改善します。 ・JspIncludeReader.java で、タグのエスケープ方法の変更 ・XML宣言 の削除 ・コメントの削除 従来と異なり、jsp:directive.include されるファイルにも、jsp:root を 記述するので、XSLTパースで、インクルードファイルも対象になってしまう。 これにより文法的におかしな場合、エラーチェックに引っかかる可能性が出てくる。 fukurou.xml.XSLT#transform( final String file, final boolean isJspInclude ) fukurou.xml.JspIncludeReader#getString( final File file,final String encode ) XML形式を変更します。(TEXT⇒TEXT_DATA) fukurou.xml.XSLT#toXmlRow( final HybsEntry[] entry,final TransformerException ex ) チェック用 GF70_PROG.xsl で、メッセージに、名前空間が書かれている分は削除 これは、mis: でも、og: でも処理できるので、汎用性を持たせた。 jsp/DOC18/GF70_PROG.xsl [JSPソースチェック] JSPソースチェックを行った結果、不正なエラーが出る箇所を修正しました。 jsp/ORA02/check_extent_error.sql < , > などを整形(前後のスペース付与等) jsp/ORA02/check_extent_warning.sql < , > などを整形(前後のスペース付与等) jsp/GFX018/result.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GFX018/result2.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GF9230/update.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GF9130/update.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GF6180/copy.jsp include file="../common/Excel_insert.jsp" 削除(該当するファイルはない) jsp/GF6180/modify.jsp include file="../common/Excel_update.jsp" jsp/GF2070/query.jsp 作成途中のファイルで、エラーだったので、取り合えず修正 jsp/GF2070/result.jsp 作成途中のファイルで、エラーだったので、取り合えず修正 jsp/GF1060/query.jsp サンプルデータ( など) を修正( など) jsp/GANTT06C/viewX2.jsp
タグと、タグが入れ子でなく、クロスしていたので修正。 jsp/GANTT06B/viewX2.jsp
タグと、タグが入れ子でなく、クロスしていたので修正。 jsp/GANTT06/viewX2.jsp
タグと、タグが入れ子でなく、クロスしていたので修正。 jsp/DOC18/query.jsp jspInclude カラムの初期値を、false から true に変更(今回改造したので) jsp/DOC10/result.jsp リンクで、displayMsg を   に設定するように修正。(登録しました、と出るので消す) jsp/DOC10/group.jsp リンクで、displayMsg を   に設定するように修正。(登録しました、と出るので消す) [DB定義変更] JSPソースチェックの改善に伴うDB定義を変更します。 これは、チェックを行ったときに、桁あふれを起こしたカラムを増やします。 GF72、GF73 LBLCD VARCHAR2(60) GF70、GF71、GF72、GF73、GF74、GF75、GF76、GF77、GF79 FILENAME VARCHAR2(60) [JavaScriptの整理] jsp/custom 分は、圧縮しないように元に戻します。 ついでに、背景色のグラディエーションは、コメントを物理削除しておきます。 これを使うと、表示時間が非常に長くなるため、今後も使いません。 src/script/custom/custom.css ⇒ jsp/custom/custom.css に移動。元のフォルダは削除 jsp/custom/custom.css 既存のコメント部分を削除 [エラーメッセージ表示方法の改善] システムリソースの設定で、エラーメッセージの表示内容を変更することができるように対応します。 (※ここでのエラーメッセージとは、例外がスローされた場合のエラーメッセージの表示方法です columnCheckタグ等で表示されるアプリケーションエラーの内容は、この設定と関係ありません) 0:エラー内容は何も表示されません。エラー発生時刻のみが表示されます。 1:例外名とエラー内容のメッセージのみが表示されます。スタックとレースは表示されません。 2:スタックトレースも含めてエラー内容を表示します。 org.opengion.hayabusa.common.SystemData.ERR_DISP_LEVEL common/error_dev.jsp 削除 common/error.jsp common/error_0.jsp common/error_1.jsp common/error_2.jsp common/error_Auth.jsp common/error_Forbidden.jsp [表示種別追加] 表示種別として、"PN2"を追加します。この表示種別では、従来のPNと異なり、3-5-3のデータをハイフン区切りで 表示するのではなく、3-5-3の各部位にclass属性(PN_1,PN_2,PN_3)を付加しています。 これにより、真ん中の部分だけの色を変える等を行って、データの区切りを識別できるようにすることができます。 org.opengion.plugin.column.Renderer_PN2 [Valueタグ・バグ修正] command="SET" action="APPEND"でvalueをbody部に書いた場合に動作しないバグを修正します。 org.opengion.hayabusa.taglib.ValueTag.doAfterBody() [JavaScriptの整理2] jsp/common の 標準、option の各 js,css ファイルの配置を 見直します。 これは、option にあるが、ほとんど標準で使用している js を標準へ、 標準に有るが、標準では使用していない js を、オプションへ移動させます。 これに伴い、headerタグも、修正します。 common/option/jqog.js ⇒ common/jqog.js common/tabLink.js ⇒ common/option/tabLink.js hayabusa.taglib.HeadTag.java 関係する private static final 初期値 custom/multiChoose.jsp において、スクリプトの組み込みに、キャッシュを制御する バージョン番号を指定するようにします。 これは、エンジン標準の JavaScript や CSSファイルは、キャッシュされるため、 キャッシュの開放条件を指定しておく必要があるためです。 custom/multiChoose.jsp JavaScript の圧縮ファイル(yuicompressor) 処理で発生した警告を修正します。 判る範囲で修正しています。 ・Found an undeclared symbol: ・The symbol XXXX is declared but is apparently never used. ・The variable XXXX has already been declared in the same scope... doc\5.2.1.0_refactoring.txt 参照 [JSPサンプル修正] GF6090(【ビュー関連】棒グラフ)で、バーが、右寄せになっていたので、左寄せに修正します。 jsp/GF6090/result.jsp [JavaScriptのキャッシュ] キャッシュのパラメータを、各ファイルの最終更新日を使用するように変更します。 従来は、BuildNumber.BUILD_ID をパラメータとして表示させていましたが、この方法では、 開発時や、JavaScriptのみ変更した場合に、キャッシュが効いて、うまく反映されませんでした。 そこで、キャッシュのパラメータを、各JavaScript/CSSファイルのタイムスタンプとすることで JavaScriptのみの修正でも、キャッシュを無効化して読み取らせることが出来るようになります。 ただし、都度、ファイルのタイムスタンプを取得すると遅くなるため、adminメニューの [プール削除]で初期化(リロード)するようにします。これにより、JavaScript等を修正後、 プール削除で反映、ということが可能になります。 hayabusa.taglib.HeadTag#VERSION_PREFIX hayabusa.taglib.HeadTag#addScriptTag( final String filename, final StringBuilder buf ) hayabusa.taglib.HeadTag#addStyleTag( final String filename, final StringBuilder buf ) ※ 現時点では、圧縮するJavaScript/CSSファイルのタイムスタンプは、ソースコンパイル時に 変更されます。よって、ほとんどのケースで、エンジンバージョンアップを行うと、 各ファイルは、キャッシュが無効(初期化)されます。 [DisplayCapture 機能強化] 画面キャプチャを行う機能を強化します。 具体的には、実用性を重視して、エンジン本体に機能を組み込みます。 ・BAT\displayCapture\DisplayCapture.bat を作成。 通常のサンプルである fukurouSample から独立させます。 ・自動キャプチャに必要な、画面IDと実行ファイル名のクリップボードへの 書込み関係のファンクションを、default.js に追加します。 これにより、jsp\custom\result_info_Capture.jsp サンプルを廃止します。 ・画面自動キャプチャを行うための、JSP側の仕込みを、jsp\indexc.jsp に入れます。 具体的には、h_capture=true という値を、セッションにセットしておきます。 これを、custom\result_info.jsp で window.onload でファンクションを呼び出します。 ・src\org\opengion\fukurou\util\DisplayCapture.java を見直し、エラーメッセージや パラメータを実用レベルにまで機能アップします。 fukurou.util.DisplayCapture.java 全般的に手直し BAT\displayCapture\DisplayCapture.bat 新規追加 jsp\custom\result_info_Capture.jsp サンプルを廃止 jsp\custom\result_info.jsp 自動化のための仕掛けを追加 jsp\indexc.jsp(c が余分に付いている) 自動化のためのTop画面 src\script\common\default.js function 追加 (setDisplayCapture、getDisplayCapture) 以下、BAT\displayCapture\DisplayCapture.bat の説明文です。 画面イメージをキャプチャして、ファイルに書き出す クリップボードに、"GUI:画面ID xxxxx.jsp" 形式の文字が書き込まれると、flavorsChanged イベントが 発生して、画面を、ファイルに書き出す処理が実行されます。 エンジンの機能と連動すれば、画面IDやファイル名をクリップボード経由でこのアプリケーションに 渡すことで、画面操作を行うだけで、自動的に画面キャプチャを行うことが可能です。 エンジンでは、jsp/indexc.jsp に、この機能が組み込まれているため、gf\BAT\displayCapture の DisplayCapture.bat を起動後、アプリケーションを、jsp/indexc.jsp で呼び出せば、自動的に 画面のキャプチャを開始できます。 キャプチャは、全画面のみですので、IEを最大に広げて操作してください。 また、「Prnt Scrn」ボタンにも対応していますので、操作中やポップアップ等の非自動化の 画面キャプチャも、手動で取得できます。 [linkタグ・バグ修正] linkタグで、href属性を指定しなかった場合に、リンク先の画面のロール(gamenId指定)が存在しない場合に、 NullPointerExceptionが発生するバグを修正します。 org.opengion.fukurou.util.XHTMLTag.addUrlEncode(String, String, String) [業務ロジックバグ修正] ①パラメーターセットの変数名チェックのバグを修正します。 ②Classファイルのみが存在し、ソースファイルが存在しない場合にエラーとなるバグを修正します。 org.opengion.fukurou.business.AbstractBizLogic.set(String, String) org.opengion.fukurou.util.HybsLoader.getQualifiedName(String) org.opengion.fukurou.util.HybsLoader.findFileByCls(String, String) org.opengion.fukurou.util.HybsLoader.compileClass(String) [JavaScriptの整理] jsp\common のJavaScript を整理します。 それぞれのシチュエーションごとに、ファイルをマージ(統合)し、 圧縮します。 ソースを、gf\src\script に置くことで、そこに含まれる .js , .css ファイルを gf\jsp 以下に圧縮コピーします。 これに伴い、個別に、制御していた headタグの属性を削除します。 ※ 互換性は保障されませんので、ご注意ください。 private static final String DEFAULT_JS = "common/default.js"; // 5.2.1.0 (2010/10/01) 統合 // private static final String DEFAULT_JS = "common/default.js"; 廃止 // private static final String INPUTMENU_JS = "common/inputMenu.js"; 廃止 // private static final String OGPOPUP_JS = "common/ogPopup.js"; 廃止 private static final String EVENT_SCRIPT_JS = "common/eventScript.js"; // 5.2.1.0 (2010/10/01) 統合 // private static final String FOCUS_HILIGHT_JS = "common/focusHilight.js"; 廃止 // private static final String AUTO_CONVERT_JS = "common/autoConvert.js"; 廃止 // private static final String EVENT_COLUMN_JS = "common/eventColumn.js"; 廃止 // private static final String REAL_TIME_CHECK_JS = "common/realTimeCheck.js"; 廃止 // private static final String BIND_EVENTS_JS = "common/bindEvents.js"; 廃止 private static final String QUERY_SCRIPT_JS = "common/queryScript.js"; // 5.2.1.0 (2010/10/01) 統合 // private static final String TIME_SET_JS = "common/timeSet.js"; 廃止 // private static final String TOGGLE_FRAME_JS = "common/toggleFrame.js"; 廃止 // private static final String ADJUST_FRAME_HEIGHT_JS = "common/adjustFrameHeightEvent.js"; 廃止 // private static final String FOCUS_FIRST_ELM = "common/focusFirstElm.js"; 廃止 private static final String RESULT_SCRIPT_JS = "common/resultScript.js"; // 5.2.1.0 (2010/10/01) 統合 // private static final String HILIGHT_ROW_JS = "common/hilightRow.js"; 廃止 // private static final String BULK_SET_JS = "common/bulkSet.js"; 廃止 // private static final String PRINT_LINE_JS = "common/printLine.js"; 廃止 // private static final String TIME_CHECK_JS = "common/timeCheck.js"; 廃止 // private static final String ROW_COUNT_REPLACE = "common/rowCountReplace.js"; 廃止 パラメータの削除 これらのパラメータは初期値が true なので、基本的には組み込まれているものです。 よって、利用する場合は、false を登録しますが、通常は、headerType で大枠を制御 しているので、個別に false にしているケースは、ほとんどないと考えます。 万一、使用している場合は、その属性を、削除してください。 hayabusa.taglib.HeadTag#setUseTimeSet( final String flag ) { hayabusa.taglib.HeadTag#setUseToggleFrame( final String flag ) { hayabusa.taglib.HeadTag#setUseInputFocus( final String flag ) { hayabusa.taglib.HeadTag#setUseHilightRow( final String flag ) { hayabusa.taglib.HeadTag#setUsePrintLine( final String flag ) { hayabusa.taglib.HeadTag#setUseRealTimeCheck( final String flag ) { hayabusa.taglib.HeadTag#setUseAutoConvert( final String flag ) { hayabusa.taglib.HeadTag#setUseFocusHilight( final String flag ) { hayabusa.taglib.HeadTag#setUseFocusFirstElm( final String flag ) { hayabusa.taglib.HeadTag#setUseAdjustFrameHeight( final String flag ) { hayabusa.taglib.HeadTag#setUseEventColumn( final String flag ) { hayabusa.taglib.HeadTag#setUseRowCountReplace( final String flag ) { gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld システムリソースのデータ削除 hayabusa.common.SystemData#USE_REAL_TIME_CHECK hayabusa.common.SystemData#USE_INPUT_AUTO_CONVERT hayabusa.common.SystemData#USE_ROWCNT_REPLACE enter.js は、個別組み込みなので、unrecommend フォルダに移動します。 jsp\common\enter.js ⇒ jsp\common\unrecommend\enter.js に移動 上記統合において、JavaScript Lint 処理で発生したエラー、警告は、 判る範囲で修正しています。 doc\5.2.1.0_refactoring.txt 参照 [JavaScriptの圧縮] JavaScript ファイルと CSSファイルを、src\script に集め、これを元に 圧縮処理を行ったファイルを、通常の jsp 以下のフォルダに置きます。 現時点では、src\scriptl には、common 、common\option 、common\unrecommend、 custom 、 menu と、jquery の一部をおきます。(本体は処理を実行しません。) この圧縮処理は、yuicompressor を用いて行います。ただし、ant でコンパイルする 時に、この処理を行いたいので、1ファイルづつの対応を行いたくないため、 openGion でカスタマイズした、yuicompressor-2.4.2og.jar を再作成します。 この jar より、org.opengion.tools.OGCompressor を呼び出して、ディレクトリ階層の 圧縮処理を行うように、build.xml に組み込みます。 gf\build.xml gf\yuicompressor-2.4.2og.jar ※ 拡張した OGCompressor.java ソースは、gf\doc 以下に保存しておきます。 実際には、これと、yuicompressor-2.4.2.zip によるソース他も必要です。 コンパイル環境はopenGion 配布パッケージには含めません。 [head タグの修正] 先のJavaScript関係の修正と別に、VERSION_PREFIX の設定方法を若干変更します。 これは、アドレス合成の方法を少し変えておくだけです。 hayabusa.taglib.HeadTag#addScriptTag( final String filename, final StringBuilder buf ) hayabusa.taglib.HeadTag#addStyleTag( final String filename, final StringBuilder buf ) [JavaScriptの日本語処理] JavaScript内のコメント以外の日本語(alert で表示したりしている箇所)を英語に変更します。 たとえ、alert とはいえ、日本語コメントをハードコーディングしておくのは良くないと判断します。 eventScript.js(52): setTimeout(alert("custom/query_info.jsp及びcustom/result_info.js・・・ eventScript.js(202): alert( "[SYSTEM_ERROR] : イベントカラムで置き換え対象の要素が存在しません" ); eventScript.js(220): alert( "[SYSTEM_ERROR] : イベントを処理するURLが指定されていません。(変数未定義)" ); eventScript.js(224): alert( "[SYSTEM_ERROR] : イベントを処理するURLが指定されていません。" ); queryScript.js(313): alert("custom/query_info.jsp及びcustom/result_info.jspで次の部分を削除して下さい。・・・ scrollBar2.js(7): function scrollBar2( obj ){alert("custom/query_info.jsp及びcustom/result_info.jspで次・・・ scrollBar2.js(8): function AdjustScroll2( obj ){alert("custom/query_info.jsp及びcustom/result_info.jspで・・・ option\jqog.js(43): "

エラーが発生しました。

×" [TLDファイルとソースの見直し] ソースにはセッターメソッドが存在するが、TLDファイルに記述されていない などの不整合を修正します。 主な作業は、TLDファイルの属性追加ですが、それに伴い、ソースの修正を 行っているケースもあります。 hayabusa.taglib.CommonTagSupport#getScope() コメントの【TAG】と @og.tag を削除します。(単純な間違い) hayabusa.taglib.ChartCreateTag#doEndTag() debugPrint() の条件で、isDebug() されていたのを省きます。 hayabusa.taglib.ChartDatasetTag#doEndTag() debugPrint() メソッド追加 hayabusa.taglib.ViewParamTag#toString() デバッグ時のMapの表示を個々のキー=値 にまで展開します。 hayabusa.taglib.TableFilterTag#doEndTag() debugPrint() の条件で、isDebug() されていたのを省きます。 tldの修正(属性を追加します) debug hayabusa.taglib.ChartDatasetTag fontName hayabusa.taglib.WriteTableTag fontPoint hayabusa.taglib.WriteTableTag scope hayabusa.taglib.FileQueryTag gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [@Override の追記] taglib クラスで、doStartTag() 、doAfterBody()、doEndTag()、release2() に対して、 @Override アノテーションを付与します。 単に、記述漏れのクラスをピックアップして修正しただけです。 hayabusa.taglib.ChartCreateTag.java hayabusa.taglib.ChartDatasetTag.java hayabusa.taglib.DatabaseMetaDataTag.java hayabusa.taglib.EqualsTag.java hayabusa.taglib.JspCreateTag.java hayabusa.taglib.PopupTag.java hayabusa.taglib.RequestValueTag.java hayabusa.taglib.TableFilterTag.java hayabusa.taglib.TableMergeTag.java hayabusa.taglib.UpdateTag.java hayabusa.taglib.ColumnTag.java hayabusa.taglib.InputTag.java hayabusa.taglib.FileQueryTag.java hayabusa.taglib.FrameTag.java [JSP自動作成関係の見直し] JspCreate 関係のクラスの内容を見直します。 下記の修正以外に、JavaDocコメントの整理、引数の final 付与など 関係するソースの修正を行っています。 実行クラスのクラス名を変更します。 当然、元のクラスファイルは削除になります。 plugin.develop.JspCreate_COLUMN.java JspCreate_OG_COLUMN ⇒ JspCreate_COLUMN plugin.develop.JspCreate_COMMENT.java JspCreate_OG_COMMENT ⇒ JspCreate_COMMENT plugin.develop.JspCreate_QUERY.java JspCreate_OG_QUERY ⇒ JspCreate_QUERY plugin.develop.JspCreate_SELECT.java JspCreate_OG_SELECT ⇒ JspCreate_SELECT plugin.develop.JspCreate_VIEW.java JspCreate_OG_VIEW ⇒ JspCreate_VIEW hayabusa.taglib.JspCreateTag#execute() メソッドの引数を、OGAttributes から OGElement に変更します。 hayabusa.develop.AbstractJspCreate#execute( final OGElement ele) hayabusa.develop.AbstractJspCreate#filter( final OGDocument doc ) plugin.develop.JspCreate_COLUMN#execute( final OGElement ele, final String nameSpace ) plugin.develop.JspCreate_COMMENT#execute( final OGElement ele, final String nameSpace ) plugin.develop.JspCreate_QUERY#execute( final OGElement ele, final String nameSpace ) plugin.develop.JspCreate_SELECT#execute( final OGElement ele, final String nameSpace ) plugin.develop.JspCreate_VIEW#execute( final OGElement ele, final String nameSpace ) その他、軽微な修正など hayabusa.develop.JspConvertEntity.java hayabusa.develop.JspCreateFactory.java hayabusa.develop.JspEnumeration.java [XML 関連で、nameSpace の取り扱い機能追加] OGElement で、nameSpace の機能を追加します。 JspCreate 関係のクラスで、nameSpace を "og:" 決め撃ちにしている箇所を修正します。 これで、標準の og: に加えて、mis: も取り扱うことができるようになります。 plugin.develop.OGElement#OGElement( final String qName , final String attTab , final Attributes atts ) plugin.develop.JspCreate_COLUMN.java plugin.develop.JspCreate_COMMENT.java plugin.develop.JspCreate_QUERY.java plugin.develop.JspCreate_SELECT.java plugin.develop.JspCreate_VIEW.java OGDocument で、nameSpace を取り扱えるようにします。 fukurou.xml.OGDocument#getNameSpace() fukurou.xml.OGElement#OGElement( final String qName , final String attTab , final Attributes atts ) [findbugs 対策] findbugs で、指摘された箇所を修正します。 不要な import の削除と、警告の修正です。 while ループ中での + での 文字列連結を、解消します。 奇数判定処理で、( x % 2 == 1 ) を ( x % 2 != 0 ) にします。 ※ x が負の数の場合に、x % 2 が、-1 になるためだそうです。 ここでは、個数なので、負にはなりませんが、警告を止める意味で、修正しておきます。 plugin.io.TableReader_Default#readDBTable( final BufferedReader reader ) plugin.io.TableWriter_Default.java [戻るボタンの表示の変更] jsp/common/history_back.jspの標準の戻るボタンについて、accessKey="R"が割り当てられていましたが、 表示に(R)が含まれていなかったため、ラベル名称を変更します。 本来であれば、og:inputタグ側で、accessKeyの文字を自動的にラベルに付加すべきですが、過去との互換性を 考慮し、ラベル名称を変更します。 MSG0079 ラベル追加 jsp/common/histroy_back.jsp jsp/common/errorMessage.jsp jsp/gamen/13_EDIT/update.jsp [一括入力カラムのアシスト機能] 一括入力カラムのアシスト機能を利用するカラム名を、カンマ区切りで与えます。 これは、カラムの書き込み時に、一括入力可能なカラムをヘッダーに表示し、 一括登録できる機能を提供します。 この機能は、jsp/common/bulkSet.js JavaScript とともに提供されます。 IE については、クリップボードも利用できます。Ctrl-C と Ctrl-V でそれぞれ 一連のカラムの値の取り出しと書き込みが可能になります。 "*" を指定すると、すべてのカラムを(columnBulkSet)指定したことになります。 システムリソースで、VIEW_USE_DEFAULT_BULKSET を true に設定すると、初期値が "*" になりますので、個別の view に設定しなくてもこの機能が使用できるようになります。 この機能は一括入力の手間削減が目的なので、selectedType が radio の場合は、 この機能は無効になります。 bulkSet.js の新規追加と、realTimeCheck.js の一括入力カラムのチェック解除 common/bulkSet.js 新規追加 common/realTimeCheck.js 修正 ヘッダーに、common/bulkSet.js を設定するロジックを追加します。 hayabusa.taglib.HeadTag#doEndTag() common/bulkSet.js の設定 システムリソースに BULKSET の初期値を指定します。(互換性からfalse) hayabusa.common.SystemData#VIEW_USE_DEFAULT_BULKSET = "false" ; 各クラスを修正します。 hayabusa.html.ViewForm#setColumnBulkSet( final String columnName ); hayabusa.html.AbstractViewForm#init( final DBTableModel table ) { hayabusa.html.AbstractViewForm#clear() { hayabusa.html.AbstractViewForm#getSortedColumnLabel( final int column ) { hayabusa.html.AbstractViewForm#isClmBulkSet( final int column ) { hayabusa.html.AbstractViewForm#setColumnBulkSet( final String columnName ) { hayabusa.taglib.ViewFormTag#doEndTag() { hayabusa.taglib.ViewFormTag#release2() { hayabusa.taglib.ViewFormTag#setColumnBulkSet( final String columnName ) { 上記変更に伴う、TLD ファイルの修正を行います。 view タグに、columnBulkSet 属性を追加します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld jsp/common/bulkSet.js [ReadTableTag 実装変更/レンデラー対応] 読取処理でラベルをコードリソースに逆変換を行うかどうかを指定します。(初期値:USE_TABLE_READER_RENDERER) TableWriter_Renderer 系のクラスで出力した場合は、コードリソースがラベルで出力されます。 そのファイルを読み取ると、当然、エラーになります。 ここでは、コードリソースのカラムに対して、ラベルからコードを求める逆変換を行うことで、 Renderer 系で出力したファイルを取り込むことができるようにします。 ここでは、TableWriter 系と同様に、TableReader_Renderer 系のクラスを作るのではなく、 属性値のフラグで、制御します。 将来的には、TableWriter 系も廃止して、同様のフラグで制御するように変更する予定です。 初期値は、システム定数の USE_TABLE_WRITER_RENDERER で指定できます。 longLabel をキーとした、コードのマップを構築します。これに関連して、DBColumn の getCodeData()メソッドで、null の場合のExceptuin を止めて、そのまま返すように変更します。 hayabusa.db.DBColumn#getCodeData() { hayabusa.resource.CodeData#makeLabelMap() { システムリソースに レンデラーを使うかどうかの初期値を指定します。(互換性からfalse) hayabusa.common.SystemData#USE_TABLE_READER_RENDERER = "false" ; 関係するクラスの修正 hayabusa.io.TableReader#setUseRenderer( final boolean useRenderer ) ; hayabusa.io.AbstractTableReader#setTableDBColumn( final String[] names ) { hayabusa.io.AbstractTableReader#setTableColumnValues( final String[] values ) { hayabusa.io.AbstractTableReader#setUseRenderer( final boolean useRenderer ) { hayabusa.taglib.ReadTableTag#release2() { hayabusa.taglib.ReadTableTag#create( final BufferedReader out ) { hayabusa.taglib.ReadTableTag#setUseRenderer( final String flag ) { 各サブクラスは、直接対応するのではなく、setTableColumnValues( String[] )メソッドを通して DBTableModel に値を読み取るように修正します。 AbstractTableReader#setTableColumnValues( String[] )メソッド内で実際のラベル変換処理を 行います。 plugin.io.TableReader_Calc#makeBody( final RowInfo rowInfo ) { plugin.io.TableReader_Default#readDBTable( final BufferedReader reader ) { plugin.io.TableReader_Excel#readDBTable() { plugin.io.TableReader_JExcel#readDBTable() { [WriteTableTag 実装変更/レンデラー対応] 書込処理でコードリソースのラベル変換を行うかどうかを指定します。(初期値:USE_TABLE_WRITER_RENDERER) コードリソースをそのままの値で出力すると、数字や記号になり何が書かれているのか 不明になります。 これは、コードリソースをラベルに変換して出力するかどうかを指定します。 当然、コードはユニークですが、ラベルはユニークになるかどうか保障はされていませんので TableReader 系で読み込む場合には、リスクが発生します。 また、TableReader 系で読み込む場合にも、ラベルからコードを求める逆変換を行うように、 setUseRenderer メソッドで指定する必要があります。 従来は、TableWriter 系に、TableWriter_Renderer 系のクラスを作って対応していましたが、 このメソッドの属性値のフラグで、制御します。 初期値は、システム定数の USE_TABLE_WRITER_RENDERER で指定できます。 システムリソースに レンデラーを使うかどうかの初期値を指定します。(互換性からfalse) hayabusa.common.SystemData#USE_TABLE_WRITER_RENDERER = "false" ; 関係するクラスの修正 hayabusa.io.TableWriter#setUseRenderer( final boolean useRenderer ) ; hayabusa.io.AbstractTableWriter#writeData( final DBTableModel table,final PrintWriter writer ) ; abstract 化します。 hayabusa.io.AbstractTableWriter#setUseRenderer( final boolean useRenderer ) { hayabusa.io.AbstractTableWriter#isUseRenderer() { hayabusa.taglib.WriteTableTag#release2() { hayabusa.taglib.WriteTableTag#create( final PrintWriter out ) { hayabusa.taglib.WriteTableTag#setUseRenderer( final String flag ) { 各サブクラスの対応 plugin.io.TableWriter_Calc#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_CSV#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_CSV2#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_Data#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_Data2#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_Default#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_Excel#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_T#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_XML#writeData( final DBTableModel table,final PrintWriter writer ) { [ReadTableTag/WriteTableTag 関連] 上記変更に伴う、TLD ファイルの修正を行います。 readTable タグに、useRenderer 属性を追加します。 writeTable タグに、useRenderer 属性を追加します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [TableWriter/TableWriter 関連クラスの整理] plugin.io から、Default クラスを hayabusa.io にAbstractクラスとして移動させた際の クラスの整理を行います。 今回の、useRenderer 属性の追加により、サブクラスも廃止されているものがあります。 廃止クラスは、WriteTableTag 内で互換性を持つように修正しています。 hayabusa.io.TableReader_Default.java 廃止(完全に不要なクラス) hayabusa.io.TableWriter_Default.java 廃止(完全に不要なクラス) plugin.io.TableReader_Default.java メソッドの内、hayabusa.io.AbstractTableReader と重複する分を削除 plugin.io.TableWriter_Default.java メソッドの内、hayabusa.io.AbstractTableWriter と重複する分を削除 plugin.io.TableWriter_ExcelRenderer.java 廃止(このクラス名が指定されると、useRenderer=true を自動セット) plugin.io.TableWriter_Renderer.java 廃止(このクラス名が指定されると、useRenderer=true を自動セット) [パッケージ移動後の関連クラスの整理] hayabusa.db.DBTypeCheckUtil に移動した、plugin.column.DBTypeCheckUtil を削除します。 plugin.column.DBTypeCheckUtil.java 廃止(完全に不要なクラス)