Parfois j'utiliser les éléments suivants:
@eval BORDER_SIZE_PLUS_2 2+2+"px"; /* GWT evaluates this at compile time! */
Bizarrement, cela ne fonctionne, si vous ne mettez pas d'espace entre l'opérateur et les +
opérandes. En outre, dans @eval vous ne pouvez pas utiliser les constantes précédemment définies par @def. Vous pouvez toutefois utiliser des constantes qui sont définies comme des champs statiques dans l'une de vos classes Java:
@eval BORDER_SIZE_PLUS_2 com.example.MyCssConstants.BORDER_SIZE+2+"px";
Ou vous pourriez laisser le calcul soit effectué entièrement par Java:
@eval WIDTH com.example.MyCssCalculations.width(); /* static function,
no parameters! */
@eval HEIGHT com.example.MyCssCalculations.height();
.style {
width: WIDTH;
height: HEIGHT;
}
Mais ce que je fait comme à faire est très similaire à votre suggestion:
@def BORDER_SIZE 2;
.style {
width: value(BORDER_SIZE + 2, 'px'); /* not possible */
height: value(BORDER_SIZE + 3, 'px');
}
Je ne pense pas que ce soit possible dans GWT 2.0. Peut-être trouvez-vous une meilleure solution - voici la page Dev Guide sur ce sujet.
Très bonne question BTW (+1) –