Ignore:
Timestamp:
Dec 27, 2009, 9:46:26 AM (12 years ago)
Author:
Thomas Schmid
Message:
  • fixed #108
  • fixed TextOutput bug
  • new binaries
File:
1 edited

Legend:

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

    r875 r1046  
    402402        }
    403403
    404         if (value == null)
    405         {
    406             fillValue = "null";
    407             OnPropertyChanged(propertyKey);
    408         }
    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);
     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;
     410        }
     411
     412        if (value is bool)
     413        {
     414            if (settings.BooleanAsNumeric)
     415            {
     416                fillValue = Convert.ToInt32(value).ToString();
    463417            }
    464418            else
    465419            {
    466                 fillValue = value.ToString();
    467             }
     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);
    468456        }
    469457
Note: See TracChangeset for help on using the changeset viewer.