public TagsModule(Settings settings) { _settings = settings; _db = new TagDatabase(); _db.Database.EnsureCreated(); }
public void ReadTags(ref TagDatabase tagdb, Reader objReader, int readTimeOut, out TagReadData[] trd) { //fontSize_TextChanged_1(sender, e); //Change the datagrid data font size //dataGrid1.FontSize = Convert.ToDouble(txtfontSize.Text); //GUIturnoffWarning(); //simpleReadPlans.Clear(); try { //FontFamily fFamily = new FontFamily("Arial"); //dataGrid1.ColumnHeaderStyle //Font objFont = new Font(fFamily, Convert.ToInt64(fontSize.Text)); //tagResultsGrid.Font = objFont; DateTime timeBeforeRead = DateTime.Now; TagReadData[] tagID = objReader.Read(readTimeOut); DateTime timeAfterRead = DateTime.Now; TimeSpan timeElapsed = timeAfterRead - timeBeforeRead; trd = tagID; tagdb.AddRange(tagID); } catch (Exception ex) { throw ex; } }
public void Test_AddTagWithNullName() { //Arrange TagDatabase tagdb = new TagDatabase(); string tagname = null; Tag tag = new Tag() { name = tagname }; // Act tagdb.AddTag(tagname); //Assert if (!tagdb.Tags.Exists(x => x.name == tag.name)) { Assert.Fail(string.Format("Tag [{0}] was not added successfully", tagname)); } }
public override void OnInspectorGUI() { m_TagObject = (Tag)target; if (Tags == null) { GUILayout.Label("Assign A Tag Manager Asset", EditorStyles.boldLabel); } //add a object field so we can get the database Tags = (TagDatabase)EditorGUILayout.ObjectField(Tags, typeof(TagDatabase), true); GUILayout.Space(5); if (Tags != null) { //make sure we dont have a tag named "none" because our system uses that databaseTagAdder(); Tags.ValidateTags(); } displayObjectTags(); //DrawDefaultInspector(); }
public void OnGUI() { Repaint(); if (Application.isPlaying) { GUI.enabled = false; } if (database == null) { database = Resources.Load <TagDatabase>("PCTK/AllTheTags/TagDatabase"); if (database == null) { database = ScriptableObject.CreateInstance <TagDatabase>(); string path = "Assets/Plugins/Dependent/_GameLibrary/ThirdLibrary/PigeonCoopToolkit/AllTheTags/Resources/PCTK/AllTheTags/TagDatabase.asset"; AssetDatabase.CreateAsset(database, path); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); database = Resources.Load <TagDatabase>("PCTK/AllTheTags/TagDatabase"); } target = database; } _scrollPos = GUILayout.BeginScrollView(_scrollPos); GUILayout.BeginHorizontal(); GUILayout.BeginVertical(GUILayout.ExpandWidth(true)); for (int i = 0; i < database.Tags.Count; i++) { GUILayout.BeginHorizontal("box", GUILayout.MinHeight(30)); Tag tag = database.Tags[i]; if (tag == _tagBeingRenamed) { GUI.color = tag.ReferenceColor * new Color(1, 1, 1, 0.25f); GUILayout.BeginHorizontal(editorSkin.GetStyle("TagPreviewRename"), GUILayout.Width(position.width - 200)); GUI.color = tag.ReferenceColor; _tempName = GUILayout.TextField(_tempName, editorSkin.GetStyle("TagLabel")); GUILayout.EndHorizontal(); GUI.color = Color.white; } else { GUI.color = tag.ReferenceColor; GUILayout.BeginHorizontal(editorSkin.GetStyle("TagPreview"), GUILayout.Width(position.width - 200)); GUILayout.Label(tag.TagFriendly, editorSkin.GetStyle("TagLabel")); GUILayout.EndHorizontal(); GUI.color = Color.white; } GUILayout.BeginHorizontal(editorSkin.GetStyle("TagPreviewOptionsContainer")); if (_tagBeingRenamed == tag) { if (GUILayout.Button("Save", EditorStyles.miniButton)) { bool uniqueName = true; foreach (Tag searchSameName in database.Tags) { if (searchSameName.TagFriendly == _tempName && searchSameName != _tagBeingRenamed) { uniqueName = false; break; } } if (!uniqueName) { EditorUtility.DisplayDialog("Error", "There is already a tag with that name, tag must be unique", "Ok"); } else { Undo.RecordObject(database, "Rename Tag"); _tagBeingRenamed.TagFriendly = _tempName; EditorUtility.SetDirty(target); _tagBeingRenamed = null; } } if (GUILayout.Button("Cancel", EditorStyles.miniButton)) { _tagBeingRenamed = null; } } else { if (GUILayout.Button("Rename", EditorStyles.miniButton)) { _tagBeingRenamed = tag; _tempName = tag.TagFriendly; } if (GUILayout.Button("Delete", EditorStyles.miniButton)) { if (EditorUtility.DisplayDialog("Warning", "You cannot undo this. Tag will be destroyed and any object with this tag will be untagged. You will have to retag everything if you wish to add this tag again in the future. Are you sure?", "Yes", "No")) { database.Tags.RemoveAt(i); i--; EditorUtility.SetDirty(target); } } } tag.ReferenceColor = EditorGUILayout.ColorField(tag.ReferenceColor); GUILayout.EndHorizontal(); GUILayout.EndHorizontal(); GUILayout.Space(5); } GUILayout.EndVertical(); GUILayout.EndHorizontal(); GUILayout.FlexibleSpace(); GUILayout.EndScrollView(); GUILayout.BeginHorizontal("box"); GUILayout.Label("Enter tag:"); bool returnPressed = false; Event e = Event.current; if (e.keyCode == KeyCode.Return && e.rawType == EventType.KeyDown) { returnPressed = true; } GUI.SetNextControlName("TagAddField"); _tagToAdd = EditorGUILayout.TextField(_tagToAdd); if (!string.IsNullOrEmpty(_tagToAdd) && returnPressed && GUI.GetNameOfFocusedControl() == "TagAddField") { database.FindOrAddTag(_tagToAdd); EditorUtility.SetDirty(database); _tagToAdd = ""; } GUILayout.EndHorizontal(); if (GUI.changed) { EditorUtility.SetDirty(target); } }
public override void OnInspectorGUI() { if (Application.isPlaying) { GUI.enabled = false; } else { Repaint(); } GUILayout.Space(10); AllTheTags att = (AllTheTags)target; if (tagDatabase == null) { tagDatabase = Resources.Load <TagDatabase>("PCTK/AllTheTags/TagDatabase"); if (tagDatabase == null) { tagDatabase = ScriptableObject.CreateInstance <TagDatabase>(); string path = "Assets/PigeonCoopToolkit/AllTheTags/Resources/PCTK/AllTheTags/TagDatabase.asset"; AssetDatabase.CreateAsset(tagDatabase, path); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); tagDatabase = Resources.Load <TagDatabase>("PCTK/AllTheTags/TagDatabase"); } } List <int> activeTagList = typeof(AllTheTags).GetField("_tags", BindingFlags.Instance | BindingFlags.NonPublic) .GetValue(att) as List <int>; bool activeTagListModified = false; if (activeTagList == null) { activeTagListModified = true; activeTagList = new List <int>(); } float currentLabelPos = 0; GUILayout.BeginHorizontal(); for (int i = 0; i < activeTagList.Count; i++) { Tag tag = tagDatabase.GetTagViaID(activeTagList[i]); bool removeFromList = false; if (tag == null) { removeFromList = true; } else { float minWidth, maxWidth; editorSkin.GetStyle("Tag").CalcMinMaxWidth(new GUIContent(tag.TagFriendly), out minWidth, out maxWidth); currentLabelPos += (maxWidth + 20); if (currentLabelPos > Screen.width) { GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); currentLabelPos = maxWidth; } GUI.color = tag.ReferenceColor; GUILayout.Label(new GUIContent(tag.TagFriendly), editorSkin.GetStyle("Tag")); Rect labelRect = GUILayoutUtility.GetLastRect(); labelRect = new Rect(labelRect.xMax - 18, labelRect.yMin + 4, 14, 14); if (GUI.Button(labelRect, "", editorSkin.GetStyle("Remove"))) { removeFromList = true; } } if (removeFromList) { Undo.RecordObject(att, "Remove Tag"); activeTagList.RemoveAt(i); activeTagListModified = true; i--; } } GUI.color = Color.white; GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.BeginVertical("box"); GUILayout.BeginHorizontal(); GUILayout.Label("Enter tag:"); bool returnPressed = false, tabPressed = false; Event e = Event.current; if (e.keyCode == KeyCode.Return && e.rawType == EventType.KeyDown) { returnPressed = true; } if (e.keyCode == KeyCode.Tab && e.rawType == EventType.KeyDown) { tabPressed = true; } GUI.SetNextControlName("TagAddField"); _tagToAdd = EditorGUILayout.TextField(_tagToAdd); Rect suggestionRect = GUILayoutUtility.GetLastRect(); GUILayout.EndHorizontal(); if (GUILayout.Button("Manage Tags", EditorStyles.miniButton)) { TagDatabaseUtility.Spawn(); //Selection.activeObject = tagDatabase; } GUILayout.EndVertical(); if (!string.IsNullOrEmpty(_tagToAdd) && returnPressed && GUI.GetNameOfFocusedControl() == "TagAddField") { Tag newTag = tagDatabase.FindOrAddTag(_tagToAdd); EditorUtility.SetDirty(tagDatabase); if (!activeTagList.Contains(newTag.TagID)) { Undo.RecordObject(att, "Attach Tag"); activeTagList.Add(newTag.TagID); activeTagListModified = true; _tagToAdd = ""; } else { EditorUtility.DisplayDialog("Error", "This object has already been tagged as " + _tagToAdd + ".", "Ok"); } } if (!string.IsNullOrEmpty(_tagToAdd)) { Tag suggestedTag = null; foreach (var tag in tagDatabase.Tags) { if (tag.TagFriendly.Length > _tagToAdd.Length && tag.TagFriendly.StartsWith(_tagToAdd) && !activeTagList.Contains(tag.TagID)) { if (suggestedTag != null && suggestedTag.TagFriendly.Length < tag.TagFriendly.Length) { continue; } suggestedTag = tag; } } if (suggestedTag != null) { suggestionRect.xMin += 1; suggestionRect.xMax += 1; Color restoreColor = GUI.color; GUI.color = restoreColor * new Color(1, 1, 1, 0.25f); GUI.Label(suggestionRect, suggestedTag.TagFriendly); GUI.color = restoreColor; if (tabPressed) { e.Use(); Undo.RecordObject(att, "Attach Tag"); activeTagList.Add(suggestedTag.TagID); activeTagListModified = true; _tagToAdd = ""; } } } if (activeTagListModified) { typeof(AllTheTags).GetField("_tags", BindingFlags.Instance | BindingFlags.NonPublic) .SetValue(att, activeTagList); EditorUtility.SetDirty(att); Repaint(); } }
protected override void BeforeExecute() { _db = new TagDatabase(); }