J'écris un widget GWT en utilisant UIBinder et MVP. sont définis les styles par défaut du widget dans TheWidgetView.ui.xml:GWT CssResource Personnalisation
<ui:style type="com.widgetlib.spinner.display.TheWidgetView.MyStyle">
.textbox {
border: 1px solid #red;
}
.important {
font-weight: bold;
}
</ui:style>
interface CssResource de Le widget est défini dans TheWidgetView.java:
public class TheWidgetView extends HorizontalPanel implements TheWidgetPresenter.Display {
// ... some code
@UiField MyStyle style;
public interface MyStyle extends CssResource {
String textbox();
String important();
}
// ... more code
}
Je voudrais que le consommateur de ce widget pour être en mesure de personnaliser une partie des styles du widget et de l'avoir dans leur MyExample.ui.xml:
<ui:style type="com.consumer.MyExample.MyStyle">
.textbox {
border: 2px solid #black;
}
</ui:style>
Et ce sera leur MyExample.java:
public class MyExample extends Composite {
// ... some code
@UiField MyStyle style;
interface MyStyle extends TheWidgetView.MyStyle{
String textbox();
}
// ... more code
}
Est-il possible que mon widget peut avoir des styles par défaut, mais que le consommateur du widget peut remplacer l'un d'entre eux? Lorsqu'une interface étend TheWidgetView.MyStyle, le consommateur du widget doit définir tous les styles répertoriés dans cette interface parent. J'ai vu certaines bibliothèques de widgets que le constructeur du widget prenait en paramètre ClientBundle, ce qui, je suppose, pourrait s'appliquer à CssResource. Bien que, je ne suis pas sûr comment je passerais dans cet objet de style dans un constructeur invoqué par UIBinder.
Merci beaucoup d'avance!
Est-ce que quelqu'un a utilisé la ressource CssResource '@eval'? Cela pourrait-il être utile? –
http://code.google.com/p/google-web-toolkit/issues/detail?id=4420#c1 –
Cela ne semble pas être applicable à UIBinder/MVP http://googlewebtoolkit.blogspot.com/ 2008/12/gwt-no-need-to-shortchange-votre-style.html –