Vermelde: Klappt.
von Veria am 10.03.2017 - 18:39 in Projekt FantasticFamilyTree

Nach fast einem Jahr vermelde ich hiermit: Das Programm ist benutzbar, mein eigener Eigeneweltstammbaum wurde bereits portiert und wird im FFT weitergeführt.

Das heisst allerdings noch lange nicht, dass alles bestens ist. Es fehlt noch viel Funktionalität und insbesondere die Schalttage-Rechnung ist noch immer nicht verbessert worden. Die Schalttage sind in der Priorität derzeit aber sehr niedrig, wichtiger sind mir die Funktionen, die die Benutzbarkeit vereinfachen (diverse Schnelleingaben und automatische Übernahmen) oder die es zur Benutzerdefinierbarkeit braucht (Verwalten von Attribut- und Relationstypen - die Verwaltung von Namenstypen hingegen ist bereits seit über einem Jahr implementiert).
Ob dann Vererbungsregeln oder Schalttage zuerst kommen ... mal sehn. Statistische Helferfunktionen zuerst? Vielleicht sogar die.

So eine Schleicherei ...
von Veria am 18.03.2016 - 10:33 in Projekt FantasticFamilyTree

Ja, die Kalenderrechnung funktioniert. Aber sie schleicht. Mit dem gregorianischen Kalender geht es noch halbwegs, der hat recht wenige Regeln, aber einer meiner eigenen Kalender braucht für die Berechnung verdammt lange. Vorerst habe ich die Berücksichtigung von Schalttagen also mal abgedreht, das muss ich bei Gelegenheit irgendwie deutlich beschleunigen.

Nach langem Schweigen ...
von Veria am 08.03.2016 - 19:43 in Projekt FantasticFamilyTree

... vermelde ich jetzt mal nicht, dass ich mich mal wieder dran mache, sondern dass ich selbiges schon vor einer Weile getan habe.

Mein Dateiformat ist fix, es handelt sich um XML, die Erweiterung ist .ffml - oder .pffml, wenn es sich um eine Preset-Datei handelt. Ich kann sowohl diese XML-Dateien als auch GEDCOM-Dateien einlesen - da GEDCOM aber die ganzen Definitionen (Kalender, Relationstypen, Attributtypen) nicht liefert, muss da vorher eine XML-Datei eingelesen werden. Eine Preset-Datei ist also eine Fantastic-Family-Datei ohne Personen und Relationen - und ein Preset für gewöhnliche irdische Belange liefer ich dann mit.

Visuell sieht es auch gut aus. Ich habe mich da vor einiger Zeit auf JavaFX festgelegt. Inzwischen gibt es eine Listendarstellung, eine Familiendarstellung, eine Personenansicht und Menü und Statusleiste. Ein bisschen rumklicken kann man auch schon.

Kalenderdefinitionen
von Veria am 17.04.2014 - 18:36 in Projekt FantasticFamilyTree

So, die Kalenderrechnung funktioniert jetzt endlich zuverlässig. Jetzt muss ich nur noch einbauen, dass Kalenderdefinitionen eingelesen werden können.
Diese Definitionen werden dann so aussehen:

<calendar name="Gregorianischer Kalender" zero="false" offset="0" daylength="1">
<era len="100" lenc="4" lend="146099" combine="true"/>
<era len="4" lenc="1" lend="1461" combine="true">
<conditiongroupd modifyby="-1">
<conditiond range="100" values="99" matchingera="0"/>
</conditiongroupd>
</era>
<era len="12" lenc="1" lend="365">
<conditiongroupd modifyby="1">
<conditiond range="4" values="3" matchingera="1"/>
</conditiongroupd>
<conditiongroupd modifyby="-1">
<conditiond range="4" values="3" matchingera="1"/>
<conditiond range="100" values="99" matchingera="0"/>
</conditiongroupd>
</era>
<era len="31" lenc="1" lend="31" containsdays="true" plusonecorrection="true">
<conditiongroup modifyby="-1">
<condition range="12" values="3,5,8,10" matchingera="2"/>
</conditiongroup>
<conditiongroup modifyby="-3">
<condition range="12" values="1" matchingera="2"/>
</conditiongroup>
<conditiongroup modifyby="1">
<condition range="12" values="1" matchingera="2"/>
<condition range="4" values="3" matchingera="1"/>
</conditiongroup>
<conditiongroup modifyby="-1">
<condition range="12" values="1" matchingera="2"/>
<condition range="4" values="3" matchingera="1"/>
<condition range="100" values="99" matchingera="0"/>
</conditiongroup>
</era>
</calendar>

Viele Befehle ...
von Veria am 16.01.2014 - 09:27 in Projekt FantasticFamilyTree

Der Kern funktioniert inzwischen. Zwar muss ich noch an den Lese- und Schreibfunktionen stricken, die passen zu einer alten Version des Kerns, aber das ist ja kein Problem, nur Arbeit.

Aber ich habe jetzt das Userinterface in der Mache. Die bisher vorgesehenen Befehle sind:

read
write
save
(die drei dürften selbsterklärend sein, read und write nehmen noch einen Dateinamen als Argument)

list (da kommt ein Argument dazu, was aufgelistet werden soll)
make (auch hier kommt ein Argument dazu, was genau erstellt werden soll)
change (hier wird nicht ein Typ, sondern ein konkreter Eintrag als Argument verlangt)
delete (und auch hier wird ein konkreter Eintrag verlangt)

Da die möglichen Typen aber nicht gerade wenige sind, wird das einige Zeit dauern.

Ältere