Exemplo n.º 1
0
        /// <summary>
        /// Gramps export XML plus media.
        /// </summary>
        /// <param name="sender">
        /// The sender.
        /// </param>
        /// <param name="parameter">
        /// The parameter.
        /// </param>
        public async void PickFile()
        {
            BaseCL.LogProgress("Calling folder picker");

            try
            {
                if (await StoreFileUtility.PickCurrentInputFile().ConfigureAwait(false))
                {
                    BaseCL.LogProgress("Tell someone to load the file");

                    // Remove the old dateTime stamps so the files get reloaded even if they have
                    // been seen before
                    CommonLocalSettings.SetReloadDatabase();

                    BaseEventAggregator.GetEvent <DataLoadStartEvent>().Publish(false);

                    BaseEventAggregator.GetEvent <PageNavigateEvent>().Publish(nameof(MessageLogPage));

                    await DataStore.CN.ChangeLoadingMessage("File picked").ConfigureAwait(false);
                }
                else
                {
                    BaseCL.LogProgress("File picker error");
                    DataStore.CN.NotifyAlert("No input file was selected");

                    // Allow another pick if required
                    LocalCanHandleDataFolderChosen = true;
                }
            }
            catch (Exception ex)
            {
                DataStore.CN.NotifyException("Exception when using File Picker", ex);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Populates the view ViewModel.
        /// </summary>
        /// <returns>
        /// </returns>
        public override void HandleViewDataLoadEvent()
        {
            BaseCL.RoutineEntry("DateDetailViewModel");

            HLinkDateModelSpan HLinkObject = CommonRoutines.GetHLinkParameter <HLinkDateModelSpan>(BaseParamsHLink);

            BaseTitle = HLinkObject.Title;

            DateObject = HLinkObject.DeRef;

            if (DateObject.Valid)
            {
                BaseModelBase = DateObject;

                /*
                 * General Details
                 */

                // Get the Base Date Details
                BaseDetail.Add(DateObject.AsCardListLineBaseDate());
                BaseDetail.Add(DateObject.AsCardListLineBaseDateDetail());
                BaseDetail.Add(DateObject.AsCardListLineBaseDateInternal());

                BaseDetail.Add((DateObject as IDateObjectModelSpan).AsCardListLine());
            }

            return;
        }
        /// <summary>
        /// Gramps export XML plus media.
        /// </summary>
        public async Task PickFile()
        {
            BaseCL.Progress("Calling folder picker");

            try
            {
                BaseCurrentLayoutState = LayoutState.Loading;

                App.Current.Services.GetService <IErrorNotifications>().DataLogEntryReplace("");

                if (await StoreFileUtility.PickCurrentInputFile().ConfigureAwait(false))
                {
                    await StartLoad();
                }
                else
                {
                    BaseCL.Progress("File picker error");
                    App.Current.Services.GetService <IErrorNotifications>().NotifyAlert("No input file was selected");

                    BaseCurrentLayoutState = LayoutState.None;
                }
            }
            catch (Exception ex)
            {
                App.Current.Services.GetService <IErrorNotifications>().NotifyException("Exception when using File Picker", ex);

                throw;
            }
        }
        /// <summary>
        /// Populates the view ViewModel.
        /// </summary>
        /// <returns>
        /// </returns>
        public override void HandleViewDataLoadEvent()
        {
            BaseCL.RoutineEntry("AttributeDetailViewModel");

            HLinkAttributeObject = CommonRoutines.GetHLinkParameter <HLinkAttributeModel>(BaseParamsHLink);

            if (HLinkAttributeObject.Valid)
            {
                AttributeObject = HLinkAttributeObject.DeRef;

                BaseModelBase = AttributeObject;

                // Get the Attribute Details
                BaseDetail.Add(new CardListLineCollection("Attribute Detail")
                {
                    new CardListLine("Type:", AttributeObject.GType),
                    new CardListLine("Value:", AttributeObject.GValue),
                });

                // Add Standard details
                BaseDetail.Add(CommonRoutines.GetModelInfoFormatted(AttributeObject));
            }

            return;
        }
Exemplo n.º 5
0
        //private double mX = 0f;

        //private double mY = 0f;

        /// <summary>
        /// Initializes a new instance of the <see cref="MediaDetailViewModel"/> class.
        /// </summary>
        /// <param name="iocCommonLogging">
        /// The common logging.
        /// </param>
        /// <param name="iocEventAggregator">
        /// The event aggregator.
        /// </param>
        /// <param name="iocNavigationService">
        /// The navigation service.
        /// </param>
        public MediaDetailViewModel(ICommonLogging iocCommonLogging, IEventAggregator iocEventAggregator, INavigationService iocNavigationService)
            : base(iocCommonLogging, iocEventAggregator, iocNavigationService)
        {
            BaseCL.LogProgress("MediaDetailViewModel created");

            OpenImageCommand = new DelegateCommand(OpenImage, CanOpenImage);
        }
        /// <summary>
        /// Populates the view ViewModel.
        /// </summary>
        /// <returns>
        /// </returns>
        public override void PopulateViewModel()
        {
            BaseCL.LogRoutineEntry("AddressDetailViewModel");

            AddressObject = DV.AddressDV.GetModelFromHLink(BaseNavParamsHLink);

            if (AddressObject.Valid)
            {
                // Trigger refresh of View fields via INotifyPropertyChanged
                RaisePropertyChanged(string.Empty);

                BaseTitle = AddressObject.GetDefaultText;

                // Get media image
                MediaCard = AddressObject.HomeImageHLink.ConvertToHLinkMediaModel;

                // Get Header Details
                //CardGroup headerCardGroup = new CardGroup { };

                // Get the Name Details
                CardListLineCollection nameDetails = new CardListLineCollection
                {
                    new CardListLine("Card Type:", "Address Detail"),

                    new CardListLine("Street:", AddressObject.GStreet),
                    new CardListLine("City:", AddressObject.GCity),
                    new CardListLine("Locality:", AddressObject.GLocality),
                    new CardListLine("County:", AddressObject.GCounty),
                    new CardListLine("State:", AddressObject.GState),
                    new CardListLine("Country:", AddressObject.GCountry),

                    new CardListLine("Date:", AddressObject.GDate.ShortDate),
                    new CardListLine("Postal:", AddressObject.GPostal),
                    new CardListLine("Phone:", AddressObject.GPhone),
                };

                // Get date card
                BaseDetail.Add(AddressObject.GDate.AsCardListLine());

                BaseDetail.Add(nameDetails);

                // Add Standard details
                BaseDetail.Add(DV.PersonDV.GetModelInfoFormatted(AddressObject));

                // Add map card
                BaseDetail.Add(TurnAddressToURLModel());

                // Add header
                //BaseDetail.Add(headerCardGroup);

                BaseDetail.Add(AddressObject.GCitationRefCollection.GetCardGroup());
                BaseDetail.Add(AddressObject.GNoteRefCollection.GetCardGroup());
            }

            return;
        }
        /// <summary>
        /// Populates the view ViewModel.
        /// </summary>
        /// <returns>
        /// </returns>
        public override void PopulateViewModel()
        {
            BaseCL.LogRoutineEntry("AddressDetailViewModel");

            AddressObject = DV.AddressDV.GetModelFromHLink(BaseNavParamsHLink);

            if (AddressObject.Valid)
            {
                BaseTitle = AddressObject.GetDefaultText;

                // Get media image
                HLinkHomeImageModel AddressImage = AddressObject.HomeImageHLink;
                AddressImage.CardType = DisplayFormat.MediaCardLarge;
                BaseDetail.Add(AddressImage);

                // Get Header Details
                CardGroup headerCardGroup = new CardGroup {
                    Title = "Address Details"
                };

                // Get the Name Details
                CardListLineCollection nameDetails = new CardListLineCollection
                {
                    new CardListLine("Card Type:", "Address Detail"),

                    new CardListLine("Street:", AddressObject.GStreet),
                    new CardListLine("City:", AddressObject.GCity),
                    new CardListLine("Locality:", AddressObject.GLocality),
                    new CardListLine("County:", AddressObject.GCounty),
                    new CardListLine("State:", AddressObject.GState),
                    new CardListLine("Country:", AddressObject.GCountry),

                    new CardListLine("Date:", AddressObject.GDate.ShortDate),
                    new CardListLine("Postal:", AddressObject.GPostal),
                    new CardListLine("Phone:", AddressObject.GPhone),
                };

                headerCardGroup.Add(nameDetails);

                // Add Standard details
                headerCardGroup.Add(DV.PersonDV.GetModelInfoFormatted(AddressObject));

                // Add map card
                headerCardGroup.Add(TurnAddressToURLModel());

                // Add header
                BaseDetail.Add(headerCardGroup);

                BaseDetail.Add(AddressObject.GCitationRefCollection.GetCardGroup());
                BaseDetail.Add(AddressObject.GNoteRefCollection.GetCardGroup());

                BaseDetail.Add(AddressObject.BackHLinkReferenceCollection.GetCardGroup());
            }

            return;
        }
        private async Task StartLoad()
        {
            BaseCL.Progress("Tell someone to load the file");

            // Remove the old dateTime stamps so the files get reloaded even if they have been seen before
            CommonLocalSettings.SetReloadDatabase();

            SharedSharp.Common.SharedSharpNavigation.NavigateHub();

            await Task.Delay(500);

            App.Current.Services.GetService <IMessenger>().Send(new DataLoadStartEvent(true));
        }
        /// <summary>
        /// Loads the sample data.
        /// </summary>
        public async Task LoadSample()
        {
            BaseCL.Progress("Load sample data");

            CommonRoutines.ListEmbeddedResources();

            // Load Resource
            var assemblyExec = Assembly.GetExecutingAssembly();
            var resourceName = "GrampsView.AnythingElse.SampleData.EnglishTudorHouse.gpkg";

            DataStore.Instance.AD.CurrentInputStream = assemblyExec.GetManifestResourceStream(resourceName);

            DataStore.Instance.AD.CurrentInputStreamPath = "AnythingElse/Sample Data/EnglishTudorHouse.gpkg";

            await StartLoad();
        }
Exemplo n.º 10
0
        /// <summary>
        /// Handles navigation inwards and gets the media model parameter.
        /// </summary>
        /// <returns>
        /// </returns>
        public override void HandleViewDataLoadEvent()
        {
            BaseCL.RoutineEntry("MediaDetailViewModel OnNavigatedTo");

            CurrentHLinkMedia = CommonRoutines.GetHLinkParameter <HLinkMediaModel>((BaseParamsHLink));

            // For cropped or internal media then show the original image
            IMediaModel tt = CurrentHLinkMedia.DeRef;

            if (tt.IsInternalMediaFile)
            {
                CurrentHLinkMedia = DV.MediaDV.GetModelFromHLinkKey(tt.InternalMediaFileOriginalHLink).HLink;
            }

            if (!(CurrentHLinkMedia is null))
            {
                CurrentMediaObject = CurrentHLinkMedia.DeRef as MediaModel;

                if (!(CurrentMediaObject is null))
                {
                    BaseModelBase = CurrentMediaObject;
                    BaseTitleIcon = Constants.IconMedia;

                    MediaCard = CurrentMediaObject.ModelItemGlyph.ImageHLinkMediaModel;

                    // Get basic details
                    BaseDetail.Add(new CardListLineCollection("Media Detail")
                    {
                        new CardListLine("File Description:", CurrentMediaObject.GDescription),
                        new CardListLine("File Mime Type:", CurrentMediaObject.FileMimeType),
                        new CardListLine("File Content Type:", CurrentMediaObject.FileContentType),
                        new CardListLine("File Mime SubType:", CurrentMediaObject.FileMimeSubType),
                        new CardListLine("OriginalFilePath:", CurrentMediaObject.OriginalFilePath),
                    });

                    // Get date card
                    BaseDetail.Add(CurrentMediaObject.GDateValue.AsHLink("Media Date"));

                    // Add standard details
                    MediaModel t = CurrentMediaObject as MediaModel;
                    BaseDetail.Add(DV.MediaDV.GetModelInfoFormatted(t));
                }

                BaseCL.RoutineExit("MediaDetailViewModel OnNavigatedTo");
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// Gramps export XML plus media.
        /// </summary>
        /// <param name="sender">
        /// The sender.
        /// </param>
        /// <param name="parameter">
        /// The parameter.
        /// </param>
        public void UseExistingFolder()
        {
            LocalCanHandleDataFolderChosen = false;

            if (DataStore.AD.CurrentDataFolderValid)
            {
                BaseCL.LogProgress("Tell someone to load the file");

                // Remove the old dateTime stamps so the files get reloaded even if they have been
                // seen before
                Preferences.Set(CommonConstants.SettingsGPKGFileLastDateTimeModified, DateTime.MinValue);
                Preferences.Set(CommonConstants.SettingsGPRAMPSFileLastDateTimeModified, DateTime.MinValue);
                Preferences.Set(CommonConstants.SettingsXMLFileLastDateTimeModified, DateTime.MinValue);

                BaseEventAggregator.GetEvent <DataLoadStartEvent>().Publish(false);

                BaseEventAggregator.GetEvent <PageNavigateEvent>().Publish(nameof(MessageLogPage));
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// Populates the view ViewModel by handling the Load Event.
        /// </summary>
        /// <returns>
        /// <br/>
        /// </returns>
        public override void HandleViewDataLoadEvent()
        {
            BaseCL.RoutineEntry("AddressDetailViewModel");

            HLinkAdressModel HLinkObject = CommonRoutines.GetHLinkParameter <HLinkAdressModel>((BaseParamsHLink));

            AddressObject = HLinkObject.DeRef;

            if (AddressObject.Valid)
            {
                BaseModelBase = AddressObject;

                // Get media image
                MediaCard = AddressObject.ModelItemGlyph.ImageHLinkMediaModel;

                // Get the Name Details
                BaseDetail.Add(new CardListLineCollection("Address Detail")
                {
                    new CardListLine("Street:", AddressObject.GStreet),
                    new CardListLine("City:", AddressObject.GCity),
                    new CardListLine("Locality:", AddressObject.GLocality),
                    new CardListLine("County:", AddressObject.GCounty),
                    new CardListLine("State:", AddressObject.GState),
                    new CardListLine("Country:", AddressObject.GCountry),

                    new CardListLine("Date:", AddressObject.GDate.ShortDate),
                    new CardListLine("Postal:", AddressObject.GPostal),
                    new CardListLine("Phone:", AddressObject.GPhone),
                });

                // Add date card
                BaseDetail.Add(AddressObject.GDate.AsHLink("Address Date"));

                // Add Map card
                BaseDetail.Add(AddressObject.ToMapModel().HLink);

                // Add Standard details
                BaseDetail.Add(DV.AddressDV.GetModelInfoFormatted(AddressObject));
            }

            return;
        }
Exemplo n.º 13
0
        /// <summary>
        /// Override for the OnNavigatedTo Prism method.
        /// </summary>
        public override void PopulateViewModel()
        {
            BaseCL.LogRoutineEntry("PeopleGraphViewModel");

            string startPoint = BaseNavParamsHLinkDefault(new HLinkBase {
                HLinkKey = "_c47a6bd11500b4b0cc8"
            }).HLinkKey;

            // Assume person
            PersonModel t = DV.PersonDV.GetModelFromHLinkString(startPoint);

            if (t.HLink.Valid == true)
            {
                StartHLink = t.HLink;
            }
            else
            {
                FamilyModel tf = DV.FamilyDV.GetModelFromHLinkString(startPoint);

                StartHLink = tf.HLink;
            }

            if (!StartHLink.Valid)
            {
                DataStore.CN.NotifyError("HLink passed to PersonGraph not found");
                return;
            }

            GraphReset();

            GetGraph();

            LayoutPreStart();

            LayoutNodes();

            LayoutEdges();
        }
Exemplo n.º 14
0
        /// <summary>
        /// Loads the sample data.
        /// </summary>
        public void LoadSample()
        {
            BaseCL.LogProgress("Load sample data");

            CommonRoutines.ListEmbeddedResources();

            // Load Resource
            var assemblyExec = Assembly.GetExecutingAssembly();
            var resourceName = "GrampsView.AnythingElse.SampleData.EnglishTudorHouse.gpkg";

            DataStore.AD.CurrentInputStream = assemblyExec.GetManifestResourceStream(resourceName);

            DataStore.AD.CurrentInputStreamPath = "AnythingElse/Sample Data/EnglishTudorHouse.gpkg";

            BaseCL.LogProgress("Tell someone to load the file");

            // Remove the old dateTime stamps so the files get reloaded even if they have been seen before
            CommonLocalSettings.SetReloadDatabase();

            BaseEventAggregator.GetEvent <DataLoadStartEvent>().Publish(false);

            BaseEventAggregator.GetEvent <PageNavigateEvent>().Publish(nameof(MessageLogPage));
        }
Exemplo n.º 15
0
        /// <summary>
        /// Override for the OnNavigatedTo Prism method.
        /// </summary>
        public override void HandleViewDataLoadEvent()
        {
            BaseCL.RoutineEntry("PeopleGraphViewModel");

            HLinkKey startPoint = new HLinkKey("_c47a6bd11500b4b0cc8");

            // Assume person
            PersonModel t = DV.PersonDV.GetModelFromHLinkKey(startPoint);

            // TODO add back in
            //if (t.HLink.Valid == true)
            //{
            //    StartHLink = t.HLink;
            //}
            //else
            //{
            //    FamilyModel tf = DV.FamilyDV.GetModelFromHLinkKey(startPoint);

            //    StartHLink = tf.HLink;
            //}

            if (!StartHLink.Valid)
            {
                App.Current.Services.GetService <IErrorNotifications>().NotifyError(new ErrorInfo("HLink passed to PersonGraph not found"));
                return;
            }

            GraphReset();

            GetGraph();

            LayoutPreStart();

            LayoutNodes();

            LayoutEdges();
        }
Exemplo n.º 16
0
        /// <summary>
        /// Populates the view ViewModel.
        /// </summary>
        /// <returns>
        /// </returns>
        public override void HandleViewDataLoadEvent()
        {
            BaseCL.RoutineEntry("PersonDetailViewModel");

            // TODO try again to set this up when the toolkit is a little more mature or I have an
            // idea where the bug is coming from
            BaseCurrentLayoutState = LayoutState.Loading;

            HLinkPersonModel HLinkPerson = CommonRoutines.GetHLinkParameter <HLinkPersonModel>(BaseParamsHLink);

            PersonObject = HLinkPerson.DeRef;

            if (!(PersonObject is null))
            {
                BaseModelBase = PersonObject;

                // Get media image
                MediaCard = PersonObject.ModelItemGlyph;

                // Get the Name Details
                BaseDetail.Add(PersonObject.GPersonNamesCollection.GetPrimaryName);

                // Get the Person Details
                CardListLineCollection nameDetails = GetExtraPersonDetails();
                nameDetails.Title = "Person Detail";
                BaseDetail.Add(nameDetails);

                // Get date card
                BaseDetail.Add(PersonObject.BirthDate.AsHLink("Birth Date"));

                // Get parent details
                BaseDetail.Add(
                    new HLinkParentLinkModel
                {
                    DeRef = PersonObject.GChildOf.DeRef,
                });

                // Add Standard details
                BaseDetail.Add(DV.PersonDV.GetModelInfoFormatted(PersonObject));

                // If Bio note, display it while showing the full list further below.
                BioNote = PersonObject.GNoteRefCollection.GetBio;

                NotesWithoutHighlight = PersonObject.GNoteRefCollection.GetCollectionWithoutOne(BioNote);

                // Add PersonRefDetails - TODO
                //if (BaseNavParamsHLink is HLinkPersonRefModel)
                //{
                //    HLinkPersonRefModel personRef = (BaseNavParamsHLink as HLinkPersonRefModel);

                // Contract.Assert(personRef != null);

                //    BaseDetail.Add(personRef.GCitationCollection.GetCardGroup("PersonRef Citations"));
                //    BaseDetail.Add(personRef.GNoteCollection.GetCardGroup("PersonRef Notes"));
                //}
            }

            // TODO fix this
            BaseCurrentLayoutState = LayoutState.None;
            return;
        }
Exemplo n.º 17
0
        /// <summary>
        /// Populates the view ViewModel.
        /// </summary>
        /// <returns>
        /// </returns>
        public override void PopulateViewModel()
        {
            BaseCL.LogRoutineEntry("PersonDetailViewModel");

            PersonObject = DV.PersonDV.GetModelFromHLink(BaseNavParamsHLink);

            // Trigger refresh of View fields via INotifyPropertyChanged
            RaisePropertyChanged(string.Empty);

            if (!(PersonObject is null))
            {
                BaseTitle = PersonObject.GPersonNamesCollection.GetPrimaryName.DeRef.GetDefaultText;

                // Get media image
                MediaCard = PersonObject.HomeImageHLink.ConvertToHLinkMediaModel;

                // Get Header Details
                //CardGroup headerCardGroup = new CardGroup { Title = "Header Details" };

                // Get the Person Details
                CardListLineCollection nameDetails = new CardListLineCollection
                {
                    new CardListLine("Card Type:", "Person Detail"),
                };

                BaseDetail.Add(nameDetails);

                // Get the Name Details
                BaseDetail.Add(PersonObject.GPersonNamesCollection.GetPrimaryName.Copy(), argDisplayFormat: DisplayFormat.PersonNameCardSingle);

                // Get date card

                BaseDetail.Add(PersonObject.BirthDate.AsCardListLine("Birth Date"));

                // Get details on persons age etc
                BaseDetail.Add(GetExtraPersonDetails());

                // Get parent details
                BaseDetail.Add(
                    new ParentLinkModel
                {
                    Parents = PersonObject.GChildOf.DeRef,
                });

                // Add Standard details
                BaseDetail.Add(DV.PersonDV.GetModelInfoFormatted(PersonObject));

                // BaseDetail.Add(headerCardGroup);

                // Get Bio
                HLinkNoteModel bioCard = PersonObject.GNoteRefCollection.GetBio;
                if (bioCard.Valid)
                {
                    bioCard.CardType = DisplayFormat.NoteCardFull;
                    BaseDetail.Add(bioCard);
                }

                // Add PersonRefDetails
                if (BaseNavParamsHLink is HLinkPersonRefModel)
                {
                    HLinkPersonRefModel personRef = (BaseNavParamsHLink as HLinkPersonRefModel);

                    Contract.Assert(personRef != null);

                    BaseDetail.Add(personRef.GCitationCollection.GetCardGroup("PersonRef Citations"));
                    BaseDetail.Add(personRef.GNoteCollection.GetCardGroup("PersonRef Notes"));
                }

                // Add details
                //BaseDetail.Add(PersonObject.GPersonNamesCollection.GetCardGroup());
                //BaseDetail.Add(PersonObject.GParentInRefCollection.GetCardGroup());
                //BaseDetail.Add(EventsIncFamily());
                //BaseDetail.Add(PersonObject.GCitationRefCollection.GetCardGroup());
                //BaseDetail.Add(PersonObject.GNoteRefCollection.GetCardGroupWithoutBio());
                //BaseDetail.Add(PersonObject.GMediaRefCollection.GetCardGroup());
                //BaseDetail.Add(PersonObject.GAttributeCollection);
                //BaseDetail.Add(PersonObject.GAddress.GetCardGroup());
                //BaseDetail.Add(PersonObject.GTagRefCollection.GetCardGroup());
                //BaseDetail.Add(PersonObject.GURLCollection);
                //BaseDetail.Add(PersonObject.GLDSCollection);
                //BaseDetail.Add(PersonObject.GPersonRefCollection.GetCardGroup());

                _PlatformSpecific.ActivityTimeLineAdd(PersonObject);
            }

            return;
        }
Exemplo n.º 18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MediaDetailViewModel"/> class.
 /// </summary>
 /// <param name="iocCommonLogging">
 /// The common logging.
 /// </param>
 /// <param name="iocEventAggregator">
 /// The event aggregator.
 /// </param>
 /// <param name="iocNavigationService">
 /// The navigation service.
 /// </param>
 public MediaDetailViewModel(ICommonLogging iocCommonLogging, IEventAggregator iocEventAggregator, INavigationService iocNavigationService)
     : base(iocCommonLogging, iocEventAggregator, iocNavigationService)
 {
     BaseCL.LogProgress("MediaDetailViewModel created");
 }
Exemplo n.º 19
0
        /// <summary>
        /// Populates the view ViewModel.
        /// </summary>
        /// <returns>
        /// </returns>
        public override void HandleViewDataLoadEvent()
        {
            BaseCL.RoutineEntry("ChildRefDetailViewModel");

            // TODO try again to set this up when the toolkit is a little more mature or I have an
            // idea where the bug is coming from
            BaseCurrentLayoutState = LayoutState.Loading;

            ChildRefHLink = CommonRoutines.GetHLinkParameter <HLinkChildRefModel>((BaseParamsHLink));

            PersonObject = ChildRefHLink.DeRef;

            if (!(PersonObject is null))
            {
                BaseModelBase = PersonObject;

                // Get media image
                MediaCard = PersonObject.ModelItemGlyph;

                // Get the Name Details
                BaseDetail.Add(PersonObject.GPersonNamesCollection.GetPrimaryName);

                // Get the Person Details
                CardListLineCollection nameDetails = GetExtraPersonDetails();
                nameDetails.Title = "Child Reference Person Detail";

                // handle frel and mrel defaults (according to the gramps source code)
                nameDetails.Add(new CardListLine("Father Relationship", ChildRefHLink.GFatherRel));
                if (string.IsNullOrEmpty(ChildRefHLink.GFatherRel))
                {
                    nameDetails.Add(new CardListLine("Father Relationship", "Birth"));
                }

                nameDetails.Add(new CardListLine("Mother Relationship", ChildRefHLink.GMotherRel));
                if (string.IsNullOrEmpty(ChildRefHLink.GMotherRel))
                {
                    nameDetails.Add(new CardListLine("Mother Relationship", "Birth"));
                }

                BaseDetail.Add(nameDetails);

                // Get date card
                BaseDetail.Add(PersonObject.BirthDate.AsHLink("Birth Date"));

                // Get parent details
                BaseDetail.Add(
                    new HLinkParentLinkModel
                {
                    DeRef = PersonObject.GChildOf.DeRef,
                });

                // Add Standard details
                BaseDetail.Add(DV.PersonDV.GetModelInfoFormatted(PersonObject));

                // If Bio note, display it while showing the full list further below.
                BioNote = PersonObject.GNoteRefCollection.GetBio;

                NotesWithoutHighlight = PersonObject.GNoteRefCollection.GetCollectionWithoutOne(BioNote);

                // Add PersonRefDetails - TODO
                //if (BaseNavParamsHLink is HLinkPersonRefModel)
                //{
                //    HLinkPersonRefModel personRef = (BaseNavParamsHLink as HLinkPersonRefModel);

                // Contract.Assert(personRef != null);

                //    BaseDetail.Add(personRef.GCitationCollection.GetCardGroup("PersonRef Citations"));
                //    BaseDetail.Add(personRef.GNoteCollection.GetCardGroup("PersonRef Notes"));
                //}

                // _PlatformSpecific.ActivityTimeLineAdd(PersonObject);

                //// Trigger refresh of View fields via INotifyPropertyChanged
                //OnPropertyChanged(string.Empty);
            }

            // TODO fix this
            BaseCurrentLayoutState = LayoutState.None;
            return;
        }
        /// <summary>
        /// Populates the view ViewModel.
        /// </summary>
        /// <returns>
        /// </returns>
        public override async Task <bool> PopulateViewModelAsync()
        {
            BaseCL.LogRoutineEntry("PersonDetailViewModel");

            PersonObject = DV.PersonDV.GetModelFromHLink(BaseNavParamsHLink);

            if (!(PersonObject is null))
            {
                BaseTitle = PersonObject.GPersonNamesCollection.GetPrimaryName.GetDefaultText;

                // Get media image
                HLinkHomeImageModel personImage = PersonObject.HomeImageHLink;
                Contract.Assert(PersonObject.HomeImageHLink != null, PersonObject.Id);
                personImage.CardType = DisplayFormat.MediaCardLarge;
                BaseDetail.Add(personImage);

                // Get Header Details
                CardGroup headerCardGroup = new CardGroup {
                    Title = "Header Details"
                };

                // Get the Name Details
                CardListLineCollection nameDetails = new CardListLineCollection
                {
                    new CardListLine("Card Type:", "Person Detail"),
                };

                headerCardGroup.Add(nameDetails);

                // Handle the common case where there is only one name
                if (PersonObject.GPersonNamesCollection.Count == 1)
                {
                    headerCardGroup.Add(PersonObject.GPersonNamesCollection[0]);
                }

                // Get extra details
                CardListLineCollection extraDetailsCard = new CardListLineCollection
                {
                    new CardListLine("Gender:", PersonObject.GGenderAsString),
                };

                if (PersonObject.BirthDate != null)
                {
                    extraDetailsCard.Add(new CardListLine("Birth Date:", PersonObject.BirthDate.GetLongDateAsString));

                    if (PersonObject.IsLiving)
                    {
                        extraDetailsCard.Add(new CardListLine("Age:", PersonObject.BirthDate.GetAge));
                    }
                    else
                    {
                        extraDetailsCard.Add(new CardListLine("Years Since Birth:", PersonObject.BirthDate.GetAge));

                        EventModel ageAtDeath = DV.EventDV.GetEventType(PersonObject.GEventRefCollection, "Death");
                        if (ageAtDeath.Valid)
                        {
                            extraDetailsCard.Add(new CardListLine("Age at Death:", ageAtDeath.GDate.DateDifferenceDecoded(PersonObject.BirthDate)));
                        }
                    }
                }
                else
                {
                    extraDetailsCard.Add(new CardListLine("Birth Date:", "Unknown"));
                }

                extraDetailsCard.Add(new CardListLine("Is Living:", PersonObject.IsLivingAsString));

                headerCardGroup.Add(extraDetailsCard);

                // Get parent details
                headerCardGroup.Add(
                    new ParentLinkModel
                {
                    Parents = PersonObject.GChildOf.DeRef,
                });

                // Add Standard details
                headerCardGroup.Add(DV.PersonDV.GetModelInfoFormatted(PersonObject));

                BaseDetail.Add(headerCardGroup);

                // Handle the uncommon case where there is more than one name
                if (PersonObject.GPersonNamesCollection.Count > 1)
                {
                    // Add extra name details
                    BaseDetail.Add(PersonObject.GPersonNamesCollection.GetCardGroup1());
                }

                // Get Bio
                HLinkNoteModel bioCard = PersonObject.GNoteRefCollection.GetBio;
                bioCard.CardType = DisplayFormat.NoteCardFull;
                BaseDetail.Add(bioCard);

                // Add details
                BaseDetail.Add(PersonObject.GParentInRefCollection.GetCardGroup());
                BaseDetail.Add(PersonObject.GEventRefCollection.GetCardGroup());
                BaseDetail.Add(PersonObject.GCitationRefCollection.GetCardGroup());
                BaseDetail.Add(PersonObject.GNoteRefCollection.GetCardGroup());
                BaseDetail.Add(PersonObject.GMediaRefCollection.GetCardGroup());
                BaseDetail.Add(PersonObject.GAttributeCollection);
                BaseDetail.Add(PersonObject.GAddress);
                BaseDetail.Add(PersonObject.GTagRefCollection.GetCardGroup());
                BaseDetail.Add(PersonObject.GURLCollection);
                BaseDetail.Add(PersonObject.GLDSCollection);
                BaseDetail.Add(PersonObject.GPersonRefCollection);

                BaseDetail.Add(PersonObject.GPersonNamesCollection.GetPrimaryName.GCitationRefCollection.GetCardGroup("Name Citations"));
                BaseDetail.Add(PersonObject.GPersonNamesCollection.GetPrimaryName.GNoteReferenceCollection.GetCardGroup("Name Notes"));

                BaseDetail.Add(PersonObject.BackHLinkReferenceCollection.GetCardGroup());

                // TODO localActivitySession = await CommonTimeline.AddToTimeLine("Person",
                // PersonObject, PersonObject.HomeImageHLink.DeRef.MediaStorageFilePath, "Person: "
                // + PersonObject.BirthName.FullName, "Born: " + PersonObject.BirthDate.GetShortDateAsString).ConfigureAwait(false);
            }

            return(true);
        }
Exemplo n.º 21
0
        /// <summary>
        /// Populates the view ViewModel.
        ///
        /// XML 1.71 all done
        /// </summary>
        /// <returns>
        /// </returns>
        public override void HandleViewDataLoadEvent()
        {
            BaseCL.RoutineEntry("NameDetailViewModel");

            HLinkPersonNameModel HLinkObject = CommonRoutines.GetHLinkParameter <HLinkPersonNameModel>((BaseParamsHLink));

            PersonNameObject = HLinkObject.DeRef;

            if (PersonNameObject.Valid)
            {
                BaseModelBase = PersonNameObject;

                // Get Header Details
                CardListLineCollection headerCardGroup = new CardListLineCollection {
                    Title = "Person Name Details"
                };
                headerCardGroup.Add(new CardListLine("Full Name:", PersonNameObject.FullName));
                BaseDetail.Add(headerCardGroup);

                // TODO Show All Surnames
                CardListLineCollection PersonNameCards = new CardListLineCollection("Name")
                {
                    new CardListLine("Type:", PersonNameObject.GType),
                    new CardListLine("Full Name:", PersonNameObject.FullName),
                    new CardListLine("Title:", PersonNameObject.GTitle),
                    new CardListLine("FirstName:", PersonNameObject.GFirstName),
                    new CardListLine("Primary SurName:", PersonNameObject.GSurName.GetPrimarySurname),
                    new CardListLine("Suffix:", PersonNameObject.GSuffix),

                    new CardListLine("Alternative:", PersonNameObject.GAlt.ToString()),
                    new CardListLine("Call:", PersonNameObject.GCall),
                    new CardListLine("Display:", PersonNameObject.GDisplay),
                    new CardListLine("Family Nick:", PersonNameObject.GFamilyNick),

                    new CardListLine("Group:", PersonNameObject.GGroup),
                    new CardListLine("Nick:", PersonNameObject.GNick),
                    new CardListLine("Priv:", PersonNameObject.Priv, true),
                    new CardListLine("Sort:", PersonNameObject.GSort)
                };

                BaseDetail.Add(PersonNameCards);

                // Get date card
                BaseDetail.Add(PersonNameObject.GDate.AsHLink("Name Date"));

                foreach (HLinkSurnameModel item in PersonNameObject.GSurName)
                {
                    CardListLineCollection SurnameCard = new CardListLineCollection("Surnames")
                    {
                        new CardListLine("Surname:", item.ToString()),
                        new CardListLine("Prefix:", item.DeRef.GPrefix),
                        new CardListLine("Primary:", item.DeRef.GPrim),
                        new CardListLine("Derivation:", item.DeRef.GDerivation),
                        new CardListLine("Connector:", item.DeRef.GConnector),
                    };

                    BaseDetail.Add(SurnameCard);
                }
            }

            return;
        }
Exemplo n.º 22
0
        /// <summary>
        /// Populates the view ViewModel.
        ///
        /// XML 1.71 all done
        /// </summary>
        /// <returns>
        /// </returns>
        public override void PopulateViewModel()
        {
            BaseCL.LogRoutineEntry("NameDetailViewModel");

            PersonNameObject = DV.PersonNameDV.GetModelFromHLink(BaseNavParamsHLink);

            if (PersonNameObject.Valid)
            {
                BaseTitle = PersonNameObject.GetDefaultText;

                // Trigger refresh of View fields via INotifyPropertyChanged
                RaisePropertyChanged(string.Empty);

                // Get media image
                MediaCard = PersonNameObject.HomeImageHLink.ConvertToHLinkMediaModel;

                // Get Header Details
                CardGroup headerCardGroup = new CardGroup {
                    Title = "Person Name Details"
                };
                BaseDetail.Add(headerCardGroup);

                // TODO Show All Surnames
                CardListLineCollection PersonNameCards = new CardListLineCollection
                {
                    new CardListLine("Type:", PersonNameObject.GType),
                    new CardListLine("Full Name:", PersonNameObject.FullName),
                    new CardListLine("Title:", PersonNameObject.GTitle),
                    new CardListLine("FirstName:", PersonNameObject.GFirstName),
                    new CardListLine("SurName:", PersonNameObject.GSurName.GetPrimarySurname),
                    new CardListLine("Suffix:", PersonNameObject.GSuffix),

                    new CardListLine("Alt:", PersonNameObject.GAlt.GetDefaultText),
                    new CardListLine("Call:", PersonNameObject.GCall),
                    new CardListLine("Display:", PersonNameObject.GDisplay),
                    new CardListLine("Family Nick:", PersonNameObject.GFamilyNick),

                    new CardListLine("Group:", PersonNameObject.GGroup),
                    new CardListLine("Nick:", PersonNameObject.GNick),
                    new CardListLine("Priv:", PersonNameObject.GPriv),
                    new CardListLine("Sort:", PersonNameObject.GSort)
                };

                BaseDetail.Add(PersonNameCards);

                // Get date card
                BaseDetail.Add(PersonNameObject.GDate.AsCardListLine());

                foreach (SurnameModel item in PersonNameObject.GSurName)
                {
                    CardListLineCollection SurnameCard = new CardListLineCollection
                    {
                        new CardListLine("Prefix:", item.GPrefix),
                        new CardListLine("Primary:", item.GPrim),
                        new CardListLine("Derivation:", item.GDerivation),
                        new CardListLine("Connector:", item.GConnector),
                    };

                    BaseDetail.Add(SurnameCard);
                }

                BaseDetail.Add(PersonNameObject.GCitationRefCollection.GetCardGroup());
                BaseDetail.Add(PersonNameObject.GNoteReferenceCollection.GetCardGroup());

                BaseDetail.Add(PersonNameObject.BackHLinkReferenceCollection.GetCardGroup());
            }

            return;
        }
Exemplo n.º 23
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MediaDetailViewModel"/> class.
 /// </summary>
 /// <param name="iocCommonLogging">
 /// Common logger.
 /// </param>
 /// <param name="iocEventAggregator">
 /// The event aggregator.
 /// </param>
 public MediaDetailViewModel(ISharedLogging iocCommonLogging, IMessenger iocEventAggregator)
     : base(iocCommonLogging)
 {
     BaseCL.Progress("MediaDetailViewModel created");
 }
        /// <summary>
        /// Populates the view ViewModel.
        ///
        /// XML 1.71 all done
        /// </summary>
        /// <returns>
        /// </returns>
        public override void PopulateViewModel()
        {
            BaseCL.LogRoutineEntry("NameDetailViewModel");

            PersonNameObject = DV.PersonNameDV.GetModelFromHLink(BaseNavParamsHLink);

            if (PersonNameObject.Valid)
            {
                BaseTitle = PersonNameObject.GetDefaultText;

                // Get media image
                HLinkHomeImageModel AddressImage = PersonNameObject.HomeImageHLink;
                AddressImage.CardType = DisplayFormat.MediaCardLarge;
                BaseDetail.Add(AddressImage);

                // Get Header Details
                CardGroup headerCardGroup = new CardGroup {
                    Title = "Person Name Details"
                };
                BaseDetail.Add(headerCardGroup);

                // TODO Show All Surnames
                CardListLineCollection PersonNameCards = new CardListLineCollection
                {
                    new CardListLine("Type:", PersonNameObject.GType),
                    new CardListLine("Full Name:", PersonNameObject.FullName),
                    new CardListLine("Title:", PersonNameObject.GTitle),
                    new CardListLine("FirstName:", PersonNameObject.GFirstName),
                    new CardListLine("SurName:", PersonNameObject.GSurName.GetPrimarySurname),
                    new CardListLine("Suffix:", PersonNameObject.GSuffix),

                    new CardListLine("Alt:", PersonNameObject.GAlt.GetDefaultText),
                    new CardListLine("Call:", PersonNameObject.GCall),
                    new CardListLine("Date:", PersonNameObject.GDate.ShortDate),
                    new CardListLine("Display:", PersonNameObject.GDisplay),
                    new CardListLine("Family Nick:", PersonNameObject.GFamilyNick),

                    new CardListLine("Group:", PersonNameObject.GGroup),
                    new CardListLine("Nick:", PersonNameObject.GNick),
                    new CardListLine("Priv:", PersonNameObject.GPriv),
                    new CardListLine("Sort:", PersonNameObject.GSort)
                };

                BaseDetail.Add(PersonNameCards);

                foreach (SurnameModel item in PersonNameObject.GSurName)
                {
                    CardListLineCollection SurnameCard = new CardListLineCollection
                    {
                        new CardListLine("Prefix:", item.GPrefix),
                        new CardListLine("Primary:", item.GPrim),
                        new CardListLine("Derivation:", item.GDerivation),
                        new CardListLine("Connector:", item.GConnector),
                    };

                    BaseDetail.Add(SurnameCard);
                }

                BaseDetail.Add(PersonNameObject.GCitationRefCollection.GetCardGroup());
                BaseDetail.Add(PersonNameObject.GNoteReferenceCollection.GetCardGroup());

                BaseDetail.Add(PersonNameObject.BackHLinkReferenceCollection.GetCardGroup());
            }

            return;
        }
Exemplo n.º 25
0
        /// <summary>
        /// Populates the view ViewModel.
        /// </summary>
        /// <returns>
        /// </returns>
        public override void PopulateViewModel()
        {
            BaseCL.LogRoutineEntry("PersonDetailViewModel");

            PersonObject = DV.PersonDV.GetModelFromHLink(BaseNavParamsHLink);

            if (!(PersonObject is null))
            {
                BaseTitle = PersonObject.GPersonNamesCollection.GetPrimaryName.DeRef.GetDefaultText;

                // Get media image
                HLinkMediaModel personImage = PersonObject.HomeImageHLink.ConvertToHLinkMediaModel();
                Contract.Assert(PersonObject.HomeImageHLink != null, PersonObject.Id);
                personImage.CardType = DisplayFormat.MediaCardLarge;

                BaseDetail.Add(personImage);

                // Get Header Details
                CardGroup headerCardGroup = new CardGroup {
                    Title = "Header Details"
                };

                // Get the Person Details
                CardListLineCollection nameDetails = new CardListLineCollection
                {
                    new CardListLine("Card Type:", "Person Detail"),
                };

                headerCardGroup.Add(nameDetails);

                // Get the Name Details
                headerCardGroup.Add(PersonObject.GPersonNamesCollection.GetPrimaryName);

                // Get details on persons age etc
                headerCardGroup.Add(GetExtraPersonDetails());

                // Get parent details
                headerCardGroup.Add(
                    new ParentLinkModel
                {
                    Parents = PersonObject.GChildOf.DeRef,
                });

                // Add Standard details
                headerCardGroup.Add(DV.PersonDV.GetModelInfoFormatted(PersonObject));

                BaseDetail.Add(headerCardGroup);

                // Get Bio
                HLinkNoteModel bioCard = PersonObject.GNoteRefCollection.GetBio;
                bioCard.CardType = DisplayFormat.NoteCardFull;
                BaseDetail.Add(bioCard);

                // Add PersonRefDetails
                if (BaseNavParamsHLink is HLinkPersonRefModel)
                {
                    HLinkPersonRefModel personRef = (BaseNavParamsHLink as HLinkPersonRefModel);

                    Contract.Assert(personRef != null);

                    BaseDetail.Add(personRef.GCitationCollection.GetCardGroup("PersonRef Citations"));
                    BaseDetail.Add(personRef.GNoteCollection.GetCardGroup("PersonRef Notes"));
                }

                // Add details
                BaseDetail.Add(PersonObject.GPersonNamesCollection.GetCardGroup());
                BaseDetail.Add(PersonObject.GParentInRefCollection.GetCardGroup());
                BaseDetail.Add(EventsIncFamily());
                BaseDetail.Add(PersonObject.GCitationRefCollection.GetCardGroup());
                BaseDetail.Add(PersonObject.GNoteRefCollection.GetCardGroupWithoutBio());
                BaseDetail.Add(PersonObject.GMediaRefCollection.GetCardGroup());
                BaseDetail.Add(PersonObject.GAttributeCollection);
                BaseDetail.Add(PersonObject.GAddress.GetCardGroup());
                BaseDetail.Add(PersonObject.GTagRefCollection.GetCardGroup());
                BaseDetail.Add(PersonObject.GURLCollection);
                BaseDetail.Add(PersonObject.GLDSCollection);
                BaseDetail.Add(PersonObject.GPersonRefCollection.GetCardGroup());

                BaseDetail.Add(PersonObject.BackHLinkReferenceCollection.GetCardGroup());

                _PlatformSpecific.ActivityTimeLineAdd(PersonObject);
            }

            return;
        }
Exemplo n.º 26
0
        /// <summary>
        /// Handles navigation in wards and sets up the event model parameter.
        /// </summary>
        /// <returns>
        /// </returns>
        public override void PopulateViewModel()
        {
            BaseCL.LogRoutineEntry("MediaDetailViewModel OnNavigatedTo");

            CurrentHLinkMedia = BaseNavParamsHLink as HLinkMediaModel;

            if (!(CurrentHLinkMedia is null))
            {
                CurrentMediaObject = DV.MediaDV.GetModelFromHLink(CurrentHLinkMedia);

                if (!(CurrentMediaObject is null))
                {
                    BaseTitle     = CurrentMediaObject.GetDefaultText;
                    BaseTitleIcon = CommonConstants.IconMedia;

                    // Get basic details
                    CardGroup t = new CardGroup {
                        Title = "Header Details"
                    };

                    t.Add(new CardListLineCollection
                    {
                        new CardListLine("Card Type:", "Media Detail"),
                        new CardListLine("Date:", CurrentMediaObject.GDateValue.GetLongDateAsString),
                        new CardListLine("File Description:", CurrentMediaObject.GDescription),
                        new CardListLine("File Mime Type:", CurrentMediaObject.FileMimeType),
                        new CardListLine("File Content Type:", CurrentMediaObject.FileContentType),
                        new CardListLine("File Mime SubType:", CurrentMediaObject.FileMimeSubType),
                        new CardListLine("OriginalFilePath:", CurrentMediaObject.OriginalFilePath),
                    });

                    // Set up note re opening in photo app
                    CardListLineCollection t1 = new CardListLineCollection
                    {
                        new CardListLine(string.Empty, "Note: Double click the image to open it.")
                    };

                    t.Add(t1);

                    // Add standard details
                    t.Add(DV.MediaDV.GetModelInfoFormatted(CurrentMediaObject));

                    BaseDetail.Add(t);

                    // Get media image
                    HLinkHomeImageModel personImage = CurrentMediaObject.HomeImageHLink;
                    Contract.Assert(CurrentMediaObject.HomeImageHLink != null, CurrentMediaObject.Id);
                    personImage.CardType = DisplayFormat.MediaCardLarge;
                    BaseDetail.Add(personImage);

                    // Add HLink Details
                    BaseDetail.Add(CurrentHLinkMedia.GAttributeRefCollection);
                    BaseDetail.Add(CurrentHLinkMedia.GCitationRefCollection.GetCardGroup("HLink Citations"));
                    BaseDetail.Add(CurrentHLinkMedia.GNoteRefCollection.GetCardGroup("HLink Notes"));

                    // Add Model details
                    BaseDetail.Add(CurrentMediaObject.GCitationRefCollection.GetCardGroup());
                    BaseDetail.Add(CurrentMediaObject.GNoteRefCollection.GetCardGroup());
                    BaseDetail.Add(CurrentMediaObject.GTagRefCollection.GetCardGroup());

                    BaseDetail.Add(CurrentMediaObject.BackHLinkReferenceCollection.GetCardGroup());
                }

                BaseCL.LogRoutineExit("MediaDetailViewModel OnNavigatedTo");
            }
        }