Author Topic: Changer le fond des individus dans l'arbre en fonction du sexe  (Read 4129 times)

0 Members and 1 Guest are viewing this topic.

Offline Superchinois

  • VIP
  • Hero Member
  • *
  • Posts: 159
    • View Profile
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 :

  • Si l’individu est masculin = #9bdfe8
  • Si l’individu est féminin = #dbcaeb
  • Si l’individu est de sexe inconnu = #bbeba2

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
Version d'Ancestris :  12.0.12207
Java :  17.0.9+11-LTS-201 - C:\Program Files\Java\jdk-17
Système :  Windows 11 - 10.0 - ericd
Répertoire utilisateur :  C:\Users\ericd\.ancestris\trunk

Offline FredericL

  • VIP
  • Hero Member
  • *
  • Posts: 756
    • View Profile
    • Généalogie personnelle et logiciel gratuit Ancestris
Re: Changer le fond des individus dans l'arbre en fonction du sexe
« Reply #1 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


Offline Superchinois

  • VIP
  • Hero Member
  • *
  • Posts: 159
    • View Profile
Re: Changer le fond des individus dans l'arbre en fonction du sexe
« Reply #2 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...
Version d'Ancestris :  12.0.12207
Java :  17.0.9+11-LTS-201 - C:\Program Files\Java\jdk-17
Système :  Windows 11 - 10.0 - ericd
Répertoire utilisateur :  C:\Users\ericd\.ancestris\trunk

Offline Superchinois

  • VIP
  • Hero Member
  • *
  • Posts: 159
    • View Profile
Re: Changer le fond des individus dans l'arbre en fonction du sexe
« Reply #3 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
Version d'Ancestris :  12.0.12207
Java :  17.0.9+11-LTS-201 - C:\Program Files\Java\jdk-17
Système :  Windows 11 - 10.0 - ericd
Répertoire utilisateur :  C:\Users\ericd\.ancestris\trunk

Offline FredericL

  • VIP
  • Hero Member
  • *
  • Posts: 756
    • View Profile
    • Généalogie personnelle et logiciel gratuit Ancestris
Re: Changer le fond des individus dans l'arbre en fonction du sexe
« Reply #4 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

Offline Superchinois

  • VIP
  • Hero Member
  • *
  • Posts: 159
    • View Profile
Re: Changer le fond des individus dans l'arbre en fonction du sexe
« Reply #5 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
Version d'Ancestris :  12.0.12207
Java :  17.0.9+11-LTS-201 - C:\Program Files\Java\jdk-17
Système :  Windows 11 - 10.0 - ericd
Répertoire utilisateur :  C:\Users\ericd\.ancestris\trunk

Offline fred_76

  • VIP
  • Full Member
  • *
  • Posts: 40
    • View Profile
Re: Changer le fond des individus dans l'arbre en fonction du sexe
« Reply #6 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

« Last Edit: November 05, 2023, 22:04:21 by fred_76 »

Offline Zurga

  • VIP
  • Supernatural Member
  • *
  • Posts: 3 856
    • View Profile
Re: Changer le fond des individus dans l'arbre en fonction du sexe
« Reply #7 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

Offline fred_76

  • VIP
  • Full Member
  • *
  • Posts: 40
    • View Profile
Re: Changer le fond des individus dans l'arbre en fonction du sexe
« Reply #8 on: November 06, 2023, 12:36:43 »
Merci

Effectivement ça n’est pas simple surtout que le code est très peu documenté…

Offline Zurga

  • VIP
  • Supernatural Member
  • *
  • Posts: 3 856
    • View Profile
Re: Changer le fond des individus dans l'arbre en fonction du sexe
« Reply #9 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

Offline fred_76

  • VIP
  • Full Member
  • *
  • Posts: 40
    • View Profile
« Last Edit: November 07, 2023, 15:21:42 by fred_76 »

Offline Zurga

  • VIP
  • Supernatural Member
  • *
  • Posts: 3 856
    • View Profile
Re: Changer le fond des individus dans l'arbre en fonction du sexe
« Reply #11 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
« Last Edit: November 07, 2023, 15:24:25 by Zurga »

Offline Zurga

  • VIP
  • Supernatural Member
  • *
  • Posts: 3 856
    • View Profile

Offline fred_76

  • VIP
  • Full Member
  • *
  • Posts: 40
    • View Profile
Re: Changer le fond des individus dans l'arbre en fonction du sexe
« Reply #13 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
« Last Edit: November 08, 2023, 09:53:21 by fred_76 »