/// <summary>
        /// Opens the data item browse
        /// </summary>
        /// <returns></returns>
        protected override IQOpResult <DataItemThresholds> OpenEditor(DataItemThresholds defaultValue, IQVarElementTarget target)
        {
            var editor = new DataItemThresholdsSelector();

            editor.Value = defaultValue;
            if (editor.ShowDialog() != DialogResult.OK)
            {
                return new IQOpResult <DataItemThresholds> {
                           Result = OpResultEnum.Cancelled
                }
            }
            ;

            return(new IQOpResult <DataItemThresholds> {
                Result = OpResultEnum.Completed, Value = editor.Value
            });
        }
        private string GetDisplayString()
        {
            if (Element.Value.ObdGuid == Guid.Empty)
            {
                return(String.Empty);
            }

            try
            {
                var obd = ObsDef.GetEntityByObdGuid(Element.Value.ObdGuid);
                if (obd.IsNullEntity)
                {
                    return(String.Empty);
                }

                string str = String.Empty;

                var value = Element.Value;

                if (obd.Type == (short)MedDefs.ObdType.ItemTable)
                {
                    if (value.TableItems != null)
                    {
                        var sb = new StringBuilder();
                        foreach (var item in value.TableItems)
                        {
                            var obdItem = ObsDef.GetEntityByObdGuid(item);
                            sb.AppendFormat("{0}; ", obdItem.LabelDescriptionInactiveIndicator.Trim());
                        }

                        str = sb.ToString().Trim().TrimEnd(';');
                    }
                }
                else
                {
                    switch (obd.ObsDefDataFormat)
                    {
                    case ObsDefDataFormat.Numeric:
                        str = FormatNumericThresholds(value);
                        break;

                    case ObsDefDataFormat.Date:
                        if (value.DateRange.Type == InputDateRangeControlType.SpecificDates)
                        {
                            bool startDateValid = value.StartDate.HasValue && value.StartDate.Value > DateTime.MinValue;
                            bool endDateValid   = value.EndDate.HasValue && value.EndDate.Value < DateTime.MaxValue;
                            if (startDateValid && endDateValid)
                            {
                                str = String.Format("{0} - {1}",
                                                    value.StartDate.Value.ToShortDateString(),
                                                    value.EndDate.Value.ToShortDateString());
                            }
                            else if (startDateValid)
                            {
                                str = String.Format(">= {0}", value.StartDate.Value.ToShortDateString());
                            }
                            else if (endDateValid)
                            {
                                str = String.Format("<= {0}", value.EndDate.Value.ToShortDateString());
                            }
                        }
                        else
                        {
                            str = Element.Value.DateRange.ToReadableString();
                        }
                        break;

                    case ObsDefDataFormat.String:
                    case ObsDefDataFormat.Memo:
                        if (DataItemThresholdsSelector.UseStringNumericLimits(Element.Value.StringAlgorithm))
                        {
                            str = FormatNumericThresholds(value);
                        }
                        else
                        {
                            str = String.Format("{0} \"{1}\"",
                                                DataItemThresholdsSelector.StringAlgorithmIdToString(Element.Value.StringAlgorithm),
                                                Element.Value.StringInput);
                        }
                        break;
                    }
                }

                if (String.IsNullOrEmpty(str))
                {
                    return(obd.LabelInactiveIndicator.Trim());
                }

                return(String.Format("{0} ({1})", obd.LabelInactiveIndicator.Trim(), str));
            }
            catch (Exception)
            {
                return(String.Empty);
            }
        }