public void Test_Video() { string targetName = TestUtils.GetTempFilePath("test_video.3gp"); Assembly assembly = typeof(CoreTests).Assembly; Stream vidstm = assembly.GetManifestResourceStream("GKTests.Resources.test_video.3gp"); GKUtils.CopyFile(vidstm, new FileInfo(targetName), null); Assert.IsTrue(File.Exists(targetName)); GDMMultimediaRecord mmRecV = fBase.Context.Tree.CreateMultimedia(); mmRecV.FileReferences.Add(new GDMFileReferenceWithTitle(mmRecV)); var fileRefV = mmRecV.FileReferences[0]; fileRefV.Title = "File Title 2"; fileRefV.LinkFile(targetName); fileRefV.MediaType = GDMMediaType.mtVideo; fileRefV.MultimediaFormat = GDMMultimediaFormat.mfMKV; fDialog.FileRef = fileRefV; Assert.AreEqual(fileRefV, fDialog.FileRef); fDialog.SetViewMedia(targetName); fDialog.Refresh(); ClickButton("btnPlay", fDialog); ClickButton("btnPause", fDialog); ClickButton("btnMute", fDialog); ClickButton("btnStop", fDialog); KeyDownForm(fDialog.Name, Keys.Escape); }
public void Test_Video() { string targetName = TestUtils.PrepareTestFile("test_video.3gp"); try { Assert.IsTrue(File.Exists(targetName)); GDMMultimediaRecord mmRecV = fBase.Context.Tree.CreateMultimedia(); mmRecV.FileReferences.Add(new GDMFileReferenceWithTitle(mmRecV)); var fileRefV = mmRecV.FileReferences[0]; fileRefV.Title = "File Title 2"; fileRefV.LinkFile(targetName); fileRefV.MediaType = GDMMediaType.mtVideo; fileRefV.MultimediaFormat = GDMMultimediaFormat.mfMKV; fDialog.FileRef = fileRefV; Assert.AreEqual(fileRefV, fDialog.FileRef); fDialog.SetViewMedia(targetName); fDialog.Refresh(); ClickButton("btnPlay", fDialog); ClickButton("btnPause", fDialog); ClickButton("btnMute", fDialog); ClickButton("btnStop", fDialog); KeyDownForm(fDialog.Name, Keys.Escape); } finally { TestUtils.RemoveTestFile(targetName); } }
private static void TransformMultimediaLink(GDMTree tree, GDMMultimediaLink mmLink) { string title = mmLink.Title; GDMMultimediaRecord mmRec = tree.CreateMultimedia(); int num = mmLink.FileReferences.Count; for (int i = 0; i < num; i++) { GDMFileReference srcFileRef = mmLink.FileReferences[i]; GDMFileReferenceWithTitle tgtFileRef = new GDMFileReferenceWithTitle(mmRec); tgtFileRef.LinkFile(srcFileRef.StringValue); if (srcFileRef.MultimediaFormat != GDMMultimediaFormat.mfNone) { tgtFileRef.MultimediaFormat = srcFileRef.MultimediaFormat; } if (srcFileRef.MediaType != GDMMediaType.mtUnknown) { tgtFileRef.MediaType = srcFileRef.MediaType; } tgtFileRef.Title = title; mmRec.FileReferences.Add(tgtFileRef); } mmLink.Clear(); mmLink.Value = mmRec; }
private static void CheckMultimediaRecord(GDMMultimediaRecord mmRec, GEDCOMFormat format, int fileVer) { for (int i = 0; i < mmRec.FileReferences.Count; i++) { GDMFileReferenceWithTitle fileRef = mmRec.FileReferences[i]; GDMMultimediaFormat mmFormat = fileRef.MultimediaFormat; if (mmFormat == GDMMultimediaFormat.mfUnknown || mmFormat == GDMMultimediaFormat.mfNone) { // tag 'FORM' can be corrupted or GEDCOMCore in past not recognize format attempt recovery fileRef.MultimediaFormat = GDMFileReference.RecognizeFormat(fileRef.StringValue); } if (format == GEDCOMFormat.gf_Native && fileVer == 39) { // the transition to normalized names after GKv39 // only for not direct references AND not relative references (platform specific paths) var mediaStore = GKUtils.GetStoreType(fileRef); if (mediaStore.StoreType != MediaStoreType.mstReference && mediaStore.StoreType != MediaStoreType.mstRelativeReference) { fileRef.StringValue = FileHelper.NormalizeFilename(fileRef.StringValue); } } } }
public static bool AddIndividualPortrait(IBaseWindow baseWin, ChangeTracker localUndoman, GDMIndividualRecord iRec) { bool result = false; GDMMultimediaRecord mmRec = baseWin.Context.SelectRecord(GDMRecordType.rtMultimedia, null) as GDMMultimediaRecord; if (mmRec == null) { return(false); } // remove previous portrait link GDMMultimediaLink mmLink = iRec.GetPrimaryMultimediaLink(); if (mmLink != null) { mmLink.IsPrimary = false; } // set new portrait link mmLink = iRec.SetPrimaryMultimediaLink(mmRec); // select portrait area using (var selectDlg = AppHost.ResolveDialog <IPortraitSelectDlg>(baseWin)) { selectDlg.MultimediaLink = mmLink; result = AppHost.Instance.ShowModalX(selectDlg, false); } if (result) { result = localUndoman.DoOrdinaryOperation(OperationType.otIndividualPortraitAttach, iRec, mmLink); } return(result); }
public override void UpdateContents() { var dataOwner = fDataOwner as IGDMStructWithMultimediaLinks; if (fSheetList == null || dataOwner == null) { return; } try { fSheetList.ClearItems(); foreach (GDMMultimediaLink mmLink in dataOwner.MultimediaLinks) { GDMMultimediaRecord mmRec = fBaseContext.Tree.GetPtrValue <GDMMultimediaRecord>(mmLink); if (mmRec == null) { continue; } if (mmRec.FileReferences.Count == 0) { continue; } GDMFileReferenceWithTitle fileRef = mmRec.FileReferences[0]; fSheetList.AddItem(mmLink, new object[] { fileRef.Title, LangMan.LS(GKData.MediaTypes[(int)fileRef.MediaType]) }); } } catch (Exception ex) { Logger.WriteError("MediaLinksListModel.UpdateContents()", ex); } }
public void Test_Standart() { Assembly assembly = typeof(CoreTests).Assembly; using (Stream inStream = assembly.GetManifestResourceStream("GKTests.Resources.TGC55CLF.GED")) { using (GDMTree tree = new GDMTree()) { var gedcomProvider = new GEDCOMProvider(tree); gedcomProvider.LoadFromStreamExt(inStream, inStream); Assert.AreEqual(GEDCOMFormat.gf_Unknown, tree.Format); GDMMultimediaRecord mmRec1 = tree.XRefIndex_Find("M1") as GDMMultimediaRecord; Assert.IsNotNull(mmRec1); GDMTag blobTag = mmRec1.FindTag("BLOB", 0); Assert.IsNotNull(blobTag); var strBlob = GEDCOMUtils.GetTagStrings(blobTag).Text; Assert.IsNotNull(strBlob); MemoryStream blobStream = GEDCOMUtils.DecodeBlob(strBlob.Replace("\r\n", "")); Assert.IsNotNull(blobStream); // unsupported apple's `pict` format /*using (FileStream file = new FileStream("d:\\image.pict", FileMode.Create, FileAccess.Write)) { * blobStream.WriteTo(file); * blobStream.Close(); * }*/ using (MemoryStream outStream = new MemoryStream()) { gedcomProvider = new GEDCOMProvider(tree); gedcomProvider.SaveToStreamExt(outStream, GEDCOMCharacterSet.csASCII); } } } }
public void ShowMedia(GDMMultimediaRecord mediaRec, bool modal) { if (mediaRec == null) { throw new ArgumentNullException("mediaRec"); } GDMFileReferenceWithTitle fileRef = mediaRec.FileReferences[0]; MultimediaKind mmKind = GKUtils.GetMultimediaKind(fileRef.MultimediaFormat); if (mmKind == MultimediaKind.mkNone) { return; } bool externalViewer = !GlobalOptions.Instance.EmbeddedMediaPlayer && ((mmKind == MultimediaKind.mkAudio || mmKind == MultimediaKind.mkVideo)); if (externalViewer) { string targetFile = fContext.MediaLoad(fileRef); GKUtils.LoadExtFile(targetFile); } else { //var mediaViewer = AppHost.Container.Resolve<IMediaViewerWin>(this); MediaViewerWin mediaViewer = new MediaViewerWin(this); try { try { mediaViewer.FileRef = fileRef; if (modal) { mediaViewer.Show(); } else { mediaViewer.ShowInTaskbar = true; mediaViewer.Show(); } } finally { if (modal) { mediaViewer.Dispose(); } } } catch (Exception ex) { if (mediaViewer != null) { mediaViewer.Dispose(); } Logger.LogWrite("BaseWinSDI.ShowMedia(): " + ex.Message); } } }
public override void Setup() { WFAppHost.ConfigureBootstrap(false); fBase = new BaseWindowStub(); fMultimediaRecord = new GDMMultimediaRecord(fBase.Context.Tree); fMultimediaRecord.FileReferences.Add(new GDMFileReferenceWithTitle()); fDialog = new MediaEditDlg(fBase); fDialog.MediaRec = fMultimediaRecord; fDialog.Show(); }
public void Test_MediaLoadSave() { string sourFile = TestUtils.PrepareTestFile("shaytan_plant.jpg"); string gedFile = TestUtils.GetTempFilePath("test_mm.ged"); string stgDirectory = string.Empty, arcFileName = string.Empty; try { using (BaseContext ctx = new BaseContext(null)) { Assert.IsTrue(ctx.IsUnknown()); Assert.AreEqual(false, ctx.MediaSave(null, "", MediaStoreType.mstReference)); Assert.AreEqual(null, ctx.LoadMediaImage(null, false)); Assert.AreEqual(null, ctx.LoadMediaImage(null, 0, 0, ExtRect.Empty, false)); Assert.AreEqual(null, ctx.GetPrimaryBitmap(null, 0, 0, false)); Assert.AreEqual(null, ctx.GetPrimaryBitmapUID(null)); ctx.FileSave(gedFile); Assert.AreEqual(true, ctx.CheckBasePath()); // need path for archive and storage var mmRecR = new GDMMultimediaRecord(ctx.Tree); mmRecR.FileReferences.Add(new GDMFileReferenceWithTitle()); Assert.AreEqual(true, ctx.MediaSave(mmRecR.FileReferences[0], sourFile, MediaStoreType.mstReference)); Assert.IsNotNull(ctx.LoadMediaImage(mmRecR.FileReferences[0], false)); Assert.IsNotNull(ctx.MediaLoad(mmRecR.FileReferences[0])); var mmRecA = new GDMMultimediaRecord(ctx.Tree); mmRecA.FileReferences.Add(new GDMFileReferenceWithTitle()); Assert.AreEqual(true, ctx.MediaSave(mmRecA.FileReferences[0], sourFile, MediaStoreType.mstArchive)); Assert.IsNotNull(ctx.LoadMediaImage(mmRecA.FileReferences[0], false)); Assert.IsNotNull(ctx.MediaLoad(mmRecA.FileReferences[0])); arcFileName = ctx.GetArcFileName(); var mmRecS = new GDMMultimediaRecord(ctx.Tree); mmRecS.FileReferences.Add(new GDMFileReferenceWithTitle()); Assert.AreEqual(true, ctx.MediaSave(mmRecS.FileReferences[0], sourFile, MediaStoreType.mstStorage)); Assert.IsNotNull(ctx.LoadMediaImage(mmRecS.FileReferences[0], false)); Assert.IsNotNull(ctx.MediaLoad(mmRecS.FileReferences[0])); stgDirectory = ctx.GetStgFolder(false); var mmRecRl = new GDMMultimediaRecord(ctx.Tree); mmRecRl.FileReferences.Add(new GDMFileReferenceWithTitle()); Assert.AreEqual(true, ctx.MediaSave(mmRecRl.FileReferences[0], sourFile, MediaStoreType.mstRelativeReference)); Assert.IsNotNull(ctx.LoadMediaImage(mmRecRl.FileReferences[0], false)); Assert.IsNotNull(ctx.MediaLoad(mmRecRl.FileReferences[0])); } } finally { TestUtils.RemoveTestFile(sourFile); TestUtils.RemoveTestFile(gedFile); TestUtils.RemoveTestFile(arcFileName); TestUtils.RemoveTestDirectory(stgDirectory); } }
public GDMMultimediaLink AddMultimedia(GDMMultimediaRecord mediaRec) { GDMMultimediaLink result = null; if (mediaRec != null) { result = new GDMMultimediaLink(this); result.Value = mediaRec; fMultimediaLinks.Add(result); } return(result); }
public void ShowMedia(GDMMultimediaRecord mediaRec, bool modal) { if (mediaRec == null) { throw new ArgumentNullException("mediaRec"); } GDMFileReferenceWithTitle fileRef = mediaRec.FileReferences[0]; if (fileRef == null) { return; } if (!GKUtils.UseEmbeddedViewer(fileRef.MultimediaFormat)) { string targetFile = fContext.MediaLoad(fileRef); GKUtils.LoadExtFile(targetFile); } else { //var mediaViewer = AppHost.Container.Resolve<IMediaViewerWin>(this); MediaViewerWin mediaViewer = new MediaViewerWin(this); try { try { mediaViewer.Multimedia = mediaRec; mediaViewer.FileRef = fileRef; if (modal) { mediaViewer.ShowDialog(); } else { mediaViewer.ShowInTaskbar = true; mediaViewer.Show(); } } finally { if (modal) { mediaViewer.Dispose(); } } } catch (Exception ex) { if (mediaViewer != null) { mediaViewer.Dispose(); } Logger.WriteError("BaseWinSDI.ShowMedia()", ex); } } }
public override void Setup() { fBase = new BaseWindowStub(); GDMMultimediaRecord mmRec = fBase.Context.Tree.CreateMultimedia(); mmRec.FileReferences.Add(new GDMFileReferenceWithTitle(mmRec)); fileRef = mmRec.FileReferences[0]; fileRef.Title = "File Title 2"; fileRef.LinkFile("shaytan_plant.jpg"); fileRef.MediaType = GDMMediaType.mtPhoto; fDialog = new MediaViewerWin(fBase); fDialog.Show(); }
public void SelectSummaryLink(string linkName) { if (linkName.StartsWith("view_")) { string xref = linkName.Remove(0, 5); GDMMultimediaRecord mmRec = fContext.Tree.XRefIndex_Find(xref) as GDMMultimediaRecord; if (mmRec != null) { fView.ShowMedia(mmRec, false); } } else { SelectRecordByXRef(linkName); } }
public void LoadList() { GDMRecord record; var enumerator = fBase.Context.Tree.GetEnumerator(GDMRecordType.rtMultimedia); while (enumerator.MoveNext(out record)) { GDMMultimediaRecord mediaRec = (GDMMultimediaRecord)record; GDMFileReferenceWithTitle fileRef = mediaRec.FileReferences[0]; MultimediaKind mmKind = GKUtils.GetMultimediaKind(fileRef.MultimediaFormat); if (mmKind == MultimediaKind.mkImage) { fFileRefs.Add(fileRef); } } }
public static bool ModifyMedia(IBaseWindow baseWin, ref GDMMultimediaRecord mediaRec) { bool result; try { baseWin.Context.BeginUpdate(); GDMTree tree = baseWin.Context.Tree; using (var dlg = AppHost.ResolveDialog <IMediaEditDlg>(baseWin)) { bool exists = mediaRec != null; if (!exists) { mediaRec = new GDMMultimediaRecord(tree); mediaRec.FileReferences.Add(new GDMFileReferenceWithTitle(mediaRec)); mediaRec.InitNew(); } try { baseWin.Context.LockRecord(mediaRec); dlg.MediaRec = mediaRec; result = (AppHost.Instance.ShowModalX(dlg, false)); } finally { baseWin.Context.UnlockRecord(mediaRec); } if (!exists) { if (result) { tree.AddRecord(mediaRec); } else { mediaRec.Dispose(); mediaRec = null; } } } } finally { baseWin.Context.EndUpdate(); } return(result); }
private bool ProcessRecordMediaAdd(bool redo) { IGEDCOMStructWithLists swl = fObj as IGEDCOMStructWithLists; GDMMultimediaRecord mediaRec = fNewVal as GDMMultimediaRecord; bool result = (swl != null && mediaRec != null); if (result) { if (redo) { GDMMultimediaLink mmLink = swl.AddMultimedia(mediaRec); fOldVal = mmLink; } else { GDMMultimediaLink mmLink = fOldVal as GDMMultimediaLink; swl.MultimediaLinks.Delete(mmLink); } } return(result); }
public override void UpdateView() { if (fMultimediaLink == null || fMultimediaLink.Value == null) { return; } GDMMultimediaRecord mmRec = (GDMMultimediaRecord)fMultimediaLink.Value; IImage img = fBase.Context.LoadMediaImage(mmRec.FileReferences[0], false); if (img == null) { return; } fView.ImageCtl.OpenImage(img); if (fMultimediaLink.IsPrimaryCutout) { fView.ImageCtl.SelectionRegion = fMultimediaLink.CutoutPosition.Value; } }
public void SelectLink(string linkName) { if (linkName.StartsWith("http")) { GKUtils.LoadExtFile(linkName); return; } if (linkName.StartsWith("view_")) { string xref = linkName.Remove(0, 5); GDMMultimediaRecord mmRec = fBase.Context.Tree.XRefIndex_Find(xref) as GDMMultimediaRecord; if (mmRec != null) { fBase.ShowMedia(mmRec, false); } } else { GDMRecord record = Base.Context.Tree.XRefIndex_Find(linkName); fView.HyperView.Lines.Assign(fBase.GetRecordContent(record)); } }
public override void UpdateContents() { var dataOwner = fDataOwner as IGEDCOMStructWithLists; if (fSheetList == null || dataOwner == null) { return; } try { fSheetList.ClearItems(); foreach (GDMMultimediaLink mmLink in dataOwner.MultimediaLinks) { GDMMultimediaRecord mmRec = mmLink.Value as GDMMultimediaRecord; if (mmRec == null) { continue; } if (mmRec.FileReferences.Count == 0) { continue; } GDMFileReferenceWithTitle fileRef = mmRec.FileReferences[0]; fSheetList.AddItem(mmLink, new object[] { fileRef.Title, LangMan.LS(GKData.MediaTypes[(int)fileRef.MediaType]) }); } } catch (Exception ex) { Logger.LogWrite("MediaLinksListModel.UpdateContents(): " + ex.Message); } }
public void Test_LMMultimedia() { var listManager = new MultimediaListMan(fContext); Assert.IsNotNull(listManager); GDMMultimediaRecord mediaRec = fContext.Tree.XRefIndex_Find("O1") as GDMMultimediaRecord; listManager.Fetch(mediaRec); listManager.QuickFilter = "*"; Assert.IsTrue(listManager.CheckFilter()); listManager.QuickFilter = "*media*"; Assert.IsTrue(listManager.CheckFilter()); listManager.QuickFilter = "*xxxx*"; Assert.IsFalse(listManager.CheckFilter()); var lvMock = new ListViewMock(); listManager.UpdateColumns(lvMock); var listItem = new GKListItem("", null); listManager.UpdateItem(0, listItem, mediaRec); }
public static GDMRecord AddRecord(IBaseWindow baseWin, GDMRecordType rt, Target target) { bool result = false; GDMRecord rec = null; switch (rt) { case GDMRecordType.rtIndividual: { // FIXME: legacy code, checkit if (target == null) { target = new Target(); target.TargetMode = TargetMode.tmParent; } GDMIndividualRecord indivRec = null; result = ModifyIndividual(baseWin, ref indivRec, target.TargetIndividual, target.TargetMode, target.NeedSex); rec = indivRec; break; } case GDMRecordType.rtFamily: { if (target == null) { target = new Target(); } TargetMode famTarget = (target.TargetMode != TargetMode.tmFamilyChild) ? TargetMode.tmNone : target.TargetMode; GDMFamilyRecord fam = null; result = ModifyFamily(baseWin, ref fam, famTarget, target.TargetIndividual); rec = fam; break; } case GDMRecordType.rtNote: { GDMNoteRecord note = null; result = ModifyNote(baseWin, ref note); rec = note; break; } case GDMRecordType.rtMultimedia: { GDMMultimediaRecord mmRec = null; result = ModifyMedia(baseWin, ref mmRec); rec = mmRec; break; } case GDMRecordType.rtSource: { GDMSourceRecord src = null; result = ModifySource(baseWin, ref src); rec = src; break; } case GDMRecordType.rtRepository: { GDMRepositoryRecord rep = null; result = ModifyRepository(baseWin, ref rep); rec = rep; break; } case GDMRecordType.rtGroup: { GDMGroupRecord grp = null; result = ModifyGroup(baseWin, ref grp); rec = grp; break; } case GDMRecordType.rtResearch: { GDMResearchRecord rsr = null; result = ModifyResearch(baseWin, ref rsr); rec = rsr; break; } case GDMRecordType.rtTask: { GDMTaskRecord tsk = null; result = ModifyTask(baseWin, ref tsk); rec = tsk; break; } case GDMRecordType.rtCommunication: { GDMCommunicationRecord comm = null; result = ModifyCommunication(baseWin, ref comm); rec = comm; break; } case GDMRecordType.rtLocation: { GDMLocationRecord loc = null; result = ModifyLocation(baseWin, ref loc); rec = loc; break; } } return((result) ? rec : null); }
public static GDMMultimediaLink AddMultimedia(this IGDMStructWithMultimediaLinks _struct, GDMMultimediaRecord mediaRec) { GDMMultimediaLink result = null; if (mediaRec != null) { result = new GDMMultimediaLink(); result.XRef = mediaRec.XRef; _struct.MultimediaLinks.Add(result); } return(result); }
public void ShowMedia(GDMMultimediaRecord mediaRec, bool modal) { }
public override void Fetch(GDMRecord aRec) { fRec = (aRec as GDMMultimediaRecord); }
public static void FillContext(IBaseContext context) { // a null result if the record is not defined GDMCustomEvent evt = context.CreateEventEx(null, GEDCOMTagName.BIRT, "xxxxx", "xxxxx"); Assert.IsNull(evt); // first individual (I1) GDMIndividualRecord iRec = context.CreatePersonEx("Ivan", "Ivanovich", "Ivanov", GDMSex.svMale, true); Assert.IsNotNull(iRec); evt = iRec.FindEvent(GEDCOMTagType.BIRT); Assert.IsNotNull(evt); evt.Date.ParseString("28 DEC 1990"); evt.Place.StringValue = "Ivanovo"; GDMCustomEvent evtd = context.CreateEventEx(iRec, GEDCOMTagName.DEAT, "28 DEC 2010", "Ivanovo"); Assert.IsNotNull(evtd); // second individual, wife (I2) GDMIndividualRecord iRec2 = context.CreatePersonEx("Maria", "Petrovna", "Ivanova", GDMSex.svFemale, true); evt = iRec2.FindEvent(GEDCOMTagType.BIRT); Assert.IsNotNull(evt); evt.Date.ParseString("17 MAR 1991"); evt.Place.StringValue = "Ivanovo"; iRec.AddAssociation("spouse", iRec2); // third individual, child (I3) GDMIndividualRecord iRec3 = context.CreatePersonEx("Anna", "Ivanovna", "Ivanova", GDMSex.svFemale, true); evt = iRec3.FindEvent(GEDCOMTagType.BIRT); Assert.IsNotNull(evt); evt.Date.ParseString("11 FEB 2010"); evt.Place.StringValue = "Ivanovo"; // their family GDMFamilyRecord famRec = context.Tree.CreateFamily(); Assert.IsNotNull(famRec); famRec.AddSpouse(iRec); famRec.AddSpouse(iRec2); famRec.AddChild(iRec3); context.CreateEventEx(famRec, GEDCOMTagName.MARR, "01 JAN 2000", "unknown"); // individual outside the family (I4) GDMIndividualRecord iRec4 = context.CreatePersonEx("Alex", "", "Petrov", GDMSex.svMale, true); evt = iRec4.FindEvent(GEDCOMTagType.BIRT); Assert.IsNotNull(evt); evt.Date.ParseString("15 JUN 1989"); evt.Place.StringValue = "Far Forest"; evt = context.CreateEventEx(iRec4, GEDCOMTagName.RESI, "12 FEB", "Far Forest"); Assert.IsNotNull(evt); // fifth (I5) GDMIndividualRecord iRec5 = context.CreatePersonEx("Anna", "", "Jones", GDMSex.svFemale, false); Assert.IsNotNull(iRec5); // sixth (I6) GDMIndividualRecord iRec6 = context.CreatePersonEx("Mary", "", "Jones", GDMSex.svFemale, false); Assert.IsNotNull(iRec6); evt = context.CreateEventEx(iRec6, GEDCOMTagName.BIRT, "12 FEB 1650", "Far Forest"); GDMFamilyRecord famRec2 = context.Tree.CreateFamily(); Assert.IsNotNull(famRec2); famRec2.AddSpouse(iRec3); //famRec2.AddSpouse(iRec4); famRec2.AddChild(iRec5); famRec2.AddChild(iRec6); // group for tests GDMGroupRecord groupRec = context.Tree.CreateGroup(); groupRec.GroupName = "GroupTest"; Assert.IsNotNull(groupRec, "group1 != null"); groupRec.AddMember(iRec); // location for tests GDMLocationRecord locRec = context.Tree.CreateLocation(); locRec.LocationName = "Test Location"; locRec.Map.Lati = 5.11111; locRec.Map.Long = 7.99999; Assert.IsNotNull(locRec, "locRec != null"); // repository for tests GDMRepositoryRecord repoRec = context.Tree.CreateRepository(); repoRec.RepositoryName = "Test repository"; Assert.IsNotNull(repoRec, "repoRec != null"); // research for tests GDMResearchRecord resRec = context.Tree.CreateResearch(); resRec.ResearchName = "Test research"; Assert.IsNotNull(resRec, "resRec != null"); // source for tests GDMSourceRecord srcRec = context.Tree.CreateSource(); srcRec.ShortTitle = "Test source"; Assert.IsNotNull(srcRec, "srcRec != null"); iRec.AddSource(srcRec, "p1", 0); // note for tests GDMNoteRecord noteRec = context.Tree.CreateNote(); noteRec.SetNoteText("Test note"); Assert.IsNotNull(noteRec, "noteRec != null"); iRec.AddNote(noteRec); // task for tests GDMTaskRecord tskRec = context.Tree.CreateTask(); tskRec.Goal = "Test task"; Assert.IsNotNull(tskRec, "tskRec != null"); // media for tests GDMMultimediaRecord mediaRec = context.Tree.CreateMultimedia(); mediaRec.FileReferences.Add(new GDMFileReferenceWithTitle()); GDMFileReferenceWithTitle fileRef = mediaRec.FileReferences[0]; fileRef.Title = "Test multimedia"; fileRef.LinkFile("sample.png"); Assert.IsNotNull(mediaRec, "mediaRec != null"); iRec.AddMultimedia(mediaRec); // communication for tests GDMCommunicationRecord commRec = context.Tree.CreateCommunication(); commRec.CommName = "Test communication"; Assert.IsNotNull(commRec, "commRec != null"); }
public void Test_ShowXInfo() { StringList summary = new StringList(); summary.Clear(); GKUtils.ShowFamilyInfo(fContext, null, null); GDMFamilyRecord famRec = fContext.Tree.XRefIndex_Find("F1") as GDMFamilyRecord; GKUtils.ShowFamilyInfo(fContext, famRec, summary); summary.Clear(); GKUtils.ShowGroupInfo(null, null); GDMGroupRecord grpRec = fContext.Tree.XRefIndex_Find("G1") as GDMGroupRecord; GKUtils.ShowGroupInfo(grpRec, summary); summary.Clear(); GKUtils.ShowMultimediaInfo(null, null); GDMMultimediaRecord mmRec = fContext.Tree.XRefIndex_Find("O1") as GDMMultimediaRecord; GKUtils.ShowMultimediaInfo(mmRec, summary); summary.Clear(); GKUtils.ShowNoteInfo(null, null); GDMNoteRecord noteRec = fContext.Tree.XRefIndex_Find("N1") as GDMNoteRecord; GKUtils.ShowNoteInfo(noteRec, summary); summary.Clear(); GKUtils.ShowPersonInfo(fContext, null, null); GDMIndividualRecord indRec = fContext.Tree.XRefIndex_Find("I1") as GDMIndividualRecord; GKUtils.ShowPersonInfo(fContext, indRec, summary); summary.Clear(); GKUtils.ShowSourceInfo(null, null); GDMSourceRecord srcRec = fContext.Tree.XRefIndex_Find("S1") as GDMSourceRecord; GKUtils.ShowSourceInfo(srcRec, summary); summary.Clear(); GKUtils.ShowRepositoryInfo(null, null); GDMRepositoryRecord repRec = fContext.Tree.XRefIndex_Find("R1") as GDMRepositoryRecord; GKUtils.ShowRepositoryInfo(repRec, summary); summary.Clear(); GKUtils.ShowResearchInfo(null, null); GDMResearchRecord resRec = fContext.Tree.XRefIndex_Find("RS1") as GDMResearchRecord; GKUtils.ShowResearchInfo(resRec, summary); summary.Clear(); GKUtils.ShowTaskInfo(null, null); GDMTaskRecord taskRec = fContext.Tree.XRefIndex_Find("TK1") as GDMTaskRecord; GKUtils.ShowTaskInfo(taskRec, summary); summary.Clear(); GKUtils.ShowCommunicationInfo(null, null); GDMCommunicationRecord commRec = fContext.Tree.XRefIndex_Find("CM1") as GDMCommunicationRecord; GKUtils.ShowCommunicationInfo(commRec, summary); summary.Clear(); GKUtils.ShowLocationInfo(null, null); GDMLocationRecord locRec = fContext.Tree.XRefIndex_Find("L1") as GDMLocationRecord; GKUtils.ShowLocationInfo(locRec, summary); }
public static bool EditRecord(IBaseWindow baseWin, GDMRecord rec) { bool result = false; switch (rec.RecordType) { case GDMRecordType.rtIndividual: GDMIndividualRecord ind = rec as GDMIndividualRecord; result = ModifyIndividual(baseWin, ref ind, null, TargetMode.tmNone, GDMSex.svUnknown); break; case GDMRecordType.rtFamily: GDMFamilyRecord fam = rec as GDMFamilyRecord; result = ModifyFamily(baseWin, ref fam, TargetMode.tmNone, null); break; case GDMRecordType.rtNote: GDMNoteRecord note = rec as GDMNoteRecord; result = ModifyNote(baseWin, ref note); break; case GDMRecordType.rtMultimedia: GDMMultimediaRecord mmRec = rec as GDMMultimediaRecord; result = ModifyMedia(baseWin, ref mmRec); break; case GDMRecordType.rtSource: GDMSourceRecord src = rec as GDMSourceRecord; result = ModifySource(baseWin, ref src); break; case GDMRecordType.rtRepository: GDMRepositoryRecord rep = rec as GDMRepositoryRecord; result = ModifyRepository(baseWin, ref rep); break; case GDMRecordType.rtGroup: GDMGroupRecord grp = rec as GDMGroupRecord; result = ModifyGroup(baseWin, ref grp); break; case GDMRecordType.rtResearch: GDMResearchRecord rsr = rec as GDMResearchRecord; result = ModifyResearch(baseWin, ref rsr); break; case GDMRecordType.rtTask: GDMTaskRecord tsk = rec as GDMTaskRecord; result = ModifyTask(baseWin, ref tsk); break; case GDMRecordType.rtCommunication: GDMCommunicationRecord comm = rec as GDMCommunicationRecord; result = ModifyCommunication(baseWin, ref comm); break; case GDMRecordType.rtLocation: GDMLocationRecord loc = rec as GDMLocationRecord; result = ModifyLocation(baseWin, ref loc); break; } return(result); }
public static GDMMultimediaLink FindMultimediaLink(this IGDMStructWithMultimediaLinks _struct, GDMMultimediaRecord mmRec) { if (mmRec != null && _struct.HasMultimediaLinks) { int num = _struct.MultimediaLinks.Count; for (int i = 0; i < num; i++) { var link = _struct.MultimediaLinks[i]; if (link.XRef == mmRec.XRef) { return(link); } } } return(null); }
public static GDMMultimediaLink AddMultimedia(this IGDMStructWithMultimediaLinks _struct, GDMMultimediaRecord mediaRec) { GDMMultimediaLink result = null; if (mediaRec != null) { result = new GDMMultimediaLink((GDMObject)_struct); result.Value = mediaRec; _struct.MultimediaLinks.Add(result); } return(result); }