public Draw(float X, float Y, IDrawPlugin plugin) { this.Location = new PointF(X, Y); this.Size = new SizeF(); this.plugin = plugin; this.values = plugin.DefaultValues(); values["Name"] = GetUniqueKey(10); values["Left"] = X; values["Top"] = Y; }
public static string ImportSchemeFrom(string filename) { IDictionary <string, IDrawPlugin> plugins = DrawPlugin.LoadPlugins(Application.StartupPath); string[] lines = System.IO.File.ReadAllLines(filename); bool background = false; string name = String.Empty; Draw drw = null; Background bkg = null; List <Draw> drawslist = new List <Draw>(); foreach (string line in lines) { if (!String.IsNullOrWhiteSpace(line)) { if (line.Equals("[Background]")) { background = true; bkg = new Background(); drawslist.Add(bkg); } else if (background) { string[] items = line.Split(new char[] { '=' }); switch (items[0]) { case "Width": bkg.Width = int.Parse(items[1]); break; case "Height": bkg.Height = int.Parse(items[1]); break; case "BackColor": bkg.BackColor = Data.ColorFromBase(items[1]); break; case "SchemeName": bkg.SchemeName = items[1]; break; case "Descriptor": bkg.Descriptor = items[1]; break; } } else if (drw == null) { string[] items = line.Split(new char[] { '=' }); string value = (items.Length == 2) ? items[1] : String.Empty; switch (items[0]) { case "Name": name = value; break; case "Plugin": if (plugins.ContainsKey(value)) { IDrawPlugin plugin = plugins[value]; drw = new Draw(0, 0, plugin); drw.Name = name; drawslist.Add(drw); } break; } } else if (drw != null) { string[] items = line.Split(new char[] { '=' }); drw.SetPropValue(items[0], items[1]); } } else { drw = null; background = false; } } string SchemeName = bkg.SchemeName; using (ServerSQL mySQL = new ServerSQL(DatabaseFrom.Database)) // запись { if (mySQL.Connected) { string ukey = Data.GetUniqueKey(20); int step = 0; try { int npp = 0; foreach (Draw item in drawslist) { saveOneDraw(npp++, ukey, item, mySQL); } step++; Data.EmptyScheme(SchemeName, mySQL); Data.RenameScheme(ukey, SchemeName, mySQL); } catch { switch (step) { case 0: Data.EmptyScheme(ukey, mySQL); break; } } } } return(SchemeName); }
public static List <Draw> LoadScheme(string schemename, string imagepath) { List <Draw> drawslist = new List <Draw>(); using (ServerSQL mySQL = new ServerSQL(DatabaseFrom.Database, true)) // чтение { if (mySQL.Connected) { List <string> dinlist = Data.GetDinList(schemename, mySQL); foreach (string dinname in dinlist) { IDictionary <string, string> dinprops = Data.GetDinProps(schemename, dinname, mySQL); if (dinname.Equals("Background") && dinprops.ContainsKey("Left") && dinprops.ContainsKey("Top") && dinprops.ContainsKey("Width") && dinprops.ContainsKey("Height") && dinprops.ContainsKey("BackColor") && dinprops.ContainsKey("Descriptor") && dinprops.ContainsKey("Expanded") && dinprops.ContainsKey("SaveAspect") ) { Background drw = new Background(); drw.Location = new Point(int.Parse(dinprops["Left"]), int.Parse(dinprops["Top"])); drw.Width = int.Parse(dinprops["Width"]); drw.Height = int.Parse(dinprops["Height"]); drw.BackColor = Data.ColorFromBase(dinprops["BackColor"]); drw.Descriptor = dinprops["Descriptor"]; drw.Expanded = int.Parse(dinprops["Expanded"]) > 0; drw.SaveAspect = int.Parse(dinprops["SaveAspect"]) > 0; drawslist.Add(drw); } else { if (dinprops.ContainsKey("Plugin") && dinprops.ContainsKey("Left") && dinprops.ContainsKey("Top") && dinprops.ContainsKey("Name")) { string plugname = dinprops["Plugin"]; IDictionary <string, IDrawPlugin> plugins = DrawPlugin.LoadPlugins(Application.StartupPath); if (plugins.ContainsKey(plugname)) { IDrawPlugin plugin = plugins[plugname]; float x = float.Parse(dinprops["Left"]); float y = float.Parse(dinprops["Top"]); Draw drw = new Draw(x, y, plugin); drw.Name = dinprops["Name"]; drawslist.Add(drw); foreach (KeyValuePair <string, string> prop in dinprops) { drw.SetPropValue(prop.Key, prop.Value); } if (drw.Props.ContainsKey("ImagePath")) { drw.SetPropValue("ImagePath", imagepath); } } } } } } } return(drawslist); }