From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/ja/places/index.html | 69 +++++++++++++++ files/ja/places/view_controller/index.html | 130 +++++++++++++++++++++++++++++ 2 files changed, 199 insertions(+) create mode 100644 files/ja/places/index.html create mode 100644 files/ja/places/view_controller/index.html (limited to 'files/ja/places') diff --git a/files/ja/places/index.html b/files/ja/places/index.html new file mode 100644 index 0000000000..9f0c841659 --- /dev/null +++ b/files/ja/places/index.html @@ -0,0 +1,69 @@ +--- +title: Places +slug: Places +tags: + - Add-ons + - Developing Mozilla + - Extensions + - Places +translation_of: Mozilla/Tech/Places +--- +
+ + +

Placesは Firefox 3 で導入されたブックマークと履歴の管理システムです。ユーザがより簡便に操作できるように、より柔軟で複雑な検索を可能としています。また、favicon のストレージなどのいくつかの新しい機能や、ページに対して注釈として任意の情報を付加するような機能を含みます。さらに、これらの情報を管理するために新しい UI が導入されています (※詳細 : Places on the Mozilla wiki)

+ + +

Places はデータをmozStorage インタフェースを通して SQLite データベースに格納します。

+ + + + + + + + + + +
+

ドキュメント

+
+
Places migration guide
+
既存のコードを Places API に対応させる方法について
+
Manipulating bookmarks using Places
+
Places API を使用した、ブックマークの操作の方法の例
+
Using the Places tagging service
+
タグ操作のサービスの使い方
+
Using the Places history service
+
Places API を使用して、履歴の情報にアクセスする方法について
+
Using the Places favicon service
+
Places API を使用して、 favicon を操作する方法について
+
Using the Places livemark service
+
ライブブックマークの作成と管理をする方法について
+
Using the Places annotation service
+
注釈サービスを使う方法について
+
Querying Places
+
ブックマークと履歴のシステムから特定のパラメータを使って検索をする方法について
+
Retrieving part of the bookmarks tree
+
クエリを用いて、ブックマークツリーの一部を取得する方法について
+
Displaying Places information using views
+
あなたのアプリケーションもしくは拡張でPlacesの情報を表示する Places ビューを使う方法について
+
Places utilities for JavaScript
+
Places との動作を簡単に作るための便利なライブラリについて
+
+

すべてを見る

+
+ +
+
The Placesデータベースの設計
+
Places のデータベースの設計のハイレベルな概要
+
History Service Design
+
履歴サービスの設計について
+
Bookmark Service Design
+
Bookmark サービスの設計について
+
Annotation Service Design
+
注釈サービスの設計について
+
The Places "frecency" algorithm
+
Places を基盤としたロケーションバー (通称 "awesomebar") のデザインとアルゴリズム
+
+
diff --git a/files/ja/places/view_controller/index.html b/files/ja/places/view_controller/index.html new file mode 100644 index 0000000000..8ff441435e --- /dev/null +++ b/files/ja/places/view_controller/index.html @@ -0,0 +1,130 @@ +--- +title: View Controller +slug: Places/View_Controller +tags: + - Developing Mozilla + - Extensions + - Places +translation_of: Mozilla/Tech/Places/View_Controller +--- +

+

草案
+ このページは完成していません。

+ +

+ +

コントローラはPlaces model-view-controller 設計におけるコンポーネントの1つです。コントローラは有効化、無効化を受け取り、Places viewの状態を元にコマンドを実行します。

+ +

Placesは組み込み済みのコントローラを提供していますが、異なった目的のコントローラはアプリケーション中で使われており、Placesに特有のものではありません。一般的なコントローラの情報については、XULチュートリアル内のCommandsおよびUpdating Commandsのページを参照してください。

+ +

The built-in controller

+ +

PlacesではPlacesControllerという組み込みコントローラが提供されており、browser/components/places/content/controller.jsにてプロトタイプが定義されています。組み込みPlacesビューではPlacesController自動的にが使われるので、組み込みビューを使用する場合、コントローラを新たに書き起こす必要はありません。しかしながら、XUL文書内にPlacesControllerのソースを含める必要があります。ソースを含めるのには、browser/components/places/content/placesOverlay.xulをオーバーレイするのが推奨されます。このファイルは、組み込みPlacesコンテクストメニューとXUL commandsetを含みます。詳しくは、Displaying Places information using viewsを参照してください。

+ +

PlacesControllerでサポートされている全てのコマンドをあなたのカスタムビューがサポートしており、また、PlacesControllerのコマンドしかサポートしていないのであれば、PlacesControllerをそのまま使うこともできます。もしあなたのビューが、これらのコマンドのサブセットだけをサポートしているのならば、PlacesControllerの長所のみを使用できるかもしれません。後述のCreating custom controllersを参照してください。

+ +

Places commands

+ +

PlacesController がサポートしているコマンド及びその詳細が下記に一覧されています。

+ +

コマンドの多くが、コントローラのビューにおいて現在選択されているノードを操作します。ただし注記しておきます。ビューのnsIPlacesViewインターフェイスのselectedNode プロパティを読み取ることによって選択されたノードは発見されます。selectedNode プロパティではビューはひとつのノードしか選択しないと仮定されているので、selectedNode プロパティに依存するコマンドもまた、ビューがひとつのノードしか選択していないと仮定しており、ビューが複数のノードを選択している場合にはコマンドは動作しません。

+ +

いくつかのコマンドはコントローラのビューの結果に新規ノードを追加します。結果としてノードが挿入される位置は、ビューのnsIPlacesViewインターフェイスのnsIPlacesViewプロパティで定義された位置となります。

+ +
+
placesCmd_deleteDataHost
+
nsIPrivateBrowsingService.removeDataFromDomain().を呼び出すことによって、選択されたノードのドメインについての全てのデータを削除します。
+
placesCmd_moveBookmarks
+
選択されたノードを別のフォルダに移動させるのに使われるUIが表示されます。先述の1つのノードの選択に関する注記は適用されません。このコマンドはビューのnsIPlacesView.getSelectionNodes()を呼び出します。
+
placesCmd_new:bookmark
+
PlacesUIUtils.showAddBookmarkUI()を呼び出すことによって、新規ブックマークを追加する際に使われるUIを表示します。新規ブックマークはビューの挿入位置に挿入されます。もし挿入位置が存在しない場合は、NS_ERROR_NOT_AVAILABLEが投げられます。
+
placesCmd_new:folder
+
PlacesUIUtils.showAddFolderUI()を呼び出すことによって、新規フォルダを追加する際に使われるUIを表示します。新規フォルダはビューの挿入位置に挿入されます。もし挿入位置が存在しない場合は、NS_ERROR_NOT_AVAILABLEが投げられます。
+
placesCmd_new:livemark
+
PlacesUIUtils.showAddLivemarkUI().を呼び出すことによって、新規ライブブックマークを追加する際に使われるUIを表示します。新規ライブブックマークはビューの挿入位置に挿入されま す。もし挿入位置が存在しない場合は、NS_ERROR_NOT_AVAILABLEが投げられます。
+
placesCmd_new:separator
+
ビューの現在の挿入位置に新規セパレータが追加されます。もし挿入位置が存在しない場合は、NS_ERROR_NOT_AVAILABLEが投げられます。
+
placesCmd_open
+
PlacesUIUtils.openNodeIn()を呼び出し、現在のタブに、ビューで選択しているノードを開きます。
+
placesCmd_open:tab
+
PlacesUIUtils.openNodeIn()を呼び出し、新規タブに、ビューで選択しているノードを開きます。
+
placesCmd_open:window
+
PlacesUIUtils.openNodeIn()を呼び出し、新規ウィンドウに、ビューで選択しているノードを開きます。
+
placesCmd_reload
+
nsILivemarkService.reloadLivemarkFolder()を呼び出し、ビューで選択されているノードがライブブックマークであれば、再読み込みをします。
+
placesCmd_reloadMicrosummary
+
nsIMicrosummaryService.refreshMicrosummary()を呼び出し、ビューで選択されているノードがmicrosummaryであれば、再読み込みをします。
+
placesCmd_show:info
+
PlacesUIUtils.showItemProperties()を呼び出し、ビューで選択されているノードのプロパティ編集UIを表示します。
+
placesCmd_sortBy:name
+
nsIPlacesTransactionsService.sortFolderByName()を呼び出し、選択されているノードがフォルダであれば、フォルダ内のソートを行います。
+
+ +

PlacesController はまた、標準の編集コマンドをサポートしています。

+ +
+
cmd_copy
+
ビューで選択されているノードをクリップボードにコピーします。先述の1つのノードの選択に関する注記は適用されません。このコマンドはビューのnsIPlacesView.getSelectionNodes()を 呼び出します。
+
cmd_cut
+
ビューで選択されているノードをクリップボードにコピーし、ノードを削除します。このコマンドの実装は、コピーに続けて削除を行う単純なものです。
+
cmd_delete
+
ビューで選択されているノードを削除します。 このコマンドはビューのnsIPlacesView.getRemovableSelectionNodes()を呼び出します。
+
cmd_paste
+
ビューの結果の現在の挿入位置にクリップボードのノードを追加します。もし挿入位置が存在しない場合は、NS_ERROR_NOT_AVAILABLEが投げられます。
+
cmd_redo
+
PlacesUIUtilsで保持されたnsIPlacesTransactionsServiceインスタンスのnsITransactionManager.redoTransaction()を呼び出して、最後のPlacesトランザクションをredoします。
+
cmd_selectAll
+
ビューのnsIPlacesView.selectAll()を呼び出し、ビュー中の全てのノードを選択します。
+
cmd_undo
+
PlacesUIUtilsで保持されたnsIPlacesTransactionsServiceインスタンスのnsITransactionManager.undoTransaction()を呼び出して、最後のPlacesトランザクションをundoします。
+
+ +

Creating custom controllers

+ +

PlacesController がサポートしていないコマンドを使いたい場合、またはPlacesController ではない方法でコマンドを制御したい場合、あなた自身によりコントローラを記述する必要があります。さもなくば、カスタムビューも記述している場合は、カスタムビューを使用しているとしても、PlacesControllerをそのまま使用することとなります。コントローラに慣れていない場合は、XULチュートリアル内の Commands 及び Updating Commandsを参照してください。

+ +

組み込みビューのためのコントローラを自ら記述しているのならば、ビューが自動的にPlacesControllerのインスタンスである標準のコントローラを接続するという事実の利点を使うことができます。あなたのカスタムビューは、PlacesControllerがサポートしていようがしていまいが、オーバーライドを望む方法でコマンドをサポートする必要があります。他のすべてのコマンドは、ビュー標準のコントローラによって制御されます。あなたのコントローラが標準のものを上書きするのを保証するため、ビュー内のコントローラの一覧において、標準コントローラを前に持ってくるべきです。(なぜこうするべきか納得できない場合は、前段にリンクがあるチュートリアルを参照してください)
+ ビューは単純に標準コントローラを最後に配置します。そのため、nsIControllers.insertControllerAt() を呼び出して、indexの値を0として設定してください。

+ +

下記の例では、ビューの標準コントローラによってコマンドの制御をオーバーライドされる placesCmd_openと、カスタムコマンドであるaCommandOfMyOwnの、2つのコマンドを制御するコントローラを作成しています。他のすべてのコマンドは、ビューの標準コントローラによって制御されます。

+ +
var controller = {
+  doCommand: function (aCmd) {
+    switch (aCmd) {
+    case "placesCmd_open":
+      alert("No.");
+      break;
+    case "aCommandOfMyOwn":
+      alert("Shrimp and white wine.");
+      break;
+    }
+  },
+  isCommandEnabled: function (aCmd) {
+    return true;
+  },
+  onEvent: function (aEventName) {},
+  supportsCommand: function (aCmd) {
+    return ["placesCmd_open", "aCommandOfMyOwn"].indexOf(aCmd) >= 0;
+  }
+};
+var treeView = document.getElementById("myTreeView");
+treeView.controllers.insertControllerAt(0, controller);
+
+ +

あなたのカスタムコントローラがカスタムビュー向けである場合、PlacesControllerによってサポートされるいくつかのコマンドの制御も含まれます。また、幸運なことにPlacesControllerがこれらのコマンドを制御する方法は、PlacesControllerに頼ることであなたの作業量を減らします。2つ方策があります。前段で述べたように、一方はPlacesControllerのインスタンス、もう一方はカスタムコントローラ、の二つを付随させることができます。または、あなたの使い方にあわせて修正されたPlacesControllerのインスタンスか、またはPlacesControllerインスタンスを加太代わりするための完全なカスタムコントローラのどちらか一方のみをコントローラとして使うことです。

+ +

下記の例では、PlacesController オブジェクトを作成することで、 placesCmd_openコマンドの制御をオーバーライドし、そして他の全てのコマンドは標準の挙動に頼っています。このケースでは、仮定したビューのコントローラは私たちがここで作成したカスタムコントローラだけであるので、それが優先されるのはあまり重要ではありません。それ故、insertControllerAt()の代わりにnsIControllers.appendController()を呼び出すことでコントローラを追加しています。

+ +
var treeView = document.getElementById("myCustomTreeView");
+var controller = new PlacesController(treeView);
+controller._doCommand = controller.doCommand;
+controller.doCommand = function (aCmd) {
+  if (aCmd === "placesCmd_open")
+    alert("No.");
+  else
+    this._doCommand(aCmd);
+};
+treeView.controllers.appendController(controller);
+
+ +

-- cgit v1.2.3-54-g00ecf