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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Dans notre cas, nous n’aurons qu’une seule présentation à construire. Dans la fonction qui la<br />

construit, chaque paire identificateur#valeur est liée à un widget spécifique. Ainsi, nous<br />

avons (le code complet se trouve en annexes) :<br />

fun {ViewPresentation Data}<br />

H<br />

fun {Loop X}<br />

case X of D#V|Xs then<br />

in<br />

if (D==picture andthen {IsAtom V}) then<br />

Widget1|{Loop Xs}<br />

elseif (D==countriesdatas andthen {IsDictionary V}) then<br />

% Accumulator Functions and Procedures<br />

proc{AccumuleOneElem Handle1 Handle2 DrawAction}<br />

…<br />

end<br />

proc{AccumuleAllElem Handle1 Handle2}<br />

…<br />

end<br />

%Drawing/UnDrawing Procedure<br />

proc {DrawSquares CanvasHandle Dict List DrawAction}<br />

…<br />

end<br />

proc {ToolTipMaker CanvasHandle List}<br />

…<br />

end<br />

…<br />

Widget2 (-> accumulateur -> ensemble de widgets)|{Loop Xs}<br />

end<br />

else nil end<br />

end<br />

in<br />

r(desc:{Record.adjoin {List.toTuple lr {Loop Data}}<br />

lr(glue:nswe background:c(180 179 203) handle:H)}<br />

handle :H)<br />

end<br />

Notre application : critique de l’approche suivie<br />

Comme nous nous en doutions avant de réaliser notre application, le gros désavantage de cette<br />

technique réside dans la pauvreté de la définition/spécification de l’interface. En ne disposant<br />

uniquement d’un record avec les données, le type de widget choisi doit toujours être spécifié à<br />

la main dans la fonction de construction (les encadrés rouges dans le code de cette dernière le<br />

montre clairement).<br />

Avec une définition d’interface comme celle-ci, le choix reste donc arbitraire de bout en bout.<br />

Or, dans notre processus de dégradation d’interfaces, il ne nous sera pas donné la possibilité<br />

de spécifier nos choix de widgets de cette manière pour toutes les présentations possibles.<br />

Il va donc sans dire que notre définition devra être enrichie si nous voulons avoir des règles de<br />

sélection plus fines, dont le fonctionnement dépend de plusieurs niveaux d’abstraction de<br />

l’interface.<br />

51

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

Saved successfully!

Ooh no, something went wrong!