GtkDesignInfo(DotNetProject project) { IExtendedDataItem item = (IExtendedDataItem)project; item.ExtendedProperties ["GtkDesignInfo"] = this; Project = project; }
protected virtual void OnSaveOptions(OptionsData[] data) { IConfigurationTarget ce; string path; GetOwnerSolutionItem(this, out ce, out path); if (ce == null) { throw new InvalidOperationException("Options can't be saved."); } foreach (OptionsData d in data) { IExtendedDataItem edi = (IExtendedDataItem)ce.Configurations [d.Configuration]; if (edi == null) { continue; } UnitTestOptionsSet oset = (UnitTestOptionsSet)edi.ExtendedProperties ["UnitTestInformation"]; if (oset == null) { oset = new UnitTestOptionsSet(); edi.ExtendedProperties ["UnitTestInformation"] = oset; } UnitTestOptionsEntry te = oset.FindEntry(path); if (d.Options.Count > 0) { if (te == null) { te = new UnitTestOptionsEntry(); te.Path = path; oset.Tests.Add(te); } te.Options.Clear(); te.Options.AddRange(d.Options); } else if (te != null) { oset.Tests.Remove(te); } } ce.Save(new NullProgressMonitor()); }
public object ReadCombine(XmlReader reader) { DataItem data = (DataItem)Read(reader); // Both combine and SolutionFolder use the same element name, but the types are different if (data.Name == "Combine" && objectType == typeof(SolutionFolder)) { data.Name = "SolutionFolder"; } SolutionFolder folder; IExtendedDataItem obj = (IExtendedDataItem)serializer.CreateInstance(objectType, data); Solution sol = obj as Solution; if (sol != null) { folder = sol.RootFolder; sol.ConvertToFormat(MD1ProjectService.FileFormat, false); sol.FileName = serializer.SerializationContext.BaseFile; folder.ExtendedProperties ["FileName"] = serializer.SerializationContext.BaseFile; } else { folder = (SolutionFolder)obj; obj.ExtendedProperties ["FileName"] = serializer.SerializationContext.BaseFile; } // The folder entries must be added before deserializing the folder // since other folder members depend on it foreach (SolutionItem ce in entries) { folder.Items.Add(ce); } serializer.Deserialize(obj, data); if (sol != null) { CreateSolutionConfigurations(sol); LoadStartupMode(sol); } return(obj); }
internal virtual object GetValue(object obj) { if (member != null) { FieldInfo field = member as FieldInfo; if (field != null) { return(field.GetValue(obj)); } else { return(((PropertyInfo)member).GetValue(obj, null)); } } else if (obj is IExtendedDataItem) { IExtendedDataItem eitem = (IExtendedDataItem)obj; if (initValue == null) { return(eitem.ExtendedProperties [Name]); } else { if (!eitem.ExtendedProperties.Contains(Name)) { return(initValue); } else { return(eitem.ExtendedProperties [Name]); } } } else if (initValue != null) { return(initValue); } else { throw new InvalidOperationException("Invalid object property: " + obj.GetType() + "." + Name); } }
public static GtkDesignInfo FromProject(Project project) { if (!(project is DotNetProject)) { return(new GtkDesignInfo()); } IExtendedDataItem item = (IExtendedDataItem)project; GtkDesignInfo info = item.ExtendedProperties ["GtkDesignInfo"] as GtkDesignInfo; if (info == null) { info = new GtkDesignInfo((DotNetProject)project); } else { info.Project = (DotNetProject)project; } return(info); }
public static void DisableProject(Project project) { if (HasDesignedObjects(project)) { return; } GtkDesignInfo info = FromProject(project); StringCollection saveFiles = new StringCollection(); saveFiles.AddRange(new string[] { info.ObjectsFile, info.SteticFile }); info.CleanGtkFolder(saveFiles); project.Files.Remove(info.ObjectsFile); project.Files.Remove(info.SteticFile); IExtendedDataItem item = (IExtendedDataItem)project; item.ExtendedProperties.Remove("GtkDesignInfo"); info.Dispose(); ProjectNodeBuilder.OnSupportChanged(project); }
protected virtual ICollection OnLoadOptions(string configuration) { IConfigurationTarget ce; string path; GetOwnerSolutionItem(this, out ce, out path); if (ce == null) { return(null); } IExtendedDataItem edi = (IExtendedDataItem)ce.Configurations [configuration]; if (edi == null) { return(null); } UnitTestOptionsSet oset = (UnitTestOptionsSet)edi.ExtendedProperties ["UnitTestInformation"]; if (oset == null) { return(null); } UnitTestOptionsEntry te = oset.FindEntry(path); if (te != null) { return(te.Options); } else { return(null); } }