Exemplo n.º 1
0
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            if (value is string)
            {
                string[] v          = ((string)value).Split('|');
                string   fileName   = v[1];
                int      lineNumber = int.Parse(v[2], culture);
                if (lineNumber < 0)
                {
                    return(null);
                }
                SDBookmark bookmark;
                switch (v[0])
                {
                case "Breakpoint":
                    bookmark = new Debugging.BreakpointBookmark(fileName, null, lineNumber);
                    break;

                default:
                    bookmark = new SDBookmark(fileName, null, lineNumber);
                    break;
                }
                bookmark.IsEnabled = bool.Parse(v[3]);
                return(bookmark);
            }
            else
            {
                return(base.ConvertFrom(context, culture, value));
            }
        }
		public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
		{
			if (value is string) {
				string[] v = ((string)value).Split('|');
				
				FileName fileName = FileName.Create(v[1]);
				int lineNumber = int.Parse(v[2], culture);
				int columnNumber = int.Parse(v[3], culture);
				if (lineNumber < 0)
					return null;
				if (columnNumber < 0)
					return null;
				SDBookmark bookmark;
				switch (v[0]) {
					case "Breakpoint":
						Debugging.BreakpointAction action = Debugging.BreakpointAction.Break;
						string scriptLanguage = "";
						string script = "";
						action = (Debugging.BreakpointAction)Enum.Parse(typeof(Debugging.BreakpointAction), v[5]);
						scriptLanguage = v[6];
						script = v[7];
					
						var bbm = new Debugging.BreakpointBookmark(fileName, new Location(columnNumber, lineNumber), action, scriptLanguage, script);
						bbm.IsEnabled = bool.Parse(v[4]);
						bbm.Action = action;
						bbm.ScriptLanguage = scriptLanguage;
						bbm.Condition = script;
						bookmark = bbm;
						break;
					case "PinBookmark":
						var pin = new PinBookmark(fileName, new Location(columnNumber, lineNumber));
						pin.Comment = v[4];
						pin.PinPosition = 
							new Point
							{ 
								X = double.Parse(v[5], culture),
								Y = double.Parse(v[6], culture)
							};
								
						// pop-up nodes
						pin.SavedNodes = new System.Collections.Generic.List<Tuple<string, string, string>>();
						for (int i = 7; i < v.Length; i+=3) {
							pin.SavedNodes.Add(new Tuple<string, string, string>(v[i], v[i+1], v[i+2]));
						}
						
						bookmark = pin;
						break;
					default:
						bookmark = new SDBookmark(fileName, new Location(columnNumber, lineNumber));
						break;
				}
				return bookmark;
			} else {
				return base.ConvertFrom(context, culture, value);
			}
		}
Exemplo n.º 3
0
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            if (value is string)
            {
                string[] v = ((string)value).Split('|');
                if (v.Length != 8)
                {
                    return(null);
                }
                FileName fileName                 = FileName.Create(v[1]);
                int      lineNumber               = int.Parse(v[2], culture);
                int      columnNumber             = int.Parse(v[3], culture);
                Debugging.BreakpointAction action = Debugging.BreakpointAction.Break;
                string scriptLanguage             = "";
                string script = "";
                if (v[0] == "Breakpoint")
                {
                    action         = (Debugging.BreakpointAction)Enum.Parse(typeof(Debugging.BreakpointAction), v[5]);
                    scriptLanguage = v[6];
                    script         = v[7];
                }
                if (lineNumber < 0)
                {
                    return(null);
                }
                if (columnNumber < 0)
                {
                    return(null);
                }
                SDBookmark bookmark;
                switch (v[0])
                {
                case "Breakpoint":
                    var bbm = new Debugging.BreakpointBookmark(fileName, new Location(columnNumber, lineNumber), action, scriptLanguage, script);
                    bbm.IsEnabled = bool.Parse(v[4]);
                    bookmark      = bbm;
                    break;

                default:
                    bookmark = new SDBookmark(fileName, new Location(columnNumber, lineNumber));
                    break;
                }
                return(bookmark);
            }
            else
            {
                return(base.ConvertFrom(context, culture, value));
            }
        }
Exemplo n.º 4
0
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            SDBookmark bookmark = value as SDBookmark;

            if (destinationType == typeof(string) && bookmark != null)
            {
                StringBuilder b = new StringBuilder();
                if (bookmark is Debugging.BreakpointBookmark)
                {
                    b.Append("Breakpoint");
                }
                else
                {
                    b.Append("Bookmark");
                }
                b.Append('|');
                b.Append(bookmark.FileName);
                b.Append('|');
                b.Append(bookmark.LineNumber);
                b.Append('|');
                b.Append(bookmark.ColumnNumber);
                b.Append('|');
                b.Append(bookmark.IsEnabled.ToString());
                if (bookmark is Debugging.BreakpointBookmark)
                {
                    Debugging.BreakpointBookmark bbm = (Debugging.BreakpointBookmark)bookmark;
                    b.Append('|');
                    b.Append(bbm.Action);
                    b.Append('|');
                    b.Append(bbm.ScriptLanguage);
                    b.Append('|');
                    b.Append(bbm.Condition);
                }
                return(b.ToString());
            }
            else
            {
                return(base.ConvertTo(context, culture, value, destinationType));
            }
        }
Exemplo n.º 5
0
		public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
		{
			if (value is string) {
				string[] v = ((string)value).Split('|');
				string fileName = v[1];
				int lineNumber = int.Parse(v[2], culture);
				if (lineNumber < 0)
					return null;
				SDBookmark bookmark;
				switch (v[0]) {
					case "Breakpoint":
						bookmark = new Debugging.BreakpointBookmark(fileName, null, lineNumber);
						break;
					default:
						bookmark = new SDBookmark(fileName, null, lineNumber);
						break;
				}
				bookmark.IsEnabled = bool.Parse(v[3]);
				return bookmark;
			} else {
				return base.ConvertFrom(context, culture, value);
			}
		}
Exemplo n.º 6
0
		public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
		{
			if (value is string) {
				string[] v = ((string)value).Split('|');
				if (v.Length != 8)
					return null;
				FileName fileName = FileName.Create(v[1]);
				int lineNumber = int.Parse(v[2], culture);
				int columnNumber = int.Parse(v[3], culture);
				Debugging.BreakpointAction action = Debugging.BreakpointAction.Break;
				string scriptLanguage = "";
				string script = "";
				if (v[0] == "Breakpoint") {
					action = (Debugging.BreakpointAction)Enum.Parse(typeof(Debugging.BreakpointAction), v[5]);
					scriptLanguage = v[6];
					script = v[7];
				}
				if (lineNumber < 0)
					return null;
				if (columnNumber < 0)
					return null;
				SDBookmark bookmark;
				switch (v[0]) {
					case "Breakpoint":
						var bbm = new Debugging.BreakpointBookmark(fileName, new Location(columnNumber, lineNumber), action, scriptLanguage, script);
						bbm.IsEnabled = bool.Parse(v[4]);
						bookmark = bbm;
						break;
					default:
						bookmark = new SDBookmark(fileName, new Location(columnNumber, lineNumber));
						break;
				}
				return bookmark;
			} else {
				return base.ConvertFrom(context, culture, value);
			}
		}
Exemplo n.º 7
0
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            if (value is string)
            {
                string[] v = ((string)value).Split('|');

                FileName fileName     = FileName.Create(v[1]);
                int      lineNumber   = int.Parse(v[2], culture);
                int      columnNumber = int.Parse(v[3], culture);
                if (lineNumber < 0)
                {
                    return(null);
                }
                if (columnNumber < 0)
                {
                    return(null);
                }
                SDBookmark bookmark;
                switch (v[0])
                {
                case "Breakpoint":
                    Debugging.BreakpointAction action = Debugging.BreakpointAction.Break;
                    string scriptLanguage             = "";
                    string script = "";
                    action         = (Debugging.BreakpointAction)Enum.Parse(typeof(Debugging.BreakpointAction), v[5]);
                    scriptLanguage = v[6];
                    script         = v[7];

                    var bbm = new Debugging.BreakpointBookmark(fileName, new Location(columnNumber, lineNumber), action, scriptLanguage, script);
                    bbm.IsEnabled      = bool.Parse(v[4]);
                    bbm.Action         = action;
                    bbm.ScriptLanguage = scriptLanguage;
                    bbm.Condition      = script;
                    bookmark           = bbm;
                    break;

                case "DecompiledBreakpointBookmark":
                    action         = (Debugging.BreakpointAction)Enum.Parse(typeof(Debugging.BreakpointAction), v[5]);
                    scriptLanguage = v[6];
                    script         = v[7];

                    bbm                = new DecompiledBreakpointBookmark(fileName, new Location(columnNumber, lineNumber), action, scriptLanguage, script);
                    bbm.IsEnabled      = bool.Parse(v[4]);
                    bbm.Action         = action;
                    bbm.ScriptLanguage = scriptLanguage;
                    bbm.Condition      = script;
                    bookmark           = bbm;
                    break;

                case "PinBookmark":
                    var pin = new PinBookmark(fileName, new Location(columnNumber, lineNumber));
                    pin.Comment     = v[4];
                    pin.PinPosition =
                        new Point
                    {
                        X = double.Parse(v[5], culture),
                        Y = double.Parse(v[6], culture)
                    };

                    // pop-up nodes
                    pin.SavedNodes = new System.Collections.Generic.List <Tuple <string, string, string> >();
                    for (int i = 7; i < v.Length; i += 3)
                    {
                        pin.SavedNodes.Add(new Tuple <string, string, string>(v[i], v[i + 1], v[i + 2]));
                    }

                    bookmark = pin;
                    break;

                default:
                    bookmark = new Bookmark(fileName, new Location(columnNumber, lineNumber));
                    break;
                }
                return(bookmark);
            }
            else
            {
                return(base.ConvertFrom(context, culture, value));
            }
        }
Exemplo n.º 8
0
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            SDBookmark bookmark = value as SDBookmark;

            if (destinationType == typeof(string) && bookmark != null)
            {
                StringBuilder b = new StringBuilder();
                if (bookmark is Debugging.BreakpointBookmark)
                {
                    b.Append("Breakpoint");
                }
                else
                {
                    if (bookmark is PinBookmark)
                    {
                        b.Append("PinBookmark");
                    }
                    else
                    {
                        b.Append("Bookmark");
                    }
                }
                b.Append('|');
                b.Append(bookmark.FileName);
                b.Append('|');
                b.Append(bookmark.LineNumber);
                b.Append('|');
                b.Append(bookmark.ColumnNumber);

                if (bookmark is Debugging.BreakpointBookmark)
                {
                    Debugging.BreakpointBookmark bbm = (Debugging.BreakpointBookmark)bookmark;
                    b.Append('|');
                    b.Append(bbm.IsEnabled.ToString());
                    b.Append('|');
                    b.Append(bbm.Action.ToString());
                    b.Append('|');
                    b.Append(bbm.ScriptLanguage);
                    b.Append('|');
                    b.Append(bbm.Condition);
                }

                if (bookmark is PinBookmark)
                {
                    var pin = (PinBookmark)bookmark;
                    b.Append('|');
                    b.Append(pin.Comment ?? string.Empty);

                    // popup position
                    b.Append('|');
                    b.Append(pin.PinPosition.Value.X);
                    b.Append('|');
                    b.Append(pin.PinPosition.Value.Y);

                    //popup nodes
                    foreach (var node in pin.Nodes)
                    {
                        b.Append('|');
                        b.Append(node.ImageName);
                        b.Append('|');
                        b.Append(node.FullName);
                        b.Append('|');
                        b.Append(node.Text);
                    }
                }
                return(b.ToString());
            }
            else
            {
                return(base.ConvertTo(context, culture, value, destinationType));
            }
        }