Ignore:
Timestamp:
Jan 7, 2010, 6:54:47 PM (12 years ago)
Author:
Thomas Schmid
Message:
  • fixed TextOutput bug that was created while trying to fix an old one. thanks for the hint, theo
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/TextOutput/TextOutput.cs

    r1046 r1058  
    402402        }
    403403
    404         // check type explicitly, if connector type is set to anything else than object
    405         if (getCurrentType() != typeof(object) && value != null && !getCurrentType().Equals(value.GetType()))
    406         {
    407             GuiLogMessage(String.Format("Input data type does not match setting. Expected: {0}, Found: {1}", getCurrentType(), value.GetType()),
    408                 NotificationLevel.Error);
    409             return;
     404        if (value == null)
     405        {
     406            fillValue = string.Empty;
     407            OnPropertyChanged(propertyKey);
    410408        }
    411 
    412         if (value is bool)
    413         {
    414             if (settings.BooleanAsNumeric)
    415             {
    416                 fillValue = Convert.ToInt32(value).ToString();
     409        else
     410        {
     411            // check type explicitly, if connector type is set to anything else than object
     412            if (getCurrentType() != typeof(object) && !getCurrentType().Equals(value.GetType()))
     413            {
     414                GuiLogMessage(String.Format("Input data type does not match setting. Expected: {0}, Found: {1}", getCurrentType(), value.GetType()),
     415                    NotificationLevel.Error);
     416                return;
     417            }
     418
     419            if (value is bool)
     420            {
     421                if (settings.BooleanAsNumeric)
     422                {
     423                    fillValue = Convert.ToInt32(value).ToString();
     424                }
     425                else
     426                {
     427                    fillValue = ((bool)value).ToString();
     428                }
     429            }
     430            else if (value is CryptoolStream)
     431            {
     432                listCryptoolStreamsOut.Add((CryptoolStream)value);
     433                CryptoolStream stream = value as CryptoolStream;
     434                // GuiLogMessage("Stream: Filling TextBoxes now...", NotificationLevel.Debug);
     435                if (stream.Length > settings.MaxLength)
     436                    AddMessage("WARNING - Stream is too large (" + (stream.Length / 1024).ToString("0.00") + " kB), output will be truncated to " + (settings.MaxLength / 1024).ToString("0.00") + "kB", NotificationLevel.Warning);
     437                byte[] byteValues = new byte[Math.Min(settings.MaxLength, stream.Length)];
     438                int bytesRead;
     439                stream.Seek(0, SeekOrigin.Begin);
     440                bytesRead = stream.Read(byteValues, 0, byteValues.Length);
     441                fillValue = GetStringForSelectedEncoding(byteValues);
     442            }
     443            else if (value is byte[])
     444            {
     445                byte[] byteArray = value as byte[];
     446                // GuiLogMessage("Byte array: Filling textbox now...", NotificationLevel.Debug);
     447                if (byteArray.Length > settings.MaxLength)
     448                {
     449                    AddMessage("WARNING - byte array is too large (" + (byteArray.Length / 1024).ToString("0.00") + " kB), output will be truncated to " + (settings.MaxLength / 1024).ToString("0.00") + "kB", NotificationLevel.Warning);
     450                }
     451
     452                long size = byteArray.Length;
     453                if (size > settings.MaxLength)
     454                {
     455                    size = settings.MaxLength;
     456                }
     457                byte[] sizedArray = new byte[size];
     458                for (int i = 0; i < size; i++)
     459                {
     460                    sizedArray[i] = byteArray[i];
     461                }
     462                fillValue = GetStringForSelectedEncoding(sizedArray);
    417463            }
    418464            else
    419465            {
    420                 fillValue = ((bool)value).ToString();
    421             }
    422         }
    423         else if (value is CryptoolStream)
    424         {
    425             listCryptoolStreamsOut.Add((CryptoolStream)value);
    426             CryptoolStream stream = value as CryptoolStream;
    427             // GuiLogMessage("Stream: Filling TextBoxes now...", NotificationLevel.Debug);
    428             if (stream.Length > settings.MaxLength)
    429                 AddMessage("WARNING - Stream is too large (" + (stream.Length / 1024).ToString("0.00") + " kB), output will be truncated to " + (settings.MaxLength / 1024).ToString("0.00") + "kB", NotificationLevel.Warning);
    430             byte[] byteValues = new byte[Math.Min(settings.MaxLength, stream.Length)];
    431             int bytesRead;
    432             stream.Seek(0, SeekOrigin.Begin);
    433             bytesRead = stream.Read(byteValues, 0, byteValues.Length);
    434             fillValue = GetStringForSelectedEncoding(byteValues);
    435         }
    436         else if (value is byte[])
    437         {
    438             byte[] byteArray = value as byte[];
    439             // GuiLogMessage("Byte array: Filling textbox now...", NotificationLevel.Debug);
    440             if (byteArray.Length > settings.MaxLength)
    441             {
    442                 AddMessage("WARNING - byte array is too large (" + (byteArray.Length / 1024).ToString("0.00") + " kB), output will be truncated to " + (settings.MaxLength / 1024).ToString("0.00") + "kB", NotificationLevel.Warning);
    443             }
    444 
    445             long size = byteArray.Length;
    446             if (size > settings.MaxLength)
    447             {
    448                 size = settings.MaxLength;
    449             }
    450             byte[] sizedArray = new byte[size];
    451             for (int i = 0; i < size; i++)
    452             {
    453                 sizedArray[i] = byteArray[i];
    454             }
    455             fillValue = GetStringForSelectedEncoding(sizedArray);
     466                fillValue = value.ToString();
     467            }
    456468        }
    457469
Note: See TracChangeset for help on using the changeset viewer.