public void ConfigureRecord(RecordStructure rec) { this.rec = rec; if (rec == null) filterTree.Roots = null; else { var srs = (from sr in rec.subrecords let children = sr.elements.Select( se => new ColumnElement() { Checked = false, Name = se.name, Parent = null, Record = se } ).ToList() select new ColumnSubrecord() { Name = string.Format("{0}: {1}", sr.name, sr.desc), Checked = false, Record = sr, Children = children }).ToList(); // fix parents after assignments foreach (var sr in srs) foreach (var se in sr.Children) se.Parent = sr; filterTree.Roots = srs; } }
public IEnumerable <SearchSubrecord> ConfigureRecord(RecordStructure rec) { this.cboRecordType.SelectedItem = rec; if (rec == null) { return(null); } else { var srs = (from sr in rec.subrecords let children = sr.elements.Select( se => new SearchElement() { Name = se.name, Parent = null, Record = se, Type = SearchCondElementType.Exists, Checked = false } ).ToList() select new SearchSubrecord() { Name = string.Format("{0}: {1}", sr.name, sr.desc), Checked = false, Record = sr, Children = children }).ToList(); // fix parents after assignments foreach (var sr in srs) { foreach (var se in sr.Children) { se.Parent = sr; } } return(srs); } }
public void ConfigureRecord(RecordStructure rec) { this.rec = rec; if (rec == null) { this.filterTree.Roots = null; } else { var srs = (from sr in rec.subrecords let children = sr.elements.Select(se => new ColumnElement() { Checked = false, Name = se.name, Parent = null, Record = se }).ToList() select new ColumnSubrecord() { Name = string.Format("{0}: {1}", sr.name, sr.desc), Checked = false, Record = sr, Children = children }).ToList(); // fix parents after assignments foreach (var sr in srs) { foreach (var se in sr.Children) { se.Parent = sr; } } this.filterTree.Roots = srs; } }
public void ConfigureRecord(RecordStructure rec) { this.rec = rec; var srs = (from sr in rec.subrecords let children = sr.elements.Select(se => new SearchElement() { Checked = false, Name = se.name, Parent = null, Record = se }).ToList() select new SearchSubrecord() { Name = sr.name, Checked = false, Record = sr, Children = children }).ToList(); this.filterTree.Roots = srs; }
public static RecordStructure GetFirstRecordOfType(string type) { RecordStructure rec = null; if (LoadedDomains().Any(domain => domain.Records.TryGetValue(type, out rec))) { return(rec); } return(null); }
public SessionRecord(byte[] serialized) { RecordStructure record = RecordStructure.ParseFrom(serialized); this.sessionState = new SessionState(record.CurrentSession); this.fresh = false; foreach (SessionStructure previousStructure in record.PreviousSessionsList) { previousStates.AddLast(new SessionState(previousStructure)); // add -> AddLast (java) } }
public static void Reload() { foreach (var domainDefinition in Domains.Values) { if (domainDefinition.Loaded) { domainDefinition.Records = RecordStructure.Load(domainDefinition.xmlPath); } } if (DomainLoaded != null) { DomainLoaded(null, EventArgs.Empty); } }
/// <returns> /// Returns a serialized version of the current SessionRecord.</returns> public byte[] Serialize() { List <SessionStructure> previousStructures = new List <SessionStructure>(); foreach (SessionState previousState in _previousStates) { previousStructures.Add(previousState.GetStructure()); } RecordStructure record = new RecordStructure { CurrentSession = _sessionState.GetStructure(), }; record.PreviousSessions.AddRange(previousStructures); return(record.ToByteArray()); }
/** * @return a serialized version of the current SessionRecord. */ public byte[] serialize() { List <SessionStructure> previousStructures = new List <SessionStructure>(); foreach (SessionState previousState in previousStates) { previousStructures.Add(previousState.getStructure()); } RecordStructure record = RecordStructure.CreateBuilder() .SetCurrentSession(sessionState.getStructure()) .AddRangePreviousSessions(previousStructures) .Build(); return(record.ToByteArray()); }
internal static string GetExtendedDesc(this Record rec, ISelectionContext selectContext) { var context = selectContext.Clone(); try { context.Record = rec; RecordStructure structure = rec.GetStructure(); if (structure == null) { return(string.Empty); } var s = new StringBuilder(); s.AppendLine(structure.description); foreach (var subrec in rec.SubRecords) { if (subrec.Structure == null) { continue; } if (subrec.Structure.elements == null) { return(s.ToString()); } if (subrec.Structure.notininfo) { continue; } s.AppendLine(); s.Append(subrec.GetFormattedData()); } return(s.ToString()); } finally { context.Reset(); } }
public static DomainDefinition Load(string p) { DomainDefinition define; if (!Domains.TryGetValue(p, out define)) { define = new DomainDefinition(p); Domains[p] = define; } if (!define.Loaded) { define.Records = RecordStructure.Load(define.xmlPath); define.Loaded = true; if (DomainLoaded != null) { DomainLoaded(define, EventArgs.Empty); } } return(define); }
public Main() { InitializeComponent(); m_recordList = new List <Record>(); // initialize the data m_setting = new Settings(); string filePath = m_setting.DBPath; m_smartbufferlist = new RecordStructure(filePath); m_diagnosisList = new StatisticsRecord(); m_currentRecord = new Record(); m_currentRecord.Date = DateTime.Today.ToShortDateString(); PreviousRecord.Enabled = false; // update the data to today this.calenderTimePicker.Value = DateTime.Today; }
/// <summary> /// The default constructor. /// </summary> public CriticalRecordsForm() { if (!RecordStructure.Loaded) { try { RecordStructure.Load(); } catch (Exception ex) { MessageBox.Show( "Could not parse RecordStructure.xml. Record-at-once editing will be unavailable.\n" + ex.Message, "Warning"); } } InitializeComponent(); cbxSeverity.DataSource = Enum.GetValues(typeof(CriticalRecordInfo.ConflictSeverity)); cbxSeverity.SelectedItem = CriticalRecordInfo.ConflictSeverity.Conflict; Properties.Settings.Default.windowPositions.GetWindowPosition("CREditor", this); }
private void toolStripSelectColumns_Click(object sender, EventArgs e) { RecordStructure rec = null; var searchTypeItem = this.toolStripIncrFindType.SelectedItem as MRUComboHelper <SearchType, string>; if (searchTypeItem == null) { return; } if (searchTypeItem.Key == SearchType.BasicCriteriaRef) { var scs = this.toolStripIncrSelectCriteria.Tag as SearchCriteriaSettings; if (scs != null && !string.IsNullOrEmpty(scs.Type)) { RecordStructure.Records.TryGetValue(scs.Type, out rec); } } else { var recType = this.toolStripIncrFindTypeFilter.SelectedItem as string; if (!string.IsNullOrEmpty(recType)) { RecordStructure.Records.TryGetValue(recType, out rec); } } using (var dlg = new RecordColumnSelect(rec)) { dlg.Criteria = this.toolStripSelectColumns.Tag as ColumnSettings; if (DialogResult.OK == dlg.ShowDialog(this)) { var settings = dlg.Criteria; this.ApplyColumnSettings(settings, rebuild: true); this.toolStripSelectColumns.Tag = dlg.Criteria; } } }
private void cboSavedSearches_SelectedIndexChanged(object sender, EventArgs e) { var settings = this.cboSavedSearches.SelectedItem as SearchCriteriaXmlSettings; if (settings != null && !string.IsNullOrEmpty(settings.Type)) { this.cboRecordType.SelectedIndexChanged -= this.cboRecordType_SelectedIndexChanged; this.cboSavedSearches.SelectedIndexChanged -= this.cboSavedSearches_SelectedIndexChanged; this.filterTree.ItemsChanging -= this.filterTree_ItemsChanging; this.filterTree.CellEditValidating -= this.filterTree_CellEditValidating; this.filterTree.ItemChecked -= this.filterTree_ItemChecked; try { RecordStructure rec = null; foreach (var domain in TESVSnip.Domain.Data.DomainDefinition.LoadedDomains()) { if (domain.Records.TryGetValue(settings.Type, out rec)) { break; } } if (rec != null) { this.filterTree.Roots = this.ConfigureRecord(rec); this.AssignCriteria(settings); this.filterTree.RebuildAll(true); } } finally { this.cboRecordType.SelectedIndexChanged += this.cboRecordType_SelectedIndexChanged; this.cboSavedSearches.SelectedIndexChanged += this.cboSavedSearches_SelectedIndexChanged; this.filterTree.ItemsChanging += this.filterTree_ItemsChanging; this.filterTree.CellEditValidating += this.filterTree_CellEditValidating; this.filterTree.ItemChecked += this.filterTree_ItemChecked; } } }
private void InitializeToolStripFind() { var items = new[] { new ComboHelper <SearchType, string>(SearchType.EditorID, "Editor ID"), new ComboHelper <SearchType, string>(SearchType.FormID, "Form ID"), new ComboHelper <SearchType, string>(SearchType.FullSearch, "Full Search"), new ComboHelper <SearchType, string>(SearchType.TypeEditorIdSearch, "Name w/Type"), new ComboHelper <SearchType, string>(SearchType.TypeFullSearch, "Full w/Type"), new ComboHelper <SearchType, string>(SearchType.FormIDRef, "Form ID Ref."), }; this.toolStripIncrFindType.Items.Clear(); foreach (var itm in items) { this.toolStripIncrFindType.Items.Add(itm); } this.toolStripIncrFindType.SelectedIndex = 0; // toolStripIncrFindType.SelectedItem = toolStripIncrFindType.Items[0]; this.ResetSearch(); this.toolStripIncrFindStatus.Text = string.Empty; if (!RecordStructure.Loaded) { RecordStructure.Load(); } var recitems = RecordStructure.Records.Keys.OfType <object>().ToArray(); // var recitems = TESVSnip.Properties.Settings.Default.AllESMRecords != null // ? TESVSnip.Properties.Settings.Default.AllESMRecords.Trim().Split(new char[] { ';', ',' }, StringSplitOptions.RemoveEmptyEntries).OfType<object>().ToArray() // : new object[0]; this.toolStripIncrFindTypeFilter.Sorted = true; this.toolStripIncrFindTypeFilter.Items.Clear(); this.toolStripIncrFindTypeFilter.Items.AddRange(recitems); this.toolStripIncrFindTypeFilter.SelectedIndex = 0; }
private void toolStripInsertRecord_DropDownOpening(object sender, EventArgs e) { // find current subrecord and guess likely candidates // this could be much smarter try { this.toolStripInsertRecord.DropDownItems.Clear(); var br = this.Selection.Record as Record; var sr = this.Selection.SubRecord; if (br != null) { RecordStructure rs = br.GetStructure(); if (rs != null) { var usedNames = new StringDictionary(); var delayedAddItems = new List <ToolStripMenuItem>(); var srs = (sr != null) ? sr.Structure : null; bool found = srs == null; int idx = this.listSubrecord.GetFocusedItem(); if (idx < 0) { var indicies = this.listSubrecord.GetSelectionIndices(); idx = indicies != null && indicies.Length > 0 ? indicies[0] : -1; } foreach (var s in rs.subrecords) { if (!found && sr.Structure.Equals(s)) { found = true; } if (usedNames.ContainsKey(s.name)) { continue; } usedNames.Add(s.name, s.name); var callback = new CallbackAction <SubrecordStructure>( s, subItem => { var srnew = new SubRecord(subItem); if (idx == -1) { br.AddRecord(srnew); idx = br.SubRecords.Count - 1; } else { br.InsertRecord(idx + 1, srnew); idx = idx + 1; } br.MatchRecordStructureToRecord(this.SubRecords.ToArray()); this.FireDataChanged(); this.SelectIndex(idx); }); var item = new ToolStripMenuItem(s.name, null, callback.ExecuteEvent); item.Tag = s; if (found) { this.toolStripInsertRecord.DropDownItems.Add(item); } else { delayedAddItems.Add(item); } } if (delayedAddItems.Count > 0) { if (this.toolStripInsertRecord.DropDownItems.Count > 0) { this.toolStripInsertRecord.DropDownItems.Add("-"); } this.toolStripInsertRecord.DropDownItems.AddRange(delayedAddItems.ToArray()); } } } else { this.toolStripInsertRecord.DropDownItems.Add("NEW_"); } } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
internal SearchFilterAdvanced(RecordStructure rec) : this() { this.ConfigureRecord(rec); }
public void ConfigureRecords(IEnumerable<Record> records) { var recs = records.Select(rec => rec.GetStructure()).Distinct(); this.rec = (recs.Count() == 1) ? recs.FirstOrDefault() : null; if (this.rec == null) { this.filterTree.Roots = null; } else { //this.records = records; var srs = (from sr in this.rec.subrecords let children = sr.elements.Select(se => new BatchElement() { Name = se.name, Parent = null, Record = se, Type = BatchCondElementType.Set, Checked = false }).ToList() select new BatchSubrecord() { Name = string.Format("{0}: {1}", sr.name, sr.desc), Record = sr, Children = children, Checked = false, }).ToList(); // Construct specialized editors for FormID and related headers #if false { var elems = new List<TESVSnip.Data.SubrecordElement> { new TESVSnip.Data.SubrecordElement{name = "FormID", desc = "Form ID", hexview = true, type = "uint"}, new TESVSnip.Data.SubrecordElement{name = "Flags1", desc = "Flags 1", hexview = true, type = "uint"}, new TESVSnip.Data.SubrecordElement{name = "Flags2", desc = "Flags 2", hexview = true, type = "uint"}, new TESVSnip.Data.SubrecordElement{name = "Flags3", desc = "Flags 3", hexview = true, type = "uint"}, }; var frmHdr = new TESVSnip.Data.Subrecord { name = "Header", desc = "Record Header", Elements = elems }; var hdr = new SubrecordStructure(frmHdr); var hdrElems = hdr.elements.Select(se => new BatchElement { Name = se.name, Parent = null, Record = se, Type = BatchCondElementType.Set, Checked = false } ).ToList(); srs.Insert(0, new BatchSubrecord { Name = string.Format("{0}: {1}", hdr.name, hdr.desc), Record = hdr, Children = hdrElems, Checked = false, }); } #endif // fix parents after assignments foreach (var sr in srs) { foreach (var se in sr.Children) { se.Parent = sr; } } this.filterTree.Roots = srs; } }
public void SetRecordStructure(RecordStructure rec) { Initialize(); this.filterTree.Roots = ConfigureRecord(rec); }
public void ConfigureRecords(IEnumerable <Record> records) { var recs = records.Select( x => { RecordStructure rs; return(RecordStructure.Records.TryGetValue(x.Name, out rs) ? rs : null); }).Distinct(); this.rec = (recs.Count() == 1) ? recs.FirstOrDefault() : null; if (this.rec == null) { this.filterTree.Roots = null; } else { this.records = records; var srs = (from sr in this.rec.subrecords let children = sr.elements.Select(se => new BatchElement() { Name = se.name, Parent = null, Record = se, Type = BatchCondElementType.Set, Checked = false }).ToList() select new BatchSubrecord() { Name = string.Format("{0}: {1}", sr.name, sr.desc), Record = sr, Children = children, Checked = false, }).ToList(); // Construct specialized editors for FormID and related headers #if false { var elems = new List <TESVSnip.Data.SubrecordElement> { new TESVSnip.Data.SubrecordElement { name = "FormID", desc = "Form ID", hexview = true, type = "uint" }, new TESVSnip.Data.SubrecordElement { name = "Flags1", desc = "Flags 1", hexview = true, type = "uint" }, new TESVSnip.Data.SubrecordElement { name = "Flags2", desc = "Flags 2", hexview = true, type = "uint" }, new TESVSnip.Data.SubrecordElement { name = "Flags3", desc = "Flags 3", hexview = true, type = "uint" }, }; var frmHdr = new TESVSnip.Data.Subrecord { name = "Header", desc = "Record Header", Elements = elems }; var hdr = new SubrecordStructure(frmHdr); var hdrElems = hdr.elements.Select(se => new BatchElement { Name = se.name, Parent = null, Record = se, Type = BatchCondElementType.Set, Checked = false } ).ToList(); srs.Insert(0, new BatchSubrecord { Name = string.Format("{0}: {1}", hdr.name, hdr.desc), Record = hdr, Children = hdrElems, Checked = false, }); } #endif // fix parents after assignments foreach (var sr in srs) { foreach (var se in sr.Children) { se.Parent = sr; } } this.filterTree.Roots = srs; } }
internal RecordColumnSelect(RecordStructure rec) : this() { ConfigureRecord(rec); }
private void InitializeToolStripFind() { if (DesignMode) { return; } if (TESVSnip.Properties.Settings.Default.SearchMRUNameList == null) { TESVSnip.Properties.Settings.Default.SearchMRUNameList = new StringCollection(); } if (TESVSnip.Properties.Settings.Default.SearchMRUFormIDList == null) { TESVSnip.Properties.Settings.Default.SearchMRUFormIDList = new StringCollection(); } if (TESVSnip.Properties.Settings.Default.SearchMRUFullList == null) { TESVSnip.Properties.Settings.Default.SearchMRUFullList = new StringCollection(); } var items = new object[] { new MRUComboHelper <SearchType, string>(SearchType.EditorID, "Editor ID", TESVSnip.Properties.Settings.Default.SearchMRUNameList), new MRUComboHelper <SearchType, string>(SearchType.FormID, "Form ID", TESVSnip.Properties.Settings.Default.SearchMRUFormIDList), new MRUComboHelper <SearchType, string>(SearchType.FullSearch, "Full Search", TESVSnip.Properties.Settings.Default.SearchMRUFullList), new MRUComboHelper <SearchType, string>(SearchType.TypeEditorIdSearch, "Name w/Type", TESVSnip.Properties.Settings.Default.SearchMRUNameList), new MRUComboHelper <SearchType, string>(SearchType.TypeFullSearch, "Full w/Type", TESVSnip.Properties.Settings.Default.SearchMRUFullList), new MRUComboHelper <SearchType, string>(SearchType.FormIDRef, "Form ID Ref.", TESVSnip.Properties.Settings.Default.SearchMRUFormIDList), new MRUComboHelper <SearchType, string>(SearchType.BasicCriteriaRef, "Basic Search", new StringCollection()), }; toolStripIncrFindType.Items.Clear(); toolStripIncrFindType.Items.AddRange(items); int idx = 0; if (!string.IsNullOrEmpty(Properties.Settings.Default.LastSearchType)) { idx = toolStripIncrFindType.FindStringExact(Properties.Settings.Default.LastSearchType); } idx = idx >= 0 ? idx : 0; toolStripIncrFindType.SelectedIndex = idx; ResetSearch(); toolStripIncrFindStatus.Text = ""; if (!RecordStructure.Loaded) { RecordStructure.Load(); } toolStripIncrFindTypeFilter.Sorted = true; toolStripIncrFindTypeFilter.Items.Clear(); if (RecordStructure.Records != null) { var recitems = RecordStructure.Records.Keys.OfType <object>().ToArray(); toolStripIncrFindTypeFilter.Items.AddRange(recitems); } toolStripIncrFindTypeFilter.SelectedIndex = 0; backgroundWorker1.DoWork += backgroundWorker1_DoWork; backgroundWorker1.RunWorkerCompleted += backgroundWorker1_RunWorkerCompleted; backgroundWorker1.ProgressChanged += backgroundWorker1_ProgressChanged; }