Example #1
0
        protected void HelpLinkClicked(object sender,
                                       LinkLabelLinkClickedEventArgs e)
        {
            DetailElement de = (DetailElement)e.Link.LinkData;

            ShowLink(HelpLinkHelper.HLHelper, de._helpLinkMod);
        }
Example #2
0
        protected void LinkClicked(object sender,
                                   LinkLabelLinkClickedEventArgs e)
        {
            DetailElement de = (DetailElement)e.Link.LinkData;

            ShowLink(de._linkTarget, de._linkModifier);
        }
Example #3
0
 protected static bool ShouldShow(DetailElement de)
 {
     if (!de._internal ||
         (LocalPrefs.Get(LocalPrefs.SHOW_INTERNAL_DETAILS) != null))
     {
         return(true);
     }
     return(false);
 }
Example #4
0
 public override bool Equals(Object obj)
 {
     if (obj != null &&
         obj is DetailElement)
     {
         DetailElement de = (DetailElement)obj;
         if (de._name.Equals(_name) &&
             de._order.Equals(_order))
         {
             return(true);
         }
     }
     return(false);
 }
Example #5
0
        // linkTarget is the class that knows how to display
        // the link, and is called to execute the link
        // linkModifier is the data passed to the linkTarget
        // helpLinkMod is a linkModifier for the HelpLinkHelper
        // to display help associated with the link
        internal static void AddLink(String title,
                                     bool isInternal,
                                     int order,
                                     ILinkTarget linkTarget,
                                     Object linkModifier,
                                     Object helpLinkMod)
        {
            DetailElement de =
                AddInternal(title, isInternal, order, null);

            de._isLink       = true;
            de._value        = linkTarget.GetLinkName(linkModifier);
            de._linkTarget   = linkTarget;
            de._linkModifier = linkModifier;
            de._helpLinkMod  = helpLinkMod;
        }
Example #6
0
 public int CompareTo(Object obj)
 {
     if (obj != null &&
         obj is DetailElement)
     {
         DetailElement de = (DetailElement)obj;
         if (_order < de._order)
         {
             return(-1);
         }
         if (_order > de._order)
         {
             return(1);
         }
         return(0);
     }
     throw new ArgumentException();
 }
Example #7
0
        protected static DetailElement AddInternal(String title,
                                                   bool isInternal,
                                                   int order,
                                                   String value)
        {
            DetailElement de = new DetailElement();

            de._name     = title;
            de._value    = value;
            de._order    = order;
            de._internal = isInternal;

            if (ShouldShow(de))
            {
                _detailPanel._maxLabelWidth =
                    Utils.SetMaxWidth(_detailPanel, title,
                                      _detailPanel._maxLabelWidth);
            }

            _detailPanel._elements.Add(de);
            _detailPanel.Invalidate();
            return(de);
        }
Example #8
0
        internal Control AddDetailControl(DetailElement de)
        {
            Panel detailLine = new Panel();

            detailLine.Dock    = DockStyle.Top;
            detailLine.Layout += new LayoutEventHandler(DetailLayoutHandler);
            //detailLine.Width = _detailPanel.Width;

            RichTextBox tb           = null;
            Control     valueControl = null;

            if (de._isLink)
            {
                if (de._helpLinkMod != null)
                {
                    LinkLabel ll = new LinkLabel();
                    ll.Dock     = DockStyle.Left;
                    ll.AutoSize = true;
                    ll.Text     = "Show Documentation";
                    ll.Links.Add(0, ll.Text.Length, de);
                    ll.LinkClicked +=
                        new LinkLabelLinkClickedEventHandler(HelpLinkClicked);
                    detailLine.Controls.Add(ll);

                    // Padding
                    Label l = new Label();
                    l.Dock  = DockStyle.Left;
                    l.Width = 40;
                    detailLine.Controls.Add(ll);
                }

                LinkLabel linkLabel = new LinkLabel();
                valueControl       = linkLabel;
                linkLabel.AutoSize = true;
                linkLabel.Text     = de._value;
                linkLabel.Links.Add(0, linkLabel.Text.Length, de);
                linkLabel.LinkClicked +=
                    new LinkLabelLinkClickedEventHandler(LinkClicked);

                // We assume the label is going to be one line and since
                // we don't have the resize handler for the text box, just
                // wire it into the standard height
                detailLine.Height = linkLabel.Height;
            }
            else
            {
                tb           = new RichTextBox();
                valueControl = tb;
                // The value
                tb.TabStop     = false;
                tb.Multiline   = true;
                tb.WordWrap    = true;
                tb.ReadOnly    = true;
                tb.Text        = (String)de._value;
                tb.DetectUrls  = false;
                tb.BorderStyle = BorderStyle.None;
                tb.BackColor   = BackColor;
                tb.Layout     += new LayoutEventHandler(TextLayoutHandler);
            }

            detailLine.Controls.Add(valueControl);

            // Label for each line
            if (de._name != null)
            {
                // For the help link, we can't fill
                if (de._isLink && de._helpLinkMod != null)
                {
                    valueControl.Dock = DockStyle.Left;
                }
                else
                {
                    valueControl.Dock = DockStyle.Fill;
                }

                Label l;

                // spacing
                l       = new Label();
                l.Dock  = DockStyle.Left;
                l.Width = SPACING_HEIGHT;
                detailLine.Controls.Add(l);

                // The actual label
                l      = new Label();
                l.Dock = DockStyle.Left;
                // FIXME Because the last character is slightly cut off
                l.Text = de._name + "                              ";
                //l.Text = de._name;
                l.Width     = _maxLabelWidth + LABEL_WIDTH_PAD + 20;
                l.TextAlign = ContentAlignment.TopRight;
                l.Font      = new Font(l.Font, FontStyle.Bold);
                detailLine.Controls.Add(l);
            }
            else
            {
                // No text label - Makes the value bold
                valueControl.Font = new Font(valueControl.Font, FontStyle.Bold);
            }

            if (tb != null)
            {
                TextLayoutHandler(tb, new LayoutEventArgs(tb, null));
            }

            return(detailLine);
        }
Example #9
0
		protected static bool ShouldShow(DetailElement de)
		{
			if (!de._internal ||
				(LocalPrefs.Get(LocalPrefs.SHOW_INTERNAL_DETAILS) != null))
				return true;
			return false;
		}
Example #10
0
		internal Control AddDetailControl(DetailElement de)
		{
			Panel detailLine = new Panel();
			detailLine.Dock = DockStyle.Top;
			detailLine.Layout += new LayoutEventHandler(DetailLayoutHandler);
			//detailLine.Width = _detailPanel.Width;

			RichTextBox tb = null;
			Control valueControl = null;

			if (de._isLink)
			{
				if (de._helpLinkMod != null)
				{
					LinkLabel ll = new LinkLabel();
					ll.Dock = DockStyle.Left;
					ll.AutoSize = true;
					ll.Text = "Show Documentation";
					ll.Links.Add(0, ll.Text.Length, de);
					ll.LinkClicked += 
						new LinkLabelLinkClickedEventHandler(HelpLinkClicked);
					detailLine.Controls.Add(ll);

					// Padding
					Label l = new Label();
					l.Dock = DockStyle.Left;
					l.Width = 40;
					detailLine.Controls.Add(ll);
				}

				LinkLabel linkLabel = new LinkLabel();
				valueControl = linkLabel;
				linkLabel.AutoSize = true;
				linkLabel.Text = de._value;
				linkLabel.Links.Add(0, linkLabel.Text.Length, de);
				linkLabel.LinkClicked += 
					new LinkLabelLinkClickedEventHandler(LinkClicked);

				// We assume the label is going to be one line and since
				// we don't have the resize handler for the text box, just
				// wire it into the standard height
				detailLine.Height = linkLabel.Height;
			}
			else
			{
				tb = new RichTextBox();
				valueControl = tb;
				// The value
				tb.TabStop = false;
				tb.Multiline = true;
				tb.WordWrap = true;
				tb.ReadOnly = true;
				tb.Text = (String)de._value;
				tb.DetectUrls = false;
				tb.BorderStyle = BorderStyle.None;
				tb.BackColor = BackColor; 
				tb.Layout += new LayoutEventHandler(TextLayoutHandler);
			}

			detailLine.Controls.Add(valueControl);

			// Label for each line
			if (de._name != null)
			{
				// For the help link, we can't fill
				if (de._isLink && de._helpLinkMod != null)
					valueControl.Dock = DockStyle.Left;
				else
					valueControl.Dock = DockStyle.Fill;

				Label l;

				// spacing
				l = new Label();
				l.Dock = DockStyle.Left;
				l.Width = SPACING_HEIGHT;
				detailLine.Controls.Add(l);

				// The actual label
				l = new Label();
				l.Dock = DockStyle.Left;
				// FIXME Because the last character is slightly cut off
				l.Text = de._name + "                              ";
				//l.Text = de._name;
				l.Width = _maxLabelWidth + LABEL_WIDTH_PAD + 20;
				l.TextAlign = ContentAlignment.TopRight;
				l.Font = new Font(l.Font, FontStyle.Bold);
				detailLine.Controls.Add(l);
			}
			else
			{
				// No text label - Makes the value bold
				valueControl.Font = new Font(valueControl.Font, FontStyle.Bold);
			}

			if (tb != null)
				TextLayoutHandler(tb, new LayoutEventArgs(tb, null));

			return detailLine;
		}
Example #11
0
		protected static DetailElement AddInternal(String title,
												   bool isInternal,
												   int order,
												   String value)
		{
			DetailElement de = new DetailElement();
			de._name = title;
			de._value = value;
			de._order = order;
			de._internal = isInternal;

			if (ShouldShow(de))
			{
				_detailPanel._maxLabelWidth = 
					Utils.SetMaxWidth(_detailPanel, title, 
									  _detailPanel._maxLabelWidth);
			}

			_detailPanel._elements.Add(de);
			_detailPanel.Invalidate();
			return de;
		}