5.6.3.4 (2013/05/01) [出力Edit変更] Edit機能でExcelの選択肢がExcelRendererしか存在していなかったため、 テキスト出力同様にExcel(全項目)を追加します。 互換性のため、現在の「Excel」でExcelRendereを利用する状態は変更せず、 XLSNR(Excel NonRenderer)という項目を増やして、Rendererを利用しないようにします。 一度でもEditを利用した画面は、reportフォルダにリストファイルが画面ID単位で出力されているため、 全項目を利用するためには削除するか、追記が必要になります。 jsp/common/fileDownload.jsp jsp/common/fileDownloadLisDef.txt コードリソース REPNAME.XLSNR [カレンダーポップアップの修正] カレンダーポップアップで、入力欄に、"/" があれば、"/" 付で返します。 "/" がなければ、従来通り、"/" なしで返します。 これで、yyyy/mm/dd 形式も、yyyymmdd 形式も、両方とも、使用できます。 gf\src\script\common\calendar2.js [雛形自動作成] 雛形自動作成フィルター(FileFilter)を修正します。 1.index.jsp でフレーム分割している箇所で、entry.jspを呼び出しているケース。 この場合、登録時に、「登録しました」が作成されると、一番最初の呼び出し時にも 「登録しました」が表示される。 再作成時には、indexNW.htm が呼ばれるので、最初の、index.htm では、 entry.htm の箇所を、"../common/dummy.html" に変更しておく。 2.update.jsp で、useAjaxSubmit="true" の場合、entry.htm は、update.jsp の JavaScriptでforward されるため、雛形には、HTMLの結果は出力されません。 (result.jsp に出力されます。) そこで、雛形作成時には、entry.htm にJavaScriptを入れて、forward させます。 3.onSubmit="" のパターンでも、onSubmit="return false;" に置き換える。 4.JavaScript の ajaxSubmit.js が悪さするので、削除します。 具体的には、src="../common/option/ajaxSubmit.js?v=xxxx" の箇所を削除します。 5.command="NEW" + resultXX.jsp ⇒ "forwardXX.htm"。 result.jsp にフレームを使うパターン(3ペイン) 同時に、通常の forward.hml が、フレームになっているので、frame src="result1.htm? を frame src="forward1.htm? に置き換える処理も入れます。 gf/src/script/common/option/noTranHref.js hayabusa.filter.FileResponseTransform.java [taglet 軽微な修正] タグリブリファレンスの検索時の遠因バージョンの取得方法を若干変更します。 fukurou.taglet.DocletUtil#versionNo 取得方法変更 fukurou.taglet.TagletDoc03Link#toString( final Tag[] tagTags ) 軽微な修正 [quickReference.html] タグリブマニュアルのHTML簡易版(quickReference.html) を、doc/taglib/ に出力していましたが、 common に出力するように変更します。 また、admin画面から、参照できるようにします。 この処理は、_build.bat で、"xml" を指定した場合に実行されますが、そのあとで、_build.bat で、 "jar" を実行しないと、作成したファイルが取り込まれません。ご注意ください。 hayabusa.servlet.HybsAdmin#getAdminLink() build.xml ※ 注意 現在、jsp/common 以下のフォルダの扱いが少し複雑になってきましたので、整理しておきます。 1._build.bat で、"compile" を指定すると、通常の Java のコンパイル以外に、 yuicompressor を利用した、JavaScriptの圧縮処理を行います。 /src/script 以下のファイルを、/jsp に、圧縮し、コピーします。 2._build.bat で、"jar" を指定すると、jsp/common/ , jsp/image/ , jsp/menu/ のフォルダを src/META-INF/resources 以下にコピーし、jspCommonX.X.X.X.jar に圧縮します。 これは、Tomcat7 からの新機能で、jspのjar化が可能です。 3._build.bat で、"javadoc" を指定すると、JavaDoc と、タグリブマニュアル用のXMLデータを 生成します。このデータは、src/xslt 以下に生成されます。 4._build.bat で、"spec" を指定すると、Javaソースの仕様書作成用のXMLファイルを生成します。 このデータは、ソースのコメント欄チェック兼用です。 5._build.bat で、"xml" を指定すると、リソース関係のデータを、XMLデータで抜き出します。 ここでは、Tomcatアプリケーションが起動している必要があります。 先の、quickReference.html は、この処理で生成されます。 つまり、2.の作業は、この5.の作業が完了しないと、ひとつ前のquickReference.htmlを コピー、圧縮することになってしまいます。 5.6.3.3 (2013/04/19) [ガント修正] クライアント描画の日付系ガントで、ガント範囲外に跨った場合に 表示最終日までガントが描画されていなかったため対応します。 gf/src/script/common/option/adjustGanttTable.js [adjustMatrix修正] ステータス機能がうまく動作していなかったため対応しました。 (firefoxでも機能そのものは最低動作するような対応込み) gf/src/script/common/option/adjustMatrix.js [ViewForm_CustomData の見直し] ViewForm_CustomData が、当初の仕様通りに実装されていなかったので、 修正します。 ただし、厳密には互換性はなくなりますが、基本的にそのような使われ方を していないはずなので、問題ないと判断します。 headerFormat bodyFormats 現状動作 変更後 @ なし なし headerのみ body の繰り返しのみ A なし あり エラー bodyFormats のみ繰り返す B あり なし headerのみ body の繰り返しのみ C あり あり それぞれ動作 ← 同じ D なし なし エラー ← 同じ @のケースは、viewタグの BODY部に直接フォーマットを記述するケースです。 通常の場合は、header として認識され、header、body ともに使用されますが、 現状このクラスではバグっており、headerとしてしか使われていません。 これは、内部的には、Bと同じ処理を行っています。 Aのケースは、通常のViewForm系では採用していない動きです。現状でもエラーです。 ただ、CustomDataは、tableタグと無関係に、BODY部に記述されたフォームを 繰返し処理するだけなので、bodyFormats のみで動作させるのが本来の姿です。 C、Dのケースは同一なので互換性ありです。 plugin.view.ViewForm_CustomData#create( final int startNo, final int pageSize ) plugin.view.ViewForm_CustomData#setFormatterList( final List list ) [caseKey,caseValの扱い] caseKey,caseValは、caseKey.matches( caseVal ) の値が、true の場合、このタグを 利用可能とする属性です。equals タグの多用を避ける意味で作成しました。 現状、(caseKey == null) || (caseVal == null) || caseKey.matches( caseVal ) の結果 で判定していますが、これは間違いで、caseKey と caseVal が 両方とも null の場合のみ true にすべきです。 互換性の意味では、まずいのですが、equals タグと同様の動きをするようになるのと、 現時点では、あまり使われていない機能なので、今のうちに修正します。 (caseKey == null && caseVal == null) || (caseKey != null && caseVal != null && caseKey.matches( caseVal )) に変更します。 hayabusa.taglib.CommonTagSupport#useTag() [adjustMatrix.js] コメント、初期値を修正 gf/src/script/common/option/adjustMatrix.js [ogTbodyMovable.js] option/ogTbodyMovable.js JavaScript を採用します。 これは、テーブルの行(tbody)の上下入替を行うためのスクリプトです。 上下入れ替えだけの場合は、HeadTag で、useTbodyMovable = "true" をセット するだけで、id="viewTable" の tbody をマウス、またはカーソルキーで上下に 動かす動作を行います。 この動作と、TbodyMovableTag を組み合わせれば、左右分割等で同期をとりながら上下に動かしたり、 値を入れ替える(つまり、元の位置から動かない)や+1、−1するなどの機能を使う事で、 視覚的に上下を入れ替えたのその値を登録することが可能になります。 ガントテーブルでのマウスでの入れ替えなどに効果的です。 hayabusa.taglib.HeadTag#doEndTag() hayabusa.taglib.HeadTag#release2() hayabusa.taglib.HeadTag#setUseTbodyMovable( final String flag ) hayabusa.taglib.TbodyMovableTag.java 新規追加 gf/src/script/common/option/ogTbodyMovable.js 新規追加 [ViewI シリーズのクラス名 訂正] ViewI シリーズ(ViewIBar,ViewIGantt,ViewIGanttBar,ViewIHead,ViewIMatrix,ViewITable,ViewITask) について、タグクラスの最後に、 xxTag を入れ忘れていたため、訂正します。 クラス名の統一のためです。 tld の修正で、基本的には JSP画面は変更なしです。 hayabusa.taglib.ViewIBar.java → ViewIBarTag.java hayabusa.taglib.ViewIGantt.java → ViewIGanttTag.java hayabusa.taglib.ViewIGanttBar.java → ViewIGanttBarTag.java hayabusa.taglib.ViewIHead.java → ViewIHeadTag.java hayabusa.taglib.ViewIMatrix.java → ViewIMatrixTag.java hayabusa.taglib.ViewITable.java → ViewITableTag.java hayabusa.taglib.ViewITask.java → ViewITaskTag.java これに伴い、tld ファイルも修正します。 src/META-INF/hybstaglib.tld WEB-INF/hybstaglib.tld [image ファイル追加] image フォルダに、listImg.png、listnail.png、listS.png ファイルを追加します。 また、image/ext フォルダ以下のファイルも追加します。 src/META-INF/resources/jsp/image jsp/image [taglet og.doc03Linkタグの作成] タグレットで、タグリブマニュアルの属性クラス定義(DOC03)へのリンクを作成する 新しいタグ(og.doc03Link)を追加します。 インラインタグ 定義するので、DocletTagWriter#printTag( final Tag[] tag ) に 処理を追加する必要があります。 fukurou.taglet.DocletPlugin.java fukurou.taglet.DocletTagWriter#printTag( final Tag[] tag ) fukurou.taglet.DocletUtil#doc03LinkTag( final Tag tag ) fukurou.taglet.DocletUtil#getVERNO() fukurou.taglet.TagletDoc03Link.java 新規追加 fukurou.taglet.TagletValue.java コメント修正 [taglet og.doc03Linkタグの対応] カスタムタグクラスに、タグリブマニュアルの属性クラス定義(DOC03)へのリンクを 作成する為、og.doc03Linkタグ を記述します。 以下のクラスは、コメントのみ修正です。 hayabusa.taglib.BizLogicTag.java hayabusa.taglib.ButtonTag.java hayabusa.taglib.ColumnEditorTag.java hayabusa.taglib.ColumnTag.java hayabusa.taglib.DirectWriteTableTag.java hayabusa.taglib.EntryQueryTag.java hayabusa.taglib.GanttHeaderTag.java hayabusa.taglib.PlsqlUpdateTag.java hayabusa.taglib.ProcessTag.java hayabusa.taglib.QueryTag.java hayabusa.taglib.ReadTableTag.java hayabusa.taglib.ReportTableTag.java hayabusa.taglib.StackHeaderTag.java hayabusa.taglib.TableFilterTag.java hayabusa.taglib.TableUpdateTag.java hayabusa.taglib.UpdateTag.java hayabusa.taglib.ViewFormTag.java hayabusa.taglib.ViewIBarTag.java hayabusa.taglib.ViewIGanttBarTag.java hayabusa.taglib.ViewIGanttTag.java hayabusa.taglib.ViewIHeadTag.java hayabusa.taglib.ViewIMatrixTag.java hayabusa.taglib.ViewITableTag.java hayabusa.taglib.ViewITaskTag.java hayabusa.taglib.WriteTableTag.java [コメント修正] コメントのみの修正です。 plugin.develop.JspCreate_COLUMN.java plugin.develop.JspCreate_COMMENT.java plugin.develop.JspCreate_ORDER_BY.java plugin.develop.JspCreate_QUERY.java plugin.develop.JspCreate_SELECT.java [build.xml修正] TagletDoc03Link 対応の修正を行いました。 gf/build.xml 5.6.3.2 (2013/04/12) [ガント系タグ名、JavaScript名修正] gant ⇒ gantt に変更します。 対象は、iGantt , iGanttBar , adjustGantTable.js , adjustGantTable.css です。 gf/src/script/common/option/adjustGantTable.js gf/src/script/common/option/adjustGantTable.css [ガント系サンプル作成時の修正漏れ] GFで、ガント系のサンプルを作成した際に、関連する イメージや JavaScript の登録漏れがあったので、追加します。 jsp/common/option は登録されていましたが、src/script/common/option 側が未登録です。 jsp/image/status_0.png 〜 status_6.png gf/src/script/common/option/adjustMatrix.js gf/src/script/common/option/adjustField.js image/W_xxxx_L.png , image/W_xxxx_R.png , image/H_xxxx_L.png , image/H_xxxx_R.png を、削除します。 これを利用している JavaScriptを改造します。 gf/src/script/image/W_xxxx_L.png gf/src/script/image/W_xxxx_R.png gf/src/script/image/H_xxxx_L.png gf/src/script/image/H_xxxx_R.png [ガント系サンプルの組込み] ガント系を利用するに当たり、エンジンでJavaScriptの組込みをサポートします。 これは、headタグで、adjustEvent 属性で、指定する方式を採用します。 adjustEvent には、Bar、 Matrix、 Table、 Gantt、 Task が指定できます。 これらを組み込む際には、useGantt = "false" , useScrollBar = "false" も自動セットされます。 これに伴い、useGantt2 属性を廃止します。 hayabusa.taglib.HeadTag#doEndTag() hayabusa.taglib.HeadTag#release2() hayabusa.taglib.HeadTag#setUseGantt2( final String flag ) 廃止 hayabusa.taglib.HeadTag#setAdjustEvent( final String ajEvent ) addEvent( this, "load", "イベント名" ) を設定する文字列を作成する箇所を、メソッド化します。 addEventScript( final String event, final StringBuilder buf ) [色番号の並び順統一] 色の並び順を変更します。 きれいな画像ファイル順に統一します。これは、この関連のすべてに 同じ色番号を適用するように変更します。 jsp/common/option/adjustGantTable.js jsp/common/option/adjustBar.js var colorNoList = { "0" : "blue" , "1" : "black" , "2" : "brown" , "3" : "green" , "4" : "lightblue" , "5" : "lightgreen" , "6" : "orange" , "7" : "pink" , "8" : "purple" , "9" : "red" , "10" : "yellow" , "11" : "navy" , "12" : "teal" , "13" : "gray" , "14" : "indigo" , "15" : "slategray" , "16" : "chocolate" , "17" : "darkgreen", "18" : "violet" , "19" : "darkslategray", "20" : "lime" , "21" : "aqua" , "22" : "maroon" , "23" : "olive" , "24" : "silver" , "25" : "fuchsia" , "BK" : "black2" , "WT" : "white2" , "BL" : "blue2" , "RD" : "red2" , "YL" : "yellow2" , length : 26 } ; [javadoc の体裁] javaDocの訂正を整えるという事で、コメントに、 タグを使用している箇所を、 罫線付に変更します。
に置き換えます。 hayabusa/taglib/CookieTag.java(276): *
hayabusa/taglib/EngineTag.java(35): *
hayabusa/taglib/FileUpdateTag.java(387): *
hayabusa/taglib/HeadTag.java(1556): *
hayabusa/taglib/RequestCacheTag.java(301): *
hayabusa/taglib/TableMergeTag.java(959): *
hayabusa/taglib/TopMenuTag.java(1745): *
hayabusa/taglib/ValueTag.java(1063): *
hayabusa/taglib/ValueTag.java(1109): *
fukurou/db/DBFunctionName.java(27): *
fukurou/util/XHTMLTag.java(179): *
fukurou/util/XHTMLTag.java(252): *
fukurou/util/XHTMLTag.java(410): *
fukurou/util/XHTMLTag.java(456): *
fukurou/util/XHTMLTag.java(596): *
fukurou/util/XHTMLTag.java(645): *
fukurou/util/XHTMLTag.java(681): *
fukurou/util/XHTMLTag.java(948): *
fukurou/util/XHTMLTag.java(987): *
fukurou/util/XHTMLTag.java(1023): *
hayabusa/common/SystemParameter.java(64): *
hayabusa/common/SystemParameter.java(73): *
hayabusa/io/ChartFactory.java(46): *
hayabusa/remote/ClearResource.java(47): *
[ViewIシリーズ 新規追加] ViewIシリーズの特殊系を追加します。 hayabusa.taglib.ViewIBar.java 明細棒グラフ(横棒、縦棒) hayabusa.taglib.ViewIGantt.java ガントチャートのガント全体(ページ全体一つ設定)の指定 hayabusa.taglib.ViewIGanttBar.java ガントチャートの繰り返しタグのフォーマット hayabusa.taglib.ViewIHead.java 明細棒グラフで、バー部のヘッダー hayabusa.taglib.ViewIMatrix.java 配置図/座席表 hayabusa.taglib.ViewITable.java クライアント側でテーブルの左右分割 hayabusa.taglib.ViewITask.java 積上ガント(内部積上方式)でガント全体(ページ全体一つ設定)の指定 これに伴い、tld ファイルも修正します。 hybstaglib.tld サンプルJSPもタグ化します。 GF7203 iHead ヘッダー部補足ライン GF7204 iBar 縦棒(明細) GF7213 iMatrix 配置図/座席表 GF7215 iTable テーブルの左右分割スクロール GF7216,GF7217 iGantt ガント全体(ページ全体一つ設定)/ガント(積上) GF7216,GF7217 iGanttBar ガント要素(行毎に設定)/ガント(積上) GF7218 iTask ガント(内部積上) [ガント系 firefox対応] 曜日を出力する場合の段組みでは、全角スペースを使うように変更します。 ブラウザによっては、文字数の計算が合わず、だんだんずれてくるため。 hayabusa.taglib.GanttHeaderTag#doEndTag() [ガント系 積上げ(内部)処理] ガント系の積上げ(内部)処理のサンプル GF7218 が、うまく動いて いませでしたので修正します。 adjustGanttTable.css の class定義で、「.warncos t」とスペースが 入っていました。 src/script/common/option/adjustGanttTable.css .warncos t{ background : #FFAC59; } ⇒ .warncost{ background : #FFAC59; } 5.6.3.1 (2013/04/05) [ガント関連の修正] ガントで、カラーイメージファイルを増やします。 また、2013/03/08 で、0から9までの番号(colorNo)に変更しましたが、 色数対応を増やします。 #00FFFF aqua ../image/W_aqua.png #FF00FF fuchsia ../image/W_fuchsiav #00FF00 lime ../image/W_lime.png #800000 maroon ../image/W_maroon.png #808000 olive ../image/W_olive.png #C0C0C0 silver ../image/W_silver.png 色の判定方法を変更します。 colorNo で連想配列から取得し、マッチしなければ、数字化して取得を試みる方法に変更します。 数字化してというのは、連想配列の長さで割り算し、余を求めて色を繰り返しにするという事です。 gf/src/script/common/option/adjustGantTable.js color 属性で、switch 〜 case できっちり判定していた箇所を、直接指定に変更します。 今まで、存在しなければ、W_blue.png を返す設定になっていましたが、 そもそも、色コード指定の場合は、存在している画像を表示させるという前提で、 簡略化します。 画像がなければ、表示しないだけです。 gf/src/script/common/option/adjustGantTable.js var colorNoList = { "0" : "navy" , "1" : "green" , "2" : "teal" , "3" : "lime" , "4" : "aqua" , "5" : "maroon" , "6" : "purple" , "7" : "olive" , "8" : "gray" , "9" : "silver" , "10" : "fuchsia" , "11" : "darkslategray" , "12" : "indigo" , "13" : "slategray" , "14" : "lightgreen" , "15" : "brown" , "16" : "lightblue" , "17" : "chocolate" , "18" : "darkgreen" , "19" : "violet" , "20" : "orange" , "21" : "pink" , "BK" : "black" , "WT" : "white" , "BL" : "blue" , "RD" : "red" , "YL" : "yellow" , length : 22 } ; COLORNO カラー番号 と、COLORPIC 色選択 のリソースを追加します。 COLORNO カラー番号は、2桁の "0" 〜 "21" , "BK","WT","BL","RD","YL" のコードにそれぞれ色を 割り当てたコードリソースです。 このコードリソースでは、名前に、
   
というタグを設定することで 一覧表示で、色のセルを作成します。また、プルダウンメニューでは、コードパラメータに、clr_XXXX という値を 設定することで、(XXXX は、色名称)色つきのプルダウンメニューを作成します。 これに伴い、default.css ファイルに、class属性となるキーを追加します。 gf/src/script/common/default.css ge/db/common/xml/update/const/GEA03.xml , GEA04.xml , GEA08.xml COLORPIC 色選択 は、システムID="GF" サンプルとして用意します。 表示種別="COLOR:色表示" 編集種別="COLOR:色表示" のカラーピッカーサンプルです。 jsp/GF6000/result.jsp gf/db/common/xml/update/const/GEA03.xml , GEA04.xml , GEA08.xml [Renderer_COLORの修正] Renderer_COLOR は、input タグのreadonly設定で表示していましたが、divタグに変更します。 経緯は不明ですが、基本的には、Renderer なので、値の送信は不要なので、input に する必要はないと思われます。 plugin.column.Renderer_COLOR.java 基本的には全面書き換え [BizLogicの修正] exist で、isErrThrow 引数を追加します。 isErrThrow は、エラーが発生した場合に、エラーメッセージ(ErrorMessage)に書き込むかどうかを指定します。 基本は、互換性を考慮し、true(書き込む)です。 false にするケースは、存在チェックを行い、あれば更新、なければ追加 など後続処理を行いたい場合に使います。 fukurou.business.AbstractBizLogic#exist( ・・・ ) [ViewForm_ImageTimeBarの修正] ViewForm_ImageTimeBar で、短縮ラベルなど、タグが付与される値を使用すると、 イメージとして、そのまま出力されるため、span タグを削除します。 ここでは、YYY を、YYY だけにします。 spanは、先頭から始まり、1度のみ現れる前提の処理です。 複数繰り返される場合は、今回の対応外です。(その場合は、専用に作る必要があります。) plugin.view.ViewForm_ImageTimeBar#create( final int startNo, final int pageSize ) plugin.view.ViewForm_ImageTimeBar#calcImageSize( final int startNo , final int lastNo ) plugin.view.ViewForm_ImageTimeBar#imageHeaderPaint( final Graphics2D g2 , final double timeScale , final ColorMap colMap ) [Calc帳票の修正] 条件付き書式の場合のスタイル置換処理に不具合があるため修正します。 置換時に属性終了のダブルクオートが考慮されていないため、想定外の置換となっていました。 ダブルクオートを加えるようにします。 hayabusa.report2.OdsContentParser#writeParsedRow( final String row, final BufferedWriter bw, final String sheetNameOrig, final String sheetNameNew )