How to change theme in Ext-Gwt (GXT) application

New Slate theme in GXT
New Slate theme in GXT

Some time ago Sencha company included new theme in their GXT library. It’s called SLATE and can be viewed in GXT Explorer demo on this site: http://www.sencha.com/examples/explorer.html. I’ve been searching, but I coudn’t find any clear information in web, how to made my gwt app to change theme to new skin instead of standard BLUE or GREY themes. After short investigating I realized, that everything is easy, but only if You keep standard paths in Your app to css/images.

First of all You have to copy to Your’s project directory some directories from GXT example zip file (can be downloaded here: http://www.sencha.com/products/gwt/download.php). Those directories are: css (with BLUE/GREY theme’s csses), images (all gxt standard images) and themes (new SLATE theme). They can be found in resource directory in gxt-x.x.x zip file.

Now, after copying directories to own app in gwt html entry point file it has to be placed following line:

 

< link rel=”stylesheet” type=”text/css” href=”css/gxt-all.css” /&rt;

 

That’s all.

Nothing more gxt’s csses have to be included (instead of what I’ve found on internet). Why ? Becouse we will switch theme in java code later.

In apps entry point java file in onModuleLoad() method we need to insert some code. We want to tell GXT, that we will be using SLATE theme as default, but we would like to change it later. This is made by passing ‘false’ parameter in .setDefaultTheme(..) method. Code for this:

 

ThemeManager.register(Slate.SLATE); //register non standard theme

// Theme.GRAY.set(“file”,”css/gxt-gray.css”); //set custom css’es path for grey theme

// Theme.BLUE.set(“file”,”css/gxt-all.css”); //set custom css’es path for standard blue theme

// Slate.SLATE.set(“file”,”gxt/themes/slate/css/xtheme-slate.css”); //set custom path for SLATE theme

GXT.setDefaultTheme(Slate.SLATE, false); //set default theme to new SLATE skin

 

That’s not all. If we would like to rearange our paths (i.e. by moving themes/images/css directories in other places) we have to uncoment commented code and set proper paths.

Because we would like to allow user to switch theme by own. We have to add somewhere in our app’s panels ThemeSelector which will do all work. It’s very easy. Just add somewhere this code:

 

[ourContainer].add(new ThemeSelector());

 

5 thoughts on “How to change theme in Ext-Gwt (GXT) application

  1. Hi Have U ever tried switchtheme it is not working for me.

    Basically color does not change from Blue to Gray
    Let me know if You know about it.

    ThemeSelector not changing the color for me from Blue to Gray.

    Please would appreciate your help.

  2. I often visit your blog and have noticed that you don’t
    update it often. More frequent updates will give your site higher authority & rank in google.

    I know that writing content takes a lot of time, but
    you can always help yourself with miftolo’s tools which will shorten the time of
    creating an article to a couple of seconds.

Leave a Reply to Annad Cancel reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.