Exemplo n.º 1
0
        public void SortContents(int sortColumn, bool sortAscending)
        {
            try {
                int num = fContentList.Count;
                for (int i = 0; i < num; i++)
                {
                    ValItem   valItem = fContentList[i];
                    GDMRecord rec     = valItem.Record;

                    if (sortColumn == 0)
                    {
                        valItem.ColumnValue = rec.GetId();
                    }
                    else
                    {
                        Fetch(rec);
                        valItem.ColumnValue = GetColumnInternalValue(sortColumn);
                    }
                }

                fXSortFactor = (sortAscending ? 1 : -1);
                ListTimSort <ValItem> .Sort(fContentList, CompareItems);
            } catch (Exception ex) {
                Logger.LogWrite("ListManager.SortContents(): " + ex.Message);
            }
        }
Exemplo n.º 2
0
        private static bool CheckRecordXRef(GDMRecord record)
        {
            string stdSign = GEDCOMUtils.GetSignByRecord(record);
            string xrefNum = record.GetXRefNum();
            string recXRef = record.XRef;

            return((recXRef == stdSign + xrefNum) && record.GetId() >= 0);
        }
Exemplo n.º 3
0
        public static bool DeleteRecord(IBaseWindow baseWin, GDMRecord record, bool confirm)
        {
            bool result = false;

            if (record != null)
            {
                string msg = "";
                switch (record.RecordType)
                {
                case GDMRecordType.rtIndividual:
                    msg = string.Format(LangMan.LS(LSID.LSID_PersonDeleteQuery), GKUtils.GetNameString(((GDMIndividualRecord)record), true, false));
                    break;

                case GDMRecordType.rtFamily:
                    msg = string.Format(LangMan.LS(LSID.LSID_FamilyDeleteQuery), GKUtils.GetFamilyString((GDMFamilyRecord)record));
                    break;

                case GDMRecordType.rtNote:
                {
                    string value = GKUtils.TruncateStrings(((GDMNoteRecord)(record)).Lines, GKData.NOTE_NAME_MAX_LENGTH);
                    if (string.IsNullOrEmpty(value))
                    {
                        value = string.Format("#{0}", record.GetId().ToString());
                    }
                    msg = string.Format(LangMan.LS(LSID.LSID_NoteDeleteQuery), value);
                    break;
                }

                case GDMRecordType.rtMultimedia:
                    msg = string.Format(LangMan.LS(LSID.LSID_MediaDeleteQuery), ((GDMMultimediaRecord)record).GetFileTitle());
                    break;

                case GDMRecordType.rtSource:
                    msg = string.Format(LangMan.LS(LSID.LSID_SourceDeleteQuery), ((GDMSourceRecord)record).ShortTitle);
                    break;

                case GDMRecordType.rtRepository:
                    msg = string.Format(LangMan.LS(LSID.LSID_RepositoryDeleteQuery), ((GDMRepositoryRecord)record).RepositoryName);
                    break;

                case GDMRecordType.rtGroup:
                    msg = string.Format(LangMan.LS(LSID.LSID_GroupDeleteQuery), ((GDMGroupRecord)record).GroupName);
                    break;

                case GDMRecordType.rtResearch:
                    msg = string.Format(LangMan.LS(LSID.LSID_ResearchDeleteQuery), ((GDMResearchRecord)record).ResearchName);
                    break;

                case GDMRecordType.rtTask:
                    msg = string.Format(LangMan.LS(LSID.LSID_TaskDeleteQuery), GKUtils.GetTaskGoalStr((GDMTaskRecord)record));
                    break;

                case GDMRecordType.rtCommunication:
                    msg = string.Format(LangMan.LS(LSID.LSID_CommunicationDeleteQuery), ((GDMCommunicationRecord)record).CommName);
                    break;

                case GDMRecordType.rtLocation:
                    msg = string.Format(LangMan.LS(LSID.LSID_LocationDeleteQuery), ((GDMLocationRecord)record).LocationName);
                    break;
                }

                if (confirm && AppHost.StdDialogs.ShowQuestionYN(msg))
                {
                    result = baseWin.Context.DeleteRecord(record);
                }
            }

            return(result);
        }