Table of Contents

Interface IModel

Namespace
Northwoods.Go.Models
Assembly
Northwoods.GoDiagram.WinForms.dll
public interface IModel

Properties

DataFormat

Gets or sets the name of the format of the diagram data.

string DataFormat { get; set; }

Property Value

string
See Also

IsReadOnly

Gets or sets whether this model may be modified, such as adding nodes.

bool IsReadOnly { get; set; }

Property Value

bool
See Also

Name

Gets or sets the name of this model.

string Name { get; set; }

Property Value

string
See Also

NodeDataSource

Gets or sets the collection of node data objects that correspond to Nodes, Groups, or non-Link Parts in the Diagram.

IEnumerable<object> NodeDataSource { get; set; }

Property Value

IEnumerable<object>
See Also

NodeKeyProperty

Gets or sets the name of the data property that returns a unique key for each node data object.

string NodeKeyProperty { get; set; }

Property Value

string
See Also

SharedData

Gets an object that can hold programmer-defined property values for the model as a whole, rather than just for one node or one link.

object SharedData { get; set; }

Property Value

object
See Also

SkipsUndoManager

Gets or sets whether ChangedEvents are not recorded by the UndoManager.

bool SkipsUndoManager { get; set; }

Property Value

bool
See Also

UndoManager

Gets or sets the UndoManager for this Model.

UndoManager UndoManager { get; set; }

Property Value

UndoManager
See Also

Methods

AddNodeData(object)

When you want to add a node or group to the diagram, call this method with a new data object.

void AddNodeData(object nodedata)

Parameters

nodedata object
See Also
AddNodeData(TNodeData)

ApplyIncrementalJson(string)

Modify this model by applying the changes given in an "incremental" model change in JSON format generated by ToIncrementalJson(ChangedEvent).

void ApplyIncrementalJson(string s)

Parameters

s string
See Also

Clear()

Clear out all references to any model data.

void Clear()
See Also

Commit(Action<IModel>, string)

Starts a new transaction, calls the provided function, and commits the transaction.

void Commit(Action<IModel> func, string tname = "")

Parameters

func Action<IModel>
tname string
See Also
Commit(Action<Model<TNodeData, TNodeKey, TSharedData>>, string)

CommitTransaction(string)

Commit the changes of the current transaction.

bool CommitTransaction(string tname)

Parameters

tname string

Returns

bool
See Also

ContainsNodeData(object)

Decide if a given node data object is in this model, using reference equality.

bool ContainsNodeData(object nodedata)

Parameters

nodedata object

Returns

bool
See Also
ContainsNodeData(TNodeData)

CopyNodeData(object)

Make a copy of a node data object.

object CopyNodeData(object nodedata)

Parameters

nodedata object

Returns

object
See Also
CopyNodeData(TNodeData)

FindNodeDataForKey(object)

Given a key, find the node data object in this model that uses the given value as its unique key.

object FindNodeDataForKey(object key)

Parameters

key object

Returns

object
See Also

GetCategoryForNodeData(object)

Find the category of a given node data, a string naming the node template or group template or part template that the Diagram should use to represent the node data.

string GetCategoryForNodeData(object nodedata)

Parameters

nodedata object

Returns

string
See Also

GetKeyForNodeData(object)

Given a node data object return its unique key.

object GetKeyForNodeData(object nodedata)

Parameters

nodedata object

Returns

object
See Also

InsertListItem(IList, int, object)

Add an item to a data list that may be data bound by a Panel as its ItemList, given a new data value and the index at which to insert the new value, in a manner that can be undone/redone and that automatically updates any bindings.

void InsertListItem(IList list, int idx, object val)

Parameters

list IList
idx int
val object
See Also

RemoveListItem(IList, int)

Remove an item from a data list that may be data bound by a Panel as its ItemList, given the index at which to remove a data value, in a manner that can be undone/redone and that automatically updates any bindings.

void RemoveListItem(IList list, int idx = -1)

Parameters

list IList
idx int
See Also

RemoveNodeData(object)

When you want to remove a node or group from the diagram, call this method with an existing data object.

void RemoveNodeData(object nodedata)

Parameters

nodedata object
See Also
RemoveNodeData(TNodeData)

RollbackTransaction()

Rollback the current transaction, undoing any recorded changes.

bool RollbackTransaction()

Returns

bool
See Also

Set(object, string, object)

Change the value of some property of a node data, a link data, an item data, or the SharedData, given a string naming the property and the new value, in a manner that can be undone/redone and that automatically updates any bindings.

void Set(object data, string propname, object val)

Parameters

data object
propname string
val object
See Also

SetCategoryForNodeData(object, string)

Change the category of a given node data, a string naming the node template or group template or part template that the Diagram should use to represent the node data.

void SetCategoryForNodeData(object nodedata, string cat)

Parameters

nodedata object
cat string
See Also

SetKeyForNodeData(object, object)

Change the unique key of a given node data that is already in this model.

void SetKeyForNodeData(object nodedata, object key)

Parameters

nodedata object
key object
See Also
SetKeyForNodeData(TNodeData, TNodeKey)

StartTransaction(string)

Begin a transaction, where the changes are held by a Transaction object in the UndoManager.

bool StartTransaction(string tname)

Parameters

tname string

Returns

bool
See Also

ToIncrementalJson(ChangedEvent)

Produce a JSON-format string representing the changes in the most recent Transaction.

string ToIncrementalJson(ChangedEvent e)

Parameters

e ChangedEvent

Returns

string
See Also

ToJson()

Generate a string representation of the persistent data in this model, in JSON format, that can be read in later with a call to FromJson<T>(string).

string ToJson()

Returns

string
See Also

Events

Changed

Register or unregister an event handler that is called when there is a ChangedEvent.

event EventHandler<ChangedEvent> Changed

Event Type

EventHandler<ChangedEvent>
See Also