Dégradation harmonieuse d'interfaces utilisateur - UsiXML
Dégradation harmonieuse d'interfaces utilisateur - UsiXML
Dégradation harmonieuse d'interfaces utilisateur - UsiXML
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