Base class for calculation settings. Holds the input to a calculation and uses it to determine when the calculation needs to be rerun,
invalidated etc. This class must be extended to implement a specialized settings class that is suited for a concrete calculations implementation.
Inheritance Hierarchy
Spotfire.Dxp.Framework.DocumentModelNode
Spotfire.Dxp.Framework.DocumentModelDocumentNode
Spotfire.Dxp.Application.CalculationsCalculationSettings
Spotfire.Dxp.Application.Calculations.DataRelationshipsDataRelationshipsCalculationSettings
Namespace: Spotfire.Dxp.Application.Calculations
Assembly: Spotfire.Dxp.Application (in Spotfire.Dxp.Application.dll) Version: 25.11.10401.3615 (25.11.10401.3615)
Syntax
C#
[SerializableAttribute] [PersistenceVersionAttribute(3, 0)] public abstract class CalculationSettings : DocumentNode
The CalculationSettings type exposes the following members.
Constructors
Name | Description | |
---|---|---|
CalculationSettings |
Creates a CalculationSettings object.
| |
CalculationSettings(SerializationInfo, StreamingContext) | Implements ISerializable. |
Methods
Name | Description | |
---|---|---|
AddDependency(CalculationDependencyIdentifier, DataColumn) |
Creates a dependency on a DataColumn identified by identifier. If a dependency with that identifier
already exists it will replace the old dependency with the new one.
| |
AddDependency(CalculationDependencyIdentifier, DataSelection) |
Creates a dependency on a dataselection identified by identifier. If a dependency with that identifier
already exists it will replace the old dependency with the new one.
| |
AddDependency(CalculationDependencyIdentifier, IEnumerableDataColumn) |
Creates a dependency on a number of DataColumn objects identified by identifier. If a dependency with that identifier
already exists it will replace the old dependency with the new one.
| |
CreateEventRelay(PropertyName, StatelessDependencyDeclarer) |
Creates an event relay. An event relay is a property in the document model
which propagates event.
An event is raised for the event relay whenever when the trigger returned by the
specified dependencyDeclarer fires.
(Inherited from DocumentNode.) | |
CreateEventRelay(PropertyName, StatelessDependencyDeclarer, EventRelayMode) |
Creates an event relay. An event relay is a property in the document model
which propagates event.
An event is raised for the event relay whenever when the trigger returned by the
specified dependencyDeclarer fires.
(Inherited from DocumentNode.) | |
CreatePropertyT(PropertyName, UndoableListT) |
Creates an UndoableListT and assigns it to the specified field.
The UndoableListT will have the specified propertyName.
(Inherited from DocumentNode.) | |
CreatePropertyT(PropertyName, UndoableSetT) |
Creates an UndoableSetT and assigns it to the specified field.
The UndoableSetT will have the specified propertyName.
(Inherited from DocumentNode.) | |
CreatePropertyTNode(PropertyName, UndoableCrossReferencePropertyTNode, TNode) |
Creates an UndoableCrossReferencePropertyT and assigns it to the specified field.
The UndoableCrossReferencePropertyT will have the specified propertyName and initialValue.
(Inherited from DocumentNode.) | |
CreatePropertyT(PropertyName, UndoablePropertyT, T) |
Creates an UndoablePropertyT and assigns it to the specified field.
The UndoablePropertyT will have the specified propertyName and initialValue.
(Inherited from DocumentNode.) | |
CreatePropertyTKey, TValue(PropertyName, UndoableDictionaryTKey, TValue) |
Creates an UndoableDictionaryTKey, TValue and assigns it to the specified field.
The UndoableDictionaryTKey, TValue will have the specified propertyName.
(Inherited from DocumentNode.) | |
CreatePropertyTKey, TNode(PropertyName, PropertyName, UndoableKeyedCollectionTKey, TNode) |
Creates an UndoableKeyedCollectionTKey, TNode and assigns it to the specified field.
The UndoableKeyedCollectionTKey, TNode will have the specified propertyName.
(Inherited from DocumentNode.) | |
CreateReadOnlyPropertyT |
Creates a read-only property of type T and assigns it to the specified field.
(Inherited from DocumentNode.) | |
CreateRuntimeConstantT |
Creates a runtime constant. A runtime constant is a property in the document model
whose value is computed once when first accessed. The value is then disposed
along with the DocumentNode.
(Inherited from DocumentNode.) | |
CreateRuntimePropertyT(PropertyName, RuntimePropertyT, DependencyDeclarer, PropertyComputerT) | Obsolete.
Creates a RuntimePropertyT.
(Inherited from DocumentNode.) | |
CreateRuntimePropertyT(PropertyName, RuntimePropertyT, StatelessDependencyDeclarer, StatelessPropertyComputerT) |
Creates a RuntimePropertyT.
(Inherited from DocumentNode.) | |
DeclareInternalEventHandlers | Override this method to declare handlers of internal events.
(Overrides DocumentNodeDeclareInternalEventHandlers(InternalEventManager).) | |
DeserializePropertyT(SerializationInfo, StreamingContext, PropertyName, UndoableCrossReferencePropertyT) |
Deserializes an UndoableCrossReferencePropertyT with value of type T
stored in info with key propertyName.
(Inherited from DocumentNode.) | |
DeserializePropertyT(SerializationInfo, StreamingContext, PropertyName, UndoableListT) | (Inherited from DocumentNode.) | |
DeserializePropertyT(SerializationInfo, StreamingContext, PropertyName, UndoablePropertyT) | (Inherited from DocumentNode.) | |
DeserializePropertyT(SerializationInfo, StreamingContext, PropertyName, UndoableSetT) | (Inherited from DocumentNode.) | |
DeserializePropertyTKey, TValue(SerializationInfo, StreamingContext, PropertyName, UndoableDictionaryTKey, TValue) | (Inherited from DocumentNode.) | |
DeserializePropertyTKey, TNode(SerializationInfo, StreamingContext, PropertyName, PropertyName, UndoableKeyedCollectionTKey, TNode) | (Inherited from DocumentNode.) | |
DeserializeReadOnlyPropertyT |
Deserializes a read-only property of type T
stored in info with key propertyName.
(Inherited from DocumentNode.) | |
DuplicateSubtreeT | Returns a copy of the sub tree spanned from this node that
has the same outwards non-owning references. The returned copy will
be in state New and is intended to be attached to the document
immediately. (Inherited from DocumentNode.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetAdditionalIsValidTriggers |
If a subclass has additional dependencies besides those added to the baseclass this method can
be overridden to indicate when the input to the calculation has changed/disappeared so the
calculation can no longer produce a sensible result. This will trigger the Calculation.HasValidValue property
and cause invalid columns to be output the next time the calculation is run.
| |
GetAdditionalNeedsRefreshTriggers |
If a subclass has additional dependencies besides those added to the baseclass this method can
be overridden to indicate when the input to the calculation has changed to warrant an invalidation
or recalculation depending on UpdateBehavior. This will trigger the Calculation.NeedsRefresh property.
| |
GetColumnDependencies |
Get the column dependencies identified by a given CalculationDependencyIdentifier | |
GetDataSelectionDependency |
Get the DataSelection dependency identified by a given CalculationDependencyIdentifier | |
GetPersistedTypeName | Can be used in the deserialization constructor to get the type name that the class
corresponding to this class had when it was originally serialized. Will return null
if the specified caller type has no correspondence in the serialized information
(Inherited from DocumentNode.) | |
GetPersistedVersion | Can be used in the deserialization constructor to get the persistence version that this class
was marked with when it was originally serialized. Will return null
if the specified caller type has no correspondence in the serialized information
(Inherited from DocumentNode.) | |
GetSelectedRows | Obsolete.
Gets the selected rows for a datatable and a CalculationDependencyIdentifier that has been registered together with
a DataSelection.
| |
GetService | Override this method to provide services accessible
from this node and its descendants.
If you can not provide the requested service, you should call
base.GetService which relays the request to the owner
or to the AnalysisApplication if no owner is set.
(Inherited from Node.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
GetUpdateBehaviorTriggerCore |
Override this method to provide a trigger which fire when the value of the UpdateBehavior changes.
| |
InternalTransaction |
Starts an internal transaction on the document model by
executing the specified executor delegate.
(Inherited from DocumentNode.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
OnConfigure |
Allows a node to configure itself to the surrounding document.
(Overrides DocumentNodeOnConfigure.) | |
OnConfigured |
Allows a node to configure itself to the surrounding document.
(Inherited from DocumentNode.) | |
OnReconfigure |
Allows a node to reconfigure itself to a new part of the surrounding document.
(Inherited from DocumentNode.) | |
OnReconfigured |
Allows a node to reconfigure itself to a new part of the surrounding document.
(Inherited from DocumentNode.) | |
SerializePropertyT(SerializationInfo, StreamingContext, UndoableCrossReferencePropertyT) | Serializes an Undoable*Property with value of type T
storing it in info with key property.Name.
(Inherited from DocumentNode.) | |
SerializePropertyT(SerializationInfo, StreamingContext, UndoableListT) | Serializes an UndoableList with values of type T
storing it in info with key list.Name.
(Inherited from DocumentNode.) | |
SerializePropertyT(SerializationInfo, StreamingContext, UndoablePropertyT) | Serializes an UndoableProperty with value of type T
storing it in info with key property.Name.
(Inherited from DocumentNode.) | |
SerializePropertyT(SerializationInfo, StreamingContext, UndoableSetT) | Serializes an UndoableSet storing it in info
with key given by the property name of the set.
(Inherited from DocumentNode.) | |
SerializePropertyTKey, TValue(SerializationInfo, StreamingContext, UndoableDictionaryTKey, TValue) | Serializes an UndoableDictionary storing it in info
with key given by the property name of the dictionary.
(Inherited from DocumentNode.) | |
SerializePropertyTKey, TNode(SerializationInfo, StreamingContext, UndoableKeyedCollectionTKey, TNode) |
Serializes an UndoableKeyedCollectionTKey, TNode storing it in info
with key given by the property name of the keyedCollection.
(Inherited from DocumentNode.) | |
SerializeReadOnlyPropertyT |
Serializes a read-only property of type T
stored in info with key propertyName.
(Inherited from DocumentNode.) | |
ValidateAttached | Validates that the node is attached.
(Inherited from DocumentNode.) | |
ValidateSettings |
Validates the suggested columns, filtering selections and marking selections with respect to the current Settings and Results.
In particular this means checking for circular references. This method is meant to be called from a dialog before allowing the user
to set up dependencies that would cause errors. If the implementer forgets to do this the framework will run the same check before trying
to calculate but without any chance for the user to modify their choices.
|
Properties
Name | Description | |
---|---|---|
Context |
Gets the context of this node.
(Inherited from DocumentNode.) | |
IsAttached |
Gets a value indicating whether this node is attached.
(Inherited from DocumentNode.) | |
IsNew |
Gets whether or not a settings object is new, that is, is associated
with a calculation instance that has not been executed yet.
| |
Transactions |
Gets a collection of methods for executing transactions on the document.
(Inherited from DocumentNode.) | |
UpdateBehavior |
Gets the update behavior of the calculation.
|
Explicit Interface Implementations
Name | Description | |
---|---|---|
IServiceProviderGetService |
Implements IServiceProvider.
(Inherited from Node.) | |
INodeContextGetAncestorT |
Implements GetAncestorT.
(Inherited from DocumentNode.) | |
INodeContextGetServiceT |
Implements GetServiceT.
(Inherited from DocumentNode.) | |
INodeContextIsDescendantOf |
Implements IsDescendantOf(DocumentNode).
(Inherited from DocumentNode.) | |
ITransactionsBeginAggregatedTransaction |
Implements BeginAggregatedTransaction.
(Inherited from DocumentNode.) | |
ITransactionsExecuteInvisibleTransaction |
Implements ExecuteInvisibleTransaction(Executor).
(Inherited from DocumentNode.) | |
ITransactionsExecuteStickyTransaction |
Implements ExecuteStickyTransaction(Guid, Executor).
(Inherited from DocumentNode.) | |
ITransactionsExecuteTransaction |
Implements ExecuteTransaction(Executor).
(Inherited from DocumentNode.) |
Remarks
Examples
internal class MyCalculationSettings : CalculationSettings { #region Classes for property names public new abstract class PropertyNames : CalculationSettings.PropertyNames { //empty } #endregion // Classes for property names #region Classes for calculation dependency identifiers public new abstract class CalculationDependencyIdentifiers : CalculationSettings.CalculationDependencyIdentifiers { internal static readonly CalculationDependencyIdentifier XColumns = CreateIdentifier("XColumns"); internal static readonly CalculationDependencyIdentifier YColumns = CreateIdentifier("YColumns"); internal static readonly CalculationDependencyIdentifier DataFilteringSelection = CreateIdentifier("DataFilteringSelection"); } #endregion #region Properties public override CalculationUpdateBehavior UpdateBehavior { get { return CalculationUpdateBehavior.Invalidate; } } public DataTable XColumnsSourceDataTable { get { DataColumnCalculationDependencyCollection dep = GetColumnDependencies(CalculationDependencyIdentifiers.XColumns); if (dep != null) { //unlike asking the columns for their ancestor table this will always work even if the user has deleted all columns //in the table and is thus preferable return dep.DataTable; } return null; } } public IEnumerable<DataColumn> XColumns { get { DataColumnCalculationDependencyCollection dep = GetColumnDependencies(CalculationDependencyIdentifiers.XColumns); if (dep != null) { return dep.Columns; } return new List<DataColumn>(); } set { AddDependency(CalculationDependencyIdentifiers.XColumns, value); } } public IEnumerable<DataColumn> YColumns { get { DataColumnCalculationDependencyCollection dep = GetColumnDependencies(CalculationDependencyIdentifiers.YColumns); if (dep != null) { return dep.Columns; } return new List<DataColumn>(); } set { AddDependency(CalculationDependencyIdentifiers.YColumns, value); } } //the steps for a dependency on marking are exactly the same public DataFilteringSelection DataFilteringSelection { get { DataSelectionCalculationDependency dep = GetDataSelectionDependency(CalculationDependencyIdentifiers.DataFilteringSelection); if(dep!=null) { return dep.DataSelection; } return null; } set { AddDependency(CalculationDependencyIdentifiers.DataFilteringSelection, value); } } #endregion #region Construction public MyCalculationSettings() { } #endregion #region ISerializable Members protected MyCalculationSettings(SerializationInfo info, StreamingContext context) : base(info, context) { } protected override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); } #endregion }
Version Information
See Also