I have a module Main, with a Main.gwt.xml
<module rename-to="Main">
<inherits name="com.google.gwt.user.User" />
<inherits name="org.synthful.smartgwt.UISmartGWT" />
<inherits name="com.smartgwt.SmartGwtNoScript"/>
<inherits name="com.smartgwt.tools.SmartGwtTools"/>
<inherits name="com.smartclient.theme.enterprise.EnterpriseResources"/>
<inherits name="com.google.gwt.user.theme.chrome.Chrome"/>
<source path="client"/>
<entry-point class='com.syntercourse.main.client.Main'/>
</module>
org.synthful.smartgwt.UISmartGWT is where I have extension classes of SmartGWT objects to make them usable with UIBinder.
In the module is a public folder where I place the gwt hosting launcher main.html. On compilation, it will be accessible as /Main/main.html:
....
<script type="text/javascript" language="javascript" src="Main.nocache.js"></script>
....
When the module is run,
My SmartGWT widgets are all transparent and imageless,
with the server log showing the access errors:
WARNING: No file found for: /Main/Main/sc/skins/Enterprise/skin_styles.css
WARNING: No file found for: /Main/Main/sc/skins/Enterprise/skin_styles.css
WARNING: No file found for: /Main/Main/sc/skins/Enterprise/images/Menu/menu_button.png
WARNING: No file found for: /Main/Main/sc/skins/Enterprise/images/ToolStrip/button/button_start.png
WARNING: No file found for: /Main/Main/sc/skins/Enterprise/images/ToolStrip/button/button_stretch.png
WARNING: No file found for: /Main/Main/sc/skins/Enterprise/images/ToolStrip/button/button_end.png
WARNING: No file found for: /Main/Main/sc/skins/Enterprise/images/ToolStrip/separator.png
OK, I made a copy of /Main/main.html, and made it accessible as /main.html with the following changes:
....
<script type="text/javascript" language="javascript" src="[b]Main[/b]/Main.nocache.js"></script>
....
Problem solved. The page was displayed as thematically intended.
But not quite - because I don’t like placing my gwt hosting launcher html file outside the module. I want it inside the public folder of the module. The primary reason is - I do not svn/git my war directory, except for WEB-INF/web.xml. By placing it outside the module, if anything happens to the workstation - I would not have a backup of the launcher html.
So what should I do to have my SmartGWT objects refer to the theme path correctly?
What is the possible reason for this behaviour? Are these the possibilities?
- This is a bug. SmartGWT themes are hard-coded to be read by gwt hosting hmtl file launched from the war root. I cannot launch it from the module directory.
- This is because I used extended classes of SmartGWT classes, but there is a way to mitigate it.
- There exists a way, which I don’t know, to specify thematic path for people who prefer to launch their gwt hosting html from within the module’s directory.
Please help. Thank you.