rathiandi, I'm not sure where you are seeing the BlueThemeImageResource class, but yes, if such a class existed and had a static method, you could invoke it to get the ImageResource instance. Then you would pass it to the button using setIcon, exactly as you have done.
There is a folderOpened.png file in GXT, in com/sencha/gxt/theme/base/client/tree/folderOpened.png - you shouldn't use any of the existing ClientBundles, since they are tailor-made for the built-in themes, and have all kinds of other tree wiring in them (this is used in the TreeBaseAppearance class). You can make a ClientBundle that points to this - use the @Source annotation:
Code:
class MyClientBundle extends ClientBundle {
@Source("com/sencha/gxt/theme/base/client/tree/folderOpened.png")
ImageResource folderOpened();
}
This will of course make your code subject to changes in the GXT appearance internals, which really aren't a part of the API.
If this raises the question of why we don't just have a single monolithic class that contains all images that might be used, the basic answer is that doing so may cause the compiler to bake in images that some applications never use. By taking this approach, we make it clearer to the compiler what things we use together, and it can better do its job to only make users download what any app actually uses.