1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
interface nsIAbCard;
interface nsIAbDirectory;
interface nsIArray;
/// Define a class using this interface to listen to updates from nsIAbView.
[scriptable, uuid(79ad5d6e-1dd2-11b2-addd-f547dab50d75)]
interface nsIAbViewListener : nsISupports
{
/// Called when the selection is changed in the tree
void onSelectionChanged();
/// Called when the total count of cards is changed.
void onCountChanged(in long total);
};
/**
* This interface and its associated nsAbView object provides an interface
* to allow a tree to be associated with an address book, and the results
* to be displayed in that tree.
*
* If you wish for the tree to display the results of a different address
* book, then call setView again. There is no need to delete and recreate the
* nsAbView object. If you wish to clear the view, then just call clearView.
*/
[scriptable, uuid(45e2fa9f-0b59-4090-a2fa-fb7042cf64a2)]
interface nsIAbView : nsISupports
{
/**
* Sets up the nsIAbView to look at the specified directory. This may be
* called multiple times.
*
* @param aDirectory The directory to search, this may be a directory
* with a query string.
* @param aViewListener An optional listener.
* @param aSortColumn The column to sort by. See the xul element with
* id abResultsTreeCols for possible values.
* @param aSortDirection The sort direction to use ("ascending"/"descending")
* @return The actual sortColumn (various switching of apps
* could cause the persisted sortColumn to be bogus).
*/
AString setView(in nsIAbDirectory aAddressBook,
in nsIAbViewListener aAbViewListener,
in AString aSortColumn,
in AString aSortDirection);
/**
* Clears the view and releases any locally held copies of the address book
* directory. This should be called when the view is no longer required, e.g.
* on unload.
*/
void clearView();
/**
* Sorts the tree by the specified parameters.
*
* @param aSortColumn The column to sort by. See the xul element with
* id abResultsTreeCols for possible values.
* @param aSortDirection The sort direction to use ("ascending"/"descending")
* @param aResort The function DOES optimize for the case when sortColumn
* and sortDirection is identical since the last call.
* If an unconditional resort is needed, set this to true.
*/
void sortBy(in wstring aSortColumn, in wstring aSortDirection,
[optional] in boolean aResort);
/// Returns the current sort column
readonly attribute AString sortColumn;
/// Returns the current sort direction
readonly attribute AString sortDirection;
/**
* Returns the current directory that this view is hooked up to. May be
* null if no directory has been set.
*/
readonly attribute nsIAbDirectory directory;
/**
* Returns the card associated with the given row.
*
* @param aRow The row from which to return the card.
* @return A card associated with the row, or null if row is not valid.
*/
nsIAbCard getCardFromRow(in long aRow);
/// Selects all rows in the view.
void selectAll();
/// Deletes all the selected cards (no prompts are given).
void deleteSelectedCards();
/**
* Swaps the first and last name order, and updates the appropriate
* preference.
*/
void swapFirstNameLastName();
/**
* Returns an array of the currently selected addresses.
*/
readonly attribute nsIArray selectedAddresses;
};
|