Release notes for Family Tree

For download and other details see the project's download site.

Version 1.0.22 (2026-11-04 14:36:55)

    Changed from using AR Common version 1.1.7 to version 1.1.8. See release notes for AR Common for details.
    Changed from using ABT Update Checker version 1.0.4 to version 1.0.5. See release notes for ABT Update Checker for details.
    Debug data is now also updated after layout of the family tree is done.
    Javadoc has been added to the changeDone() and the familyTreeLayoutDone() methods in the FamilyTreeController class to bescribe the difference between them and make an link between them.
    "auto save" changed to "autosave".
    "switch(" changed to "switch (".
    " ," changed to ",".
    "javaScript" changed to "JavaScript".
    Trailing spaces have been removed.
    The trailing space in the HTML export for open marriages has been removed (Translation key: "html_export.marriage.date.separator").
    The "html_export.statistics.link.unknown_name" translation key in the "Family relations in danish.xml" file has change slightly and the trailing space has been removed.
    "\t" changed to " ".
    "new" changed to "line".
    Inner double spaces have been removed.
    Extra space in " fra adressen " and " til adressen " has been removed.
    Incorrect newline (Only \r) in line 1416 of the HtmlExporter source file has been fixed.
    "default:" changed to "default :".
    "case ([^:]*[^ ]):" changed to "case $1 :".
    Wrong line intenting has been fixed.
    "([^ ] +)\\)" changed to "$1)".
    "doublet" changed to "duplicate".
    The "let" in the for loop in the BirthDate.js script has been removed to make the family tree export work in old browsers.
    The "been clean up" spell mistake in the release notes has been corrected to "been cleaned up".
    "doesn\'t exists" changed to "doesn't exist".
    "an other" changed to "another".
    "a other" changed to "another".
    "n't exists" changed to "n't exist".
    "exists" changed to "exist".
    "files exists" changed to "files exist".
    "clip board" changed to "clipboard".
    "coping" changed to "copying".
    The FamilyTreeControllerTest class has been renamed to FamilyTreeControllerDebug and split into a new class.
        A few methods have moved and / or been refactored in the process.
        The FamilyTreeListToDoLinks.listToDoLinks() and FamilyTreeListMissingUrls.listMissingUrl() calls have been removed from the unit test in the procress.
    "range" changed to "distance".
    Move person(s) 1 or 5 up or down will now be indented (increaseChangelogLevel()) in the changed log if more that one persons are moved (Like move to top / bottom).
    Join person(s) up or down will now be indented (increaseChangelogLevel()) in the changed log and include information of the joined up or down to person.
    The "Create sibling" function will now add the sibling after the last sibling (as "Create child" does it) (Instead of always after the selected person).
    The "Create spouse" function will now add the spouse after the selected person (Instead of at the end of the person list).
    The "Create spouse" function will now ask if the children (If any) should have there other parent (If missing) set to the new spouse.
    "hans / hendes" changed to "sin" and "deres" changed to "sine" (myfamilytree code only).
    The Birth date statistics ("Birth_day_(Alive_only)_(Ascending)" (writeBirthDateStatistics()) in the HTML export has been added break lines in the bottom (as the other statistics).
        The index (Index) (writeIndex()) has also been added a break line in the processs.
    "auto fix" changed to "autocorrect".

Version 1.0.21 (2025-11-05 08:49:35)

    Public on yautar.dk at 2025-11-05 09:19.
    Changed from using AR Common version 1.1.6 to version 1.1.7. See release notes for AR Common for details.
    Changed from using ABT Update Checker version 1.0.3 to version 1.0.4. See release notes for ABT Update Checker for details.
    Some select file dialog button texts have been changed.
    Wrong "for(" changes to "for (" have been corrected back.
    "return;" changed to "return ;".
    A validation on that email link and phone number links are not set for young persons.
    Young persons without an email are now removed from the unknown email list and young persons without a phone number are now removed from the unknown phone number list in the HTML export.
    The family relation statistics in the HTML export is now numeric sorted such that "10 * Tipoldefar" is after "2 * Tipoldefar".
    The extra <br> at the end of the event list in the HTML export has been removed.
    The HtmlExporter.writeEvent() method has been changed to use the new IdAndStyle variant of the HtmlWriter.writeCell() method.
    A small change has been made to handle that the support for the frameset tag has been removed from AR Common HtmlWriter class.
    Svoger and svigerinde in the siblings to spouse definition have been added to the danish relation file.
    The value of the "... starts with lower case for ..." warning message for comments is now truncated such that very long line(s) don't overwrite each other.
        A newline character will now be replaced with a space ' '. This was not shown in any way before.
        This also been added to the "Two links (Last <last link> have the same note ..." and the "The field <field> was trimmed from ..." warning messages for links.
        This might cause previously suppressed warnings to reappear.
        A validation (Short and no newlines) has been added to avoid that any message text can be displayed incorrect.
    If one person had an approximately birthdate and another person had the same birthdate but exact, the output in the HTML export birthday statistics was incorrect. This has been fixed.
    If the last person has birthday, the first person was marked to be the next to have birthday in the HTML export statistics Birth_day_(Alive_only)_(Ascending). This has been fixed.
    If two (or more) persons had birthday on the same day, only the first was marked to have birthday or be the next to have birthday in the HTML export statistics Birth_day_(Alive_only)_(Ascending). This has been fixed.
    An info message has been added to the "Reset file history..." button in the settings dailog.
    The spell mistake "Morderen" has been fixed to "Moderens" in the danish relation file.
    Translations names have been cleaned up / made more consistent:
        .start -> .prefix
        .end -> .postfix
        .pre -> prefix
        .post -> postfix
    A personal event has been added to the person event list in the HTML export, when this person gives birth (This includes the father). 9 translations keys have been added to the danish relation file achieve this.
    "Universitets titel" has been changed to "Universitetsgrad" in the danish relation file.
    Names (first, middle or last) that contains a space are now shown in the HTML export as there own row. 3 translations keys have been added to and one has been changed in the danish relation file achieve this.
    The "Time between birth of children ... is low ..." message has been changed from an error to a warning.
    The "Code copied from" notation has been cleaned up.
    The setTextInMyJTextAreaNoCaretMove() and the setTextInMyJTextFieldNoCaretMove() methods in the FamilyTreePersonComponent class have been changed, as this is now handled by the AR Common "MyJTextArea.setText() uses DefaultCaret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE)" change.
        They have changed names to setTextInMyJTextArea() and setTextInMyJTextField() respectively.
        They will now only reset undo history when the selected person is changed. Before it was also reset by autosave.
        They will now also move the caret position when the selected person is changed. setTextInMyJTextArea() will move the caret to the start of the text and setTextInMyJTextField() will moved to the end of the field.
    The "Create child", "Create child with new mother" and "Create child with new farther" functions will now create a child after the last child instead of the first child.
    The "Select last child" function has been added.
    The current person is now updated (savePersonDetailsIfChanged()) before the create, createMother, createFather, createParents, createSpouse, createSibling, createSiblingWithNewMother, createSiblingWithNewFather, createChild, createChildWithNewMother, createChildWithNewFather and swapParents functions are used.
    The uncommented saveInProgress code in FamilyTreePersonComponent has been removed.
    If the date picker dialog drop-down dialog (datePickerJDialog) is used for the "Birth date", "Date of death" or the "Date of burial" fields a change log is now created instantly. (As it is with the TimeDifferenceCalculatorDialog).
    Dates selected using the date picker dialog drop-down dialog (datePickerJDialog) or "saved" by the TimeDifferenceCalculatorDialog can now be undoed.
    The FamilyTreeDateJComponent class and the save() method in it have been changed not to be abstract any more.
    The "Rectangle" / GlassPane uncommented code in the TimeDifferenceCalculatorDialog class has been removed.
    "auto save" changed to "autosave".
    The dialog title in the "Load old format..." menu item in the file menu was "Load XML". This has been corrected to "Load in old format".
        The "..." has been removed from the dialog title of the "Import..." and the "Import from old format..." menu items in the process.
        The "Save family tree as" dialog title has been changed to "Save as" in the process.
    The export type in the ExportOptionsJDialog has been changed to be a named constants instead of hard coding.
    The PersonImporter class has been scrapted as www.myheritage.dk is now behind a paywall.
    "been change " changed to "been changed " in release notes.

Version 1.0.20 (2024-05-05 16:48:51)

    Public on yautar.dk at 2024-05-05 16:56.
    Changed from using AR Common version 1.1.5 to version 1.1.6. See release notes for AR Common for details.
    Changed from using ABT Update Checker version 1.0.2 to version 1.0.3. See release notes for ABT Update Checker for details.
    Images are now zoomable using pinch zoom on old mobile phones e.g. they are not scaled to zoomed width.
    Many field labels in the person table of the HTML export have been changed slight ("width="20%" nowrap" has been added) by refactoring the code (writeparent(), writeMarriages(), writePersonsRow(), comment and link) to reuse the writeFieldStart() and writeFieldEnd() methods.
    The links of persons listed in the stepchildren and half children rows of HTML export didn't work, if the "One person per file" export option was used. This has been fixed.
        The usePersonOffset parameter has been refactored away and replaced by the writingPersonFile boolean field in the process.
    If the "One person per file" export option was used, all links to persons were unnecessarily post fixed with "#id" + person.getId(). This has been removed.
    The "Family Tree" text in the "Generated on..." line in the HTML export has been changed to be a link to the Family Trees download site.
    The "html_export.statistics.link.unknown_name" translation key was not set in the "Family relations in danish.xml" file. This has been fixed.
    If a person had a link with same name as a marriage link, the HTML export link statistics would contain both links twice. This has been fixed.
    The link to the changelog in HTML export will now only be included in the table of contents, if the changelog is not right after the table of contents.
    If NetUtil.encodeUrlMyVariant() threw an exception during LinkList.validateContent() (at load time) loading broke. This has been fixed.
    "..." has been added to the "Open" button on the "Create link" / "Update link" dialog (LinkCreateUpdateDialog) and to the "Open" button in "Links" field in the "Person details" dialog (LinkListModifyPanel).
        It has also been added to the "Google selected person(s)" and "Birth date calendar (External link)" menu items.
    The replacement of a name of a person in a comment field in the HTML export, didn't work for persons with nicknames, if their names were after a person without a nickname.
    The focus blink of the FamilyTreeJComponent has been changed slightly in an (failed) attempt to make it more rhythmic.
    When the URL in the "Create / update link" dialog (LinkCreateUpdateDialog) was URL encoded, the "URL (Readable)" field was not updated. This has been fixed.
    When the "Selected only" options in the export HTML dialog is used, no changelog is exported. This was not shown in the dialog by disabling the "Create changelog" checkbox. This has been fixed.
    The validation error messages "Field URL is not valid for..." and "Field Show URL set to false for..." have been changed slightly.
    If an invalid URL is export to HTML an exception will no longer be thrown. The link will now just be exported as text.
    If an URL is entered in the Create / update link dialog (LinkCreateUpdateDialog) that causes the NetUtil.encodeUrlMyVariant() method to throw an exception, the error message will now be shown in an error dialog box.
    Changes made to a person will now be save / updated as the first thing, when the "Save as...", "Import...", "Import from old format...", "Export..." and "Copy" menus are used.
    Links in comments are now displayed in display format (NetUtil.decodeUrlToDisplayString) in the HTML export (If the URL is valid NetUtil.isUrlValid).
    Links in quotes in comments and in the changelog will no longer included the quote mark at the end of the link.
    The scaleImages JavaScript function in the HTML export was (sometimes, see later) called by the document.body.onresize event before the images were loaded, causing only some of the first images to be scaled. The later correct call made by document.body.onload didn't fixed the problem, because of the "if (window.lastClientWidth == clientWidth) {return ;}" code. This only occurred on first load in Firefox with a cleared cache. This bug has been fixed.
    "catch(" changed to "catch (".
    The " [" has been changed to "[".
    The " =" has been changed to " =".
    The spell mistake PersonList.nobackupFilesExists has been corrected to PersonList.noBackupFilesExists.
    The spell mistake nick name has been corrected to nickname in the GUI, relation file, settings, data and log messages. Data and settings will be automatically corrected.
    If the comment on the family tree was set to a text where one or more lines ended in "\n" (Backslash 'n' and not a newline), the HTML export throw an exception with the message "Invalid escape character:" (if the changelog was exported). This has been fixed.
    The font tags in the HTML export used for dates that should have dynamically age calculation added, have been changed to span tags.
    If current date is after the last date of birth in the birth day alive only ascending statistics in the HTML export, the first date of birth will now be marked as the next to have birthday.
    The translation keys "html_export.age.has.birth.day", "html_export.age.next.birth.day" and "html_export.age.has.wedding.anniversary" were not escaped at all in the HTML export. This has been fixed.
    The updatable age string (from translation keys) were not escaped at all in the HTML export. This has been fixed.
    If the family tree had birth dates but didn't have images, the JavaScript would fail. This has been fixed.
    The warnings "Phone number link <DisplayText> is set for a dead person" and "Email link <DisplayText> is set for a dead person" have been changed to errors.
    The welcome message has not shown if the "Load last used file at start up" settings successfully loaded a family tree file. This has been fixed.
    The welcome message has been slightly updated.
        A spell mistake in the welcome message has been fixed in process.
    Dead persons are no longer shown in the "Email unknown list" ("html_export.statistics.email.unknown_email") or in the "Phone number unknown list" ("html_export.statistics.phone_number.unknown_phone_number") in the HTML export statistics.
    The "Show birth death place" menu label has been changed to "Show birth / death place".
    The "Birth death place" checkbox label on the show panel has been changed to "Birth / death place".
    The "Show birth / death icon" menu label has been changed to "Show birth / death icons".
    The "Show birth / death icons" menu and the "Icons" checkbox on the show panel doesn't have any effect, if the "Split dates" menu or the "Split dates" checkbox on the show panel are unchecked, so they are therefore now disabled in this case.
    The default autosave setting has been changed from false to true.
    If the changelog limit caused an empty changelog (changelogLimit = 0), the changelog field was not set to null. This has been fixed.
    An event row with the person's events have been added to the person tables.
    The "Place of marriage" field was missing in the marriage event. This has been fixed.
    A timeout check has been added to ExportImageJDialog.resizeWindow()'s Runnable to avoid looping and that the application wouldn't shutdown.
    The ") )" has been changed to "))".
    The FamilyTreeControllerTest.generateToSendFiles() method has been made more thread stable against multi calls.

Version 1.0.19 (2023-03-27 13:01:21)

    Public on yautar.dk at 2023-03-27 13:02.
    Changed from using AR Common version 1.1.4 to version 1.1.5. See release notes for AR Common for details.
    Changed from using ABT Update Checker version 1.0.1 to version 1.0.2. See release notes for ABT Update Checker for details.
    The enabled of the "Show URL" check box in the create / edit link dialog (LinkCreateUpdateDialog), was updated before the text in the "Name" text field was update, causing a missing update on first letter entered. This has been fixed.
    The warning messages from validation of links have been changed slightly.
    A warning message of email and phone links starting with a / has been added.
    A warning message of comments starting with a lower case character has been added.
    The download site has been updated.
    The item(s) label in the PropertiesDialog is now updated dependent on the number of items.
    The open link button in the PropertiesDialog has changed text from "Open..." to "Open (Comment selected) link...".
    The characters ?=&@ was not included in the valid URL search made by the open link button. This has been fixed.
    The loadLastUsedFileOnStartUpJCheckBox check box has name from "Load last used file on start up" to "Load last used file at start up".
    If no base person was set the "Show shortest route to base person..." menu would throw an exception. This has been fixed by disabling the menu, if no base person is set.
    A spell mistake in the result dialog shown by the "Show shortest route to base person..." menu has been fixed.
    The "day(s), but keep", "version(s) for" and "day(s) after that" labels in the PropertiesDialog are now updated dependent on the number of day(s) / version(s).
    The "BirthDate.js" and the "ScaleImages.js" files have been whitespace cleaned up.
    The trailing space in the "html_export.statistics.marriage.unknown_married_date" and "html_export.statistics.marriage.unknown_child_birth" translation key the "Family relations in danish.xml" file have been removed.
    Spell mistake "properly" -> "probably" has been fixed.
    If the "Validate data", "Auto check gender" or "Auto update gender" menu bar items were used, the displayed errors and warnings were not updated accordingly. This has been fixed.
    An unnecessary relayout has been removed from the "Update gender" menu bar function.
    The "html_export.base.person" and "html_export.base.person.notes" translation keys in the "Family relations in danish.xml" have been changed.
    The base person has been moved after the Family Tree comment in the HTML export.
    The "continue ;" statement has been changed to "continue;".
    The header line of the name list in the HTML export has been changed from using the strong HTML tag to the b HTML tag (Bold).
    The base person notes (html_export.base.person.notes) will now only be inserted into the HTML export, if a person in the person list has a family relation.
    "while(" changed to "while (".
    "for(" changed to "for (".
    "switch(" changed to "switch (".
    "return;" changed to "return ;".
    "case *:" changed to "case * :".
    "catch(" changed to "catch (".
    The "Create new child with new mother" and "Create new child with new mother" functions didn't work correctly, if the selected person already had a child that had both parents. This has been fixed.
        The code for the "Create new child" function was been cleaned up, and some minor changes have been made in the process.
        The calculation in the "Create new child" function of where to insert the new child in the person list has also been changed in the process.
    A changelog level increasement has been added to the "Create new child with new mother" and "Create new child with new mother" functions.
    The calculation of the new child's last name in the "Create new child with new mother" and "Create new child with new mother" functions have been changed to match the calculation in the "Create new child" function.
    The message when the last backup file was deleted, has been changed slightly.
    The rules for when a person can be split has been changed so that the person must have a parent and (a child(ren) or/and spouse(s)).
    The currently selected / edited person ("this") is no longer a valid bride / groom to it self. This is only a problem, if the persons gender is set to Unknown.
    The marriage fields "Place of marriage" and "Comment" are now trimmed at load of the family tree file.
    A warning will now be shown if the marriage field "Comment" starts with a lower case character.
    The trim messages at load of the family tree file have been changed slightly.
    Carriage return character(s) ('\r') will now be removed from all text fields (FamilyTreeUtil.changeFieldToNullIfEmptyAndTrim()).
    Newline character(s) ('\n') will now be removed from all non-comment text fields (FamilyTreeUtil.changeFieldToNullIfEmptyAndTrim()).
    The spell mistake in the "The file <File name> doesn't exist" message has been fixed.
    The validation messages from validating person comments and link notes have been changed slightly.
    The marriage field "Place of marriage" and link name are now validation using the same rules as the person field "Birth place".
    The validation of the family tree title (PersonList.title) has been changed slightly to use same rules as the person field "Birth place".
    A validation of the family tree comment (PersonList.comment) in the same way as the person field "Comment" has been added.
    If no messages was currently displayed (FamilyTreeJComponent.messagesActionListener was not running) and the "Functions" -> "Redisplay all messages" menu was used, the messages were not displayed (Redisplay didn't work). This has been fixed.
    The validation of person fields have been changed slightly.
    A warning will now be given if the birth name is set but the person doesn't have any marriages.
    The language in HTML export is now set from the "html_export.language" translation key from the relation file.
    The FamilyTreeUpdateHandler.hideMessage() (and other calls) that changed message.timeToLive, was not done synchronized with the GUI thread, causing that the messages wasn't hidden. This has been fixed.
        In one place the call was not made. It just called message.hide(). This has also been fixed.
    Some code changes have been made to compensate for the refactoring of encoding and decoding of URL's in the NetUtil class in the AR Common project.
    The log from the ABT - Update Checker project will now be shown as messages (ERROR or INFO) if the check for new version fails.
    Messages that were hidden (Message.hide()) before they were shown, caused some wrong visual effects. They will now be removed as soon as possible because this fixes that problem.
        The height of a message will now be set if it is Message.HEIGHT_NOT_SET (and not when message.getTimeToLive() > 0) when the message is being painted.
    The fixed to make sure that a message that is added again (that there by might have been hidden) would be shown, has been changed slightly, as it sometimes caused calls to message.setTimeToLive() to be "overwritten".

Version 1.0.18 (2022-06-21 12:07:40)

    Changed from using AR Common version 1.1.3 to version 1.1.4. See release notes for AR Common for details.
    Dependency of ABT Update Checker version 1.0.1 has been added.
    A unit test to ensure that the changelog for the relation file is empty has been added. This causes the changelog the in the relation file to always be empty.
    The "backup files deleted" message has been adjusted.
    The last warnings in the relation file have been suppressed.
    The commentJTextArea component in the FamilyTreePersonComponent class has been changed to use the HighlightCaret from AR Common.
    The FamilyTreeControllerTest.generateToSendFiles() method has stopped generating (or copying) the following files: "Image of My family tree for Allan Rasmussen - Compact.gif", "Image of My family tree for Allan Rasmussen - First name only.gif", "Image of My family tree for Allan Rasmussen - Full.gif", "Html of My family tree for Allan Rasmussen (All in one).html", "Changelog.txt", "Sub tree for Carl Anker Rasmussen from My family tree.gif", "Sub tree for Magda Kathrine Hedegaard Petersen Rasmussen _F_dt Magda Kathrine Hedegaard S_rensen_ from My family tree.gif", "Sub tree for Niels Rasmussen from My family tree.gif", "Sub tree for Otto Thomas Petersen from My family tree.gif", "Sub tree for the rest of My family tree.gif", "Sub tree for Vera Kristine Rasmussen _F_dt Kristiansen_ from My family tree.gif" and "My family tree.dat".
    The "default" file family tree format has been changed from Java serialization (*.dat) to AR Common serialization (*.xml). This has caused many smaller changes.
        Old settings are NOT adjusted for this change, and this might cause some errors. Reinstall (not upgrade) or deleting current settings will fix these problems.
        This might "leak" backup of family trees, even if they are specified to be deleted.
    If no file name have been entered in the export dialog file name field, a default search pattern has now been added to the browse button depended on the selected export format.
    If a file name without a absolute path was entered in the export dialog file name field, current directory was assumed as base. This is wrong when the application is installed. This has been changed to be based from FamilyTreeConstants.USER_HOME.
    The public String modifyFileName(String fullFileName) method in the FamilyTreeController class has been removed.
    When the "Load XML" menu was used the backupOnSave and deleteOldBackupFiles fields were set to true (default values). This has been fixed.
    The familyRelation field has been changed to be transient, causing it not saved or exported.
    The messages shown when a family relation was changed have been removed.
    The "Delete old backup files" check box in the "Family tree properties" dialog was not moved to left as the "Backup on save" check box. This has been fixed.
    The "Delete old backup files" check box in the "Family tree properties" dialog has changed name to "Delete old backup files after", and some spaces have been added to the components in that line.
    The keepNumberOfVersions, keepVersionsForDays and version fields have been added to the PersonList class.
    If save was activated (Ctrl + s) or autosave was tricked, while editing a text field or text area, the caret was moved to the end of the field. This has been fixed.
    The removeNonExistingSuppressedErrorAndWarnings feature has been moved from the private void load(PersonList tempPersonList, String pfileName) method in the FamilyTreeController class to the new removeNonExistingSuppressedErrorAndWarnings() method in the PersonList class.
    The changelog limit feature has been added.
    A "Changelog" label has been added to the changelog text area in the properties dialog.
    The edit time has been moved to bottom of the properties dialog.
    If a file was loaded using a relative path the deletion of old backup files would throw an NumberFormatException (deleteOldBackupFilesLocal(), StringUtil.stringToInt()). This has been fixed.
    The undo limit feature has been added.
    If a person had a place of burial and the "Split date" show option was unchecked, the place of burial was place right after date of death or place of death (Option depended). This has been fixed by added a ". " in between them.
    When exporting person images for a person with more than 3 children, the two translation keys place_of_burial.prefix and place_of_burial.parenthesis.prefix were incorrectly used. This has been fixed. (Note: The two keys were set to empty in the "Family relations in danish" file).
    When the "save" button in the "Time difference calculator"-Dialog (The TimeDifferenceCalculatorDialog class) was used, the text field and label in the FamilyTreeDateJComponent wasn't updated, resulting in that the change was overwritten. This has been fixed.
    The edit time in the Family tree properties dialog was not updated, when the apply button was used. This has been fixed.
    The date of burial field has been added with all what that includes.
    The events generated from date of death have been added place of death (If present) and place of burial (If present and date of burial is not parsable).
    The events generated from birth date have been added birth place (If present).
    Default translation texts for events have been corrected for minor bugs.
    A space is no longer added if the post text of an event is longer that one. This might change the sorting of events on the same day.
    The sorting of events on the same day have been changed to be birth, death (and others), burial.
    The spell mistake "Parseble" has been corrected to "Parsable".
    If "Zoom in" was used after "Zoom to full screen" one zoom index too high was used. This has been fixed.
    The method "findClosestZoomIndex" in the FamilyTreeController class has changed name to "findFirstHigherZoomIndex", and a minor bug has been fixed in the process.
    If a person had more that one marriage and these didn't have any dates, the sorting of these were unstable, causing different warnings when validating, causing removal of non existing suppressed error and warnings (Sometimes). This has been fixed by sorting these marriage on the bride and grooms name (and id if identical names).
    The change to AR Common version 1.1.3 made the notPrefix in the StringUtil.doesStringMatchMultiWildcard() work, but this caused the special search strings "!" and "!!!" to stop working. This has been fixed.
    If a search was made on "!E1" the search was not made on "!*E1" as expected. This has been fixed. The search code has been refactored in the process, fixing some minor bugs.
    The selection history limit feature has been added.
    If the "Select last selection" (Alt + Left) was used multiple times before a new selection was made, the selection history was left in an incorrect state. This has been fixed, by changing it to work as undo does.
    The "No backup files were deleted" message will now disappear faster.
    Default title for persons with multiple marriage (For instance a remarried widow) was wrong. This has been fixed.
    The marital status field has been add to the HTML export.
    The "html_export.marriage.date_of_separation" translation key was not translated into danish in the "Family relations in danish.xml" file. This has been fixed.
    The "Update gender" and "Check gender" didn't take marriages into account. This has been fixed. Another minor bug has been fixed in the process.
    The "Auto save" message has been changed a bit.
    The "Show age (Dead only)" option has been added.
    The layout drop limit (DROP_LIMIT at 2050) has been removed. Now no family trees will be laid out using simple layout.
    The changelog items when a person was split or when the split of a person was removed has been changed.
    If the split top person was selected before the split of a person was removed, the selection of persons were incorrect. This has been fixed.
    The enabled and disable of the "Split person" menu has incorrect in some cases. This has been fixed.
    The error messages "Only one person can be split at a time" and "Only one person can be unsplit at a time" have been added.
    If no splits are removed by the "Remove all splits" function, an information dialog is shown.
    The warning "<field name> contains space for <person name>. value: "<value>"" has been changed to use upper 'V' in value.
    All of the "<field name> <constraint> <person name>. Value: "<value>"" warnings have got added a '.' at the end.
    The "Suppress" button (suppressErrorWarningsJButton) in the person details (FamilyTreePersonComponent) was enabled, when selecting a person with unsuppressed error / warning and no error / warning was selected. This allowed for the suppression of "null". This has been fixed.
    The UnitIncrement is now set to 8 and the BlockIncrement to 50 for the family tree scroll bars.
    The "Split on parent siblings" function has been split into the two functions "Split on parent siblings from base person" and "Split on parent siblings from selection".
    The three functions "Split all persons with parent(s) and child / children", "Smart split from base person" and "Smart split from selection" have been added.
    Max layout location (FamilyTreeConstants.MAX_LOCATION) changed from 1000000 to 2000000.
    Some minor changes have been made to the way changes of person data are handled while the "Layout in progress. Please wait..." message is shown.
    The code that handles change done, layout done and needs relayout have been refactored.
    The "Remove split of <person>" question has been removed.
    The "Deactivate "Auto select first person from search when currently selected disappears" when selecting outside search" feature was activated during load because the "Auto select first person from search when currently selected disappears" feature was set to be deactivated. This has been fixed.
    If the first person in the family tree had a very short name (like "1"), the layout algorithm became unstable leading to wrong layouts. This has been fixed. (Bug in FamilyTreeLayoutManager.updateMinPersonWidth(). Method name changed to updatePersonWidthToMinOrMax()).
    If validate data is unchecked, then suppressed errors and warnings are no longer searched / matched in FamilyTreePersonListJPanel.
    The way selected person presentations are map to the new person presentations has been changed a bit (FamilyTreeController.mapSelectionPersonPresentation() has been added and a change has been made in FamilyTreeJComponent.switchToLayoutedList()).
    The splitSelectedPerson() and unsplitSelectedPerson() methods have been cleaned up a bit.
    Selection history didn't work for split down persons. The split top person was used instead. This has been fixed.
    Changed to use ApplicationUtil.
    The "Show shortest route to base person" feature has been added.
    The PropertiesDialog class has been changed to use the new addCheckBox method of the LabelFieldJComponent class.
    The release notes file has been renamed from "Family Tree Release Notes.txt" to "Family Tree Release notes.txt".
    Changed to use the ABT download site and release notes feature. The release notes has been cleaned up and the "Family Tree Download site.html" file has been created in the process.
    Changed to use the ABT Update Checker to check for application updates.
    Messages will now, after they have faded away, shrink in height until they are completely gone, and the layout of messages have been changed slightly in the process.
    The exit menu has been changed to use the new GUIUtil.requestWindowToClose() method.
    The export code has been refactored to use the SimpleProgressJDialog class from AR Common and the ExportProgressDialog class has been deleted in the process.
    If the options "Statistics in own file" and "One statistic per file" were checked when the exporting HTML, the table of content contained links with a wrong anchor id. The anchor id has been removed.
    The HTML export person images contained all siblings and half siblings, causing 2nd level siblings to be including in the image, but not related to any person. This has been fixed by only adding all parents children.
    The spell mistake "This have" has been fixed to "This has" in release notes.

Version 1.0.17 (2021-08-18)

    Changed from using AR Common version 1.1.1 to version 1.1.3. See release notes for AR Common for details.
    The no longer existing files "Test.html" and "Test2.html" are now not skipped by generateToSendFilesRun().
    The "Family Tree Release Notes.txt", "ABT Release Notes.txt", "ABT Installer Release Notes.txt", and "AR Common Release Notes.txt" files will now be copied to the "y-To send/Miscellaneous" directory by generateToSendFilesRun().
    Settings are now saved in XML format and not in Java Serializable format. The settings file name has been changed accordingly.
    If a date was changed from "1990-01-05" to "1990-01-0" a NullPointerException was throw. This has been fixed.
    Component name of notes text area (notesJTextArea) in modify link dialog (LinkCreateUpdateDialog) set to "Notes".
    The application name is now set "Family Tree" on Linux.
    If a person with only one child and no sibling was split, the layout didn't make room for the split icon. This has been fixed. Can only occur with "Merge parent trees" checked.
    If autosave was enabled and the file name wasn’t "set", a NullPointerException was throw. This has been fixed.
    If a file in the load history doesn't exist a FileNotFoundException was thrown. This has been changed to an error message dialog.
    If a person in the graphical tree (FamilyTreeJComponent) was clicked (or multiple persons were selected), while the control key is down and no persons currently were selected, a NullPointerException was throw. This has been fixed.
    If a person relation with more than one child and with only one parent was overlapping with a person relation with a "split top" person, the layout did not leave space for the split icon. This has been fixed.
    The "Save on close" menu item has been removed.
    The names of the "Select parent (Mother first)" menu item and the button on the navigation panel has been changed to "Select up (Parent (mother first) / split top)".
    The names of the "Select parent (Father first)" menu item and the button on the navigation panel has been changed to "Select up (Parent (father first) / split top)".
    The name of the "Select down" button on the navigation panel has been changed to "Select down (first child / split down)".
    The "Y diff found between split top and split down, and no circular reference was found" validation has been added.
    The "move split top and split down to the same generation / y coordinate" algorithm has been rewritten, because it in some cases it didn't work. This also changes the way to control the layout in family trees with circular splits.
    Model change with many code changes: The "split" field has been added to Person making the splitTopPerson and splitDownPerson obsolete.
        This changes the two persons "(+) <personName>" and the "<personName> (+)" to one person named "<personName>" in the "person list".
            This causes indirect changes to the layout, as the order of split persons no longer can be control as detailed.
        This removes the extra / duplicate person for split persons in the XML export.
        This change will also make the family tree file format (.dat) smaller.
        The rules on when the split of an person is removed, has been changed for export to image when exporting selected persons only. The split is now removed if a split person doesn't have parent(s) or child(ren).
        This removes the "+<Number of split persons>" from the title.
        This change might cause the family relation to be different in family trees with circular references.
        Before this change a modification of a split person cause two lines in the changelog. There will now only be one.
    The "Generated by..." text has been changed to "Family Tree©" for exported images, that are too narrow to show the full text. On very narrow images the text has been removed.
    The "Save as" menu will now add an entry in the edited files history.
    The message display, when zoom percentage is changed, is now reused. This makes "Zoom to full screen" menu only display one message, instead of one per zoom adjustment.
    The menu "Zoom full screen" changed to "Zoom to full screen".
    If an export of an image was done to a directory that didn't exist, an "Can't create an ImageOutputStream!" IIOException was thrown. This has been fixed. Probably only a problem on Linux.
    The ExportImageJDialog dialog created by the HtmlExporter class when exportHtmlLocal() is called, is now closed if the generateToSendFilesRun() is canceled.
    All the miscellaneous files generated / copied by generateToSendFilesRun() are now moved to "y-To send/Miscellaneous".
    The "Family Tree - todo.txt" and "Family Tree - done.txt" files now only exist in the "y-To send/Miscellaneous" while the zip file is zipped, to avoid editing the wrong version.
    Links are now visible (Optional) in the person images in the HTML output, and they are clickable.
    In the person images in the HTML output, the current person is no longer linking to itself / current file.
    The export text function has been added to the export dialog.
    The systemOutSearchMatch (DevelopmentMode only) has been removed.
    The showSearchMatchCause has been added.
    The ExportProgressDialog has been changed to use AbstractProgessJDialog.
    The message from the "Copy" button on the "Family tree properties" dialog, has been changed from "Changelog copied to the clipboard" to "The changelog was copied to the clipboard".
    The title on the dialog shown by the "Save as..." button on the "Family tree properties" dialog, has been changed from "Changelog save as..." to "Save changelog as...".
    The use of JTextField has been changed to MyJTextField to added undo to all text fields.
    Title borders have been added to the settings dialog.
    The "Parent sort" radio buttons in the settings dialog have been moved to the left.
    Changed to use the new StringUtil.multiWildcardError() method.
    The "Open after export" option has been added for "HTML" export in the export dialog.
    If a person with a nick name was referenced in a comment using full name including nick name, the name was not changed to link in the HTML export. This has been fixed.
    Text search will now select the marriage, link, suppressed error / warning or text of comment that matches the search. If nothing matches the selection of marriage, link, suppressed error / warning and selected text of the comment will be removed.
    If the day of marriage is not an Saturday, a warning is now given on the bride.
    The "Changelog.html" file in the HTML export has been moved to the new "Changelog" directory.
    The FamilyTreeUtil.changeFieldToNullIfEmpty() didn't added " around the person names in the changelog. This and other minor things in this method have been fixed.
    The linking to persons in the changelog in HTML export have been changed a bit.
    Some minor bugs in the linking to persons in all comment fields in HTML export have been fixed.
    The size of the comment field has been changed to 100 (from 50) and the field has been changed to word wrap.
    If a search matched a link without a name, "null" was displayed. This has been fixed.
    FamilyTreeLayoutThread changed to use MyThread.
    The message text of parent swapping has been corrected from "The parents of "<person>" have been parents" to "The parent(s) of "<person>" have been swapped".
    The indenting in the HTML exported changelog has been changed.
    All editing functions that uses the personList.increaseChangelogLevel() method ("Create mother", Create father", "Create parents" ...) have been changed from using the person.toDisplayString() method to the person.toChangelogString() method, causing a small change in the changelog.
    The name of the FamilyTreeController method updatePatientList has been corrected to updatePersonList.
    The "Deactivate "Auto select first person from search when currently selected disappears" when selecting outside search" feature has been added.
    If the number of siblings and half siblings is less than 15, the HTML export person images will now also contain half siblings.
    The HTML export person images padding was different depending on if the overview image was created or not. This has been fixed.
    The HTML export map tag "coords" attribute calculation was always using 0 as image padding. This has been changed to use the correct image padding depending on the type of image being created. The image padding also used wrong in the calculation, this has also been fixed.
    The ExportImageJDialog changed to undecorated and its size has changed to be fixed and almost as small as possible. Attempts will now also be made to hide the dialog behind all other dialogs.
    If the search returns no results the currently selected person is now unselected.
    The BirthDate.js file has been refactored to make unit test easier.
    The findFirstPersonWithLastName method on the PersonList class has been removed.
    The simpleListContains method on the PersonList class has been moved to the FamilyTreeUtil class.
    If the create child button was used on a person with no gender, but the person was used as groom in a marriage:
        The shown dialog would default to the female gender. This has been fixed.
        If cancel was selected a person was created anyway. This has been fixed.
        The shown dialog text has been changed a bit.
        The no button in the dialog has been changed from setting the gender to male, to leave the gender as unknown.
    The createChildWithNewMother() and createChildWithNewFather() methods have been refactored into the new createChildWithNewParent() method, and some minor bugs have been fixed in the process.
    The term half children has been changed to stepchildren and the algorithm has been changed.
    A new term called half children has been created and the algorithm for it is all the person spouses and half spouses's children, but not the persons own. This has been added to the HTML export. It is only added to the HTML, if it is not empty and different from stepchildren. Note the difference between getStepchildren() and getHalfChildren()!
    If first name, last name or birth name contains a space a warning is now shown.
    The size of the export dialog has been made bigger.
    The spelling of "cancelled" has been changed to "canceled".
    The spell mistake "splitted" has been fixed to "split".

Version 1.0.16 (2020-05-13)



Generated on 2026-11-04 14:36:55 by ABT - Allan's Build Tool (Version: 1.0.20 (Build: 843), AR Common version: 1.1.8 (Build: 1532)).
The template for this file was last updated on: 2026-11-04 14:36:55.
Copyright Allan Rasmussen©.