Compare Revisions

Using the Places annotation service

Revision 139557:

Revision 139557 by Mgjbot on

Revision 139558:

Revision 139558 by WPWoodJr on

Title:
Using the Places annotation service
Using the Places annotation service
Slug:
Using_the_Places_annotation_service
Using_the_Places_annotation_service
Tags:
Extensions, Places, "Developing Mozilla"
Extensions, Places, "Developing Mozilla"
Content:

Revision 139557
Revision 139558
n8      {{template.Fx_minversion_header(3)}}n8      {{ Fx_minversion_header("3") }}
9    </p>
10    <p>9    </p>
10    <p>
11      The annotation service, provided by the {{template.Interfac11      The annotation service, provided by the {{ Interface("nsIAn
>e("nsIAnnotationService")}} interface, is designed to store arbit>notationService") }} interface, is designed to store arbitrary da
>rary data about a web page or about an item in the Places databas>ta about a web page or about an item in the Places database in Fi
>e in Firefox 3. It is usable from trusted Firefox code such as ex>refox 3. It is usable from trusted Firefox code such as extension
>tensions, but not from web pages.>s, but not from web pages.
n17      Most methods in the service are duplicated with one method n17      Most methods in the service are duplicated with one method 
>labeled as a 'Page Annotation' taking an {{template.Interface("ns>labeled as a 'Page Annotation' taking an {{ Interface("nsIURI") }
>IURI")}} and the others labeled as an 'Item Annotation' and takin>} and the others labeled as an 'Item Annotation' and taking the i
>g the id of an item in the places database. Which one to use is u>d of an item in the places database. Which one to use is usually 
>sually dictated by the application. URI's are easier to use for s>dictated by the application. URI's are easier to use for services
>ervices that want to annotate a web page loaded in the browser, w> that want to annotate a web page loaded in the browser, while ID
>hile ID's are easier to use for services already working with the>'s are easier to use for services already working with the places
> places database. Id's also offer the ability to add annotations > database. Id's also offer the ability to add annotations to cont
>to containers and queries of the database.>ainers and queries of the database.
n48      The annotation provides a variety of scriptable and non-scrn48      The annotation provides a variety of scriptable and non-scr
>iptable setters for annotations on both pages and on items in the>iptable setters for annotations on both pages and on items in the
> <a href="en/Places">Places</a> database (see {{template.Source("> <a href="en/Places">Places</a> database (see {{ Source("toolkit/
>toolkit/components/places/public/nsIAnnotationService.idl", "nsIA>components/places/public/nsIAnnotationService.idl", "nsIAnnotatio
>nnotationService.idl")}} for the exact declarations). From C++ yo>nService.idl") }} for the exact declarations). From C++ you must 
>u must use the setter for the explicit data type being saved:>use the setter for the explicit data type being saved:
n102      <li>URI or ItemID: This is the {{template.Interface("nsIURIn102      <li>URI or ItemID: This is the {{ Interface("nsIURI") }} of
>")}} of the page to annotate, or for items in the places database> the page to annotate, or for items in the places database, the i
>, the id of the item.>d of the item.
n125      There are corresponding getters for the setters above (see n125      There are corresponding getters for the setters above (see 
>{{template.Source("toolkit/components/places/public/nsIAnnotation>{{ Source("toolkit/components/places/public/nsIAnnotationService.
>Service.idl", "nsIAnnotationService.idl")}} for the exact declara>idl", "nsIAnnotationService.idl") }} for the exact declarations):
>tions): 
n192        <code>getItemAnnotationType(aURI, aName);</code>n192        <code>getItemAnnotationType(aItemId, aName);</code>
193      </li>
194    </ul>193      </li>
195    <p>194    </ul>
195    <p>
196      The returned type will be one of the VALUE_TYPE constants i196      The returned type will be one of the VALUE_TYPE constants i
>n {{template.Source("storage/public/mozIStorageValueArray.idl", ">n {{ Source("storage/public/mozIStorageValueArray.idl", "mozIStor
>mozIStorageValueArray.idl")}}:>ageValueArray.idl") }}:
197    </p>
198    <p>197    </p>
198    <p>
199      After {{template.Bug(377066)}} the VALUE_TYPE_* type handli199      After {{ Bug("377066") }} the VALUE_TYPE_* type handling wa
>ng was changed to this:>s changed to this:
n360      where aObserver is an object implementing the {{template.Inn360      where aObserver is an object implementing the {{ Interface(
>terface("nsIAnnotationObserver")}} interface. The objects must im>"nsIAnnotationObserver") }} interface. The objects must implement
>plement four methods, which are called when an annotation is set/> four methods, which are called when an annotation is set/removed
>removed on a URI or item respectively:> on a URI or item respectively:
t386    <div class="noinclude"></div>{{ wiki.languages( { "ja": "ja/Ut386    <div class="noinclude"></div>{{ languages( { "ja": "ja/Using_
>sing_the_Places_annotation_service" } ) }}>the_Places_annotation_service" } ) }}

Back to History