
CHAPTER 15
Filing
15-16 Using the Filing Service
The arguments to the FileThis method supply all the information necessary to file
a soup entry, including the item to file (the target), the category under which to file
it (the value to which you set the target’s
labels slot), and the store on which to
file it.
If the value of the
labelsChanged parameter to the FileThis method is true,
your
FileThis method must use the value of the newLabels parameter to
update the value of the target’s
labels slot. However, if the value of the
labelsChanged parameter is nil, the value of the newLabels parameter is
undefined—don’t use it!
Similarly, if the value of the
storesChanged parameter is true, your
FileThis method must move the target to the new store. However, if the value of
the
storesChanged parameter is nil, the value of the destStore parameter
is undefined.
The following code example shows the implementation of a typical
FileThis
method. Remember to call
EntryChangeXmit from this method so your changes
to filed entries are saved!
FileThis: // example code - your mileage may vary
func(target, labelsChanged, newLabels, storesChanged, destStore)
begin
if labelsChanged AND target.labels <> newLabels then
begin
target.labels := newLabels;
EntryChangeXmit(target, kAppSymbol);
end // labelsChanged
if storesChanged and (EntryStore(target) <> destStore) and
not destStore:IsReadOnly() then
begin
// move the entry to the new store & xmit change
// make sure you handle locked stores too
if EntryStore(target):IsReadOnly() then
EntryCopyXmit(target, destStore, kAppSymbol);
else
EntryMoveXmit(target, destStore, kAppSymbol);
end; //storesChanged
end; // FileThis
Implementing the NewFilingFilter Method 15
When the user changes the current filing filter in the folder tab view, the system
calls your application’s
NewFilingFilter method. You need to define this
method in your application’s base view. Your
NewFilingFilter method must
update the query that retrieves items matching the current filing category and
Komentáře k této Příručce