2010-08-30 4 views
0

J'essaye d'appliquer du CSS à ma sous-classe de DialogBox via ClientBundle. Lors de l'inspection du DOM, je peux voir un nom de classe obscurcie se est ajouté (class = "GWT-DialogBox GF2AVPFBPD"), mais il ne porte pas/appliquer les modifications propertes/...Comment appliquer CSS à un DialogBox en utilisant ClientBundle?

class RegistrationDialog 
    extends DialogBox 
{ 
    interface MyClientBundle 
    extends ClientBundle 
    { 
    @Source("regDlg.css") 
    MyCssResource css(); 
    } 

    interface MyCssResource 
    extends CssResource 
    { 
    String registrationDialog(); 
    } 

    MyClientBundle myClientBundle = GWT.create(MyClientBundle.class); 

    RegistrationDialog() 
    { 
    add(uiBinder.createAndBindUi(this)); 
    addStyleName(myClientBundle.css().registrationDialog()); 
    } 
    ... 

regDlg.css:

.registrationDialog 
{ 
    background-image: url("logo.png") !important; 
    background-color: red !important; 
    color: red !important; 
    font-size: xx-large !important; 
} 

Qu'est-ce que je manque s'il vous plaît?

+0

Quel style a la plus haute priorité - votre ou GWT ('.gwt-DialogBox')? Vérifiez-le avec Firebug ou un outil similaire pour voir si [GWT ne remplace pas votre style] (http://stackoverflow.com/questions/2322779/gwt-theme-style-overrides-my-css-style). –

+0

Je l'ai fait. Comme je l'ai dit, j'ai inspecté le DOM, les propriétés ne sont pas répertoriées. (Cela ne signifie même pas être désactivé par une autre règle.) :(Merci quand même, Igor –

+0

S'ils ne sont pas listés, ils peuvent être supprimés par Firefox/Firebug/any - la raison habituelle est une erreur de syntaxe. CssResource.style' propriété à 'pretty' dans votre fichier de module pour désactiver l'obfuscation pour faciliter le débogage :)' '. Voir la section [Lever and Knobs] de CssResource (http://code.google.com/webtoolkit/doc/latest/DevGuideClientBundle.html#Levers_and_Knobs). –

Répondre

3

Vous oubliez d'appeler CssResource.ensureInjected(). De la documentation

Lors de l'exécution, appelez CssResource.ensureInjected() pour injecter le contenu de la feuille de style.
- Cette méthode est sûre d'appeler plusieurs fois, car les invocations suivantes seront non-op.
- Le modèle recommandé est d'appeler ensureInjected() dans la initialiseur statique de vos différents types de widgets

Vérifiez la réponse sur cette question pour plus d'informations code.

+0

Merci! ! –

Questions connexes