Archive for the 'Myriad Tables Lib' Category

2017/02/23 Myriad Tables v1.0.7がリリースされる

Shane StanleyによるAppleScript Libraries「Myriad Tables Lib」のバージョン1.0.7がリリースされました。AppleScriptから手軽に「表」インタフェースを利用可能にするものです。

table3.png

同ライブラリをサイトからダウンロードし、~/Libraries/Script Librariesフォルダに入れるとAppleScriptから使えるようになります(このフォルダが存在しない場合には作成)。

tables01.png

tables02.png

同ライブラリにはAppleScript用語辞書が用意されており、Script Editorに直接ドラッグ&ドロップではなく、いったんScript Editorの「ライブラリ」ウィンドウに登録し、リスト上の「Myriad Tables Lib」を選択した状態で「用語説明を開く」をクリックすると、用語辞書の内容を確認できます。

tables003.png

tables004_resized.png

一般的に、Excel書類やCSVなどで支給されたデータに対して、どの行のデータを処理するかをセルの選択範囲で明示的にScriptに対して指示することはよくあります。ただ、実行環境にMicrosoft Excelがすべてインストールされているわけでもありません。

Myriad Tables Libがあれば、CSVデータ中の処理範囲を選択したり、簡易的なデータ入力・確認用のGUIをAppleScriptから利用できます。

Myriad Tables Lib 1.0.7の新機能として紹介されているものを、同ライブラリ添付のサンプルコードから紹介してみましょう。

新機能:セルのダブルクリックを「OK」ボタンのクリックと等価とみなす「double click means OK」オプション

table1.png

AppleScript名:double click means OK
use AppleScript version “2.4″ – Yosemite (10.10) or later
use framework “Foundation”
use scripting additions
use script “Myriad Tables Lib” version “1.0.7″

– This table shows how to use the ’double click means OK’ parameter
display table with data {“One”, “Two”, “Three”, “Four”, “Five”} with title “Simple table” with prompt “You can double-click an entry rather than selecting and pressing OK” with double click means OK and empty selection allowed

–> {rows selected:{5}, values selected:{”Five”}, values returned:{”One”, “Two”, “Three”, “Four”, “Five”}, button number:1, timed out:false, final position:{978.0, 254.0, 246.0, 278.0}}

★Click Here to Open This Script 

新機能:ダイアログの表示座標を指定する「initial position」オプション

table2.png

AppleScript名:initial position
use AppleScript version “2.4″ – Yosemite (10.10) or later
use framework “Foundation”
use scripting additions
use script “Myriad Tables Lib” version “1.0.7″

– This table shows the use of the ’initial position’ parameter to set the dialog’s position
set theTable to make new table with data {{1.0, 1, 1.11, 1}, {-2.0, 2, 2.2, 2}, {3.11, -3, 3.11, 3}, {4.0, 4, -4.41, 4}, {5.0, 5, 5.55, -5}} column headings {“Reals”, “Integers”, “Reals”, “Integers”} with prompt “This table appears at the top-left of the screen” with double click means OK and empty selection allowed
modify table theTable initial position {0, 0} with alternate backgrounds
display table theTable

★Click Here to Open This Script 

initial positionでは画面上の表示座標だけでなく、サイズ{表示位置(X), 表示位置(Y), 表示幅(X),表示高さ(Y)}の指定も可能です。

AppleScript名:initial position_2
use AppleScript version “2.4″ – Yosemite (10.10) or later
use framework “Foundation”
use scripting additions
use script “Myriad Tables Lib” version “1.0.7″

– This table shows the use of the ’initial position’ parameter to set the dialog’s size and position
set theTable to make new table with data {{1.0, 1, 1.11, 1}, {-2.0, 2, 2.2, 2}, {3.11, -3, 3.11, 3}, {4.0, 4, -4.41, 4}, {5.0, 5, 5.55, -5}} column headings {“Reals”, “Integers”, “Reals”, “Integers”} with prompt “This table’s size and position have been set in the script” with double click means OK and empty selection allowed
modify table theTable initial position {100, 10, 400, 400} with alternate backgrounds
display table theTable

★Click Here to Open This Script 

新機能:ダイアログの前回表示位置&サイズを取得する「final position」

AppleScript名:final position
use AppleScript version “2.4″ – Yosemite (10.10) or later
use framework “Foundation”
use scripting additions
use script “Myriad Tables Lib” version “1.0.7″

– This table shows how to retrieve the final position and size of the dialog
set theTable to make new table with data {{1.0, 1, 1.11, 1}, {-2.0, 2, 2.2, 2}, {3.11, -3, 3.11, 3}, {4.0, 4, -4.41, 4}, {5.0, 5, 5.55, -5}} column headings {“Reals”, “Integers”, “Reals”, “Integers”} with prompt “Move and resize this dialog before clicking OK” with double click means OK and empty selection allowed
modify table theTable with alternate backgrounds
set theResult to display table theTable
set theBounds to final position of theResult

– This table is positioned using the results from the previous one
set theTable to make new table with data {{1.0, 1, 1.11, 1}, {-2.0, 2, 2.2, 2}, {3.11, -3, 3.11, 3}, {4.0, 4, -4.41, 4}, {5.0, 5, 5.55, -5}} column headings {“Reals”, “Integers”, “Reals”, “Integers”} with prompt “This table’s size and position should match those used last time” with double click means OK and empty selection allowed
modify table theTable initial position theBounds with alternate backgrounds
display table theTable

★Click Here to Open This Script 

2016/02/13 Myriad Tables Libによる表インタフェースの表示

Shane StanleyによるAppleScript Libraries「Myriad Tables Lib」のバージョン1.0.0を試してみました。

同ライブラリをダウンロードして、「Myriad Tables Lib.scptd」を~/Libraries/Script Libraries」フォルダに入れると利用可能になります。

以前からいろいろTable ViewをAppleScript上で表示させたりしていましたが、それのデラックス版です。同ライブラリにはAppleScript用語辞書やドキュメントもついているため、手軽に表インタフェースを表示できます。

table1.png

table3.png
▲ヘッダー行をクリックすると当該セルをキーとしたソートを行う

table4.png
▲ヘッダー行を再度クリックすると当該セルをキーとした逆順ソートを行う

table5.png
▲popup menuの表示も可能

table6.png
▲選択+入力が可能なcombo boxの表示も可能

AppleScriptによるワークフローにこうした表インタフェースをつけることの意味は、処理前のデータの確認(CSVファイルなど)、処理範囲の指定(選択範囲のみ処理するとか)、処理後の結果確認などを手軽に行えるというあたりにあります。

# テーブル内容のしぼりこみ表示が行えるとなおよいでしょう

データ処理を行う対象を指定するためだけにExcelが必要、といった話がよくありましたが、こうしたGUI部品をAppleScriptから手軽に(Xcodeを使わずに)必要な部分だけ呼び出せることにはメリットがあります。

table2.png
▲フルオプション指定時

いろいろとオプションを指定すると、行番号や選択範囲の削除/新規作成、カスタムビューの追加表示(accessory view)なども行えます。accessory viewについては、とりあえずNSImageViewを表示してみましたが、これに「飾り」以上の意味づけがあるのかどうかが気になります。

同梱のSampleを見てみたら、オプションのチェックボックスの値を取得していました。そういう使い方ができるもよう。ただし、accessory viewに指定できるビューの最大サイズに制限があるため、ここに巨大なWebViewを表示するとかMKMapViewを表示するのは苦しい。

この表インタフェース上ですべてのデータ入力を行ってもらうといった使い方は向いていないので(不可能ではないものの、途中でScriptがクラッシュしたときに途中のworkファイルが保存されていない)、あくまで内容確認、処理範囲選択などの用途に活用するとよいのではないでしょうか。

AppleScript名:かんたんなテーブルの表示
– Created 2016-02-07 by Takaaki Naganoya
– 2016 Piyomaru Software
use AppleScript version “2.4″
use scripting additions
use framework “Foundation”
use script “Myriad Tables Lib”

set x to {a:1.4} – 未サポートクラス(record)は表示できないが、無視される
set theHeads to {“名”, “姓”, “インデックス”, “チェックボックス”, “スコア”, “日付”} –ヘッダー
set theDate to current date

set someData to {{“長野谷”, “隆昌”, 1, true, 10000, theDate, x}, ¬
  {“長野谷”, “ぴよまる”, 2, true, -13.5, theDate, x}, ¬
  {
“長野谷”, “ぴよこ”, 3, false, 9.0, theDate + 40000, x}, ¬
  {
“長野谷”, “ぴよぴよ”, 4, false, 1.23456789E+7, theDate + 50000, x}, ¬
  {
“長野谷”, “ぴよきち”, 5, true, 133.4567, theDate + 30000, x}, ¬
  {
“長野谷”, “ぴよまろ”, 6, false, 22.0, theDate + 60000, x}}

–テーブルの各列のデータ表示形式はこのテンプレートをもとにしている
set theTemplate to {“”, “”, 1, true, 1, current date, missing value}

–Step1- 必須操作。最初にデータを作成する必要がある
set myTable to make new table with data someData ¬
  with title “テーブルサンプル” column headings theHeads ¬
  
with prompt “複数行選択可。 すべてのデータは編集可能です。” editable columns {} ¬
  
row template theTemplate ¬
  
with multiple selections allowed and empty selection allowed

–Step 2-テーブルの表示オプション(ハイライト表示、枠線表示など)。本Stepは省略可
modify table myTable highlighted rows {} ¬
  grid style grid both dashed between rows ¬
  
OK button name “OK” with OK button is default

–Step 3テーブル表示を行う
set theResult to (display table myTable)
–>  {rows selected:{1}, values selected:{{”長野谷”, “隆昌”, 1, true, 10000, date “2016年2月8日月曜日 18:13:07″, {a:1.4}}}, values returned:{{”長野谷”, “隆昌”, 1, true, 10000, date “2016年2月8日月曜日 18:13:07″, {a:1.4}}, {”長野谷”, “ぴよまる”, 2, true, -13.5, date “2016年2月8日月曜日 18:13:07″, {a:1.4}}, {”長野谷”, “ぴよこ”, 3, false, 9.0, date “2016年2月9日火曜日 5:19:47″, {a:1.4}}, {”長野谷”, “ぴよぴよ”, 4, false, 1.23456789E+7, date “2016年2月9日火曜日 8:06:27″, {a:1.4}}, {”長野谷”, “ぴよきち”, 5, true, 133.4567, date “2016年2月9日火曜日 2:33:07″, {a:1.4}}, {”長野谷”, “ぴよまろ”, 6, false, 22.0, date “2016年2月9日火曜日 10:53:07″, {a:1.4}}}, button number:1, gave up:false}

★Click Here to Open This Script