protected override string FormatItem(Altaxo.Data.AltaxoVariant item)
		{
			if (item.IsType(Altaxo.Data.AltaxoVariant.Content.VDouble))
				return FormatItem((double)item);
			else
				return item.ToString();
		}
Beispiel #2
0
		/// <summary>
		/// PhysicalVariantToNormal translates physical values into a normal value linear along the axis
		/// a physical value of the axis origin must return a value of zero
		/// a physical value of the axis end must return a value of one
		/// the function physicalToNormal must be provided by any derived class
		/// </summary>
		/// <param name="x">the physical value</param>
		/// <returns>
		/// the normalized value linear along the axis,
		/// 0 for axis origin, 1 for axis end</returns>
		public override double PhysicalVariantToNormal(Altaxo.Data.AltaxoVariant x)
		{
			if (x.IsType(AltaxoVariant.Content.VDateTime))
				return PhysicalToNormal((DateTime)x);
			else if (x.CanConvertedToDouble)
				return PhysicalToNormal(new DateTime((long)(x.ToDouble() * 10000000)));
			else throw new ArgumentException("Variant x is neither DateTime nor numeric");
		}
Beispiel #3
0
		public override double PhysicalVariantToNormal(Altaxo.Data.AltaxoVariant x)
		{
			if (x.IsType(Altaxo.Data.AltaxoVariant.Content.VString))
			{
				int idx = _dataBounds.IndexOf(x.ToString());
				return idx < 0 ? double.NaN : (1 + idx - _cachedAxisOrg) * _cachedOneByAxisSpan;
			}
			else if (x.CanConvertedToDouble)
			{
				return (x.ToDouble() - _cachedAxisOrg) * _cachedOneByAxisSpan;
			}
			else
			{
				return double.NaN;
			}
		}
    /// <summary>
    /// Processes a single value .
    /// If the data value is text, the boundaries are
    /// updated and the number of items is increased by one (if not contained already). The function returns true
    /// in this case. On the other hand, if the value is outside the range, the function has to
    /// return false.
    /// </summary>
    /// <param name="item">The data item.</param>
    /// <returns>True if data is in the tracked range, false if the data is not in the tracked range.</returns>
    public  bool Add(Altaxo.Data.AltaxoVariant item)
    {
      if(item.IsType(Altaxo.Data.AltaxoVariant.Content.VString))
      {
        string s = item.ToString();
        if (!_itemList.Contains(s))
        {
          _itemList.Add(s);

          if (_eventSuspendCount == 0)
          {
            OnNumberOfItemsChanged();
            OnBoundaryChanged(false, true);
          }

          return true;
        }
      }
      return false;
    }