C# Class SIL.FieldWorks.XWorks.TreeBarHandler

Inheritance: RecordBarHandler
Exibir arquivo Open project: sillsdev/FieldWorks Class Usage Examples

Protected Properties

Property Type Description
m_hvoToTreeNodeTable TreeNode>.Dictionary
m_objRepo ICmObjectRepository
m_possRepo ICmPossibilityRepository

Public Methods

Method Description
EnsureSelectedNodeVisible ( TreeView tree ) : void

Ensure that the selected node is visible VERTICALLY. TreeNode.EnsureVisible attempts to make as much as possible of the label of the node visible. If the label is wider than the window, it will scroll horizontally and hide the plus/minus icons, which is very confusing to the user. The only way I (JohnT) have found to suppress this is to temporarily give the node a narrow label while calling EnsureVisible.

PopulateRecordBar ( SIL.FieldWorks.XWorks.RecordList list ) : void
ReleaseRecordBar ( ) : void
ReloadItem ( ICmObject currentObject ) : void
UpdateSelection ( ICmObject currentObject ) : void

Protected Methods

Method Description
AddSubNodes ( ICmObject obj, TreeNodeCollection parentsCollection ) : void

the default implementation does not add any sub nodes

AddToTreeNodeTable ( int keyHvo, TreeNode node ) : void
AddTreeNode ( ICmObject obj, TreeNodeCollection parentsCollection ) : TreeNode
AddTreeNodes ( ArrayList sortedObjects, TreeView tree ) : void
CreateTreebarContextMenuStrip ( ) : ContextMenuStrip
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.

GetTreeNodeLabel ( ICmObject obj, Font &font ) : string
PopulateRecordBar ( SIL.FieldWorks.XWorks.RecordList list, bool editable ) : void
TreeBarHandler ( ) : System
tree_DragDrop ( object sender, DragEventArgs e ) : void

Currently we only know how to move our own items.

tree_DragOver ( object sender, DragEventArgs e ) : void
tree_GiveFeedback ( object sender, System.Windows.Forms.GiveFeedbackEventArgs e ) : void
tree_MouseClicked ( object sender, MouseEventArgs e ) : void
tree_MouseDown ( object sender, MouseEventArgs e ) : void
tree_MouseMove ( object sender, MouseEventArgs e ) : void
tree_NodeMouseClick ( object sender, TreeNodeMouseClickEventArgs e ) : void
tree_Promote ( ) : void
tree_moveDown ( ) : void

let subclass handle this

tree_moveUp ( ) : void

let subclass handle this

Private Methods

Method Description
CheckAndReportBadDiscourseTemplateMove ( ICmPossibility movingColumn, int hvoTemplate, int hvoTemplateList, int hvoDest ) : bool

Checks for and reports any disallowed discourse template moves.

CheckAndReportBadTagListMove ( ICmPossibility movingTagItem, int hvoSubListRoot, int hvoMainTagList, int hvoDest ) : bool

Checks for and reports any disallowed tag list moves.

CheckAndReportForbiddenMove ( int hvoMove, int hvoDest ) : bool

Check for and deal with moves that should not be allowed. Previously the only disallowed move was one that reorganized a chart template that is in use. This is not the optimum place to 'know' about this, but I (JohnT) am not sure where is. Now we are disallowing certain moves within the TextMarkup Tags list too, so I (GordonM) have refactored a bit. Review: Should these be pulled out to the PossibilityTreeBarHandler subclass?

ClearDragHilite ( ) : void
ExpandItems ( TreeNodeCollection treeNodeCollection, Set expandedItems ) : void

If any of the nodes in treeNodeCollection has a tag that is an int that is in the set, expand it, and recursively check its children.

GetExpandedItems ( TreeNodeCollection treeNodeCollection, Set expandedItems ) : void

For all the nodes that are expanded, if their tag is an int, add it to the set.

Init ( XCore.Mediator mediator, XmlNode node ) : void
IsHvoATreeNode ( int hvo ) : bool

Check whether the given hvo is represented by a TreeNode.

MoveItem ( object sender, TreeNode destNode, TreeNode sourceItem ) : void
OkToDrop ( object sender, DragEventArgs e, TreeNode &destNode ) : bool

Method Details

AddSubNodes() protected method

the default implementation does not add any sub nodes
protected AddSubNodes ( ICmObject obj, TreeNodeCollection parentsCollection ) : void
obj ICmObject
parentsCollection System.Windows.Forms.TreeNodeCollection
return void

AddToTreeNodeTable() protected method

protected AddToTreeNodeTable ( int keyHvo, TreeNode node ) : void
keyHvo int
node System.Windows.Forms.TreeNode
return void

AddTreeNode() protected method

protected AddTreeNode ( ICmObject obj, TreeNodeCollection parentsCollection ) : TreeNode
obj ICmObject
parentsCollection System.Windows.Forms.TreeNodeCollection
return System.Windows.Forms.TreeNode

AddTreeNodes() protected method

protected AddTreeNodes ( ArrayList sortedObjects, TreeView tree ) : void
sortedObjects System.Collections.ArrayList
tree System.Windows.Forms.TreeView
return void

CreateTreebarContextMenuStrip() protected method

protected CreateTreebarContextMenuStrip ( ) : ContextMenuStrip
return System.Windows.Forms.ContextMenuStrip

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

EnsureSelectedNodeVisible() public method

Ensure that the selected node is visible VERTICALLY. TreeNode.EnsureVisible attempts to make as much as possible of the label of the node visible. If the label is wider than the window, it will scroll horizontally and hide the plus/minus icons, which is very confusing to the user. The only way I (JohnT) have found to suppress this is to temporarily give the node a narrow label while calling EnsureVisible.
public EnsureSelectedNodeVisible ( TreeView tree ) : void
tree System.Windows.Forms.TreeView
return void

GetTreeNodeLabel() protected method

protected GetTreeNodeLabel ( ICmObject obj, Font &font ) : string
obj ICmObject
font System.Drawing.Font
return string

PopulateRecordBar() public method

public PopulateRecordBar ( SIL.FieldWorks.XWorks.RecordList list ) : void
list SIL.FieldWorks.XWorks.RecordList
return void

PopulateRecordBar() protected method

protected PopulateRecordBar ( SIL.FieldWorks.XWorks.RecordList list, bool editable ) : void
list SIL.FieldWorks.XWorks.RecordList
editable bool
return void

ReleaseRecordBar() public method

public ReleaseRecordBar ( ) : void
return void

ReloadItem() public method

public ReloadItem ( ICmObject currentObject ) : void
currentObject ICmObject
return void

TreeBarHandler() protected method

protected TreeBarHandler ( ) : System
return System

UpdateSelection() public method

public UpdateSelection ( ICmObject currentObject ) : void
currentObject ICmObject
return void

tree_DragDrop() protected method

Currently we only know how to move our own items.
protected tree_DragDrop ( object sender, DragEventArgs e ) : void
sender object
e System.Windows.Forms.DragEventArgs
return void

tree_DragOver() protected method

protected tree_DragOver ( object sender, DragEventArgs e ) : void
sender object
e System.Windows.Forms.DragEventArgs
return void

tree_GiveFeedback() protected method

protected tree_GiveFeedback ( object sender, System.Windows.Forms.GiveFeedbackEventArgs e ) : void
sender object
e System.Windows.Forms.GiveFeedbackEventArgs
return void

tree_MouseClicked() protected method

protected tree_MouseClicked ( object sender, MouseEventArgs e ) : void
sender object
e MouseEventArgs
return void

tree_MouseDown() protected method

protected tree_MouseDown ( object sender, MouseEventArgs e ) : void
sender object
e MouseEventArgs
return void

tree_MouseMove() protected method

protected tree_MouseMove ( object sender, MouseEventArgs e ) : void
sender object
e MouseEventArgs
return void

tree_NodeMouseClick() protected method

protected tree_NodeMouseClick ( object sender, TreeNodeMouseClickEventArgs e ) : void
sender object
e System.Windows.Forms.TreeNodeMouseClickEventArgs
return void

tree_Promote() protected method

protected tree_Promote ( ) : void
return void

tree_moveDown() protected method

let subclass handle this
protected tree_moveDown ( ) : void
return void

tree_moveUp() protected method

let subclass handle this
protected tree_moveUp ( ) : void
return void

Property Details

m_hvoToTreeNodeTable protected_oe property

protected Dictionary m_hvoToTreeNodeTable
return TreeNode>.Dictionary

m_objRepo protected_oe property

protected ICmObjectRepository m_objRepo
return ICmObjectRepository

m_possRepo protected_oe property

protected ICmPossibilityRepository m_possRepo
return ICmPossibilityRepository