ThemeChanger在GWT-Ext中 [英] ThemeChanger in GWT-Ext

查看:94
本文介绍了ThemeChanger在GWT-Ext中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用GWT 2.0,GWT-Ext 1.5& Java 1.6和Mozilla 3.6.x。



我试图根据这个链接。但我无法实现它。任何人都可以看我的代码&告诉我我缺少什么或做错了什么?



Test.html

 <!doctype html> 
< html>
< head>
< meta http-equiv =content-typecontent =text / html; charset = UTF-8>

< link type =text / css =stylesheethref =ThemeTest.css>
< link id =theme =stylesheettype =text / csshref =/ public / resources / themes / green / css / xtheme-green.css/>
< link id =theme =stylesheettype =text / csshref =/ public / resources / themes / red / css / xtheme-red.css/>
< link id =theme =stylesheettype =text / csshref =/ public / resources / themes / gray / css / xtheme-gray.css/>
< link id =theme =stylesheettype =text / csshref =/>

< title> Web应用程序项目< / title>

< script type =text / javascriptlanguage =javascriptsrc =themetest / themetest.nocache.js>< / script>
< / head>

< body>

< iframe src =javascript:''id =__ gwt_historyFrametabIndex =' - 1'style =position:absolute; width:0; height:0; border:0> ;< / iframe中>

< noscript>
< div style =width:22em; position:absolute; left:50%; margin-left:-11em; color:red; background-color:white; border:1px solid red; padding:4px; font-family:sans-serif>
您的网络浏览器必须启用JavaScript
才能正确显示此应用程序。
< / div>
< / noscript>


< / body>
< / html>

Test.gwt.xml

 <?xml version =1.0encoding =UTF-8?> 
< module rename-to ='test'>
<继承了name ='com.google.gwt.user.User'/>
<继承名称='com.gwtext.GwtExt'/>

< inherits name ='com.google.gwt.user.theme.standard.Standard'/>

< stylesheet src =resources / css / ext-all.css/>
< stylesheet src =resources / css / style.css/>
< script src =adapter / ext / ext-base.js/>
< script src =ext-all.js/>

< entry-point class ='com.test.client.ThemeTest'/>

< source path ='client'/>
< source path ='shared'/>

< / module>

EntryPointClass:ThemeTest.java

  @Override 
public void onModuleLoad(){
FormPanel formPanel = new FormPanel();
formPanel.setTitle(Form);

TextField nameField = new TextField(Name);
TextField descField = new TextField(Desc);

formPanel.add(nameField);
formPanel.add(descField);
formPanel.add(new ThemeChanger());
RootPanel.get()。add(formPanel);
}

ThemeChanger.java

  public class ThemeChanger extends ComboBox {
$ b $ public ThemeChanger(){

store Store = new SimpleStore(new String [] {theme,label},new Object [] [] {
new Object [] {/ public / resources / themes / green / css / xtheme-green.css ,Green},
new Object [] {,Aero Glass},
new Object [] {/ public / resources / themes / red / css / xtheme-red.css ,Red},
new Object [] {/ public / resources / themes / gray / css / xtheme-gray.css,Gray},
});
store.load();

setFieldLabel(选择主题);
setEditable(false);
setStore(store);
setDisplayField(label);
setForceSelection(true);
setTriggerAction(ComboBox.ALL);
setValue(Gray);
setFieldLabel(Switch theme);
addListener(new ComboBoxListenerAdapter(){
public void onSelect(ComboBox comboBox,Record record,int index){
try {
String theme = record.getAsString(theme) ;
CSS.swapStyleSheet(theme,theme);
} catch(Exception e){
e.printStackTrace();
}
}
});
setWidth(100);


$ / code $ / pre

解决方案

检查您的主题位置。



您可以下载gxt-2.2.1.zip。
在您的电脑上解压。将会有一个名为 resources 的目录,其中包含主题
,您需要在您的项目位置复制该文件。



我通过下面的示例值检查了你的代码

  new Object [] {/ test / resources / themes / slate / css / xtheme-slate.css,Slate},
new Object [] {/ test / resources / themes / access / css / xtheme-access.css,Access},

ThemeChanger 上面给出主题的类.jar



有效。

I'm using GWT 2.0, GWT-Ext 1.5 & Java 1.6 with Mozilla 3.6.x.

I'm trying to implement ThemeChanger module as per this link. But I'm not able to achieve it. Can anyone look at my code & tell me what am I missing or doing wrong?

Test.html

<!doctype html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

    <link type="text/css" rel="stylesheet" href="ThemeTest.css">
    <link id="theme" rel="stylesheet" type="text/css" href="/public/resources/themes/green/css/xtheme-green.css"/> 
    <link id="theme" rel="stylesheet" type="text/css" href="/public/resources/themes/red/css/xtheme-red.css"/> 
    <link id="theme" rel="stylesheet" type="text/css" href="/public/resources/themes/gray/css/xtheme-gray.css"/> 
    <link id="theme" rel="stylesheet" type="text/css" href=""/> 

    <title>Web Application Project</title>

    <script type="text/javascript" language="javascript" src="themetest/themetest.nocache.js"></script>
  </head>

  <body>

    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>

    <noscript>
      <div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
        Your web browser must have JavaScript enabled
        in order for this application to display correctly.
      </div>
    </noscript>


  </body>
</html>

Test.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='test'>
    <inherits name='com.google.gwt.user.User'/>
    <inherits name='com.gwtext.GwtExt' />

    <inherits name='com.google.gwt.user.theme.standard.Standard'/>

    <stylesheet src="resources/css/ext-all.css" />
    <stylesheet src="resources/css/style.css" />
    <script src="adapter/ext/ext-base.js" />
    <script src="ext-all.js" />

    <entry-point class='com.test.client.ThemeTest'/>

    <source path='client'/>
    <source path='shared'/>

</module>

EntryPointClass: ThemeTest.java

@Override
    public void onModuleLoad() {
        FormPanel formPanel = new FormPanel();
        formPanel.setTitle("Form");

        TextField nameField = new TextField("Name");
        TextField descField = new TextField("Desc");

        formPanel.add(nameField);
        formPanel.add(descField);
        formPanel.add(new ThemeChanger());
        RootPanel.get().add(formPanel);
    }

ThemeChanger.java

public class ThemeChanger extends ComboBox {

    public ThemeChanger() {

            final Store store = new SimpleStore(new String[]{"theme", "label"}, new Object[][]{
                            new Object[]{"/public/resources/themes/green/css/xtheme-green.css", "Green"},
                            new Object[]{"", "Aero Glass"},
                            new Object[]{"/public/resources/themes/red/css/xtheme-red.css", "Red"},
                            new Object[]{"/public/resources/themes/gray/css/xtheme-gray.css", "Gray"},
            });
            store.load();

            setFieldLabel("Select Theme");
            setEditable(false);
            setStore(store);
            setDisplayField("label");
            setForceSelection(true);
            setTriggerAction(ComboBox.ALL);
            setValue("Gray");
            setFieldLabel("Switch theme");
            addListener(new ComboBoxListenerAdapter() {
                    public void onSelect(ComboBox comboBox, Record record, int index) {
                            try {
                                String theme = record.getAsString("theme");
                                CSS.swapStyleSheet("theme", theme);
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                    }
            });
            setWidth(100);
    }
}

解决方案

Check your locations of themes.

You can download gxt-2.2.1.zip. Extract it on your computer. there will be a directory named resources containing themes which you need to copy at your project location.

I have checked your code by palcing below example values

new Object[]{"/test/resources/themes/slate/css/xtheme-slate.css", "Slate"},
new Object[]{"/test/resources/themes/access/css/xtheme-access.css", "Access"},

In ThemeChanger classs with themes given in above .jar

It worked.

这篇关于ThemeChanger在GWT-Ext中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆