2011-04-09 5 views
2

GWT 2.0, GWT-Ext 1.5 & Java 1.6과 Mozilla 3.6.x를 사용하고 있습니다.ThemeChanger in GWT-Ext

나는이 link에 따라 ThemeChanger 모듈을 구현하려고합니다. 그러나 나는 그것을 성취 할 수 없다. 아무도 내 코드를 볼 수 있습니까 & 내가 무엇을 놓치고 잘못하고 있는지 말해?

인 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); 
    } 
} 
+0

신청서의 현재 상태를 알려주시겠습니까? 백엔드에서 출력을 표시하거나 오류를 던지고 있습니까? –

답변

1

는 주제의 당신의 위치를 ​​확인합니다.

gxt-2.2.1.zip을 다운로드 할 수 있습니다. 컴퓨터에서 압축을 풉니 다. 프로젝트 위치에 복사해야 할 테마를 포함하는 resources 디렉토리가있을 것입니다. 내가 예를 아래에 palcing하여 코드를 검사 한

그것은 일

위의 .jar에 주어진 테마로 ThemeChanger 클래스의 사용에

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

값.