mozilla

リビジョンの比較

Querying Places

Change Revisions

リビジョン 166922:

リビジョン 166922 (編集者: Mgjbot / 編集日時: )

リビジョン 351877:

リビジョン 351877 (編集者: ethertank / 編集日時: )

タイトル:
Querying Places
Querying Places
URL スラグ:
Querying_Places
Querying_Places
タグ:
Extensions, Places, 翻訳中, "Developing Mozilla"
"Extensions", "Developing Mozilla", "Places", "翻訳中"
内容:

リビジョン 166922
リビジョン 351877
n7    <p>n7    <div>
8      {{ 翻訳中() }} {{ Firefox3() }}8      {{translationinprogress}}{{Fx_minversion_header(3)}}
9    </div>
9    </p>10    <p>
11      Firefox の履歴とブックマークのデータには、 "<a href="/ja/docs/Places" title=
 >"Places">Places</a>" query API を通じてアクセスする事ができます。これらの API は履歴やブックマ
 >ーク、またはそれらを組み合わせた複雑な検索を実行する能力を提供します (※ Firefox Alpha 6 を対象としています)。
 >検索結果はマッチしたデータのフラットなリスト、もしくはツリー構造を含んだオブジェクトとなります。クエリ API の定義及び結果のデ
 >ータ構造は {{Source("toolkit/components/places/nsINavHistoryService.id
 >l")}} にあります。このページでは、コア API を使ったいくつかの共通の操作や例を紹介します。
10    <p>12    </p>
11      Firefox の履歴とブックマークのデータは "<a href="ja/Places">Places</a>" クエ
>リー API を通してアクセスされます。これらの API は履歴やブックマーク、またはそれらを組み合わせた複雑な検索を実行する能力 
>を提供します(Firefox Alpha 6 をターゲットにしています)。検索結果はマッチしたデータのフラットなリスト、もしくはツ 
>リー構造を含んだオブジェクトとなります。クエリー API の定義及び結果のデータ構造は {{ Source("toolkit/co 
>mponents/places/public/nsINavHistoryService.idl") }} にあります。このページで 
>はコア API を使ったいくつかの共通の操作や例を提供します。 
12    </p>
13    <h3 id="Executing_a_query" name="Executing_a_query">13    <h2 id="Executing_a_query" name="Executing_a_query">
14      Executing a query14      クエリの実行
15    </h3>15    </h2>
n17      Places のクエリーはいくつかの基本的なパーツを持っています:n17      Places のクエリーはいくつかの基本的なパーツを持っています
18    </p>
19    <ul>18    </p>
20      <li>The query object: <code>nsINavHistoryQuery</code>, 検索時の
>パラメータを保持します。 
21      </li>
22      <li>The query options: <code>nsINavHistoryQueryOptions</cod
>e>, 検索結果の設定を許可します。 
23      </li>
24      <li>The history service: <code>nsINavHistoryService</code>,
> クエリーを実行します 
25      </li>
26    </ul>19    <ul>
20      <li>クエリオブジェクト {{Interface("nsINavHistoryQuery")}} : 検索時のパラメ
 >ータを保持
21      </li>
22      <li>クエリオプション {{Interface("nsINavHistoryQueryOptions")}} : 検
 >索結果の設定が可能
23      </li>
24      <li>ヒストリサービス {{Interface("nsINavHistoryService")}} : クエリの実行
25      </li>
27    <p>26    </ul>
27    <p>
28      最初のステップではクエリーとオプションを作り、必要なパラメータを埋めていきます。<code>nsINavHistory28      最初のステップではクエリーとオプションを作り、必要なパラメータを埋めていきます。<code>nsINavHistory
>Service.getNewQuery</code> と <code>nsINavHistoryService.getNewQue>Service.getNewQuery</code> と <code>nsINavHistoryService.getNewQue
>ryOptions</code> を使って空のオブジェクトを取り出します。標準ではそれらのオブジェクトはフラットなリストにあなたの>ryOptions</code> を使って空のオブジェクトを取り出します。標準ではそれらのオブジェクトはフラットなリストにあなたの
>ブラウザの全履歴が入ったクエリーの結果となるでしょう:>ブラウザの全履歴が入ったクエリーの結果となるでしょう
29    </p>
30    <pre>29    </p>
30    <pre class="brush:js">
n34// クエリーのパラメータが無ければ、全ての履歴を得るでしょうn34// No query options set will get all history, sorted in database 
 >order,
35// XXX 標準のソートは...?35// which is nsINavHistoryQueryOptions.SORT_BY_NONE.
n38// クエリーのパラメータが無ければ、何もかもが返ってくるでしょうn38// No query parameters will return everything
n41// クエリーを実行n41// execute the query
n43 n
n45    <h4 id="Result_types" name="Result_types">n44    <h3 id="Result_types" name="Result_types">
n47    </h4>n46    </h3>
48    <p>
49      <code>nsINavHistoryQueryOptions</code> は <code>resultType</
>code> プロパティを持ち、それは検索結果においてグルーピングや返ってくる詳細のレベルを設定する事を許可します。このプロパティの 
>違う値は下からリスト化されます。これらの値は <code>nsINavHistoryQueryOptions</code> のプロ 
>パティとなり、このようにアクセスされます:<code>Components.interfaces.nsINavHistoryQue 
>ryOptions.RESULTS_AS_VISIT</code>. 
50    </p>47    <p>
48      {{Interface("nsINavHistoryQueryOptions")}} は <code>resultTy
 >pe</code> プロパティを持ち、それは検索結果においてグルーピングや返ってくる詳細のレベルを設定する事を許可します。このプロ
 >パティの違う値は下からリスト化されます。これらの値は <code>nsINavHistoryQueryOptions</code>
 > のプロパティとなり、このようにアクセスされます:<code>Components.interfaces.nsINavHistor
 >yQueryOptions.RESULTS_AS_VISIT</code>.
51    <ul>49    </p>
52      <li>50    <ul>
51      <li>
53        <b>RESULTS_AS_URI</b>: これはデフォルトで、クエリーにマッチしたそれぞれの URI ごとに 52        <strong>RESULTS_AS_URI</strong>: これはデフォルトで、クエリーにマッチしたそれぞれ
><code>RESULT_TYPE_URI</code> タイプの一つのノードとして返されます。それぞれのノードの訪問日は些最後に>の URI ごとに <code>RESULT_TYPE_URI</code> タイプの一つのノードとして返されます。それぞれのノー
>その URL に訪問した日付となるでしょう。>ドの訪問日は些最後にその URL に訪問した日付となるでしょう。
54      </li>
55      <li>53      </li>
54      <li>
56        <b>RESULTS_AS_VISIT</b>: このオプションは与えたクエリーにマッチしたそれぞれページに訪問し55        <strong>RESULTS_AS_VISIT</strong>: このオプションは与えたクエリーにマッチしたそ
>た時間ごとに一つのエントリーとして結果を返します。この結果は重複した URL のエントリーを含み、それぞれ違う時間となるでしょう。>れぞれページに訪問した時間ごとに一つのエントリーとして結果を返します。この結果は重複した URL のエントリーを含み、それぞれ違う
>このノードは <code>RESULT_TYPE_VISIT</code> タイプで、それぞれ訪問したときのセッションIDを提供し>時間となるでしょう。このノードは <code>RESULT_TYPE_VISIT</code> タイプで、それぞれ訪問したときのセ
>ます。このセッションIDはリンクをクリックしてたどった全てのページで同じ値になります。新しいセッションはユーザが新しい URL を>ッションIDを提供します。このセッションIDはリンクをクリックしてたどった全てのページで同じ値になります。新しいセッションはユーザ
>入力するかブックマークをたどることで開始します(XXX リンクの詳細についてはセッションの性質によります)。>が新しい URL を入力するかブックマークをたどることで開始します(XXX リンクの詳細についてはセッションの性質によります)。
57      </li>
58      <li>56      </li>
59        <b>RESULTS_AS_FULL_VISIT</b>: これは <code>RESULT_TYPE_VISIT
></code> の拡張されたバージョンです。結果は <code>RESULT_TYPE_FULL_VISIT</code> タイプ 
>で、訪問前の場所やどのようにトランザクションが発生したのか(入力か、リダイレクトか、リンクか、など)といった訪問先の詳細な情報を持 
>ちます。 
60      </li>57      <li>
58        <strong>RESULTS_AS_FULL_VISIT</strong>: これは <code>RESULT_
 >TYPE_VISIT</code> の拡張されたバージョンです。結果は <code>RESULT_TYPE_FULL_VISIT<
 >/code> タイプで、訪問前の場所やどのようにトランザクションが発生したのか(入力か、リダイレクトか、リンクか、など)といった訪
 >問先の詳細な情報を持ちます。※未実装({{Bug(320831)}})
61    </ul>59      </li>
60    </ul>
62    <h4 id="Basic_Query_Search_Parameters" name="Basic_Query_Sear61    <h3 id="Basic_Query_Search_Parameters" name="Basic_Query_Sear
>ch_Parameters">>ch_Parameters">
63      Basic Query Search Parameters62      基本のクエリ検索パラメータ
64    </h4>63    </h3>
65    <p>64    <ul>
66      <span class="comment">const unsigned long TIME_RELATIVE_EPO65      <li>const unsigned long TIME_RELATIVE_EPOCH = 0
>CH = 0 const unsigned long TIME_RELATIVE_TODAY = 1 const unsigned 
> long TIME_RELATIVE_NOW = 2 attribute PRTime beginTime attribute  
>unsigned long beginTimeReference readonly attribute boolean hasBe 
>ginTime readonly attribute PRTime absoluteBeginTime attribute PRT 
>ime endTime attribute unsigned long endTimeReference readonly att 
>ribute boolean hasEndTime readonly attribute PRTime absoluteEndTi 
>me attribute AString searchTerms readonly attribute boolean hasSe 
>archTerms attribute long minVisits attribute long maxVisits attri 
>bute boolean onlyBookmarked attribute boolean domainIsHost attrib 
>ute AUTF8String domain readonly attribute boolean hasDomain attri 
>bute boolean uriIsPrefix attribute nsIURI uri readonly attribute  
>boolean hasUri attribute boolean annotationIsNot attribute AUTF8S 
>tring annotation readonly attribute boolean hasAnnotation readonl 
>y attribute unsigned long folderCount</span> 
66      </li>
67      <li>const unsigned long TIME_RELATIVE_TODAY = 1
68      </li>
69      <li>const unsigned long TIME_RELATIVE_NOW = 2
70      </li>
71      <li>attribute PRTime beginTime
72      </li>
73      <li>attribute unsigned long beginTimeReference
74      </li>
75      <li>readonly attribute boolean hasBeginTime
76      </li>
77      <li>readonly attribute PRTime absoluteBeginTime
78      </li>
79      <li>attribute PRTime endTime
80      </li>
81      <li>attribute unsigned long endTimeReference
82      </li>
83      <li>readonly attribute boolean hasEndTime
84      </li>
85      <li>readonly attribute PRTime absoluteEndTime
86      </li>
87      <li>attribute AString searchTerms readonly
88      </li>
89      <li>attribute boolean hasSearchTerms
90      </li>
91      <li>attribute long minVisits
92      </li>
93      <li>attribute long maxVisits
94      </li>
95      <li>attribute boolean onlyBookmarked
96      </li>
97      <li>attribute boolean domainIsHost
98      </li>
99      <li>attribute AUTF8String domain
100      </li>
101      <li>readonly attribute boolean hasDomain
102      </li>
103      <li>attribute boolean uriIsPrefix
104      </li>
105      <li>attribute nsIURI uri
106      </li>
107      <li>readonly attribute boolean hasUri
108      </li>
109      <li>attribute boolean annotationIsNot
110      </li>
111      <li>attribute AUTF8String annotation
112      </li>
113      <li>readonly attribute boolean hasAnnotation
114      </li>
115      <li>readonly attribute unsigned long folderCount
116      </li>
67    </p>117    </ul>
68    <h4 id="Basic_Query_Configuration_Options" name="Basic_Query_118    <h3 id="Basic_Query_Configuration_Options" name="Basic_Query_
>Configuration_Options">>Configuration_Options">
n70    </h4>n120    </h3>
71    <p>121    <ul>
72      <span class="comment">const unsigned short GROUP_BY_DAY = 0122      <li>const unsigned short GROUP_BY_DAY = 0
> const unsigned short GROUP_BY_HOST = 1 const unsigned short GROU 
>P_BY_DOMAIN = 2 const unsigned short GROUP_BY_FOLDER = 3 const un 
>signed short SORT_BY_NONE = 0 const unsigned short SORT_BY_TITLE_ 
>ASCENDING = 1 const unsigned short SORT_BY_TITLE_DESCENDING = 2 c 
>onst unsigned short SORT_BY_DATE_ASCENDING = 3 const unsigned sho 
>rt SORT_BY_DATE_DESCENDING = 4 const unsigned short SORT_BY_URI_A 
>SCENDING = 5 const unsigned short SORT_BY_URI_DESCENDING = 6 cons 
>t unsigned short SORT_BY_VISITCOUNT_ASCENDING = 7 const unsigned  
>short SORT_BY_VISITCOUNT_DESCENDING = 8 const unsigned short SORT 
>_BY_KEYWORD_ASCENDING = 9 const unsigned short SORT_BY_KEYWORD_DE 
>SCENDING = 10 const unsigned short SORT_BY_DATEADDED_ASCENDING =  
>11 const unsigned short SORT_BY_DATEADDED_DESCENDING = 12 const u 
>nsigned short SORT_BY_LASTMODIFIED_ASCENDING = 13 const unsigned  
>short SORT_BY_LASTMODIFIED_DESCENDING = 14 const unsigned short S 
>ORT_BY_ANNOTATION_ASCENDING = 15 const unsigned short SORT_BY_ANN 
>OTATION_DESCENDING = 16 const unsigned short RESULTS_AS_URI = 0 c 
>onst unsigned short RESULTS_AS_VISIT = 1 const unsigned short RES 
>ULTS_AS_FULL_VISIT = 2 attribute unsigned short sortingMode attri 
>bute AUTF8String sortingAnnotation attribute unsigned short resul 
>tType attribute boolean excludeItems attribute boolean excludeQue 
>ries attribute boolean excludeReadOnlyFolders attribute boolean e 
>xpandQueries attribute boolean includeHidden attribute boolean sh 
>owSessions attribute unsigned long maxResults const unsigned shor 
>t QUERY_TYPE_HISTORY = 0 const unsigned short QUERY_TYPE_BOOKMARK 
>S = 1 const unsigned short QUERY_TYPE_UNIFIED = 2 attribute unsig 
>ned short queryType</span> 
123      </li>
124      <li>const unsigned short GROUP_BY_HOST = 1
125      </li>
126      <li>const unsigned short GROUP_BY_DOMAIN = 2
127      </li>
128      <li>const unsigned short GROUP_BY_FOLDER = 3
129      </li>
130      <li>const unsigned short SORT_BY_NONE = 0
131      </li>
132      <li>const unsigned short SORT_BY_TITLE_ASCENDING = 1
133      </li>
134      <li>const unsigned short SORT_BY_TITLE_DESCENDING = 2
135      </li>
136      <li>const unsigned short SORT_BY_DATE_ASCENDING = 3
137      </li>
138      <li>const unsigned short SORT_BY_DATE_DESCENDING = 4
139      </li>
140      <li>const unsigned short SORT_BY_URI_ASCENDING = 5
141      </li>
142      <li>const unsigned short SORT_BY_URI_DESCENDING = 6
143      </li>
144      <li>const unsigned short SORT_BY_VISITCOUNT_ASCENDING = 7
145      </li>
146      <li>const unsigned short SORT_BY_VISITCOUNT_DESCENDING = 8
147      </li>
148      <li>const unsigned short SORT_BY_KEYWORD_ASCENDING = 9
149      </li>
150      <li>const unsigned short SORT_BY_KEYWORD_DESCENDING = 10
151      </li>
152      <li>const unsigned short SORT_BY_DATEADDED_ASCENDING = 11
153      </li>
154      <li>const unsigned short SORT_BY_DATEADDED_DESCENDING = 12
155      </li>
156      <li>const unsigned short SORT_BY_LASTMODIFIED_ASCENDING = 1
 >3
157      </li>
158      <li>const unsigned short SORT_BY_LASTMODIFIED_DESCENDING = 
 >14
159      </li>
160      <li>const unsigned short SORT_BY_ANNOTATION_ASCENDING = 15
161      </li>
162      <li>const unsigned short SORT_BY_ANNOTATION_DESCENDING = 16
163      </li>
164      <li>const unsigned short RESULTS_AS_URI = 0
165      </li>
166      <li>const unsigned short RESULTS_AS_VISIT = 1
167      </li>
168      <li>const unsigned short RESULTS_AS_FULL_VISIT = 2 (<strong
 >>Not yet implemented</strong> -- see {{Bug(320831)}})
169      </li>
170      <li>attribute unsigned short sortingMode
171      </li>
172      <li>attribute AUTF8String sortingAnnotation
173      </li>
174      <li>attribute unsigned short resultType
175      </li>
176      <li>attribute boolean excludeItems
177      </li>
178      <li>attribute boolean excludeQueries
179      </li>
180      <li>attribute boolean excludeReadOnlyFolders
181      </li>
182      <li>attribute boolean expandQueries
183      </li>
184      <li>attribute boolean includeHidden
185      </li>
186      <li>attribute boolean showSessions
187      </li>
188      <li>attribute unsigned long maxResults
189      </li>
190      <li>const unsigned short QUERY_TYPE_HISTORY = 0
191      </li>
192      <li>const unsigned short QUERY_TYPE_BOOKMARKS = 1
193      </li>
194      <li>const unsigned short QUERY_TYPE_UNIFIED = 2 (<strong>No
 >t yet implemented</strong> -- see {{Bug(378798)}})
195      </li>
196      <li>attribute unsigned short queryType
197      </li>
73    </p>198    </ul>
74    <h4 id="Complex_Queries" name="Complex_Queries">199    <h3 id="Complex_Queries" name="Complex_Queries">
n76    </h4>n201    </h3>
77    <p>
78      一つ以上の <code>nsINavHistoryQuery</code> オブジェクトを <code>execute
>Queries</code> へ渡すことができます。一つのクエリーオブジェクトに対して、全てのパラメータは <i>AND</i>  
>として扱われます。異なるクエリーオブジェクトがある状態では、 <i>OR</i> として扱われます。これは条件に基づいた完全に論理 
>的な操作を{{ 原語併記("入れ子の節", "nested clauses") }}よりもよりシンプルな実装とインターフェイスを可 
>能にしています。 
79    </p>202    <p>
203      ひとつ以上の {{Interface("nsINavHistoryQuery")}} オブジェクトを <code>ex
 >ecuteQueries</code> へ渡すことができます。ひとつのクエリオブジェクトに対して、全てのパラメータは <i>AND
 ></i> として扱われます。異なるクエリオブジェクトがある状態では、 <i>OR</i> として扱われます。これは条件に基づいた完
 >全に論理的な操作を{{gengoheiki("入れ子の節", "nested clauses")}}よりもよりシンプルな実装とイン
 >ターフェイスを可能にしています。
80    <p>204    </p>
81      今まで訪れたページでtitleかURLに "firefox" という文字列を含むもの、もしくは今日 mozilla.o
>rg 内で訪れたページを検索する例を挙げます。 
82    </p>205    <p>
206      Example of querying for any pages I've visited that contain
 > the word "firefox" in the title/URL or that I've visited today f
 >rom mozilla.org.
83    <pre>207    </p>
84// 最初のクエリーオブジェクトは title か URL に "firefox" が入っているものを検索します208    <pre class="brush:js">
209// first query object searches for "firefox" in title/URL
n88// 二つ目のクエリーオブジェクトは 24 時間以内でかつ mozilla.org 内で訪れたものを検索しますn213// second query object searches for visited in past 24 hours AND 
 >from mozilla.org
n99      <b>注意</b>: キーワード検索はクロスした <i>OR</i> クエリーでは正確に動作しません。現在の動作では通n224      <strong>Note</strong>: Keyword searching doesn't work corre
>常のクエリーを実行して、最初のクエリーからキーワードをセレクトして、そしてその結果をフィルターしていきます。(言い換えれば、最初の>ctly across <em>OR</em> queries. The current behavior does the no
>クエリーのキーワードは全てのクエリーで <i>AND</i> されていくという事です。) その後のクエリーオブジェクトのキーワード>rmal query and then selects keywords from the first query and fil
>は無視されます。これは {{ Bug("320332") }} で扱われています。>ters all the results. (In other words, the keywords from the firs
 >t query are <em>AND</em>ed with all queries.) Keywords from subse
 >quent query objects are ignored. This is {{Bug(320332)}}.
n101    <h4 id="Bookmark_queries" name="Bookmark_queries">n226    <h3 id="Bookmark_queries" name="Bookmark_queries">
n103    </h4>n228    </h3>
n105      ここでは <a href="ja/Places/Accessing_Bookmarks">Accessing Bookn230      There is a quick-start for doing simple bookmark queries in
>marks</a> を使って簡単にブックマークの検索を行う初歩的な方法を示します。> <a href="/ja/docs/Retrieving_part_of_the_bookmarks_tree" title="
 >Retrieving_part_of_the_bookmarks_tree">Retrieving part of the boo
 >kmarks tree</a>.
n110    <div class="warning">n
111      <b>Warning</b>: There is an option GROUP_BY_FOLDER that pur
>ports to have an effect on bookmark queries. This isn't implement 
>ed, see {{ Bug("331487") }}. You should always use this option if 
> you want a bookmarks hierarchy. Lack of this option will be chan 
>ged to return a flattened list of all bookmark items in all folde 
>rs returned by the query. 
112    </div>
n117      For bookmark queries you will generally want no query paramn239      For bookmark queries you will generally want no query param
>eters to retrieve all items from the requested folder(s). When yo>eters to retrieve all items from the requested folder(s). When yo
>u specify exactly one folder, <code>GROUP_BY_FOLDER</code>, and n>u specify exactly one folder and no query parametersthe system 
>o query parameters, the system will be more efficient querying an>will be more efficient querying and keeping the results up-to-dat
>d keeping the results up-to-date since this maps to exactly one b>e since this maps to exactly one bookmark folder.
>ookmark folder. 
118    </p>
119    <pre>240    </p>
241    <pre class="brush:js">
n123query.setFolders([bookmarkService.toolbarRoot], 1);n245query.setFolders([bookmarkService.toolbarFolder], 1);
124options.setGroupingMode([options.GROUP_BY_FOLDER], 1);
n127    <h3 id="Serializing_queries" name="Serializing_queries">n248    <h2 id="Serializing_queries" name="Serializing_queries">
n129    </h3>n250    </h2>
n133    <div class="note">n
134      You should never manually construct "place:" URI strings. T
>he format is subject to change. Moreover, if you save the query,  
>the URI should be normalized so it will match other queries of th 
>e same parameters and can be updated properly if it is bookmarked 
>. If you need one, create the proper objects and call the history 
> service to serialize it for you. If the format is changed, queri 
>es stored as bookmarks or associated with annotations may be auto 
>matically migrated, so you shouldn't assume that just because the 
>se strings are stored, that they're guaranteed to be static. The  
>format is guaranteed to change between alpha 1 and Firefox 3.0 
135    </div>
n142    <pre>n260    <pre class="brush:js">
143var queryString = historyService.queriesToQueryStrings([query1, q261var queryString = historyService.queriesToQueryString([query1, qu
>uery2], 2, options);>ery2], 2, options);
nn269    <p>
270      See <a href="/ja/docs/Places_query_URIs" title="Places_quer
 >y_URIs">Places query URIs</a> for more information about the term
 >s available for "place:" URIs.
271    </p>
151    <h3 id="Using_the_results" name="Using_the_results">272    <h2 id="Using_the_results" name="Using_the_results">
n153    </h3>n274    </h2>
154    <p>
155      The most common way to use results is to implement a view. 
>There is a built-in view that will put results in tree controls,  
>and you can also implement your own. See <a href="ja/Places/Views 
>">Places:Views</a> for more on this. This section discusses how t 
>o access the result directly, for example, if you are creating yo 
>ur own view or are processing the results instead of displaying t 
>hem. 
156    </p>275    <p>
276      The most common way to use results is to implement a view. 
 >There is a built-in view that will put results in tree controls, 
 >and you can also implement your own. See <a href="/ja/docs/Displa
 >ying_Places_information_using_views" title="Displaying_Places_inf
 >ormation_using_views">Displaying Places information using views</
 >a> for more on this. This section discusses how to access the res
 >ult directly, for example, if you are creating your own view or a
 >re processing the results instead of displaying them.
157    <p>277    </p>
278    <p>
158      <i>NoteBe careful when accessing nodes and do not keep re279      {{Note("Be careful when accessing nodes and do not keep ref
>ferences to them around. Notifications sent to the result from th>erences to them around. Notifications sent to the result from the
>e history and bookmarks system, as well as commands executed by t> history and bookmarks system, as well as commands executed by th
>he programmer such as sorting may cause the structure to change a>e programmer such as sorting may cause the structure to change an
>nd nodes may be inserted, removed, or replaced.</i>>d nodes may be inserted, removed, or replaced.")}}
159    </p>
160    <p>280    </p>
281    <p>
161      The <code>nsINavHistoryResult</code> object returned by <co282      The {{Interface("nsINavHistoryResult")}} object returned by
>de>executeQuery</code>/<code>executeQueries</code> contains the l> <code>executeQuery()</code>/<code>executeQueries()</code> contai
>ist of matches to the given history or bookmarks query. These res>ns the list of matches to the given history or bookmarks query. T
>ults are contained in a tree structure made up of nodes. A node's>hese results are contained in a tree structure made up of nodes. 
> type can be retrieved using its <code>type</code> attribute. Thi>A node's type can be retrieved using its <code>type</code> attrib
>s type tells you what interface you can <code>QueryInterface</cod>ute. This type tells you what interface you can <code>QueryInterf
>e> the node to in order to get at more detailed information:>ace</code> the node to in order to get at more detailed informati
 >on:
162    </p>
163    <ul>283    </p>
164      <li>284    <ul>
165        <b>nsINavHistoryResultNode</b>: Base class for all nodes.
> Contains URI, title, and other general info. 
166      </li>285      <li>
286        <strong>nsINavHistoryResultNode</strong>: Base class for 
 >all nodes. Contains URI, title, and other general info.
167      <li>287      </li>
168        <b>nsINavHistoryVisitResultNode</b>: Derived from <code>n
>sINavHistoryResultNode</code>, contains session information. 
169      </li>288      <li>
289        <strong>nsINavHistoryVisitResultNode</strong>: Derived fr
 >om <code>nsINavHistoryResultNode</code>, contains session informa
 >tion.
170      <li>290      </li>
171        <b>nsINavHistoryFullVisitResultNode</b>: Derived from <co
>de>nsINavHistoryVisitResultNode</code>, contains information abou 
>t how the user navigated to this page. <i>Note: currently unimple 
>mented, see {{ Bug("320831") }}.</i> 
172      </li>291      <li>
292        <strong>nsINavHistoryFullVisitResultNode</strong>: Derive
 >d from <code>nsINavHistoryVisitResultNode</code>, contains inform
 >ation about how the user navigated to this page. <em>Note: curren
 >tly unimplemented, see {{Bug(320831)}}.</em>
173      <li>293      </li>
174        <b>nsINavHistoryContainerResultNode</b>: General containe
>r node giving access to its children. Derived from <code>nsINavHi 
>storyResultNode</code>. 
175      </li>294      <li>
295        <strong>nsINavHistoryContainerResultNode</strong>: Genera
 >l container node giving access to its children. Derived from <cod
 >e>nsINavHistoryResultNode</code>. Bookmark folders are of this ty
 >pe.
176      <li>296      </li>
297      <li>
177        <b>nsINavHistoryQueryResultNode</b>: A type of container 298        <strong>nsINavHistoryQueryResultNode</strong>: A type of 
>representing a query of the history system. It allows you to get >container representing a query of the history system. It allows y
>the query options and parameters.>ou to get the query options and parameters.
178      </li>
179      <li>
180        <b>nsINavHistoryFolderResultNode</b>: Derived from <code>
>nsINavHistoryQueryResultNode</code>, this represents a special ty 
>pe of query mapping to the exact contents of one bookmarks folder 
>. It gives easy access to its folder ID, and also updates itself  
>more efficiently than a general query. 
n186    <pre>n304    <pre class="brush:js">
nn306 
188switch(node.type)307switch(node.type) {
n214    // note that the folder is also a query and so has a query ann333    // Note that folder nodes are of type nsINavHistoryContainerR
>d an options structure>esultNode by default, but
215    var folder = node.QueryInterface(Ci.nsINavHistoryFolderResult334    // can be QI'd to nsINavHistoryQueryResultNode to access the 
>Node);>query and options that
335    // created it.
216    dump("Folder " + folder.title + " id = " + folder.folderId + 336    dump("Folder " + node.title + " id = " + node.itemId + "\n");
>"\n"); 
nn343    <h3 id="The_result_view_interface" name="The_result_view_inte
 >rface">
344      The result view interface
345    </h3>
346    <p>
347      If you are mapping a result into UI, you can implement the 
 >{{Interface("nsINavHistoryResultViewer")}} interface and attach i
 >t to the result with the <code>nsINavHistoryResult.viewer</code> 
 >attribute. This viewer will be called when the result tree change
 >s, either as a result of user action or as a result of notificati
 >ons from the bookmarks and history systems. Your implementation w
 >ould then reflect these changes in the UI.
348    </p>
349    <p>
350      A prepackaged view interface for a {{Interface("nsITreeBoxO
 >bject")}} is provided that manages the complex view requirements 
 >of a tree. This object's interface is {{Interface("nsINavHistoryR
 >esultTreeViewer")}} (a descendent of {{Interface("nsINavHistoryRe
 >sultViewer")}}). See <a href="/ja/docs/Displaying_Places_informat
 >ion_using_views" title="Displaying_Places_information_using_views
 >">Displaying Places information using views</a> for more informat
 >ion and examples.
351    </p>
223    <h4 id="Containers" name="Containers">352    <h3 id="Containers" name="Containers">
n225    </h4>n354    </h3>
n227      Containers hold lists of other containers and result nodes.n356      Containers hold lists of other containers and result nodes.
> Each result has a container representing the root of the query. > Each result has a container representing the root of the query. 
>It can be retrieved using the <code>root</code> attribute of the >It can be retrieved using the <code>root</code> attribute of the 
>result. For general queries, this root container is a <code>nsINa>result. For general queries, this root container is a {{Interface
>vHistoryQueryResultNode</code> with the query parameters and opti>("nsINavHistoryQueryResultNode")}} with the query parameters and 
>ons that you supplied in the original query. For queries mapping >options that you supplied in the original query. For queries mapp
>to one bookmark folder, this will be a <code>nsINavHistoryFolderR>ing to one bookmark folder, this will be a {{Interface("nsINavHis
>esultNode</code>.>toryContainerResultNode")}}.
n233      Example of traversing a container:n362      This example uses the Places history service to display all
 > the titles of the history pages.
234    </p>
235    <pre>363    </p>
364    <pre class="brush:js">
365var historyService = Components.classes["@mozilla.org/browser/nav
 >-history-service;1"]
366        .getService(Components.interfaces.nsINavHistoryService);
367 
368// queries parameters (e.g. domain name matching, text terms matc
 >hing, time range...)
369// see : https://developer.mozilla.org/en/nsINavHistoryQuery
370var query = historyService.getNewQuery();
371 
372// options parameters (e.g. ordering mode and sorting mode...)
373// see : https://developer.mozilla.org/en/nsINavHistoryQueryOptio
 >ns
374var options = historyService.getNewQueryOptions();
375 
376// execute the query
377// see : https://developer.mozilla.org/en/nsINavHistoryService#ex
 >ecuteQuery()
378var result = historyService.executeQuery(query, options);
379 
380// Using the results by traversing a container
381// see : https://developer.mozilla.org/en/nsINavHistoryContainerR
 >esultNode
n237cont.containerOpen = true;n383    cont.containerOpen = true;
384        
nn386 
239  var node = cont.getChild(i);387    var node = cont.getChild(i);
388        
389    // "node" attributes contains the information (e.g. URI, titl
 >e, time, icon...)
390    // see : https://developer.mozilla.org/en/nsINavHistoryResult
 >Node
240  dump(node.title + "\n");391    dump(node.title+ "\n");
392        
nn394    // Close container when done
395    // see : https://developer.mozilla.org/en/nsINavHistoryContai
 >nerResultNode
242cont.containerOpen = false;396    cont.containerOpen = false;
t244    <h4 id="The_result_view_interface" name="The_result_view_intet398    <h2 id="See_also" name="See_also">
>rface"> 
245      The result view interface399      関連情報
246    </h4>400    </h2>
247    <p>401    <ul>
248      If you are mapping a result into UI, you can implement the 402      <li>
><code>nsINavHistoryResultViewer</code> interface and attach it to 
> the result with the <code>nsINavHistoryResult.viewer</code> attr 
>ibute. This viewer will be called when the result tree changes, e 
>ither as a result of user action or as a result of notifications  
>from the bookmarks and history systems. Your implementation would 
> then reflect these changes in the UI. 
403        <a href="/ja/docs/Places_query_URIs" title="Places_query_
 >URIs">Places query URIs</a>
404      </li>
405      <li>
406        <a href="/ja/docs/Displaying_Places_information_using_vie
 >ws" title="Displaying_Places_information_using_views">Displaying 
 >Places information using views</a>
407      </li>
249    </p>408    </ul>
250    <p>
251      A prepackaged view interface for a <a href="ja/NsITreeBoxOb
>ject">nsITreeBoxObject</a> is provided that manages the complex v 
>iew requirements of a tree. This object's interface is <code>nsIN 
>avHistoryResultTreeViewer</code> (a descendent of <code>nsINavHis 
>toryResultViewer</code>) and can be created using the contract <c 
>ode>@mozilla.org/browser/nav-history/result-tree-viewer;1</code>. 
252    </p>
253    <pre>
254var treeviewer =
255  Components.classes["@mozilla.org/browser/nav-history/result-tre
>e-viewer;1"] 
256            .createInstance(Components.interfaces.nsINavHistoryRe
>sultTreeViewer); 
257result.viewer = treeviewer;
258mytree.view = treeviewer.QueryInterface(Components.interfaces.nsI
>TreeView); 
259</pre>
260    <p>
261      Both the result and the tree will register themselves with 
>the viewer object using <code>result</code> attribute and the <co 
>de>setTree</code> method respectively. Do not set these explicitl 
>y. 
262    </p>
263    <p>
264      <br>
265    </p>
266    <p>
267      <br>
268    </p>
269    <div class="noinclude"></div>{{ languages( { "en": "en/Queryi
>ng_Places", "fr": "fr/Places/Syst\u00e8me_de_requ\u00eates" } ) } 
>} 

前に戻る