Spécifications communes à tous les graphiques

NOTE :

  • les spécifications comportant un numéro de ticket en fin de ligne sont les spécifications qui sont en cours de développement
  • les spécifications dont le texte est barré ont été implémentées
  • les autres spécifications sont les spécifications en attente ou en discussion

Divers

  • Définir le ou les jeux de couleurs et de formes pour le moteur JFreeChart. Actuellement un thème basé sur la lib JS HighCharts a été développé mais seules les 4 premières couleurs et les 4 première formes ont été implémentées. Il faudrait définir si on implémente la suite de la série en se basant sur HighCharts ou non (ou si on réutilise les jeux de couleurs définis dans la cadre des spécificités et progression pour R).

Préférences de rendu des graphiques

[SJ] Je tente ici de définir les 3 endroits de prefs possibles:

  • globale partagée (page de préférence commune à la visualisation de tous les graphiques, ex. ajouter un noeud “Rendu général des graphiques” dans les prefs utilisateur)
  • globale dédiée (page de pref de chaque type de commande, ex. dans une zone “Chart rendering” de chaque commande : AFC, Spécificités, etc. qui remplace et spécifie la pref équivalente globale)
  • locale à l'éditeur (formulaire rétractable masqué par défaut ou plutôt masqué par une pref. Cette barre d'outils/formulaire permettrait de changer les prefs uniquement pour l'éditeur courant remplaçant donc dynamiquement la pref global dédiée au type d'éditeur/type de résultat : AFC, Spécificités, etc. On ne peut d'ailleurs pas tout à fait parler de “préférence” pour ce cas-là, il s'agit plutôt d'une modification temporaire de l'état de l'éditeur courant. Mais il faut voir comment gérer la réouverture d'un éditeur et notamment ou stocker ces valeurs modifiées localement. A moins que dans un premier temps on ne reset toutes les valeurs par défaut, comme on le fait d'ailleurs actuellement pour le zoom, pan, etc.)

DEV note sur prefs locales : réutiliser les prefs globales possibles pour chaque type de graphique en les portant/proposant en local à chaque éditeur (form, dialog, etc. ?). (Pourrait être fait en passant le type de graphique ou de result TXM à la page de pref RCP (ou plutôt à la zone “Graphics rendering” de chaque page de prefs ou mieux au Store) puis parcourir toutes les pages de prefs (plutôt Store) pour récupérer les possibilités.)

Passer par le moteur de graphique courant pour la récupération des types/entrées de préférences disponibles par moteur. Ainsi par exemple le moteur R ne retournera pas les prefs non prises en charge dans son implémentation (ou pas encore prises en charge). Décider s'il vaut mieux passer par le fournisseur de composant SWT (couche RCP) ou par le moteur de graphiques (couche TBX). A priori la TBX en mode autonome n'a pas besoin par exemple d'utiliser des labels de prefs. En revanche elle a besoin des valeurs de prefs, ces prefs doivent donc être stockées au niveau TBX (dans un futur Store implémentées par plu-gin/commande).

  • TBX : affichage/masquage : voir #1101
    • valeurs des entités des graphiques (ex. : afficher les valeurs propres où les tailles de partie dans les diagrammes à bâtons, au-dessus des barres par exemple ?) [globale/locale]
    • titre du graphique [globale/locale]
    • légende [globale/locale]
    • grille [globale/locale]
    • labels des axes [globale/locale]
    • valeurs des axes [globale/locale]
  • TBX : édition de couleurs :
    • fond [globale/locale]
    • couleur des éléments [globale/locale]
  • TBX : édition des textes/labels
    • police [globale/locale]
    • taille des textes [globale/locale]
  • TBX : espacement entre les bâtons d'une même catégorie dans les bar chart [globale/locale]
  • TBX : sortie couleurs, monochrome et niveau de gris pour tous les types de graphiques ? (TBD Serge : option par type de média ? a) écran : mode = - couleur - niveau de gris - noir&blanc b) papier : mode = - couleur - niveau de gris - tramés - noir&blanc) Ticket #818
  • RCP : vitesse/pas du zoom [globale]
  • RCP : vitesse/pas du pan [globale]
  • TBX : antialiasing ?
  • TBX : JFC fonctionne avec des thèmes graphiques pour modifier l'ensemble des couleurs, tailles, etc. du rendu, ajouter une préférence globale de choix du thème graphique
  • RCP : Offrir une interface de création/modification de thème graphique JFC ?

TODO : définir le niveau de chaque préférence : Charts engine (couche TBX) ou Fournisseur de composants SWT (couche RCP)

TODO : pour ces préférences, définir lesquelles devraient apparaître dans les barres d'outils des graphiques

TODO : définir les préférences globales qui peuvent être des préférences locales au tracé du graphique courant et pouvant par exemple apparaître dans la barre d'outil ou dans une entrée “Propriétés…” du menu contextuel (voir le .jar de JFC demo)

Toolbar commune à tous les graphiques

Est-ce qu'insérer la tool bar directement dans l'éditeur est une bonne idée ou bien faut-il insérer la tool bar au niveau de celle de la RCP ? SJ : après discussions, il a été défini qu'il est plus intuitif d'insérer les tool bars directement dans chaque éditeur/onglet

  • Reset view : remet la vue à 0 (pan et zoom)
  • Export view : exporte le graphique tel qu'il est visible dans l'éditeur (pan, zoom, modifications comprises) dans un fichier (SVG, PNG, PDF, …)
  • Zoom avant, zoom arrière #1163
  • Affichage/masquage d'éléments :
    • valeurs des entités des graphiques (ex. : afficher les valeurs propres où les tailles de partie dans les diagrammes à bâtons, au-dessus des barres par exemple ?) ?
    • titre du graphique ?
    • légende ? [SJ : cette préférence me semble nécessaire d'apparaître au niveau de la tool bar (niveau local donc) car dans le cas de cartouche très grand cela nuit à la bonne visibilité du graphique]
    • grille ?
  • Couleurs :
    • proposer directement des modes de rendu dans la tool bar ? Notamment couleurs, niveaux de gris, monochrome ? et/ou les types de pré-rendu (écran, papier, etc.) ? Voir plus bas la section “Cas d'export de graphiques pour insertion dans des articles papier”
  • définir les icônes à utiliser pour ces boutons

Composants SWT annexes

  • ajouter un bouton pour minimiser/maximiser la zone des composants annexes (typiquement, minimiser/maximiser la partie droite de l'éditeur d'AFC contenant les valeurs propres, les infos sur les colonnes, etc.) ?

Entrées utilisateur souris communes à tous les graphiques

TODO : contrôles tablettes et ou track pad.

Terminologie

  • CTRL/CMD signifie touche CTRL sous Windows/Linux et CMD sous Mac
  • glisser bouton gauche, glisser bouton droit, etc. signifie le déplacement de la souris pendant que l'un des bouton est appuyé (drag)

Navigation

  • zoom/changement d'échelle par rapport à la position du curseur de la souris ⇒ molette #814
  • pan ⇒ glisser bouton gauche #1527
  • zoom/changement d'échelle cadré (ou plutôt lasso ?) ⇒ CTRL/CMD + glisser bouton gauche + relâcher
  • menu contextuel lié à tous les graphiques (ex : export, etc.) ⇒ clic droit quand le curseur ne se trouve sur aucun élément du graphique (point, bâton, etc.) #1519

Sélection et sélection multiple d'entités (points, barres, etc.)

L'idée ici est de se baser sur les commandes de sélection multiple des différents OS.

  • clic gauche sur une entité ⇒ sélectionne l'entité et désélectionne toutes les autres #1517
  • clic gauche sur zone vide ⇒ désélectionne toutes les entités [En attente correction des bugs de focus et de la définition de la politique de focus des éditeurs] #1674
  • CTRL/CMD + clic gauche ⇒ ajoute l'entité à la sélection multiple courante si elle n'y est pas déjà, sinon la supprime de la sélection multiple courante #1517
  • SHIFT + clic gauche ⇒ ajoute toutes les entités entre la sélection courante et l'entité #1502 [à définir par type de graphique/résultat. Lorsqu'un tableau SWT existe on peut profiter du tri de ce tableau pour définir l'ordre des points à sélectionner. Ex. : pour la CA, tri sur contribution]
  • sélection multiple par rectangle (ou plutôt lasso ?) ⇒ CTRL/CMD + glisser bouton gauche + relâcher

Entrées utilisateur clavier communes à tous les graphiques

Navigation

  • pan : CTRL/CMD + flèches du clavier #1165
  • zoom : CTRL/CMD + et CTRL/CMD - #1165
  • reset view CTRL/CMD + 0 #1165

Sélection et sélection multiple d'entités (points, barres, etc.)

A définir par type de graphique/résultat. Lorsqu'un tableau SWT existe on peut profiter du tri de ce tableau pour définir l'ordre des points à sélectionner. Ex. : pour la CA, tri sur contribution.

  • SHIFT + flèche droite ⇒ étendre la sélection vers les points suivants la sélection vers la droite #1502
  • SHIFT + flèche gauche ⇒ étendre la sélection vers les points avant la sélection vers la gauche #1502
  • SHIFT + flèche haut ⇒ étendre la sélection vers les points avant la sélection vers le haut [Définir si utile par type de graphique/résultat, ex. inutile dans le cas où l'on se base sur un tableau SWT pour l'ordre de tri]
  • SHIFT + flèche bas ⇒ étendre la sélection vers les points suivant la sélection vers le bas [Définir si utile par type de graphique/résultat, ex. inutile dans le cas où l'on se base sur un tableau SWT pour l'ordre de tri]
  • flèche droite ⇒ désélectionne toutes les entités et définit l'entité suivant comme sélection unique #1517
  • flèche gauche ⇒ désélectionne toutes les entités et définit l'entité précédente comme sélection unique #1517
  • flèche haut ⇒ [A définir, dépend des types de graphiques/résultats]
  • flèche bas ⇒ [A définir, dépend des types de graphiques/résultats]

Menu contextuel commun à tous les graphiques

Il s'agit ici du menu contextuel dédié au graphique en lui-même, c'est-à-dire quand le curseur ne se trouve pas sur une entité du graphique (point, bâton, courbe, label, etc.)

Voir #1519

  • export de la vue dans un fichier : SVG, PNG, PS, etc.
  • copie du graphique dans le presse-papier
  • ancienne note : “e- ouvrir un menu contextuel par clic droit sur un point ou sur un plan (accès aux commandes zoom ±, export, etc.)” (SJ: je pense que le zoom/pan par menu contextuel est inutile comme il y a déjà les interactions souris, les raccourcis clavier et la toolbar pour ça ?) [SH : je suis d'accord] [rejetée]

Modification dynamique des rendus des graphiques par l'utilisateur

Cette section traite uniquement de l'édition d'éléments déjà existant dans le rendu des graphiques. Au sujet de l'annotation de graphiques (création de nouveaux éléments), voir Annotations de graphiques (annotations utilisateur)

  • édition des couleurs et dimensions de n'importe quelle entité d'un rendu (cercles, carré, lignes, etc.)
  • édition des couleurs et tailles de n'importe quel élément texte d'un rendu (titre du graphique, labels des axes et des entités, etc.)

Est-ce qu'il existe une API Java pour éditer directement des objets Java2D ?

Cas d'export de graphiques pour insertion dans des articles papier

Problème : la présentation des graphiques agréable à l'écran n'est pas forcément adaptée à l'insertion dans des publications. On peut avoir besoin de :

  • augmenter les contrastes
  • réduire le nombre de couleurs ou passer en nuances de gris ou noir et blanc
  • cacher certains éléments (quadrillage, titres, boutons…)

SJ : 2 propositions de mise en œuvre pour le même résultat à l'export :

  1. la modification du graphique se fait à l'export (via une boîte de dialogue ou des préférences d'export), c'est-à-dire que le fichier exporté est différent de la vue dans TXM
  2. la modification du graphique se fait au niveau de la vue dans TXM (ex. on masque le quadrillage, légende, etc. dans la vue) puis on exporte cette vue (la vue et le fichier sont donc similaires)

SJ : Je crois que la modification de la vue dans TXM est de toute façon prévue (masquage quadrillage, affichage/masquage titre, etc.) Pensez-vous que la solution 1 soit utile ou non ? Je crois qu'on avait déjà évoqué le fait que la vue et l'export soient similaires (de mon côté je suis assez pour). Si la soluce 1 n'est pas d'actualité dans ce cas tout passerait par des prefs globales appliquées par defaut pour tous les graphiques + peut-être des prefs locales à chaque éditeur ?

AL : Ça me semble un peu gênant de modifier des prefs globales quand on veut juste exporter un graphique pour une publi (surtout si on est content de voir les couleurs et le quadrillage à l'écran). Si la solution 1 est trop lourde à mettre en place, on peut penser à pré-configurer au moins 2 “styles” de graphiques, par ex. “pour écran” et “pour impression” et laisser l'utilisateur en choisir (et éventuellement customiser) un, sans modifier les paramètres un par un.

SJ : Les styles à pré-configurer pourraient être utiles, Serge en parle également en haut de cette page, dans la section “Préférences globales de rendu des graphiques” mais il faudrait définir ces différentes chartes graphiques. Une autre solution ou solution complémentaire : comme a priori on aura de toute façon besoin de définir ces préférences globales dans le cadre de la visualisation, dans un premier temps on peut peut-être commencer par là ? Ensuite pour l'export, on pourrait ajouter dans la boîte de dialogue d'export une entrée du type “Options avancées” puis réutiliser cette page de pref qui contiendrait des paramètres du type “Afficher le titre, Afficher la légende, Couleur/Monochrome, etc.”. Mais dans ce cas il faudrait sans doute ajouter une Preview avant l'export ? (étant donné que le fichier sera différent de ce qu'on voit à l'écran)

On pourrait ensuite ajouter une combo box dans la page de préférence pour préconfigurer les valeurs de cette page de pref en fonction du type de média, ex. “Ecran - niveaux de gris”, présélectionnerait la pref “Niveau de gris” dans la page. Ce serait sans doute le plus simple à mettre en oeuvre. A vrai dire je pense que cette page de pref devrait être doublée pour la visualisation et l'export ?

Spécifications par type de graphique

Modèle pour les sections des pages de spécifications de chaque type de graphiques

Zone de tracé

La zone de tracé est la zone où le graphique est rendu dans l'éditeur/onglet.

Tool bar / Barre d'outils

Cette section contient les boutons et actions à définir dans la barre d'outils placée au-dessus de la zone de tracé.

Rollover / Survol souris
Tool tips / Info bulles

Lié au rollover.

Sélection exclusive, multiple et étendue d'entités dans le graphique

Cette section contient les comportements à adopter lors de la sélection d'items dans le graphique (clavier et souris, clavier : flèches et SHIFT + flèches ; Souris : clic gauche, CTRL/CMD + clic gauche, SHIFT + clic gauche).

Menu contextuel

Cette section contient les entrées du menu contextuel à définir et à quel type d'entité du graphique elles sont liées (ex. : bâtons, points, label des axes, etc. ou au graphique complet, notamment au clic sur aucune entité).

Entrées utilisateur souris et clavier

Composants SWT annexes

Les composants SWT annexes désignent les composants placés à côté de la zone de tracé (ex. pour les AFC : masses, coordonnées, etc.).

Rollover / Survol souris
Menu contextuel
Entrées utilisateur souris et clavier

Préférences globales (préférences par défaut)

Cette section définit les préférences globales qui vont être appliquées lors de la création d'un graphique. La section suivante décrit celles qui doivent pouvoir être modifiées “dynamiquement” pour chaque graphiques/onglets.

Préférences locales (préférences pouvant être modifiées localement, pour chaque graphique. Autre terminologie "Paramètres")

Il faudrait ici définir si ces préférences doivent apparaître dans la tool bar et/ou dans le menu contextuel.


public/specs_charts_shared.txt · Dernière modification: 2017/02/11 18:39 par sebastien.jacquot@univ-fcomte.fr