電子書籍の新刊を発売しました。新シリーズ「AppleScript基礎テクニック集」の第18巻、「グラフ表示ダイアログ」です。PDF 37ページ、付録AppleScriptのZipアーカイブを添付。
→ 販売ページ
地味で控え目なAppleScriptにおいて、ダイアログ上でアニメーション表示可能なグラフを表示できるようになったのは、ごくささいな小さな発見があったためです。
macOS 10.10以降ですべての実行環境でサポートされるようになったCocoa呼び出し機能。当然WebViewも生成して表示可能なことはわかっていました。ところが、標準的なNSWindowの上にWkWebViewを配置して初期設定を行なっただけでは、WkWebView上のイベント回しが効かず、アニメーション表示は行えませんでした。
ところが、そんな状況を打破したのはNSAlertダイアログ。ごくごく限られたUIを乗せて利用するようにメーカー側から指導されてきた、誰も見向きもしなかった間に合せのダイアログ表示インタフェースです。
ところが、このNSAlert上でWkWebViewを表示すると、Webコンテンツのイベント回しをきちんと処理して、グラフ表示アニメーションやマウスによる操作、マウスカーソル移動のマウスオーバーのイベントにも反応することがわかりました。
ここから、さまざまなJavaScript製グラフ表示ライブラリを試行錯誤し、今日ではテキストエディタ上の選択範囲のテキストの文字種別を円グラフでアニメーション表示するといった、きわめて身近で日常的な用途に手軽にグラフ表示ダイアログが利用されるようになりました。
このやり方について、基礎的なところから詳細に解説を行い、実際に動くコードを提示し、macOS上のさまざまな実行環境での状況をご紹介しています。
■グラフ表示ライブラリでダイアログ上にグラフ表示
グラフ表示ダイアログの全体像
グラフ表示ダイアログの構成技術
組み立てるWeb系データの構造
CDN上のグラフ表示ライブラリを呼ぶ
Web表示部品をダイアログ上に表示
JavaScriptで扱えるデータを組み立てる
AppleScriptのバンドル中からhtmlを読み込む
HTMLテンプレートファイルを準備
■Webダイアログ表示ライブラリを呼び出し
HTMLテンプレートをまとめる作業
JavaScript書き換え例
Webダイアログで
さまざまなグラフを表示
AMCharts:円グラフ
AMCharts:棒グラフ
AMCharts:ワードクラウド
AMCharts:世界地図+国選択
AMCharts:世界地図(ドリルダウン)+国選択
■さまざまなランタイム環境でWebダイアログ表示を実行
特殊なAS実行環境ではさらなる変更も必要
Automator環境では、表示されない
ショートカット環境では、表示されない
Switch Control環境では表示OK!
Service Station環境で動作
Stream Deck環境で動作
FileMaker Pro環境では動く
Visual Studio Code環境で表示OK(一応)