FinderSelection
FinderSelection は Finder で選択されている物から条件にあったファイル/フォルダを取得するAppleScript ライブラリです。
AppleScript をスクリプトメニューや何らかのランチャーから起動して、Finderで選択されている物を取得して処理を行う・・・そのような AppleScript を FinderSelection はエラー処理を含めて気の利いた処理をほんの数行で実現できます。
例えば、ワープロでフォントの変更を行う場合、テキストを選択して、それからメニューからフォントを選びますよね。そして、その結果が選択されているものにダイレクトに反映されますね。AppleScript でも、スクリプトを実行したら対象ファイルを取得するためにダイアログを開くのではなく、選択項目を取得してダイアログを開くことを極力避けるのがスマートであると考えます。
「Finder で選択されているものを取得する」という処理は一見簡単ですが、次のようなエラー処理を含めて、気の利いた処理を行うのは結構大変です。
- Finder の選択物の中から必要なもの(種類、ファイルタイプ、拡張子 で指定)だけを選び出す。
- 選択物がなかったり条件に該当するものがなかったら、ファイル選択ダイアログを開く。
- アプレット/ドロップレットの場合、Finder からダブルクリックによって起動されたら、ファイル選択ダイアログ を開く。
- 選択物中にエイリアスファイルが含まれていたら、オリジナルへの参照を取得してオリジナルが条件に該当するか調べる。
- エイリアスファイルのオリジナルを求めない動作を設定する事もできます。
FinderSelection はこのような複雑な処理をほんの数行で実現できます。
更新履歴
- 2.1.1 -- 2020-01-30
- HelpBook.osax の代わりに、OpenHelpBook.scptd を使うようにした。
- 2.1 -- 2016-10-20
- OS X 10.9 で導入された AppleScript Libraries として使えるようにした。
- ModuleLoader.osax への依存性を無くした。
- OS X 10.9 以降が必要になった。
- set_types にファイルタイプだけでなくUniversal Type Identifier (UTI) も設定できるようにした。
- Help Book のレイアウトを更新。
- 2.0.8 -- 2014-09-12
- is_insertion_location を追加
- is_same_to_me を AppleScriptObjC で使用するとエラーが起きる不具合を修正。
- 2.0.7 -- 2010-09-18
- is_same_to_me を追加。
- 実行アプリケーションもしくはスクリプト自身を選択している時に開かれるファイル選択ダイアログの設定(prompt message とか)が正しく反映されない不具合を修正。
- 2.0.6 -- 2010-09-10
- 最新の ModuleLoader に対応。
- 2.0.5 -- 2009-04-30
- 以下の条件のとき、chooser が開かれない不具合を修正。
- FinderSelection を使ったスクリプトをアプリケーションバンドルとして保存した時。
- Finder でダブルクリックで起動。
- set_resolve_alias(false)
- 以下の条件のとき、chooser が開かれない不具合を修正。
- 2.0.4 -- 2009-03-09
- インスタンスに対して、set_use_insertion_location が正しく機能しない不具合を修正。
- 2.0.3 -- 2008-04-05
- set_use_insertion_location を追加
- ゴミ箱や computer container が選択されているとエラーが起きる不具合を修正
- 2.0.2 -- 2008.02.04
- make_for_package, setup_for_package を追加
- 2.0.1 -- 2007.03.30
- 実行によってヘルプが表示されない不具合を修正
- 2.0 -- 2007.02.27
- TypicalRun 改め FinderSelection
- 完全に書き直しました。
- 1.6.3 -- 2004.12.18
- Mac OS X 向けに書き直しました。
- property withResolveAlias を追加。
- 1.5.2 -- 2000.08.11
- (たぶん)より、object指向っぽい仕様に大変更
- MacOS 9でも動きます。
- 1.4.1 -- 2000.4.29
- 長い長い開発期間?を経て、やっと公開にこぎつけました。