Share via


AnalysisStatusBase.Warnings Property

Gets a collection of AnalysisWarningBase objects. Each AnalysisWarningBase object describes a particular warning or error.

Namespace:  System.Windows.Ink.AnalysisCore
Assembly:  IACore (in IACore.dll)

Syntax

'Declaration
Public ReadOnly Property Warnings As AnalysisWarningBaseCollection
'Usage
Dim instance As AnalysisStatusBase 
Dim value As AnalysisWarningBaseCollection 

value = instance.Warnings
public AnalysisWarningBaseCollection Warnings { get; }
public:
property AnalysisWarningBaseCollection^ Warnings {
    AnalysisWarningBaseCollection^ get ();
}
public function get Warnings () : AnalysisWarningBaseCollection

Property Value

Type: System.Windows.Ink.AnalysisCore.AnalysisWarningBaseCollection
A collection of AnalysisWarningBase objects in which each AnalysisWarningBase describes a particular warning or error.

Examples

The following example demonstrates looping over the analysis warnings in an AnalysisStatusBase object named status, and then using the AnalysisWarningBase objects to add information to a message string, message.

' Loop through warnings 
Dim warning As AnalysisWarningBase
For Each warning In status.Warnings
    Select Case warning.WarningCode
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.Aborted
            message = message & "Analysis operation was aborted. " 
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.BackgroundException
            ' This is a fatal warning. Throw an exception. 
            ' First, attempt to save as much document state as possible  
            ' ... 

            ' Rethrow the exception so that it can be caught by an exception 
            ' handler (or if there is no exception handler, a program error  
            ' debugger such as Dr. Watson can be invoked) 
            Throw (warning.BackgroundException)
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.ConfirmedWithoutInkRecognition
            message = message & "Node was confirmed without ink recognition having been performed. " 
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.ContextNodeLocationNotSet
            message = message & "Node does not have a proper location set. " 
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.FactoidCoercionNotSupported
            message = message & "Factoid coercion failed " 
            If (Not warning.AnalysisHint Is Nothing) AndAlso _
                warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) Then
                message = message & "for factoid: " & _
                    CType(warning.AnalysisHint.GetPropertyData( _
                          PropertyGuidsForAnalysisHintsBase.Factoid), String) & ". " 
            End If 
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.FactoidNotSupported

            If (Not warning.AnalysisHint Is Nothing) AndAlso _
                warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) Then
                message = message & _
                    CType(warning.AnalysisHint.GetPropertyData( _
                          PropertyGuidsForAnalysisHintsBase.Factoid), String) & _
                    " factoid was not respected. " 
            End If 
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.GuideNotSupported
            message = message & "Guide was not respected. " 
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.AddInkToRecognizerFailed
            message = message & "Ink could not be added to the InkRecognizer. " 
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.InkRecognizerInitializationFailed
            message = message & "The InkRecognizer failed to initialize. " 
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.NoMatchingInkRecognizerFound
            message = message & "There are no ink recognizers meeting the language or capabilities needed. " 
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.LanguageIdNotRespected
            message = message & "The language ID set on a stroke did not match the language ID of the InkRecognizer. " 
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.PartialDictionaryTermsNotSupported
            message = message & "Partial dictionary terms could not be returned from the text recognizer. " 
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.SetPrefixSuffixFailed
            message = message & "The text recognizer was unable to respect either the prefix or suffix. " 
            If (Not warning.AnalysisHint Is Nothing) AndAlso _
                warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText) Then
                message = message & "Prefix: " & _
                    warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText) _
                    & ". " 
            End If 
            If (Not warning.AnalysisHint Is Nothing) AndAlso _
                warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText) Then
                message = message & "Suffix: " & _
                    warning.AnalysisHint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText) _
                    & ". " 
            End If 
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.WordlistNotSupported
            message = message & "Wordlist was not respected. " 
        Case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.WordModeNotSupported
            message = message & "Word mode was not respected. " 
    End Select 


    ' Add node id information 
    Dim id As Guid
    For Each id In warning.GetNodeIds()
        message = message & "Id: " & id.ToString() & " " 
    Next id


    ' Add hint information 
    If Not (warning.AnalysisHint Is Nothing) Then 

        Dim hint As ContextNodeBase = warning.AnalysisHint
        message = message & Environment.NewLine & "Hint information: "
        message = message & "AllowPartialDictionaryTerms" 
        If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms) Then
            message = message & " = " & _
                hint.GetPropertyData( _
                    PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms).ToString()
        Else
            message = message & " = False " 
        End If
        message = message & "CoerceToFactoid" 
        If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.CoerceToFactoid) Then
            message = message & " = " & _
                hint.GetPropertyData( _
                    PropertyGuidsForAnalysisHintsBase.CoerceToFactoid).ToString()
        Else
            message = message & " = False " 
        End If 
        If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) Then
            message = message & "Factoid = " & _
                warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid) & " " 
        End If 
        If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Guide) Then 
            Dim theInkRecognizerGuideBase As InkRecognizerGuideBase = _
                CType(hint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Guide), _
                      InkRecognizerGuideBase)

            message += "Guide Drawn Box = {" & theInkRecognizerGuideBase.DrawnBoxLeft.ToString() _
                                          & ", " & theInkRecognizerGuideBase.DrawnBoxTop.ToString() _
                                          & ", " & theInkRecognizerGuideBase.DrawnBoxRight.ToString() _
                                          & ", " & theInkRecognizerGuideBase.DrawnBoxBottom.ToString() _
                                          & ")"

            message &= "Guide Writing Box = {" & theInkRecognizerGuideBase.WritingBoxLeft.ToString() _
                                            & ", " & theInkRecognizerGuideBase.WritingBoxTop.ToString() _
                                            & ", " & theInkRecognizerGuideBase.WritingBoxRight.ToString() _
                                            & ", " & theInkRecognizerGuideBase.WritingBoxBottom.ToString() _
                                            & ")"

            message = message & String.Format("Guide = ({0}, {1})", _
                 theInkRecognizerGuideBase.Columns, theInkRecognizerGuideBase.Rows)

        End If 

        If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Name) Then
            message = message & "Name = " & _
                CType(warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.Name), String) _
                & " " 
        End If 

        If Not hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText) Then
            message = message & "PrefixText = " & _
                CType(warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText), String) _
                & " " 
        End If 

        If Not hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText) Then
            message = message & "SuffixText = " & _
                CType(warning.AnalysisHint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText), String) _
                & " " 
        End If

        message = message & "WordMode" 
        If hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.WordMode) Then
            message = message & " = " & _
                CType(hint.GetPropertyData(PropertyGuidsForAnalysisHintsBase.WordMode), String)
        Else
            message = message & " = False" 
        End If 
    End If

    message = message & Environment.NewLine
Next warning
// Loop through warnings 
foreach (AnalysisWarningBase warning in status.Warnings)
{
    switch (warning.WarningCode)
    {
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.Aborted:
            message += "Analysis operation was aborted. ";
            break;
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.BackgroundException:
            // This is a fatal warning. Throw an exception. 
            // First, attempt to save as much doc state as possible  
            // ... 

            // Rethrow the exception so that it can be caught by an exception 
            // handler (or if there is no exception handler, a program error  
            // debugger such as Dr. Watson can be invoked) 
            throw(warning.BackgroundException);
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.ConfirmedWithoutInkRecognition:
            message += "Node was confirmed without ink recognition having been performed. ";
            break;
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.ContextNodeLocationNotSet:
            message += "Node does not have a proper location set. ";
            break;
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.FactoidCoercionNotSupported:
            message += "Factoid coercion failed ";
            if (warning.AnalysisHint != null && 
                warning.AnalysisHint.ContainsPropertyData(
                        PropertyGuidsForAnalysisHintsBase.Factoid))
            {
                message += "for factoid: " + 
                    (string) warning.AnalysisHint.GetPropertyData(
                        PropertyGuidsForAnalysisHintsBase.Factoid) + ". ";
            } 
            break;
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.FactoidNotSupported:
            if (warning.AnalysisHint != null &&
                warning.AnalysisHint.ContainsPropertyData(
                        PropertyGuidsForAnalysisHintsBase.Factoid))
            {
                message +=
                    (string)warning.AnalysisHint.GetPropertyData(
                        PropertyGuidsForAnalysisHintsBase.Factoid) 
                     + " factoid was not respected. ";
            }
            break;
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.GuideNotSupported:
            message += "Guide was not respected. ";
            break;
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.AddInkToRecognizerFailed:
            message += "Ink could not be added to the InkRecognizer. ";
            break;
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.InkRecognizerInitializationFailed:
            message += "The InkRecognizer failed to initialize. ";
            break;
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.NoMatchingInkRecognizerFound:
            message += "There are no ink recognizers meeting the language or capabilities needed. ";
            break;
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.LanguageIdNotRespected:
            message += "The language ID set on a stroke did not match the language ID of the InkRecognizer. ";
            break;
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.PartialDictionaryTermsNotSupported:
            message += "Partial dictionary terms could not be returned from the text recognizer. ";
            break;
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.SetPrefixSuffixFailed:
            message += "The text recognizer was unable to respect either the prefix or suffix. ";
            if (warning.AnalysisHint != null && 
                warning.AnalysisHint.ContainsPropertyData(
                    PropertyGuidsForAnalysisHintsBase.PrefixText))
            {
                message += "Prefix: " + 
                    warning.AnalysisHint.GetPropertyData(
                        PropertyGuidsForAnalysisHintsBase.PrefixText) + ". ";
            }
            if (warning.AnalysisHint != null &&
                warning.AnalysisHint.ContainsPropertyData(
                    PropertyGuidsForAnalysisHintsBase.SuffixText))
            {
                message += "Suffix: " +
                    warning.AnalysisHint.GetPropertyData(
                        PropertyGuidsForAnalysisHintsBase.SuffixText) + ". ";
            }
            break;
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.WordlistNotSupported:
            message += "Wordlist was not respected. ";
            break;
        case System.Windows.Ink.AnalysisCore.AnalysisWarningCode.WordModeNotSupported:
            message += "Word mode was not respected. ";
            break;
    }

    // Add node id information 
    foreach (Guid id in warning.GetNodeIds())
        message += "Id: " + id.ToString() + " ";

    // Add hint information 
    if (warning.AnalysisHint != null)
    {
        ContextNodeBase  hint = warning.AnalysisHint;
        message += Environment.NewLine + "Hint information: ";
        message += "AllowPartialDictionaryTerms";

        if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms))
            message += " = " +
                ((bool)hint.GetPropertyData(
                    PropertyGuidsForAnalysisHintsBase.AllowPartialDictionaryTerms)).ToString();
        else
            message += " = false ";

        message += "CoerceToFactoid";
        if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.CoerceToFactoid))
            message += " = " +
                ((bool)hint.GetPropertyData(
                    PropertyGuidsForAnalysisHintsBase.CoerceToFactoid)).ToString();
        else
            message += " = false ";

        if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Factoid))
            message += "Factoid = " + 
                (string) warning.AnalysisHint.GetPropertyData(
                PropertyGuidsForAnalysisHintsBase.Factoid) + " ";

        if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Guide))
        {
            InkRecognizerGuideBase theInkRecognizerGuideBase = 
                (InkRecognizerGuideBase) hint.GetPropertyData(
                PropertyGuidsForAnalysisHintsBase.Guide);

            message += "Guide Drawn Box = {" + theInkRecognizerGuideBase.DrawnBoxLeft.ToString()
                                      + ", " + theInkRecognizerGuideBase.DrawnBoxTop.ToString()
                                      + ", " + theInkRecognizerGuideBase.DrawnBoxRight.ToString()
                                      + ", " + theInkRecognizerGuideBase.DrawnBoxBottom.ToString() 
                                      + ")";

            message += "Guide Writing Box = {" + theInkRecognizerGuideBase.WritingBoxLeft.ToString()
                                        + ", " + theInkRecognizerGuideBase.WritingBoxTop.ToString()
                                        + ", " + theInkRecognizerGuideBase.WritingBoxRight.ToString()
                                        + ", " + theInkRecognizerGuideBase.WritingBoxBottom.ToString()
                                        + ")";  

        }
        if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.Name))
            message += "Name = " +
                (string) warning.AnalysisHint.GetPropertyData(
                    PropertyGuidsForAnalysisHintsBase.Name);

        if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.PrefixText))
            message += "PrefixText = " + 
                (string) warning.AnalysisHint.GetPropertyData(
                    PropertyGuidsForAnalysisHintsBase.PrefixText) + " ";
        if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.SuffixText))
            message += "SuffixText = " + 
                (string) warning.AnalysisHint.GetPropertyData(
                    PropertyGuidsForAnalysisHintsBase.SuffixText) + " ";
        message += "WordMode";

        if (hint.ContainsPropertyData(PropertyGuidsForAnalysisHintsBase.WordMode))
            message += " = " +
                ((bool) hint.GetPropertyData(
                    PropertyGuidsForAnalysisHintsBase.WordMode)).ToString();
        else
            message += " = false";
    }
    message += Environment.NewLine;
}

Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Version Information

.NET Framework

Supported in: 3.0

See Also

Reference

AnalysisStatusBase Class

AnalysisStatusBase Members

System.Windows.Ink.AnalysisCore Namespace