ノーツWEBビューに表示しきれないテキストをツールチップで表示する方法を比較したとき、

OS(Windows)、ブラウザが提供する機能に依存したtooltipには、次の制約があると書きました。

  (1) フォントのサイズが小さい

  (2) 表示時間が短い     

その後、確認したことをまとめておきます。

 

1.Windows Visaの場合のデフォルト 

  フォントサイズ   9ポイント

  表示持続時間   5秒


2.デフォルトから変更する方法: (確認環境 Windows Vista) 

 IE8  

 ・フォントサイズ  画面のデザインの設定 詳細設定 [ヒント] フォント サイズ  

 ・表示持続時間  画面設定による変更不可  個別アプリで要対応

              

 FireFox3.0.15 

 ・フォントサイズ  画面のデザインの設定 詳細設定 [メッセージボックス] フォント サイズ

   *ヒント での変更により背景色は変わりましたが、サイズは、メッセージボックスで変更でき

    ました。ただ、メッセージボックスのフォントサイズを変更すると、その影響は広範囲です。

    例えば、ノーツクライアントのワークスペースのDBタイトル、アプリケーション中のアウト

    ラインの文字、フォーム中の文字も大きくなります。

 ・表示持続時間  画面設定による変更不可 

            FireFox用のアドオン No Tooltip Timeout がありました。

            これを組み込むとマウスを置き続ける限りツールチップが表示されます。


Windows画面デザインでのフォントサイズの変更は、ブラウザだけでなく、Windowsタスクバー他、多くのアプリケーションに及びます。 より大きなツールチップを必要とするユーザは、それぞれWindows画面の設定を変えることができます。ただし、フォントのサイズが大きくなるとツールチップの表示が大きくなり、それにより隠される範囲も広くなります。


会社で使うPCも、大きなモニターのついたデスクトップPCからA4のノートPCが多くなり、視力が弱いと、各自で工夫せざるをえません。私も夜、眼が疲れてくると「拡大鏡」をよく使いました。今はIE8の「拡大」機能を重宝しています。今回試したメッセージボックスのサイズ設定変更も使えそうです。



ノーツWEBビューでの長い列テキストの表示問題に戻ると、列要素にtitle属性を持たせてその値をツールチップとして表示させる方法は開発者側からすれば簡単ですが、ブラウザがIEの場合、5秒の制約があります。5秒以内に読めないような長いテキストをツールチップとして表示するのであれば、title属性に頼らず、個々のWEBアプリケーション側で作り込まなければなりません。


なお、ノーツWEBアプリケーション向けに、個々のボタン、フィールドにtitle属性をもたせるのは、デザイナーで各要素のHTMLタブのタイトルにツールチップとして表示したいことを記述するだけです。 デフォルトサイズ9ポイント、表示5秒ですが、ユーザの利便性が高くなるように、もっと利用されてよいと思います。


GRIDを使ったビューでは、ビューの設計で指定した列幅を反映し、かつ、長い列の内容をそのまま表示できます。マウスで列幅を広げたり狭めたりもできます。


a Lotus Notes 開発者 ブログ-viewByDojoGrid


ビューの設計を?ReadDesignで、ビューの内容を?ReadViewEntriesで取り込み、それを多機能なスーパーテーブル(dojoのgrid)に埋め込んで表示しています。

ドミノサーバからHTMLを受け取るのでなく、ブラウザ上でWEBビューのHTMLを作成しています。


上画面の元は、Lotusphere2008 BP212 The Great Code Giveaway: "Beyond Cool"  でプレゼンされたドミノ用のGRIDです。解説はDojo Grid with Domino Views にあります。


Javascriptライブラリのdojo、ドミノ用のdojo拡張javascript、それを呼び出すHTMLページを使います。上のブラウザ画面は、次の手順で作成しました。

(1)Javascriptライブラリのdojo、ドミノ用のdojo拡張ドミノサーバのdata/domino/html以下に配置

(2)サンプルDB中のGrid_2ページを、テスト用のDBにコピーし、ページ中の対象ビュー名指定を変更

(3)既存ビューの設計変更

 ・ビューのタイトル列の値を、文書を開けるようにHTMLを追加(パススルーHTMLではありません)

"<a href=\"./" + @Subset(@ViewTitle ; 1) + "/" + @Text(@DocumentUniqueID) + "?OpenDocument\">" + Tex_TITLE + "</a>"

 ・ソート用の非表示列をその前に挿入  

 ・カテゴリー列をカテゴリーなしに変更


 *サンプルDBは、Domino702以降で試せるとのことです。

 *次のURLで手軽に確認できます。動作するサンプルDBが、なぜか他の会社のサイトに置いてありました。

 http://its3.itscorp.ws/snapps_mentor/Sessions.nsf/grid_8?OpenPage

  grid_8の数字部分をかえて、grid_1からgrid_9まで表示を確認できます。


このビュー設計の多展開は容易です。ただし、一般的なノーツWEBビューの機能、カテゴリーでの省略・展開、ビューでの検索機能がありません。


ReadViewEntriesは、NamePickerでも利用しましたが、カテゴリー列を含むビューでは、そうでないビューと全く違ったレスポンスを返してきます。 それをどうやってGRIDに収め、省略展開し、必要データを追加要求するか、頭を抱えてしまいます。



Notesのビューには、設計とデータが含まれます。


「生成済みHTMLを使用」

ビューのプロパティ設定で、WEBアクセス時の表示として「生成済みHTMLを使用」を選択し、DominoサーバにビューのHTML化をまかせると、、

ビュー全体が<TABLE>として扱われ、

設計の一部をHTML要素の属性として追加し、

ヘッダーのタイトル、ビューの列値をTABLEに埋め込んで

ブラウザに送ってきて、ブラウザはそれを表示するだけです。

それで不足の場合は、パススルーHTMLを使って、HTMLをヘッダーや列値に追加することができます。


WEBアクセス時の表示で、「HTMLとして扱う」とすると、ヘッダーのタイトル、ビューの列値の羅列がブラウザに送られるだけになるので、

ビュー・それを埋め込むページの設計において、<table><th><td>などを適宜追加することになります。


「GRIDを使ってブラウザでビュー表示する」

「GRIDを使ってブラウザでビュー表示する」は、ビューのHTML化をDominoサーバーにまかせず、また、ビューの設計とデータをそれぞれとりこみます。

設計を取り込むのに、ReadDesignを、データを取り込むのに、ReadViewEntriesを使います。


ReadViewEntriesなので、長い内容の列値もそのままブラウザに送られます。


http://hostname/dbname/ viewname?ReadDesignで、ブラウザに送られる設計情報を確認できます。

設計を取り込むので、ビュー標準の列幅の指定も、有効であり、


「Javaアプレットを使用」

もうひとつの選択肢、ビューを「Javaアプレットを使用」とすると、ブラウザにアプレットが送られ、アプレットの動作としてビューデータが取り込まれます。





「HTMLとして扱う」