C# Class SIL.FieldWorks.FdoUi.CmObjectUi

Inheritance: IxCoreColleague, IFWDisposable
Afficher le fichier Open project: sillsdev/FieldWorks Class Usage Examples

Protected Properties

Свойство Type Description
m_cache SIL.FieldWorks.FDO.FdoCache
m_hostControl System.Windows.Forms.Control
m_hvo int
m_mediator XCore.Mediator
m_obj ICmObject
m_vc IVwViewConstructor

Méthodes publiques

Méthode Description
CanDelete ( string &cannotDeleteMsg ) : bool
CheckDisposed ( ) : void

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

CmObjectUi ( ICmObject obj ) : System

If you KNOW for SURE the right subclass of CmObjectUi, you can just make one directly. Most clients should use MakeUi.

ConsiderDeletingRelatedFile ( ICmFile file, XCore.Mediator mediator ) : void
CreateNewUiObject ( XCore.Mediator mediator, int classId, int hvoOwner, int flid, int insertionPosition ) : CmObjectUi

Create a new FDO object.

DeleteUnderlyingObject ( ) : bool

Delete the object, after showing a confirmation dialog. Return true if deleted, false, if cancelled.

Dispose ( ) : void

Must not be virtual.

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

GetSelfOrParentOfClass ( ICmObject cmo, int classIdToSearchFor ) : ICmObject

Return either the object or an owner ("parent") up the ownership chain that is of the desired class. Being a subclass of the desired class also matches, unlike ICmObject.OwnerOfClass() where the class must match exactly.

GuidForJumping ( object commandObject ) : System.Guid

gives the guid of the object to use in the URL we construct when doing a jump

HandleCtrlClick ( XCore.Mediator mediator, Control hostControl ) : bool

Handle a control-click by invoking the first active JumpToTool menu item. Note that the item selected here should be the same one that is selected by Mark

HandleRightClick ( XCore.Mediator mediator, Control hostControl, bool shouldDisposeThisWhenClosed ) : bool

Handle a right click by popping up the implied context menu.

HandleRightClick ( XCore.Mediator mediator, Control hostControl, bool shouldDisposeThisWhenClosed, Action adjustMenu ) : bool

Handle a right click by popping up the implied context menu.

HandleRightClick ( XCore.Mediator mediator, Control hostControl, bool shouldDisposeThisWhenClosed, string sMenuId ) : bool

Handle the right click by popping up an explicit context menu id.

HandleRightClick ( XCore.Mediator mediator, Control hostControl, bool shouldDisposeThisWhenClosed, string sMenuId, Action adjustMenu ) : bool

Handle the right click by popping up an explicit context menu id.

Init ( XCore.Mediator mediator, XmlNode configurationParameters ) : void
LaunchGuiControl ( Command command ) : void
MakeUi ( SIL.FieldWorks.FDO.FdoCache cache, int hvo ) : CmObjectUi

In many cases we don't really need the FDO object, which can be relatively expensive to create. This version saves the information, and creates it when needed.

MakeUi ( ICmObject obj ) : CmObjectUi

This is the main class factory that makes a corresponding CmObjectUi for any given CmObject.

MarkCtrlClickItem ( ContextMenuStrip menu ) : void

Given a populated choice group, mark the one that will be invoked by a ctrl-click. This method is typically used as the menuAdjuster argument in calling HandleRightClick. It's important that it marks the same menu item as selected by HandlCtrlClick.

MergeUnderlyingObject ( bool fLoseNoTextData ) : void

Merge the underling objects. This method handles the confirm dialog, then delegates the actual merge to ReallyMergeUnderlyingObject. If the flag is true, we merge strings and owned atomic objects; otherwise, we don't change any that aren't null to begin with.

MoveUnderlyingObjectToCopyOfOwner ( ) : void

OnDeleteSelectedItem ( object commandObject ) : void
OnDisplayDeleteSelectedItem ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool

Hack to "remove" the delete menu from the popup menu.

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

called by the mediator to decide how/if a MenuItem or toolbar button should be displayed

OnJumpToTool ( object commandObject ) : bool

This method CALLED BY REFLECTION is required to make various right-click menu commands like Show Entry in Lexicon work in browse views. FWR-3695.

ParseSinglePropertySequenceValueIntoHvos ( string singlePropertySequenceValue, SIL.FieldWorks.FDO.FdoCache cacheForCheckingValidity, int expectedClassId ) : List

RGB ( Color c ) : uint

Convert a .NET color to the type understood by Views code and other Win32 stuff.

RGB ( int r, int g, int b ) : uint

Make a standard Win32 color from three components.

ToStatusBar ( ) : string

Get a string suitable for use in the left panel of the LexText status bar. It will show the created and modified dates, if the object has them.

Méthodes protégées

Méthode Description
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.

DoRelatedCleanupForDeleteObject ( ) : void

Do any cleanup that involves interacting with the user, after the user has confirmed that our object should be deleted.

GetMergeinfo ( SIL.FieldWorks.LexText.Controls.WindowParams wp, List mergeCandidates, string &guiControl, string &helpTopic ) : DummyCmObject
IsAcceptableContextToJump ( string toolCurrent, string toolTarget ) : bool
ReallyDeleteUnderlyingObject ( ) : void
ReallyMergeUnderlyingObject ( int survivorHvo, bool fLoseNoTextData ) : void

Merge the underling objects. This method handles the transaction, then delegates the actual merge to MergeObject. If the flag is true, we merge strings and owned atomic objects; otherwise, we don't change any that aren't null to begin with.

ShouldDisplayMenuForClass ( int specifiedClsid, XCore.UIItemDisplayProperties display ) : bool

Private Methods

Méthode Description
CmObjectUi ( ) : System

This should only be used by MakeUi.

DefaultCreateNewUiObject ( int classId, int hvoOwner, int flid, int insertionPosition, SIL.FieldWorks.FDO.FdoCache cache ) : CmObjectUi
GetCurrentCmObject ( ) : ICmObject
IsCtrlClickItem ( object item ) : bool
MakeUi ( SIL.FieldWorks.FDO.FdoCache cache, int hvo, int clsid ) : CmObjectUi

Method Details

CanDelete() public méthode

public CanDelete ( string &cannotDeleteMsg ) : bool
cannotDeleteMsg string
Résultat bool

CheckDisposed() public méthode

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

CmObjectUi() public méthode

If you KNOW for SURE the right subclass of CmObjectUi, you can just make one directly. Most clients should use MakeUi.
public CmObjectUi ( ICmObject obj ) : System
obj ICmObject
Résultat System

ConsiderDeletingRelatedFile() public static méthode

public static ConsiderDeletingRelatedFile ( ICmFile file, XCore.Mediator mediator ) : void
file ICmFile
mediator XCore.Mediator
Résultat void

CreateNewUiObject() public static méthode

Create a new FDO object.
public static CreateNewUiObject ( XCore.Mediator mediator, int classId, int hvoOwner, int flid, int insertionPosition ) : CmObjectUi
mediator XCore.Mediator
classId int
hvoOwner int
flid int
insertionPosition int
Résultat CmObjectUi

DeleteUnderlyingObject() public méthode

Delete the object, after showing a confirmation dialog. Return true if deleted, false, if cancelled.
public DeleteUnderlyingObject ( ) : bool
Résultat bool

Dispose() public méthode

Must not be virtual.
public Dispose ( ) : void
Résultat void

Dispose() protected méthode

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
Résultat void

DoRelatedCleanupForDeleteObject() protected méthode

Do any cleanup that involves interacting with the user, after the user has confirmed that our object should be deleted.
protected DoRelatedCleanupForDeleteObject ( ) : void
Résultat void

GetMergeinfo() protected méthode

protected GetMergeinfo ( SIL.FieldWorks.LexText.Controls.WindowParams wp, List mergeCandidates, string &guiControl, string &helpTopic ) : DummyCmObject
wp SIL.FieldWorks.LexText.Controls.WindowParams
mergeCandidates List
guiControl string
helpTopic string
Résultat DummyCmObject

GetMessageTargets() public méthode

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[]
Résultat IxCoreColleague[]

GetSelfOrParentOfClass() public static méthode

Return either the object or an owner ("parent") up the ownership chain that is of the desired class. Being a subclass of the desired class also matches, unlike ICmObject.OwnerOfClass() where the class must match exactly.
public static GetSelfOrParentOfClass ( ICmObject cmo, int classIdToSearchFor ) : ICmObject
cmo ICmObject
classIdToSearchFor int
Résultat ICmObject

GuidForJumping() public méthode

gives the guid of the object to use in the URL we construct when doing a jump
public GuidForJumping ( object commandObject ) : System.Guid
commandObject object
Résultat System.Guid

HandleCtrlClick() public méthode

Handle a control-click by invoking the first active JumpToTool menu item. Note that the item selected here should be the same one that is selected by Mark
public HandleCtrlClick ( XCore.Mediator mediator, Control hostControl ) : bool
mediator XCore.Mediator
hostControl System.Windows.Forms.Control
Résultat bool

HandleRightClick() public méthode

Handle a right click by popping up the implied context menu.
public HandleRightClick ( XCore.Mediator mediator, Control hostControl, bool shouldDisposeThisWhenClosed ) : bool
mediator XCore.Mediator
hostControl System.Windows.Forms.Control
shouldDisposeThisWhenClosed bool True, if the menu handler is to dispose of the CmObjectUi after menu closing
Résultat bool

HandleRightClick() public méthode

Handle a right click by popping up the implied context menu.
public HandleRightClick ( XCore.Mediator mediator, Control hostControl, bool shouldDisposeThisWhenClosed, Action adjustMenu ) : bool
mediator XCore.Mediator
hostControl System.Windows.Forms.Control
shouldDisposeThisWhenClosed bool True, if the menu handler is to dispose of the CmObjectUi after menu closing
adjustMenu Action
Résultat bool

HandleRightClick() public méthode

Handle the right click by popping up an explicit context menu id.
public HandleRightClick ( XCore.Mediator mediator, Control hostControl, bool shouldDisposeThisWhenClosed, string sMenuId ) : bool
mediator XCore.Mediator
hostControl System.Windows.Forms.Control
shouldDisposeThisWhenClosed bool True, if the menu handler is to dispose of the CmObjectUi after menu closing
sMenuId string
Résultat bool

HandleRightClick() public méthode

Handle the right click by popping up an explicit context menu id.
public HandleRightClick ( XCore.Mediator mediator, Control hostControl, bool shouldDisposeThisWhenClosed, string sMenuId, Action adjustMenu ) : bool
mediator XCore.Mediator
hostControl System.Windows.Forms.Control
shouldDisposeThisWhenClosed bool True, if the menu handler is to dispose of the CmObjectUi after menu closing
sMenuId string
adjustMenu Action
Résultat bool

Init() public méthode

public Init ( XCore.Mediator mediator, XmlNode configurationParameters ) : void
mediator XCore.Mediator
configurationParameters System.Xml.XmlNode
Résultat void

IsAcceptableContextToJump() protected méthode

protected IsAcceptableContextToJump ( string toolCurrent, string toolTarget ) : bool
toolCurrent string
toolTarget string
Résultat bool

LaunchGuiControl() public méthode

public LaunchGuiControl ( Command command ) : void
command Command
Résultat void

MakeUi() public static méthode

In many cases we don't really need the FDO object, which can be relatively expensive to create. This version saves the information, and creates it when needed.
public static MakeUi ( SIL.FieldWorks.FDO.FdoCache cache, int hvo ) : CmObjectUi
cache SIL.FieldWorks.FDO.FdoCache
hvo int
Résultat CmObjectUi

MakeUi() public static méthode

This is the main class factory that makes a corresponding CmObjectUi for any given CmObject.
public static MakeUi ( ICmObject obj ) : CmObjectUi
obj ICmObject
Résultat CmObjectUi

MarkCtrlClickItem() public static méthode

Given a populated choice group, mark the one that will be invoked by a ctrl-click. This method is typically used as the menuAdjuster argument in calling HandleRightClick. It's important that it marks the same menu item as selected by HandlCtrlClick.
public static MarkCtrlClickItem ( ContextMenuStrip menu ) : void
menu System.Windows.Forms.ContextMenuStrip
Résultat void

MergeUnderlyingObject() public méthode

Merge the underling objects. This method handles the confirm dialog, then delegates the actual merge to ReallyMergeUnderlyingObject. If the flag is true, we merge strings and owned atomic objects; otherwise, we don't change any that aren't null to begin with.
public MergeUnderlyingObject ( bool fLoseNoTextData ) : void
fLoseNoTextData bool
Résultat void

MoveUnderlyingObjectToCopyOfOwner() public méthode

public MoveUnderlyingObjectToCopyOfOwner ( ) : void
Résultat void

OnDeleteSelectedItem() public méthode

public OnDeleteSelectedItem ( object commandObject ) : void
commandObject object
Résultat void

OnDisplayDeleteSelectedItem() public méthode

Hack to "remove" the delete menu from the popup menu.
public OnDisplayDeleteSelectedItem ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool
commandObject object
display XCore.UIItemDisplayProperties
Résultat bool

OnDisplayJumpToTool() public méthode

called by the mediator to decide how/if a MenuItem or toolbar button should be displayed
public OnDisplayJumpToTool ( object commandObject, XCore.UIItemDisplayProperties &display ) : bool
commandObject object
display XCore.UIItemDisplayProperties
Résultat bool

OnJumpToTool() public méthode

This method CALLED BY REFLECTION is required to make various right-click menu commands like Show Entry in Lexicon work in browse views. FWR-3695.
public OnJumpToTool ( object commandObject ) : bool
commandObject object
Résultat bool

ParseSinglePropertySequenceValueIntoHvos() static public méthode

static public ParseSinglePropertySequenceValueIntoHvos ( string singlePropertySequenceValue, SIL.FieldWorks.FDO.FdoCache cacheForCheckingValidity, int expectedClassId ) : List
singlePropertySequenceValue string
cacheForCheckingValidity SIL.FieldWorks.FDO.FdoCache null, if you don't care about checking the validity of the items in singlePropertySequenceValue, /// otherwise, pass in a cache to check validity.
expectedClassId int if you pass a cache, you can also use this too make sure the object matches an expected class, /// otherwise it just checks that the object exists in the database (or is a valid virtual object)
Résultat List

RGB() static public méthode

Convert a .NET color to the type understood by Views code and other Win32 stuff.
static public RGB ( Color c ) : uint
c Color
Résultat uint

RGB() static public méthode

Make a standard Win32 color from three components.
static public RGB ( int r, int g, int b ) : uint
r int
g int
b int
Résultat uint

ReallyDeleteUnderlyingObject() protected méthode

protected ReallyDeleteUnderlyingObject ( ) : void
Résultat void

ReallyMergeUnderlyingObject() protected méthode

Merge the underling objects. This method handles the transaction, then delegates the actual merge to MergeObject. If the flag is true, we merge strings and owned atomic objects; otherwise, we don't change any that aren't null to begin with.
protected ReallyMergeUnderlyingObject ( int survivorHvo, bool fLoseNoTextData ) : void
survivorHvo int
fLoseNoTextData bool
Résultat void

ShouldDisplayMenuForClass() protected méthode

protected ShouldDisplayMenuForClass ( int specifiedClsid, XCore.UIItemDisplayProperties display ) : bool
specifiedClsid int
display XCore.UIItemDisplayProperties
Résultat bool

ToStatusBar() public méthode

Get a string suitable for use in the left panel of the LexText status bar. It will show the created and modified dates, if the object has them.
public ToStatusBar ( ) : string
Résultat string

Property Details

m_cache protected_oe property

protected FdoCache,SIL.FieldWorks.FDO m_cache
Résultat SIL.FieldWorks.FDO.FdoCache

m_hostControl protected_oe property

protected Control,System.Windows.Forms m_hostControl
Résultat System.Windows.Forms.Control

m_hvo protected_oe property

protected int m_hvo
Résultat int

m_mediator protected_oe property

protected Mediator,XCore m_mediator
Résultat XCore.Mediator

m_obj protected_oe property

protected ICmObject m_obj
Résultat ICmObject

m_vc protected_oe property

protected IVwViewConstructor m_vc
Résultat IVwViewConstructor