C# Class SIL.FieldWorks.XWorks.RecordClerk

Takes care of a list of records, standing between it and the UI.
Inheritance: IFWDisposable, IxCoreColleague, IRecordListUpdater
Mostrar archivo Open project: sillsdev/FieldWorks Class Usage Examples

Protected Properties

Property Type Description
m_activeMenuBarFilter SIL.FieldWorks.Filters.RecordFilter
m_clerkProvidingRootObject string
m_fIsActiveInGui bool
m_filterProvider XCore.RecordFilterListProvider
m_id string
m_list SIL.FieldWorks.XWorks.RecordList
m_mediator XCore.Mediator
m_rch IRecordChangeHandler
m_recordBarHandler RecordBarHandler
s_lastClerkToLoadTreeBar RecordClerk

Private Properties

Property Type Description
AddFilterChoice void
AreCustomFieldsAProblem bool
BroadcastChange void
CheckValidOperation bool
ClerkSelectedObjectPropertyId string
FindClosestValidIndex int
GetTypeNameForUi string
IndexOfObjOrChildOrParent int
OnChangeFilterToCheckedListPropertyChoice void
OnChangeListItemsClass void
ParentClerk RecordClerk
PersistListOn void
RemoveNotification void
ResetFilterToDefault void
ResetStatusBarMessageForCurrentObject void
ResetStatusBarPanel void
RestoreListFrom bool
SetCurrentFromRelatedClerk bool
SetSubitem void
SetupDataContext void
TryClerkProvidingRootObject bool
UpdateList void
UpdateOwningObject void
UpdateOwningObject void
UpdateSortStatusBarPanel void
UpdateStatusBarRecordNumber void
ViewChangedSelectedRecord void
m_list_AboutToReload void
m_list_DoneReload void

Public Methods

Method Description
ActivateUI ( bool useRecordTreeBar ) : void

Tell the RecordClerk that it may now be the new master of the tree bar, if it is not a dependent clerk. Use DeactivatedGui to tell RecordClerk that it's not currently being used in a Gui.

AreSortersCompatible ( SIL.FieldWorks.Filters.RecordSorter first, SIL.FieldWorks.Filters.RecordSorter second ) : bool

Test to see if the two given sorters are compatible, override if you need to check for something beyond what the RecordSorter.CompatibleSorter() will test.

BecomeInactive ( ) : void

Tell RecordClerk that we're not currently being used in a Gui.

BeginBroadcastingChanges ( int count ) : void

Called at the start of broadcasting PropChanged messages, passed the count of changes. Currently this used so as to not doing anything to batch them if there is only one.

CheckDisposed ( ) : void

Check to see if the object has been disposed. All public Properties and Methods should call this before doing anything else.

Dispose ( ) : void

Must not be virtual.

EndBroadcastingChanges ( ) : void

Called after broadcasting all changes.

FindClerk ( XCore.Mediator mediator, string id ) : RecordClerk

finds an existing RecordClerk by the given id.

GetCorrespondingPropertyName ( string vectorName ) : string
GetMessageTargets ( ) : IxCoreColleague[]

return an array of all of the objects which should 1) be queried when looking for someone to deliver a message to 2) be potential recipients of a broadcast

Init ( XCore.Mediator mediator, XmlNode viewConfiguration ) : void

Initialize the IxCoreColleague

JumpToIndex ( int index ) : void
JumpToIndex ( int index, bool suppressFocusChange ) : void

Jump to the specified index in the list.

JumpToRecord ( int jumpToHvo ) : void
JumpToRecord ( int jumpToHvo, bool suppressFocusChange ) : void

Jump to the specified object.

OccurrenceFromHvo ( int hvo ) : IParaFragment

If we're wrapping a ConcDecorator, we can extract its AnalysisOccurrence.

OnAdjustFilterSelection ( object argument ) : bool

Make Filters menuBar item selection adjustments as necessary.

OnChangeFilter ( SIL.FieldWorks.Filters.FilterChangeEventArgs args ) : void
OnChangeFilterClearAll ( object commandObject ) : void
OnChangeSorter ( ) : void
OnDeleteRecord ( object commandObject ) : bool
OnDeleteRecordToolTip ( object holder ) : bool

Figure a tooltop for the DeleteRecord command.

OnDisplayChangeFilterClearAll ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool
OnDisplayDeleteRecord ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool

see if it makes sense to provide the "delete record" command now

OnDisplayFiltersList ( object parameters, XCore.UIListDisplayProperties &display ) : bool

this is called when XCore wants to display something that relies on the list with the id "FiltersList"

OnDisplayFirstRecord ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool

see if it makes sense to provide the "previous record" command now

OnDisplayInsertItemInVector ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool

Influence the display of a particular *command* (which we don't know the name of) by giving an opinion on whether we are prepared to handle its corresponding "InsertItemInVector" *message*.

OnDisplayLastRecord ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool

see if it makes sense to provide the "next record" command now

OnDisplayNextRecord ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool

see if it makes sense to provide the "next record" command now

OnDisplayPreviousRecord ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool

see if it makes sense to provide the "previous record" command now

OnExport ( object argument ) : bool
OnFirstRecord ( object argument ) : bool
OnInsertItemInVector ( object argument ) : bool

this is triggered by any command whose message attribute is "InsertItemInVector"

OnItemDataModified ( object argument ) : void

This is invoked by reflection when something might want to know about a change. The initial usage is for the respelling dialog to let ConcDecorators know about spelling changes. The notification is passed on to any SDAs that understand it, including embedded ones.

OnJumpToRecord ( object argument ) : bool

display the given record

OnLastRecord ( object argument ) : bool
OnNextRecord ( object argument ) : bool

move to the next or last record in the current set of records

OnPreviousRecord ( object argument ) : bool
OnPropertyChanged ( string name ) : void

Receives the broadcast message "PropertyChanged"

OnRefresh ( object argument ) : bool
OnSorterChanged ( SIL.FieldWorks.Filters.RecordSorter sorter, string sortName, bool isDefaultSort ) : void

Called when the sorter changes. A name indicating what is being sorted is passed along with the record sorter.

PropChanged ( int hvo, int tag, int ivMin, int cvIns, int cvDel ) : void

We watch for changes to DateModified and update the status bar if we are controlling it.

RefreshCurrentRecord ( ) : void

refresh current record, by deleting and re-inserting it into our list.

ReloadIfNeeded ( ) : void

This is public for now just so MatchingReversalEntriesBrowser.Initialize can call it, but I (JohnT) haven't yet fully determined whether it needs to. I just needed to stop it being called in another, much more common context, so moved a call there.

RemoveInvalidItems ( ) : void

deletes invalidated sort items from the list. (e.g. as result from Undo/Redo).

RemoveItemsFor ( int hvoToRemove ) : void

deletes the given item from the list. needed to fix LT-9230 without full reload.

SaveOnChangeRecord ( ) : void

This method is called by views that display a single record to cause a Save when switching records. The purpose is to allow the special Save to be suppressed in certain cases, such as Delete record (and perhaps eventually create record).

SelectedRecordChanged ( bool suppressFocusChange ) : void

update the status bar, selected node of the tree bar, etc. and broadcast record navigation

SelectedRecordChanged ( bool fSkipRecordNavigation, bool suppressFocusChange ) : void

update the status bar, selected node of the tree bar, etc.

UpdateList ( bool fRefreshRecord ) : void
UpdateOwningObjectIfNeeded ( ) : void

Very like UpdateOwningObject, but needs to be internal, and don't want to do anything (like reloading list) if it didn't change.

UpdateRecordTreeBarIfNeeded ( ) : void

If the record bar is visible and needs to be repopulated, do it.

UpdateStatusBarRecordNumber ( String noRecordsText ) : void

ViewChangedSelectedRecord ( SIL.FieldWorks.Common.Utils.FwObjectSelectionEventArgs e ) : void

Called by a view (e.g. browseView) when, internally, it changes the currently selected record.

Protected Methods

Method Description
AddItemToList ( int hvoItem ) : bool

Override this (initially only in InterlinTextsRecordClerk) if the clerk knows how to add an item to the current list/filter on request.

CanDelete ( ) : bool

Override this if there are special cases where you need more control over which objects can be deleted.

ClearInvalidSubitem ( ) : void

A hook to allow a subclass to remove an invalid subitem.

Dispose ( bool disposing ) : void

Executes in two distinct scenarios. 1. If disposing is true, the method has been called directly or indirectly by a user's code via the Dispose method. Both managed and unmanaged resources can be disposed. 2. If disposing is false, the method has been called by the runtime from inside the finalizer and you should not reference (access) other managed objects, as they already have been garbage collected. Only unmanaged resources can be disposed.

If any exceptions are thrown, that is fine. If the method is being done in a finalizer, it will be ignored. If it is thrown by client code calling Dispose, it needs to be handled by fixing the bug. If subclasses override this method, they should call the base implementation.

FilterStatusContents ( bool listIsFiltered ) : string
GetObjectToDelete ( ICmObject currentObject ) : ICmObject

By default DeleteRecord deletes the current record. Override if you need to delete something else. For example, in interlinear text we delete the owning Text.

GetStatusBarMsgForCurrentObject ( ) : string
InDesiredArea ( string desiredArea ) : bool

determine if we're in the (given) area

InDesiredTool ( string desiredTool ) : bool

determine if we're in the (given) tool

OnFilterListChanged ( object argument ) : void

update the contents of the filter list.

OnListChanged ( object src, ListChangedEventArgs arguments ) : void

update the contents of the tree bar and anything else that should change when, for example, the filter or sort order changes.

RefreshAfterInvalidObject ( ) : void

Handles refreshing the record list after an object was deleted.

This should be overriden to perform more efficient refreshing of the record list display

ReportCannotDelete ( ) : void

By default we just silently don't delete things that shouldn't be. Override if you want to give a message.

StoreClerkInPropertyTable ( XmlNode clerkConfiguration ) : void
TryRestoreFilter ( XCore.Mediator mediator, XmlNode clerkConfiguration, SIL.FieldWorks.FDO.FdoCache cache ) : bool

TryRestoreSorter ( XCore.Mediator mediator, XmlNode clerkConfiguration, SIL.FieldWorks.FDO.FdoCache cache ) : bool

UpdateFilterStatusBarPanel ( ) : void

Figure out what should show in the filter status panel and make it so.

UpdateFiltersAndSortersIfNeeded ( ) : bool

Compares the state of the filters and sorters to persisted values in property table and re-establishes them from the property table if they have changed.

Private Methods

Method Description
AddFilterChoice ( SIL.FieldWorks.Filters.RecordFilter filter, XCore.UIListDisplayProperties display ) : void
AreCustomFieldsAProblem ( int clsids ) : bool
BroadcastChange ( bool suppressFocusChange ) : void
CheckValidOperation ( Command command, string className ) : bool
ClerkSelectedObjectPropertyId ( string clerkId ) : string
FindClosestValidIndex ( int idx, int cobj ) : int
GetTypeNameForUi ( ICmObject obj ) : string
IndexOfObjOrChildOrParent ( int hvoTarget ) : int

Find the index of hvoTarget in m_list; or, if it does not occur, the index of a child of hvoTarget.

OnChangeFilterToCheckedListPropertyChoice ( ) : void

Change the list filter to the currently selected (checked) FilterList item. This selection is stored in the property table based on the name of the filter associated with the current clerk.

OnChangeListItemsClass ( int listItemsClass, int newTargetFlid, bool force ) : void

Handle a change to the class of items we want to bulk edit (and sometimes the field we want to bulk edit matters, too).

ParentClerk ( ) : RecordClerk

returns the Clerk that governs the OwningObject of our clerk.

PersistListOn ( string pathname ) : void

Persist this list for retrieval by RestoreListFrom, if we are a primary Clerk.

RemoveNotification ( ) : void

Stop notifications of prop changes

ResetFilterToDefault ( ) : void

If a filter becomes invalid, it has to be reset somehow. This resets it to the default filter for this clerk (possibly null).

ResetStatusBarMessageForCurrentObject ( ) : void
ResetStatusBarPanel ( string panel, string msg ) : void
RestoreListFrom ( string pathname ) : bool

Returns true if successful, false if some problem reading the file, including detecting that part of a key is a deleted object. Return false if this is not the primary clerk.

SetCurrentFromRelatedClerk ( ) : bool
SetSubitem ( ICmObject subitem ) : void

Overridden in SubitemRecordClerk, this records the subitem.

SetupDataContext ( bool floadList ) : void
TryClerkProvidingRootObject ( RecordClerk &clerkProvidingRootObject ) : bool
UpdateList ( bool fRefreshRecord, bool forceSort ) : void

Update the list, and possibly the record referenced by our stored IRecordChangeHandler object.

Part of the IRecordListUpdater interface.

UpdateOwningObject ( ) : void
UpdateOwningObject ( bool fUpdateOwningObjectOnlyIfChanged ) : void
UpdateSortStatusBarPanel ( ) : void
UpdateStatusBarRecordNumber ( ) : void
ViewChangedSelectedRecord ( SIL.FieldWorks.Common.Utils.FwObjectSelectionEventArgs e, IVwSelection sel ) : void
m_list_AboutToReload ( object sender, EventArgs e ) : void
m_list_DoneReload ( object sender, EventArgs e ) : void

Method Details

ActivateUI() public method

Tell the RecordClerk that it may now be the new master of the tree bar, if it is not a dependent clerk. Use DeactivatedGui to tell RecordClerk that it's not currently being used in a Gui.
public ActivateUI ( bool useRecordTreeBar ) : void
useRecordTreeBar bool
return void

AddItemToList() protected method

Override this (initially only in InterlinTextsRecordClerk) if the clerk knows how to add an item to the current list/filter on request.
protected AddItemToList ( int hvoItem ) : bool
hvoItem int
return bool

AreSortersCompatible() public method

Test to see if the two given sorters are compatible, override if you need to check for something beyond what the RecordSorter.CompatibleSorter() will test.
public AreSortersCompatible ( SIL.FieldWorks.Filters.RecordSorter first, SIL.FieldWorks.Filters.RecordSorter second ) : bool
first SIL.FieldWorks.Filters.RecordSorter
second SIL.FieldWorks.Filters.RecordSorter
return bool

BecomeInactive() public method

Tell RecordClerk that we're not currently being used in a Gui.
public BecomeInactive ( ) : void
return void

BeginBroadcastingChanges() public method

Called at the start of broadcasting PropChanged messages, passed the count of changes. Currently this used so as to not doing anything to batch them if there is only one.
public BeginBroadcastingChanges ( int count ) : void
count int
return void

CanDelete() protected method

Override this if there are special cases where you need more control over which objects can be deleted.
protected CanDelete ( ) : bool
return bool

CheckDisposed() public method

Check to see if the object has been disposed. All public Properties and Methods should call this before doing anything else.
public CheckDisposed ( ) : void
return void

ClearInvalidSubitem() protected method

A hook to allow a subclass to remove an invalid subitem.
protected ClearInvalidSubitem ( ) : void
return void

Dispose() public method

Must not be virtual.
public Dispose ( ) : void
return void

Dispose() protected method

Executes in two distinct scenarios. 1. If disposing is true, the method has been called directly or indirectly by a user's code via the Dispose method. Both managed and unmanaged resources can be disposed. 2. If disposing is false, the method has been called by the runtime from inside the finalizer and you should not reference (access) other managed objects, as they already have been garbage collected. Only unmanaged resources can be disposed.
If any exceptions are thrown, that is fine. If the method is being done in a finalizer, it will be ignored. If it is thrown by client code calling Dispose, it needs to be handled by fixing the bug. If subclasses override this method, they should call the base implementation.
protected Dispose ( bool disposing ) : void
disposing bool
return void

EndBroadcastingChanges() public method

Called after broadcasting all changes.
public EndBroadcastingChanges ( ) : void
return void

FilterStatusContents() protected method

protected FilterStatusContents ( bool listIsFiltered ) : string
listIsFiltered bool
return string

FindClerk() public static method

finds an existing RecordClerk by the given id.
public static FindClerk ( XCore.Mediator mediator, string id ) : RecordClerk
mediator XCore.Mediator
id string
return RecordClerk

GetCorrespondingPropertyName() public static method

public static GetCorrespondingPropertyName ( string vectorName ) : string
vectorName string
return string

GetMessageTargets() public method

return an array of all of the objects which should 1) be queried when looking for someone to deliver a message to 2) be potential recipients of a broadcast
public GetMessageTargets ( ) : IxCoreColleague[]
return IxCoreColleague[]

GetObjectToDelete() protected method

By default DeleteRecord deletes the current record. Override if you need to delete something else. For example, in interlinear text we delete the owning Text.
protected GetObjectToDelete ( ICmObject currentObject ) : ICmObject
currentObject ICmObject
return ICmObject

GetStatusBarMsgForCurrentObject() protected method

protected GetStatusBarMsgForCurrentObject ( ) : string
return string

InDesiredArea() protected method

determine if we're in the (given) area
protected InDesiredArea ( string desiredArea ) : bool
desiredArea string The desired area.
return bool

InDesiredTool() protected method

determine if we're in the (given) tool
protected InDesiredTool ( string desiredTool ) : bool
desiredTool string
return bool

Init() public method

Initialize the IxCoreColleague
public Init ( XCore.Mediator mediator, XmlNode viewConfiguration ) : void
mediator XCore.Mediator
viewConfiguration System.Xml.XmlNode
return void

JumpToIndex() public method

public JumpToIndex ( int index ) : void
index int
return void

JumpToIndex() public method

Jump to the specified index in the list.
public JumpToIndex ( int index, bool suppressFocusChange ) : void
index int The index.
suppressFocusChange bool if set to true focus changes will be suppressed.
return void

JumpToRecord() public method

public JumpToRecord ( int jumpToHvo ) : void
jumpToHvo int
return void

JumpToRecord() public method

Jump to the specified object.
public JumpToRecord ( int jumpToHvo, bool suppressFocusChange ) : void
jumpToHvo int The jump to hvo.
suppressFocusChange bool if set to true focus changes will be suppressed.
return void

OccurrenceFromHvo() public method

If we're wrapping a ConcDecorator, we can extract its AnalysisOccurrence.
public OccurrenceFromHvo ( int hvo ) : IParaFragment
hvo int
return IParaFragment

OnAdjustFilterSelection() public method

Make Filters menuBar item selection adjustments as necessary.
public OnAdjustFilterSelection ( object argument ) : bool
argument object
return bool

OnChangeFilter() public method

public OnChangeFilter ( SIL.FieldWorks.Filters.FilterChangeEventArgs args ) : void
args SIL.FieldWorks.Filters.FilterChangeEventArgs
return void

OnChangeFilterClearAll() public method

public OnChangeFilterClearAll ( object commandObject ) : void
commandObject object
return void

OnChangeSorter() public method

public OnChangeSorter ( ) : void
return void

OnDeleteRecord() public method

public OnDeleteRecord ( object commandObject ) : bool
commandObject object
return bool

OnDeleteRecordToolTip() public method

Figure a tooltop for the DeleteRecord command.
public OnDeleteRecordToolTip ( object holder ) : bool
holder object
return bool

OnDisplayChangeFilterClearAll() public method

public OnDisplayChangeFilterClearAll ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool
commandObject object
display XCore.UIItemDisplayProperties
return bool

OnDisplayDeleteRecord() public method

see if it makes sense to provide the "delete record" command now
public OnDisplayDeleteRecord ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool
commandObject object
display XCore.UIItemDisplayProperties
return bool

OnDisplayFiltersList() public method

this is called when XCore wants to display something that relies on the list with the id "FiltersList"
public OnDisplayFiltersList ( object parameters, XCore.UIListDisplayProperties &display ) : bool
parameters object
display XCore.UIListDisplayProperties
return bool

OnDisplayFirstRecord() public method

see if it makes sense to provide the "previous record" command now
public OnDisplayFirstRecord ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool
commandObject object
display XCore.UIItemDisplayProperties
return bool

OnDisplayInsertItemInVector() public method

Influence the display of a particular *command* (which we don't know the name of) by giving an opinion on whether we are prepared to handle its corresponding "InsertItemInVector" *message*.
public OnDisplayInsertItemInVector ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool
commandObject object
display XCore.UIItemDisplayProperties
return bool

OnDisplayLastRecord() public method

see if it makes sense to provide the "next record" command now
public OnDisplayLastRecord ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool
commandObject object
display XCore.UIItemDisplayProperties
return bool

OnDisplayNextRecord() public method

see if it makes sense to provide the "next record" command now
public OnDisplayNextRecord ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool
commandObject object
display XCore.UIItemDisplayProperties
return bool

OnDisplayPreviousRecord() public method

see if it makes sense to provide the "previous record" command now
public OnDisplayPreviousRecord ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool
commandObject object
display XCore.UIItemDisplayProperties
return bool

OnExport() public method

public OnExport ( object argument ) : bool
argument object
return bool

OnFilterListChanged() protected method

update the contents of the filter list.
protected OnFilterListChanged ( object argument ) : void
argument object
return void

OnFirstRecord() public method

public OnFirstRecord ( object argument ) : bool
argument object
return bool

OnInsertItemInVector() public method

this is triggered by any command whose message attribute is "InsertItemInVector"
public OnInsertItemInVector ( object argument ) : bool
argument object
return bool

OnItemDataModified() public method

This is invoked by reflection when something might want to know about a change. The initial usage is for the respelling dialog to let ConcDecorators know about spelling changes. The notification is passed on to any SDAs that understand it, including embedded ones.
public OnItemDataModified ( object argument ) : void
argument object
return void

OnJumpToRecord() public method

display the given record
public OnJumpToRecord ( object argument ) : bool
argument object the hvo of the record
return bool

OnLastRecord() public method

public OnLastRecord ( object argument ) : bool
argument object
return bool

OnListChanged() protected method

update the contents of the tree bar and anything else that should change when, for example, the filter or sort order changes.
protected OnListChanged ( object src, ListChangedEventArgs arguments ) : void
src object
arguments ListChangedEventArgs
return void

OnNextRecord() public method

move to the next or last record in the current set of records
public OnNextRecord ( object argument ) : bool
argument object
return bool

OnPreviousRecord() public method

public OnPreviousRecord ( object argument ) : bool
argument object
return bool

OnPropertyChanged() public method

Receives the broadcast message "PropertyChanged"
public OnPropertyChanged ( string name ) : void
name string
return void

OnRefresh() public method

public OnRefresh ( object argument ) : bool
argument object
return bool

OnSorterChanged() public method

Called when the sorter changes. A name indicating what is being sorted is passed along with the record sorter.
public OnSorterChanged ( SIL.FieldWorks.Filters.RecordSorter sorter, string sortName, bool isDefaultSort ) : void
sorter SIL.FieldWorks.Filters.RecordSorter The sorter.
sortName string The sort name.
isDefaultSort bool true if default sorting is being used, otherwise false.
return void

PropChanged() public method

We watch for changes to DateModified and update the status bar if we are controlling it.
public PropChanged ( int hvo, int tag, int ivMin, int cvIns, int cvDel ) : void
hvo int
tag int
ivMin int
cvIns int
cvDel int
return void

RefreshAfterInvalidObject() protected method

Handles refreshing the record list after an object was deleted.
This should be overriden to perform more efficient refreshing of the record list display
protected RefreshAfterInvalidObject ( ) : void
return void

RefreshCurrentRecord() public method

refresh current record, by deleting and re-inserting it into our list.
public RefreshCurrentRecord ( ) : void
return void

ReloadIfNeeded() public method

This is public for now just so MatchingReversalEntriesBrowser.Initialize can call it, but I (JohnT) haven't yet fully determined whether it needs to. I just needed to stop it being called in another, much more common context, so moved a call there.
public ReloadIfNeeded ( ) : void
return void

RemoveInvalidItems() public method

deletes invalidated sort items from the list. (e.g. as result from Undo/Redo).
public RemoveInvalidItems ( ) : void
return void

RemoveItemsFor() public method

deletes the given item from the list. needed to fix LT-9230 without full reload.
public RemoveItemsFor ( int hvoToRemove ) : void
hvoToRemove int
return void

ReportCannotDelete() protected method

By default we just silently don't delete things that shouldn't be. Override if you want to give a message.
protected ReportCannotDelete ( ) : void
return void

SaveOnChangeRecord() public method

This method is called by views that display a single record to cause a Save when switching records. The purpose is to allow the special Save to be suppressed in certain cases, such as Delete record (and perhaps eventually create record).
public SaveOnChangeRecord ( ) : void
return void

SelectedRecordChanged() public method

update the status bar, selected node of the tree bar, etc. and broadcast record navigation
public SelectedRecordChanged ( bool suppressFocusChange ) : void
suppressFocusChange bool
return void

SelectedRecordChanged() public method

update the status bar, selected node of the tree bar, etc.
public SelectedRecordChanged ( bool fSkipRecordNavigation, bool suppressFocusChange ) : void
fSkipRecordNavigation bool
suppressFocusChange bool
return void

StoreClerkInPropertyTable() protected method

protected StoreClerkInPropertyTable ( XmlNode clerkConfiguration ) : void
clerkConfiguration System.Xml.XmlNode
return void

TryRestoreFilter() protected method

protected TryRestoreFilter ( XCore.Mediator mediator, XmlNode clerkConfiguration, SIL.FieldWorks.FDO.FdoCache cache ) : bool
mediator XCore.Mediator
clerkConfiguration System.Xml.XmlNode
cache SIL.FieldWorks.FDO.FdoCache
return bool

TryRestoreSorter() protected method

protected TryRestoreSorter ( XCore.Mediator mediator, XmlNode clerkConfiguration, SIL.FieldWorks.FDO.FdoCache cache ) : bool
mediator XCore.Mediator
clerkConfiguration System.Xml.XmlNode
cache SIL.FieldWorks.FDO.FdoCache
return bool

UpdateFilterStatusBarPanel() protected method

Figure out what should show in the filter status panel and make it so.
protected UpdateFilterStatusBarPanel ( ) : void
return void

UpdateFiltersAndSortersIfNeeded() protected method

Compares the state of the filters and sorters to persisted values in property table and re-establishes them from the property table if they have changed.
protected UpdateFiltersAndSortersIfNeeded ( ) : bool
return bool

UpdateList() public method

public UpdateList ( bool fRefreshRecord ) : void
fRefreshRecord bool
return void

UpdateOwningObjectIfNeeded() public method

Very like UpdateOwningObject, but needs to be internal, and don't want to do anything (like reloading list) if it didn't change.
public UpdateOwningObjectIfNeeded ( ) : void
return void

UpdateRecordTreeBarIfNeeded() public method

If the record bar is visible and needs to be repopulated, do it.
public UpdateRecordTreeBarIfNeeded ( ) : void
return void

UpdateStatusBarRecordNumber() public method

public UpdateStatusBarRecordNumber ( String noRecordsText ) : void
noRecordsText String
return void

ViewChangedSelectedRecord() public method

Called by a view (e.g. browseView) when, internally, it changes the currently selected record.
public ViewChangedSelectedRecord ( SIL.FieldWorks.Common.Utils.FwObjectSelectionEventArgs e ) : void
e SIL.FieldWorks.Common.Utils.FwObjectSelectionEventArgs
return void

Property Details

m_activeMenuBarFilter protected_oe property

We need to store what filter we are responsible for setting, locally, so that when the user says "no filter/all records", we can selectively remove just this filter from the set that is being kept by the RecordList. That list would contain filters contributed from other sources, in particular the FilterBar.
protected RecordFilter,SIL.FieldWorks.Filters m_activeMenuBarFilter
return SIL.FieldWorks.Filters.RecordFilter

m_clerkProvidingRootObject protected_oe property

when this is not null, that means there is another clerk managing a list, and the selected item of that list provides the object that this RecordClerk gets items out of. For example, the WfiAnalysis clerk is dependent on the WfiWordform clerk to tell it which wordform it is supposed to be displaying the analyses of.
protected string m_clerkProvidingRootObject
return string

m_fIsActiveInGui protected_oe property

True if the Clerk is being used in a Gui.
protected bool m_fIsActiveInGui
return bool

m_filterProvider protected_oe property

this is an object which gives us the list of filters which we should offer to the user from the UI. this does not include the filters they can get that by using the FilterBar.
protected RecordFilterListProvider,XCore m_filterProvider
return XCore.RecordFilterListProvider

m_id protected_oe property

protected string m_id
return string

m_list protected_oe property

protected RecordList,SIL.FieldWorks.XWorks m_list
return SIL.FieldWorks.XWorks.RecordList

m_mediator protected_oe property

protected Mediator,XCore m_mediator
return XCore.Mediator

m_rch protected_oe property

protected IRecordChangeHandler m_rch
return IRecordChangeHandler

m_recordBarHandler protected_oe property

this will be null is this clerk is dependent on another one. Only the top-level clerk gets to be represented by and interact with the tree bar.
protected RecordBarHandler,SIL.FieldWorks.XWorks m_recordBarHandler
return RecordBarHandler

s_lastClerkToLoadTreeBar static_oe protected_oe property

static protected RecordClerk,SIL.FieldWorks.XWorks s_lastClerkToLoadTreeBar
return RecordClerk