예제 #1
0
        public void Show(FeatureProperties[] featureProperties)
        {
            if (featureProperties.Length == 0)
            {
                Hide();
                return;
            }

            var builder = new StringBuilder();

            foreach (var featureProperty in featureProperties)
            {
                builder.Append(featureProperty.FormatAsHtml());
            }

            _uiThreadInvoke.FireAndForget(() =>
            {
                _parent.SuspendLayout();
                var browser = GetOrAddWebBrowser();
                browser.BringToFront();
                browser.DocumentText = Resources.MapInfoDockPanel.Replace(
                    MapInfoDockPanelName,
                    builder.ToString());
                browser.Visible = true;
                _parent.ResumeLayout();
            });
        }
예제 #2
0
 public MessageDisplay(Control[] parentControls, Control templateControl, IUiThreadInvoke uiThreadInvoke)
 {
     _templateControl = templateControl;
     _messagesLabels  = new Label[parentControls.Length];
     for (var pos = 0; pos < _messagesLabels.Length; pos++)
     {
         _messagesLabels[pos] = new Label
         {
             Name      = "AA_MessageDisplay",
             AutoSize  = true,
             ForeColor = _templateControl.ForeColor,
             BackColor = _templateControl.BackColor,
             Visible   = false,
             Dock      = DockStyle.Bottom,
             Margin    = new Padding(_templateControl.Height),
             Font      = new Font(FontFamily.GenericSansSerif, 10, FontStyle.Bold)
         };
     }
     _uiThreadInvoke = uiThreadInvoke;
     _uiThreadInvoke.FireAndForget(() =>
     {
         for (var pos = 0; pos < _messagesLabels.Length; pos++)
         {
             parentControls[pos].Controls.Add(_messagesLabels[pos]);
             _messagesLabels[pos].BringToFront();
         }
     });
 }
예제 #3
0
        public void AddMessage(Message message)
        {
            _messages.Add(message);
            var messages = FormatMessages();

            _uiThreadInvoke.FireAndForget(() =>
            {
                foreach (var messagesLabel in _messagesLabels)
                {
                    if (!messagesLabel.Parent.Visible)
                    {
                        continue;
                    }
                    messagesLabel.Text      = messages;
                    messagesLabel.ForeColor = _templateControl.ForeColor;
                    messagesLabel.Visible   = messages.Length > 0;
                }
            });
        }