public override void FinishInit() { m_chorusSystem = new ChorusSystem(Cache.ProjectId.ProjectFolder); m_chorusSystem.InitWithoutHg(SendReceiveUser); // This is a required object for CreateNotesBar. It specifies delegates for getting the information // the bar requires about the current object. var notesToRecordMapping = new NotesToRecordMapping() { FunctionToGetCurrentUrlForNewNotes = GetCurrentUrlForNewNotes, FunctionToGoFromObjectToItsId = GetIdForObject, FunctionToGoFromObjectToAdditionalIds = GetAdditionalIdsForObject }; var dataFilePath = GetDataFilePath(Cache); var additionalPaths = GetAdditionalLexiconFilePaths(Cache); const string idAttrForOtherFiles = "guid"; // .lexdb chorus notes files identify FLEx object with a url attr of "guid". m_notesBar = m_chorusSystem.WinForms.CreateNotesBar(dataFilePath, additionalPaths, idAttrForOtherFiles, notesToRecordMapping, new NullProgress()); m_notesBar.SetTargetObject(m_obj); // Set the writing systems for the NoteDetailDialog. (See FWNX-1239.) var vernWs = Cache.ServiceLocator.WritingSystems.DefaultVernacularWritingSystem; var labelWs = new ChorusWritingSystem(vernWs.LanguageName, vernWs.RFC5646, vernWs.DefaultFontName, 12); m_notesBar.LabelWritingSystem = labelWs; var analWs = Cache.ServiceLocator.WritingSystems.DefaultAnalysisWritingSystem; var msgWs = new ChorusWritingSystem (analWs.LanguageName, analWs.RFC5646, analWs.DefaultFontName, 12); m_notesBar.MessageWritingSystem = msgWs; this.Control = m_notesBar; }
/// <summary> /// Determine if the object really has data to be shown in the slice. This method is called by reflection /// from DataTree.AddSimpleNode, to determine whether to create the slice when visibility is "ifdata". /// </summary> /// <param name="obj">object to check; should be an ILexEntry</param> /// <returns>true if there are chorus notes for this object; false otherwise</returns> public static bool ShowSliceForVisibleIfData(XmlNode node, ICmObject obj) { using (var chorusSystem = new ChorusSystem(obj.Cache.ProjectId.ProjectFolder)) { chorusSystem.InitWithoutHg(SendReceiveUser); // This is a required object for CreateNotesBar. It specifies delegates for getting the information // the bar requires about the current object. For this model the FunctionToGetCurrentUrlForNewNotes will not be used. var notesToRecordMapping = new NotesToRecordMapping() { FunctionToGetCurrentUrlForNewNotes = DummyGetCurrentUrlForNewNotes, FunctionToGoFromObjectToItsId = GetIdForObject }; var dataFilePath = GetDataFilePath(obj.Cache); var notesmodel = chorusSystem.WinForms.CreateNotesBarModel(dataFilePath, notesToRecordMapping, new NullProgress()); notesmodel.SetTargetObject(obj); return notesmodel.GetAnnotationsToShow().Any(); } }