Ancestris - Forum
Ancestris Support => FRANÇAIS => Topic started 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 :
- 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
-
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
-
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...
-
ç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
-
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
-
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
-
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
-
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
-
Merci
Effectivement ça n’est pas simple surtout que le code est très peu documenté…
-
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
-
C'est là dedans ?
http://svn.ancestris.org/trunk/AncestrisCore/core/src/genj/renderer/ChooseBlueprintAction.java
-
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
-
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
-
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