24.06.2013 Views

Dégradation harmonieuse d'interfaces utilisateur - UsiXML

Dégradation harmonieuse d'interfaces utilisateur - UsiXML

Dégradation harmonieuse d'interfaces utilisateur - UsiXML

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Enfin, nous devrons veiller à ce que les fonctions déclenchées lors de manipulation de widgets<br />

respectent la propriété de continuité de l’interface. En effet, la manière dont les actions sont<br />

gérées en QTk ne permet pas forcément de bien séparer les fonctions sémantiques spécifiques<br />

à un widget/groupe de widgets de celles qui sont spécifiques au modèle du dialogue d’une<br />

interface, notamment en ce qui concerne les widgets composés. L’accumulateur utilisé dans<br />

notre exemple est là pour le montrer :<br />

fonction sémantique<br />

(OIA)<br />

fonctions sémantiques<br />

(Dialogue)<br />

td(listbox(init:{Dictionary.keys V}<br />

feature:lb1<br />

tdscrollbar:true<br />

background:c(134 133 171)<br />

selectbackground:c(180 179 203))<br />

lr(button(image:{QTk.newImage photo(file:'addAll.gif')}<br />

action:<br />

proc{$}<br />

end<br />

{AccumuleAllElem H.D.lb1 H.D.lb2}<br />

{DrawSquares H.picture V {H.D.lb2 get($)} true}<br />

{ToolTipMaker H.picture {H.D.lb2 get($)}}<br />

width:20<br />

ipadx:3<br />

background:c(134 133 171)<br />

activebackground:c(180 179 203))<br />

…<br />

listbox(feature:lb2<br />

tdscrollbar:true<br />

background:c(134 133 171)<br />

selectbackground:c(180 179 203))<br />

feature:D)<br />

Or, comme nous le verrons plus loin dans ce travail, certains widgets seront plus appropriés<br />

dans certains cas spécifiques de présentation. Ceci implique que nous devrons non seulement<br />

nous arranger pour bien séparer les fonctions sémantiques des autres fonctions de manière à<br />

pouvoir les réinjecter dans les widgets choisis lors de la construction de la présentation, mais<br />

aussi adapter leur mode de déclenchement puisque la manière de déclencher une action n’est<br />

pas la même pour tous les widgets.<br />

5.2 Enrichissement de notre définition d’interface : méthode suivie<br />

L’utilisation du simple modèle du domaine n’est pas suffisante. Nous allons donc dans un<br />

premier temps décrire de manière succinctes les différents modèles qui sont le plus souvent<br />

considérés dans le développement d’interfaces <strong>utilisateur</strong>s.<br />

Ensuite, nous verrons et classifierons les règles de dégradation <strong>harmonieuse</strong> et leur incidence<br />

sur les différents modèles considérés. Pour réaliser cette classification, nous introduirons tout<br />

d’abord les quatre niveaux d’abstraction décrit par le framework Cameleon, ce qui nous<br />

permettra ainsi de structurer les modèles décrits précédemment par rapport à une structure<br />

plus générale. Et enfin, nous déterminerons les différentes règles de dégradation retenues pour<br />

notre application en QTk et donc, par implication, les différents modèles à retenir également,<br />

ainsi que le formalisme choisi pour les spécifier.<br />

52

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!