Ancestris - Forum

Ancestris Support => FRANÇAIS => Topic started by: Superchinois on March 19, 2022, 00:23:25

Title: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: Superchinois on March 19, 2022, 00:23:25
Bonjour à tous,

J’ai cherché dans le forum une réponse à ma question, mais je n’ai pas trouvé (sauf une réponse en 2017 qui disait que ce n’était pas possible)
Je me permets donc de la poser ici.

Je souhaiterais modifier l’affichage des individus dans l’arbre pour que, quand l’individu est masculin il s’affiche en bleu, quand il est féminin il s’affiche en rose et quand le sexe est inconnu en vert.
On peut déjà le faire avec les bordures, mais j’aimerais que l’intérieur face la même chose.
Mon calque est dentique à celui par défaut, j’ai juste changé l’INDI : _SOSADABOVILLE en INDI : _SOSA (voir la pièce jointe).
Je voudrais changer le <body bgcolor=#fffdba> et <table border="0" width=100% bgcolor=#fffdba color=black> et <table border="3" width=100% bgcolor=#fffdba> pour que :


Je ne suis pas très fort en html et je ne vois pas très bien comment faire.
Si c’est possible, est-ce que quelqu’un sait ce que je dois mettre à la place de ces 3 lignes ?
Par avance merci.
Eric
Title: Re: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: FredericL on March 19, 2022, 08:17:45
Bonjour Eric,

Hummm. Pas sûr qu'on puisse en fait. La balise "mark" introduite pour tester une valeur ne peut pas modifier l'attribut de tags existants (couleur est un attribut du tag body par exemple), mais seulement afficher ou pas un marqueur d'une certaine taille et couleur...

Bien à toi,
Frédéric

Title: Re: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: Superchinois on March 19, 2022, 08:51:00
Bonjour Frédéric,

Je pensais à une condition mise en début et qui donnerait une valeur à une variable du style (je la transcrit comme je suis capable de le faire mais après faudrait trouver la conversion en html si c'est possible) :

SI INDI:SEXE = "Masculin" ALORS Couleur=#9bdfe8
SI INDI:SEXE = "Féminin" ALORS Couleur=#dbcaeb
SI INDI:SEXE = "" ALORS Couleur=#bbeba2

et après affecter cette valeur :

<body bgcolor=Couleur>
<table border="0" width=100% bgcolor=Couleur color=black>
<tr valign="top">
<td width=0><media max=25></td>
<td>
<table border="3" width=100% bgcolor=Couleur>

Je suis en train de faire des essais pour voir...
Title: Re: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: Superchinois on March 19, 2022, 10:49:03
ça ne marche pas  :D mais bon, voilà à quoi pourrait ressembler la première ligne :

<body
   ifvalue prop path=INDI:SEX[Masculin] bgcolor=#9bdfe8
   ifvalue prop path=INDI:SEX[Féminin] bgcolor=#dbcaeb
   ifvalue prop path=INDI:SEX[Inconnu] bgcolor=#bbeba2
>

Mon problème est que je n'arrive pas à prendre la valeur d'une propriété.
Par exemple INDI:SEX prend quoi comme propriété quand il est renseigné ?
Pour un Homme : c'est Masculin, 0 ou 1 ?
Pour une femme : c'est Féminin,1 ou 2 ?
Quand ce n'est pas renseigné : C'est Inconnu, 0 ou 2 ?

Ensuite pour la syntaxe comment écrire "Si la valeur de INDI:SEX est Masculin (ou 0,1 ou 2) alors bgcolor=" ?

Ce n'est pas grave si ce n'est pas possible, mais si une solution existe je suis preneur.

Eric
Title: Re: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: FredericL on March 19, 2022, 10:58:27
Ce serait l'idée oui.
C'est 0 (M), 1 (F) et 2 (inconnu) mais cela ne marche qu'avec la balise <mark> pour l'instant et comme ceci: <mark path=INDI:SEX test=Inconnu repeat=5> (voir doc: https://docs.ancestris.org/books/mode-demploi/page/calques#bkmrk-balise-%3Cmark%3E)

Il faut intervenir dans le code pour que cela fonctionne et pour le moment le code ne prévoit pas du tout d'intervenir dans les balises html standard.

Dans la liste des choses à faire!

Bien à toi,
Frédéric
Title: Re: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: Superchinois on March 19, 2022, 11:07:03
Ce serait l'idée oui.
C'est 0 (M), 1 (F) et 2 (inconnu) mais cela ne marche qu'avec la balise <mark> pour l'instant et comme ceci: <mark path=INDI:SEX test=Inconnu repeat=5> (voir doc: https://docs.ancestris.org/books/mode-demploi/page/calques#bkmrk-balise-%3Cmark%3E)

Il faut intervenir dans le code pour que cela fonctionne et pour le moment le code ne prévoit pas du tout d'intervenir dans les balises html standard.

Dans la liste des choses à faire!

Bien à toi,
Frédéric

Merci Frédéric pour ta réponse.

Effectivement j'avais trouvé dans la doc ce passage.
Si ce n'est pas prévu dans le code HTML, j'arrête pour l'instant ma recherche.
Mais je suis preneur le jour où c'est modifié  ;)

Bon courage à l'équipe !

Eric
Title: Re: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: fred_76 on November 05, 2023, 21:48:50
OK, donc ça n'est pas possible dans les calques.

Mais si on met les mains dans le camboui, autrement dit dans le code source, il doit bien y avoir un moyen de le faire. Le code source permet en, effet de gérer la couleur des bordures. Il doit donc être possible d'attribuer une couleur de fond aux cases de la même façon. Il y a 6 couleurs définies :
- cadre de l'individu sélectionné
- cadre de l'individu racine
- cadre des hommes
- cadre des femmes
- cadre des individus non genrés (ou de genre inconnu, ou autre)
- cadre des familles

On pourrait alors attribuer au fond la même couleur que le cadre, avec une simple transparence (par exemple 50%).

Mais il faut rentrer dans le code Java qui génère le fichier HTML affiché.

Quels sont les fichiers à modifier et où sont les sources ?

A+

Fred

Title: Re: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: Zurga on November 05, 2023, 23:38:34
Vous ne savez pas de quoi vous parlez...
Ce n'est pas du code facile à suivre.
Le code est là : https://docs.ancestris.org/books/participation/page/le-code#bkmrk-r%C3%A9f%C3%A9rentiel-subversi
Il y en a des copies sur Github aussi : https://github.com/petergeneric/ancestris https://github.com/PQYPLZXHGF/Ancestris
Et probablement d'autres.
Le code est dans la partie "Application noyau" (core), package "genj.renderer" notamment la classe BlueprintRenderer.java.

Bon courage.

Zurga
Title: Re: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: fred_76 on November 06, 2023, 12:36:43
Merci

Effectivement ça n’est pas simple surtout que le code est très peu documenté…
Title: Re: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: Zurga on November 06, 2023, 13:26:24
Bienvenue au club  ;D

Non, il n'y a rien de simple dans le code d'Ancestris et si dans le principe, je suis d'accord avec vous, dans la pratique, cela ne se fait pas sans douleurs.

Zurga
Title: Re: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: fred_76 on November 07, 2023, 15:09:28
C'est là dedans ?

http://svn.ancestris.org/trunk/AncestrisCore/core/src/genj/renderer/ChooseBlueprintAction.java
Title: Re: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: Zurga on November 07, 2023, 15:22:22
L'affichage de l'arbre dynamique est là où je l'ai indiqué :
/trunk/AncestrisCore/core/src/genj/renderer/BlueprintRenderer.java (Pour le calque et la couleur de fond)
/trunk/AncestrisCore/modules.views.tree/src/genj/tree/  (Pour la disposition et l'affichage pur des cases de l'arbre)

Zurga
Title: Re: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: Zurga on November 07, 2023, 15:25:24
C'est là dedans ?

http://svn.ancestris.org/trunk/AncestrisCore/core/src/genj/renderer/ChooseBlueprintAction.java

Non, c'est l'affichage de l'éditeur de calque.

Zurga
Title: Re: Changer le fond des individus dans l'arbre en fonction du sexe
Post by: fred_76 on November 07, 2023, 15:33:11
Oui, j'ai trouvé après...

Ouf, ton code est bien commenté !!!

Je pense que la propriété fillRect devrait pouvoir faire le job. Pour la couleur de remplissage, utiliser la couleur des contours, avec un alpha de 10-25%.

A+

Fred