/// <summary>
        /// Updates the data filter whenever the selected index changed.
        /// </summary>
        private void TypeConversionCB_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            typeConversionCb_.Enabled = typeConversionSpecifiedCb_.Checked;

            TsCCpxComplexItem item = null;

            if (typeConversionSpecifiedCb_.Checked)
            {
                item = (TsCCpxComplexItem)typeConversionCb_.SelectedItem;
            }
            else
            {
                if (mItem_ != null)
                {
                    item = mItem_.GetRootItem();
                }
            }

            if (item != null)
            {
                dataFilterSpecifiedCb_.Enabled = (item.DataFilterItem != null);
                dataFilterTb_.Enabled          = dataFilterSpecifiedCb_.Enabled && dataFilterSpecifiedCb_.Checked;
            }
        }
        /// <summary>
        /// Initializes the control with information specified to a complex item.
        /// </summary>
        private void SetComplexItem(OpcItem itemId)
        {
            mItem_ = TsCCpxComplexTypeCache.GetComplexItem(itemId);

            // do nothing for items that are not complex.
            if (mItem_ == null)
            {
                reqTypePn_.Visible     = true;
                complexItemPn_.Visible = false;
                return;
            }

            // display complex item controls.
            reqTypePn_.Visible     = false;
            complexItemPn_.Visible = true;

            // initialize controls.
            typeConversionCb_.Items.Clear();
            typeConversionCb_.Text             = null;
            typeConversionSpecifiedCb_.Checked = false;

            dataFilterTb_.Text             = null;
            dataFilterSpecifiedCb_.Checked = false;

            // fetch the available type conversions.
            Technosoftware.DaAeHdaClient.Cpx.TsCCpxComplexItem[] conversions = mItem_.GetRootItem().GetTypeConversions(TsCCpxComplexTypeCache.Server);

            // no conversions available.
            if (conversions == null || conversions.Length == 0)
            {
                typeConversionSpecifiedCb_.Enabled = false;
            }

            // populate conversions drop down menu.
            else
            {
                Technosoftware.DaAeHdaClient.Cpx.TsCCpxComplexItem item = mItem_;

                if (item.UnfilteredItemID != null)
                {
                    item = TsCCpxComplexTypeCache.GetComplexItem(item.UnfilteredItemID);
                }

                foreach (TsCCpxComplexItem conversion in conversions)
                {
                    typeConversionCb_.Items.Add(conversion);

                    if (conversion.Key == item.Key)
                    {
                        typeConversionCb_.SelectedItem     = conversion;
                        typeConversionSpecifiedCb_.Checked = true;
                    }
                }

                if (typeConversionCb_.SelectedItem == null)
                {
                    typeConversionCb_.SelectedIndex = 0;
                }
            }

            // display the active data filter.
            if (mItem_.UnfilteredItemID != null)
            {
                dataFilterTb_.Text             = mItem_.DataFilterValue;
                dataFilterSpecifiedCb_.Checked = true;
            }
        }