/// <summary> /// Registers the specified component. /// </summary> /// <param name="component">The component.</param> public void Register(MonoBehaviour component) { if (component == null || component.Equals(null)) { return; } var id = component.GetInstanceID(); if (!_components.ContainsKey(id)) { var type = component.GetType(); #if NETFX_CORE var aca = type.GetTypeInfo().GetCustomAttribute <ApexComponentAttribute>(); #else var aca = Attribute.GetCustomAttribute(type, typeof(ApexComponentAttribute)) as ApexComponentAttribute; #endif if (aca == null) { return; } if (_firstTime) { component.hideFlags = HideFlags.HideInInspector; } var cinfo = new ComponentInfo { component = component, id = id, name = type.Name.Replace("Component", string.Empty).ExpandFromPascal(), isVisible = component.hideFlags != HideFlags.HideInInspector }; _components.Add(id, cinfo); ComponentCategory cat; if (!_categories.TryGetValue(aca.category, out cat)) { cat = new ComponentCategory { name = aca.category }; _categories.Add(aca.category, cat); } cat.Add(cinfo); cinfo.category = cat; if (_initComplete) { cat.Sort(new FunctionComparer <ComponentInfo>((a, b) => a.name.CompareTo(b.name))); cat.isOpen = true; } } }
private string GenerateComponentTreeCode(IEnumerable <PluginDocumentationPage> componentDocumentationPages, string lang) { var stringBuilder = new StringBuilder(); var query = from pages in componentDocumentationPages orderby pages.Category select pages; ComponentCategory actualCategory = ComponentCategory.Undefined; foreach (var page in query) { var linkedLang = page.Localizations.ContainsKey(lang) ? lang : "en"; var pp = (LocalizedComponentDocumentationPage)page.Localizations[linkedLang]; if (actualCategory != page.Category) { actualCategory = page.Category; stringBuilder.AppendLine(@"\chapter{" + Helper.EscapeLaTeX(GetComponentCategory(page.Category)) + "}"); } stringBuilder.AppendLine(@"\section{" + Helper.EscapeLaTeX(pp.Name) + "}"); stringBuilder.AppendLine(@"{\bf Tooltip:} " + Helper.EscapeLaTeX(pp.ToolTip) + @"\\"); StringBuilder text = new StringBuilder(); text.AppendLine(@"\subsection*{" + Properties.Resources.ComponentTemplate_Introduction + "}\n" + _objectConverter.Convert(pp.Introduction, page)); text.AppendLine(@"\subsection*{" + Properties.Resources.ComponentTemplate_Usage + "}\n" + _objectConverter.Convert(pp.Manual, page)); text.AppendLine(@"\subsection*{" + Properties.Resources.ComponentTemplate_Presentation + "}\n" + _objectConverter.Convert(pp.Presentation, page)); var connectors = pp.GetType().GetProperty("Connectors").GetValue(pp, null); text.AppendLine(@"\subsection*{" + Properties.Resources.ComponentTemplate_Connections + "}\n" + _objectConverter.Convert(connectors, page)); var settings = pp.GetType().GetProperty("Settings").GetValue(pp, null); text.AppendLine(@"\subsection*{" + Properties.Resources.ComponentTemplate_Settings + "}\n" + _objectConverter.Convert(settings, page)); //stringBuilder.AppendLine("</table>"); //anchorBuilder.Append("</p>"); string s = text.ToString(); //s = Regex.Replace(s, @"\\\\[\r\n\t ]+\\\\", '\\' + "\n" + '\\'); s = Regex.Replace(s, "\r\n", "\n"); s = Regex.Replace(s, "\r", "\n"); //s = Regex.Replace(s, "\n", " "); s = Regex.Replace(s, "\n{2,}", "\n\n"); //s = Regex.Replace(s, "\\\\\\\\", "\n"); s = Regex.Replace(s, "[\t ]+\n", "\n"); //s = Regex.Replace(s, "\\\\\\\\", "\n"); //s = Regex.Replace(s, @"\n[\t ]+", "\n"); //s = Regex.Replace(s, "\n{2,}", "\n"); //s = Regex.Replace(s, @"\n[\t ]+\\\\", "\n" + @"\\"); //s = Regex.Replace(s, @"\n+\\\\", @" \\"); stringBuilder.AppendLine(s); } return(stringBuilder.ToString()); }
private void AddGroup(ComponentCategory groupCategory, IEnumerable <IComponentFactory> factories) { var groupItem = new ToolStripMenuItem(groupCategory.ToString()); foreach (var factory in factories) { AddComponentFactory(factory, groupItem); } menuAddComponents.Items.Add(groupItem); }
void ShowComponentCategories() { EditorGUI.BeginChangeCheck(); var style = new GUIStyle("popup") { alignment = TextAnchor.MiddleCenter, fontStyle = FontStyle.Bold, }; for (int i = 0; i < categories.Length; i++) { var category = categories[i]; if (category.Components.Count == 0) { continue; } if (i > 0) { GUILayout.Space(5f); } BeginBox(CustomEditorStyles.ColoredBox(new Color(0.5f, 0.5f, 0.5f, 0.25f), 0)); currentCategory = categories[i]; ArrayFoldout(currentCategory.DummyValue, currentCategory.Name.ToGUIContent(), disableOnPlay: false, foldoutDrawer: ShowComponentCategoryFoldout, elementDrawer: ShowComponent, onPreElementDraw: OnPreComponent, onPostElementDraw: OnPostComponent, deleteCallback: DeleteComponent, reorderCallback: ReorderComponent); GUILayout.Space(4f); EndBox(); } if (entity.GetAllComponents().Count > 0) { Separator(); } int index = EditorGUILayout.Popup(0, AddOptions, style); if (EditorGUI.EndChangeCheck() && index > 0) { AddComponent(AddTypes[index]); } }
void InitializeCategories() { // Fixes the "Generating diff of this object for undo because the type tree changed." bug. if (EditorApplication.isPlaying != EditorApplication.isPlayingOrWillChangePlaymode) { return; } foreach (var pair in categoryDict) { pair.Value.RemoveAllComponents(); } var components = entity.GetAllComponents(); for (int i = 0; i < components.Count; i++) { var component = components[i]; if (component.GetType().IsDefined(typeof(ComponentCategoryAttribute), true)) { var categoryAttribute = (ComponentCategoryAttribute)component.GetType().GetCustomAttributes(typeof(ComponentCategoryAttribute), true)[0]; ComponentCategory category; if (!categoryDict.TryGetValue(categoryAttribute.Category, out category)) { var categoryName = categoryAttribute.Category.Split('/')[0]; category = new ComponentCategory(categoryName, i); categoryDict[categoryName] = category; } category.AddComponent(component, i); } else { ComponentCategory category; const string categoryName = "\0Uncategorized"; if (!categoryDict.TryGetValue(categoryName, out category)) { category = new ComponentCategory(categoryName, int.MinValue); categoryDict[categoryName] = category; } category.AddComponent(component, i); } } string[] keys; categoryDict.GetOrderedKeysValues(out keys, out categories); Array.Sort(keys, categories); }
public IActionResult Index() { var item = dataContext.PCComponents.ToList(); List <Product> pc = new List <Product>(); List <ComponentCategory> componentCategories = new List <ComponentCategory>(); foreach (var item2 in item) { ComponentCategory componentCategory = dataContext.ComponentCategories.FirstOrDefault(p => p.ComponentCategoryId == item2.ComponentCategoryId); Product product = dataContext.Products.FirstOrDefault(p => p.ProductId == item2.ProductId); pc.Add(product); } return(View(item)); }
public ActionResult CategoryEdit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ComponentCategory category = db.ComponentCategory.Find(id); if (category == null) { return(HttpNotFound()); } return(PartialView("_CategoryEdit", category)); }
private static string GetComponentCategory(ComponentCategory category) { switch (category) { case ComponentCategory.CiphersClassic: return(Properties.Resources.Category_Classic_Ciphers); case ComponentCategory.CiphersModernSymmetric: return(Properties.Resources.Category_CiphersModernSymmetric); case ComponentCategory.CiphersModernAsymmetric: return(Properties.Resources.Category_CiphersModernAsymmetric); case ComponentCategory.Steganography: return(Properties.Resources.Category_Steganography); case ComponentCategory.HashFunctions: return(Properties.Resources.Category_HashFunctions); case ComponentCategory.CryptanalysisSpecific: return(Properties.Resources.Category_CryptanalysisSpecific); case ComponentCategory.CryptanalysisGeneric: return(Properties.Resources.Category_CryptanalysisGeneric); case ComponentCategory.Protocols: return(Properties.Resources.Category_Protocols); case ComponentCategory.ToolsBoolean: return(Properties.Resources.Category_ToolsBoolean); case ComponentCategory.ToolsDataflow: return(Properties.Resources.Category_ToolsDataflow); case ComponentCategory.ToolsDataInputOutput: return(Properties.Resources.Category_ToolsDataInputOutput); case ComponentCategory.ToolsMisc: return(Properties.Resources.Category_ToolsMisc); case ComponentCategory.ToolsP2P: return(Properties.Resources.Category_ToolsP2P); default: return(Properties.Resources.Category_Unknown); } }
public ActionResult CategoryDelete(int id) { ComponentCategory category = db.ComponentCategory.Find(id); try { db.ComponentCategory.Remove(category); db.SaveChanges(); TempData["ResultMessage"] = "El Registro se Borró correctamente"; TempData["ResultType"] = "S"; } catch (Exception _ex) { Debug.WriteLine(_ex.Message); TempData["ResultMessage"] = "El Registro no se pudo borrar. " + _ex.Message; TempData["ResultType"] = "E"; } return(RedirectToAction("CategoryIndex")); }
public ActionResult CategoryCreate([Bind(Include = "Name,Description")] ComponentCategory category) { category.CreationDate = DateTime.Now.Date; category.CreatedBy = User.Identity.GetUserId(); category.rowguid = Guid.NewGuid(); if (ModelState.IsValid) { db.ComponentCategory.Add(category); var item = from a in db.ComponentCategory where a.Name == category.Name select a; if (item.Count() == 0) { try { db.SaveChanges(); TempData["ResultMessage"] = "Data saved correctly"; TempData["ResultType"] = "S"; } catch (Exception ex) { TempData["ResultMessage"] = "Fail while saving data. " + ex.Message; TempData["ResultType"] = "E"; } } else { TempData["ResultMessage"] = "Color " + category.Name + " already exist in the system"; TempData["ResultType"] = "E"; } } else { TempData["ResultMessage"] = "Data are not valid"; TempData["ResultType"] = "W"; } return(RedirectToAction("CategoryIndex")); }
public ActionResult CategoryEdit([Bind(Include = "ComponentCategoryID,Name,Description,ModifiedDate,CreationDate,rowguid,CreatedBy")] ComponentCategory category) { category.ModifiedDate = DateTime.Now.Date; category.ModifiedBy = User.Identity.GetUserId(); if (ModelState.IsValid) { db.Entry(category).State = EntityState.Modified; var item = from a in db.Colors where a.Name == category.Name select a; if (item.Count() == 0) { try { db.SaveChanges(); TempData["ResultMessage"] = "El Registro se actualizó correctamente"; TempData["ResultType"] = "S"; return(RedirectToAction("CategoryIndex")); } catch (Exception ex) { TempData["ResultMessage"] = "El Registro no se pudo actualizar. " + ex.Message; TempData["ResultType"] = "E"; return(RedirectToAction("CategoryIndex")); //throw; } } else { TempData["ResultMessage"] = "El Registro no se pudo actualizar. Ya existe un registro con ese nombre "; TempData["ResultType"] = "E"; return(RedirectToAction("CategoryIndex")); } } return(RedirectToAction("CategoryIndex")); }
public ComponentCategoryAttribute(ComponentCategory category) { this.Category = category; }
public ErrorData(ComponentCategory category, IComponentOld component, ErrorTypes errorType, Type missingComponentType) : this(category, component, errorType) { MissingComponentType = missingComponentType; }
ErrorData(ComponentCategory category, IComponentOld component, ErrorTypes errorType) { Category = category; Component = component; ErrorType = errorType; }
/// <summary> /// Initializes this instance. /// </summary> /// <returns></returns> public bool Init(IEnumerable <ComponentCandidate> candidates) { Cleanup(); bool updated = false; int idx = 0; foreach (var cc in candidates) { var id = cc.component.GetInstanceID(); ComponentInfo cinfo; bool alreadyRegistered = _components.TryGetValue(id, out cinfo); //Since hideflags are reset when applying prefab changes, we reapply them here if ((cc.component.hideFlags & HideFlags.HideInInspector) == 0 && (_hiddenComponents & (1 << idx)) > 0) { cc.component.hideFlags |= HideFlags.HideInInspector; updated = true; } //If already registered we still need to ensure hideflags are set correctly, again due to prefab stuff if (alreadyRegistered) { idx++; cinfo.isVisible = (cc.component.hideFlags & HideFlags.HideInInspector) == 0; continue; } cinfo = new ComponentInfo { component = cc.component, id = id, idx = idx++, name = cc.component.GetType().Name.Replace("Component", string.Empty).ExpandFromPascal(), isVisible = (cc.component.hideFlags & HideFlags.HideInInspector) == 0 }; _components.Add(id, cinfo); ComponentCategory cat; if (!_categories.TryGetValue(cc.categoryName, out cat)) { cat = new ComponentCategory { name = cc.categoryName }; _categories.Add(cc.categoryName, cat); } cat.Add(cinfo); cinfo.category = cat; } var comparer = new FunctionComparer <ComponentInfo>((a, b) => a.name.CompareTo(b.name)); foreach (var cat in _categories.Values) { cat.Sort(comparer); } if (_firstTime) { ToggleAll(); _firstTime = false; return(true); } return(updated); }
private void AddGroup(ComponentCategory groupCategory, IEnumerable<IComponentFactory> factories) { var groupItem = new ToolStripMenuItem(groupCategory.ToString()); foreach (var factory in factories) { AddComponentFactory(factory, groupItem); } menuAddComponents.Items.Add(groupItem); }
void InitializeCategories() { // Fixes the "Generating diff of this object for undo because the type tree changed." bug. if (EditorApplication.isPlaying != EditorApplication.isPlayingOrWillChangePlaymode) return; foreach (var pair in categoryDict) pair.Value.RemoveAllComponents(); var components = entity.GetAllComponents(); for (int i = 0; i < components.Count; i++) { var component = components[i]; if (component.GetType().IsDefined(typeof(ComponentCategoryAttribute), true)) { var categoryAttribute = (ComponentCategoryAttribute)component.GetType().GetCustomAttributes(typeof(ComponentCategoryAttribute), true)[0]; ComponentCategory category; if (!categoryDict.TryGetValue(categoryAttribute.Category, out category)) { var categoryName = categoryAttribute.Category.Split('/')[0]; category = new ComponentCategory(categoryName, i); categoryDict[categoryName] = category; } category.AddComponent(component, i); } else { ComponentCategory category; const string categoryName = "\0Uncategorized"; if (!categoryDict.TryGetValue(categoryName, out category)) { category = new ComponentCategory(categoryName, int.MinValue); categoryDict[categoryName] = category; } category.AddComponent(component, i); } } string[] keys; categoryDict.GetOrderedKeysValues(out keys, out categories); Array.Sort(keys, categories); }
private static string GenerateComponentTreeCode(IEnumerable <PluginDocumentationPage> componentDocumentationPages, string lang) { var stringBuilder = new StringBuilder(); stringBuilder.AppendLine("<table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"3\">"); var anchorBuilder = new StringBuilder(); anchorBuilder.Append("<p>"); var query = from pages in componentDocumentationPages orderby pages.Category select pages; ComponentCategory actualCategory = ComponentCategory.Undefined; foreach (var page in query) { var linkedLang = page.Localizations.ContainsKey(lang) ? lang : "en"; var pp = (LocalizedComponentDocumentationPage)page.Localizations[linkedLang]; if (actualCategory != page.Category) { actualCategory = page.Category; string categoryName = null; switch (page.Category) { case ComponentCategory.CiphersClassic: categoryName = Properties.Resources.Category_Classic_Ciphers; break; case ComponentCategory.CiphersModernSymmetric: categoryName = Properties.Resources.Category_CiphersModernSymmetric; break; case ComponentCategory.CiphersModernAsymmetric: categoryName = Properties.Resources.Category_CiphersModernAsymmetric; break; case ComponentCategory.Steganography: categoryName = Properties.Resources.Category_Steganography; break; case ComponentCategory.HashFunctions: categoryName = Properties.Resources.Category_HashFunctions; break; case ComponentCategory.CryptanalysisSpecific: categoryName = Properties.Resources.Category_CryptanalysisSpecific; break; case ComponentCategory.CryptanalysisGeneric: categoryName = Properties.Resources.Category_CryptanalysisGeneric; break; case ComponentCategory.Protocols: categoryName = Properties.Resources.Category_Protocols; break; case ComponentCategory.ToolsBoolean: categoryName = Properties.Resources.Category_ToolsBoolean; break; case ComponentCategory.ToolsDataflow: categoryName = Properties.Resources.Category_ToolsDataflow; break; case ComponentCategory.ToolsDataInputOutput: categoryName = Properties.Resources.Category_ToolsDataInputOutput; break; case ComponentCategory.ToolsMisc: categoryName = Properties.Resources.Category_ToolsMisc; break; case ComponentCategory.ToolsP2P: categoryName = Properties.Resources.Category_ToolsP2P; break; default: categoryName = Properties.Resources.Category_Unknown; break; } stringBuilder.AppendLine(string.Format("<tr><td><h2 id=\"{0}\">{0}</h1></td><td></td></tr>", categoryName)); anchorBuilder.AppendLine(string.Format("<a href=\"#{0}\"><b>{0}</b><a> ", categoryName)); } stringBuilder.AppendLine(string.Format("<tr><td><a href=\"{0}\">{1}</a></td><td>{2}</td></tr>", OnlineHelp.GetPluginDocFilename(pp.PluginType, linkedLang), pp.Name, pp.ToolTip)); } stringBuilder.AppendLine("</table>"); anchorBuilder.Append("</p>"); anchorBuilder.Append(stringBuilder); return(anchorBuilder.ToString()); }
void ShowComponentCategories() { EditorGUI.BeginChangeCheck(); var style = new GUIStyle("popup") { alignment = TextAnchor.MiddleCenter, fontStyle = FontStyle.Bold, }; for (int i = 0; i < categories.Length; i++) { var category = categories[i]; if (category.Components.Count == 0) continue; if (i > 0) GUILayout.Space(5f); BeginBox(CustomEditorStyles.ColoredBox(new Color(0.5f, 0.5f, 0.5f, 0.25f), 0)); currentCategory = categories[i]; ArrayFoldout(currentCategory.DummyValue, currentCategory.Name.ToGUIContent(), disableOnPlay: false, foldoutDrawer: ShowComponentCategoryFoldout, elementDrawer: ShowComponent, onPreElementDraw: OnPreComponent, onPostElementDraw: OnPostComponent, deleteCallback: DeleteComponent, reorderCallback: ReorderComponent); GUILayout.Space(4f); EndBox(); } if (entity.GetAllComponents().Count > 0) Separator(); int index = EditorGUILayout.Popup(0, AddOptions, style); if (EditorGUI.EndChangeCheck() && index > 0) AddComponent(AddTypes[index]); }