/// <summary>
        /// Constructor
        /// </summary>
        public MppsDocumentationComponentControl(MppsDocumentationComponent component)
            : base(component)
        {
            InitializeComponent();
            _component = component;

            _label.DataBindings.Add("Text", _component, "CommentsLabel", true, DataSourceUpdateMode.OnPropertyChanged);
            _comments.DataBindings.Add("Text", _component, "Comments", true, DataSourceUpdateMode.OnPropertyChanged);
            _comments.DataBindings.Add("Enabled", _component, "CommentsEnabled", true, DataSourceUpdateMode.OnPropertyChanged);

            _cannedTextSupport = new CannedTextSupport(_comments, _component.CannedTextLookupHandler);
        }
        /// <summary>
        /// Constructor
        /// </summary>
        public ReasonSelectionComponentControl(ReasonSelectionComponentBase component)
            : base(component)
        {
            InitializeComponent();

            _component = component;

            _reason.DataSource = _component.ReasonChoices;
            _reason.DataBindings.Add("Value", _component, "SelectedReasonChoice", true, DataSourceUpdateMode.OnPropertyChanged);

            _otherReason.DataBindings.Add("Value", _component, "OtherReason", true, DataSourceUpdateMode.OnPropertyChanged);
            _cannedTextSupport = new CannedTextSupport(_otherReason, _component.CannedTextLookupHandler);

            _btnOK.DataBindings.Add("Enabled", _component, "AcceptEnabled", true, DataSourceUpdateMode.OnPropertyChanged);
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        public RichTextReportEditorComponentControl(IReportEditorComponent component)
            : base(component)
        {
            _component = component;
            InitializeComponent();

            _richText.DataBindings.Add("Text", _component, "EditorText", true, DataSourceUpdateMode.OnPropertyChanged);
            _cannedTextSupport = new CannedTextSupport(_richText, _component.CannedTextLookupHandler);

            Control reportPreview = (Control)_component.ReportPreviewHost.ComponentView.GuiElement;

            reportPreview.Dock = DockStyle.Fill;
            _splitContainer.Panel1.Controls.Add(reportPreview);
            UpdatePreviewVisibility();

            ((INotifyPropertyChanged)_component).PropertyChanged += _component_PropertyChanged;
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        public OrderNoteConversationComponentControl(OrderNoteConversationComponent component)
            : base(component)
        {
            InitializeComponent();

            _component = component;

            var orderNotes = (Control)_component.OrderNotesHost.ComponentView.GuiElement;

            orderNotes.Dock = DockStyle.Fill;
            _orderNotesPanel.Controls.Add(orderNotes);

            _templateSelectionPanel.Visible = _component.TemplateChoicesVisible;
            _template.DataSource            = _component.TemplateChoices;
            _template.DataBindings.Add("Value", _component, "SelectedTemplate", true, DataSourceUpdateMode.OnPropertyChanged);
            _template.Format += (source, e) => e.Value = _component.FormatTemplate(e.ListItem);

            _replyBody.DataBindings.Add("Text", _component, "Body", true, DataSourceUpdateMode.OnPropertyChanged);
            _cannedTextSupport = new CannedTextSupport(_replyBody, _component.CannedTextLookupHandler);

            _urgent.DataBindings.Add("Checked", _component, "Urgent", true, DataSourceUpdateMode.OnPropertyChanged);
            _urgent.DataBindings.Add("Enabled", _component, "IsPosting", true, DataSourceUpdateMode.OnPropertyChanged);

            _onBehalf.DataSource = _component.OnBehalfOfGroupChoices;
            _onBehalf.DataBindings.Add("Value", _component, "OnBehalfOf", true, DataSourceUpdateMode.OnPropertyChanged);
            _onBehalf.DataBindings.Add("Enabled", _component, "IsOnBehalfOfEditable", true, DataSourceUpdateMode.OnPropertyChanged);
            _onBehalf.Format += ((source, e) => e.Value = _component.FormatOnBehalfOf(e.ListItem));

            _recipients.Table        = _component.Recipients;
            _recipients.MenuModel    = _component.RecipientsActionModel;
            _recipients.ToolbarModel = _component.RecipientsActionModel;
            _recipients.DataBindings.Add("Selection", _component, "SelectedRecipient", true, DataSourceUpdateMode.OnPropertyChanged);
            _recipients.DataBindings.Add("Enabled", _component, "IsPosting", true, DataSourceUpdateMode.OnPropertyChanged);

            _completeButton.DataBindings.Add("Text", _component, "CompleteButtonLabel", true, DataSourceUpdateMode.OnPropertyChanged);

            _notesGroupBox.Text = _component.OrderNotesLabel;

            _component.PropertyChanged += _component_propertyChanged;

            _component.NewRecipientAdded += _component_NewRecipientAdded;

            CreateSoftKeys();
        }