Czasami używam następujące:
@eval BORDER_SIZE_PLUS_2 2+2+"px"; /* GWT evaluates this at compile time! */
dziwne, to działa tylko, jeśli nie było żadnych spacji między operatorem +
i argumentów. Ponadto w @eval nie można używać stałych, które zostały wcześniej zdefiniowane przez @def. Można jednak używać stałych, które są zdefiniowane jako pola statyczne w jednej z klas Java:
@eval BORDER_SIZE_PLUS_2 com.example.MyCssConstants.BORDER_SIZE+2+"px";
Albo można pozwolić obliczenia wykonywane całkowicie Java:
@eval WIDTH com.example.MyCssCalculations.width(); /* static function,
no parameters! */
@eval HEIGHT com.example.MyCssCalculations.height();
.style {
width: WIDTH;
height: HEIGHT;
}
Ale to, co faktycznie jak jest bardzo podobny do twojej sugestii:
@def BORDER_SIZE 2;
.style {
width: value(BORDER_SIZE + 2, 'px'); /* not possible */
height: value(BORDER_SIZE + 3, 'px');
}
Nie sądzę, że jest to możliwe w GWT 2.0. Może znajdziesz lepsze rozwiązanie - oto strona Dev Guide na ten temat.
bardzo dobre pytanie BTW (+1) –